I recently got Myst III for my birthday and have been getting a really odd message when I try to start it. As soon as I start the program, it says it has commited an illegal operation. When I get more detail, it says the following(M3.exe is the exec. file):
What could this mean? I have downloaded the patches and new drivers for my hardware. It’s a weird error. As soon as I double click the icon, it brings this message up. I get nowhere into the game(it does put the Myst III picture up in the background, but then it cuts out).
Basically it’s saying that Myst 3 was shipped before it was made COMPLETELY functional and they’re still trying to fix it , OR maybe your computer has a problem , I used to get errors like yours all the time, but when I upgraded my p233 to a p333 all the errors went away.
It means that Myst III did something that caused the processor to raise an exception - it tried to access a part of the system that it’s not permitted to. The rest of the error contains the data that the processor was working on at the time the exception was raised - it’s useful for programmers debugging their own code. If it happens the same time every time you load it, it is definitely a software error. How long have you had windows installed? You should reformat about once every three months to keep things running smoothly, or perhaps more often if you do a lot of tweaking/installing/customizing, etc. Or, you could free yourself from all this hassle and use a real OS, like Linux or another Unix.
Actually, this all happens with the patch 1.2 also. Funny thing is, the patch was designed to fix something my computer has. My computer has an Intel 8.0 chipset video card, something version 1.2 was supposed to work with.
Exact same thing happens when I load the game, though. It’s reallllly frustrating.
Their website says I should press ctrl while I load the game to switch it from hardware to software video effects. Is that right? I have been trying it but it does the same thing. 2 seconds after I click the icon, the game gives the error. What am I missing?
I can’t exactly teach you assembly in one post, but I can give you a general idea of what that information means. All those numbers are hexadecimal, i.e., base 16.
The registers are places where things are stored on your processor itself. Those that end in “x” are mostly general purpose, though they also all have specific purposes (e.g., [e]cx is the counting register, used during loops [the “e” is for “extended”; it is 32-bit, as opposed to cx, which is only 16 bit. For some registers you can also access the high and low order bits of its 16 bit half.]). The flags are a series of bits that are either true or false depending on various conditions. The jz instruction, for example, will test the zero flag, if the zero flag is set, it will jump to the label that is its first operand. (Yeah, it jumps if zero is 1. Crazy, isn’t it?)
CS is the code segment (registers that end in S are segments, for example, DS is the data segment, where static variables are declared), EIP is the instruction pointer. CS:EIP is the code segment plus its EIP offset; it points to the current instruction being executed. That is the failed instruction at the time of the crash. You can translate that hexadecimal series into assembly code to see what the instruction was. The stack dump is basically just what it says, a dump of everything that was on the stack. The stack is like a, well, hmm, like a stack of plates. If you pile 20 on, the last one you put on comes off first. The stack is a place where things can be temporarily stashed but still accessed more quickly than using actual memory. It is also used to store things like where to return from interrupts, and the OS may require you to store and retrieve certain values from it at the beginning and end of your program. (Linux does this; it’s annoying.)
I’m just going to stop trying to explain there, because I think anyone without a computer background might be a bit lost. Suffice to say that the program did a Bad Thing ™, and it reported what it did so that its coders can try to fix it. Download the patch and be happy.
[hijack]I understood the first two paras of that post! I knew (at least vaguely) what a register was, what a flag was and that the stack operates under last in first out.
The last time I did anything in assembly was on an Acorn Electron in ooh, 1985. After that I didn’t really touch a computer until 1995 or so. Why did I stop being a hacker child?
[/hijack]