Q: Is sound supported by EMame?
A: Yes, it is. By default it is turned off though, so you have to select
it from the menu (Game->Options)
Q: Is sound supported in all games?
A: No, it isn't (see next question on why). Look at the file gamelist.txt
to see if your favorite game has sound supports enabled.
Q: Why isn't sound supported in all games?
A: For a game to support sound it needs special sound hardware and
some games also require a sound CPU. EMame includes the emulation support
for the first, but not for the second. The only reason is that by including
emulation cores for more CPUs, the EMame executable file size increases
dramatically while the performance decreases.
Psion devices
Q: On which Psion devices does EMame run?
A: EMame has reported to work ok on the Psion 5mx, Psion 7 and netbook.
It also runs on the Psion Revo but it doesn't look that nice.
Running EMame
Q: EMame won't start, the message I get is "cannot find program". What
gives?
A: You need to install the library "estlib.dll" on the device. It comes
with the EMame distribution as "stdlib.sis" - simply install as any other
.sis file
Q: EMame won't start, I get a dialog saying "Program closed, reason
number -11". What gives?
A: You get this dialog because Emame is already running. Use the task
manager to switch to the the task "emameapp".
Q: EMame won't start, I get a dialog saying "Program closed, Kern-Exec
3". What gives?
A: This is a bug in EMame :-( Kern-Exe 3 means that EMame is scribbling
into memory where it is not supposed to.
Q: EMame won't start, I get a message saying "Oops, the MAME Engine
raised an excpetion, EMame will terminate". What gives?
A: There is something wrong in the MAME engine and it refuses to continue.
Because the application state is unknown, EMame has no alternative but
to terminate.
Q: EMame won't start. Now hat?
A: If all fails, chances are that EMame failed to run because of insufficient
memory. Try to free up your C drive, close all applicatations and try again.
Stopping EMame
Q: What is the best way to stop EMame?
A: The absolute preferred way is to press ESC during the game. Alternatively
press the "stop" button on the dialog that is shown in emameapp during
the game.
Q: Are there other ways?
A: Yes, but they are not fool proof. If in trouble, switch to the task
manager and stop the following 3 tasks: "GameX" (where X is a number) "stdout"
and "emameapp". After that, start EMame as you would normally do.
Pausing EMame
Q: Can I pause EMame?
A: Yes, press 'p' during a game. To continue press 'p' again.
Q: Can I switch to another application whilst the game is paused?
A: Yes, but it is not entirely fool proof. When you resume the paused
game later on the game may not look pixel perfect anymore. I have no idea
why that is.
Throttling, Frameskipping and the like
Q: Does EMame support frame skipping?
A: No, it doesn't. I tried but to no avail. Even skipping every other
frame in PACMAN on a Series 5mx had no noticable effect.
Q: Does EMame support throttling?
A: Yes, it does. On faster machines such as the Series 7 and Netbook,
throttling it automatically enabled. It's not perfect but seems to work
- sort of. For reasons I don't quite understand yet, it takes about 10
seconds before the game runs at the roughly the right speed.
Q: Can I manually override the automatic throttling?
A: Yes, press '+' and '-' during the game to compensate between the
"real" frame rate and the "game" frame rate. To get back to automatic
again, decrease the counter to 0. For an explanation see the next questions.
Q: How can I see the frame rate?
A: Press 'b' during the game. You'll get a line with either "auto"
and 4 numbers or "manual" and 5 numbers. "Auto" means that EMame is automatically
throttling the game for you, "manual" means you have used '-' and '+' to
manually override this. The first 4 numbers are the same in the 2 modes.
The first represents the "game" frame rate, the second the "real" frame
rate. Between angle brackets are the game frame rate and real frame rate
calculated over the last 5 seconds. In manual override the fifth number
represents the number of extra frames EMame is drawing (i.e., the difference
between "real" and "game").
Q: Err, how does throttling actually works?
A: Implementing throttling isn't that easy in EPOC because EPOC timers
aren't that fine grained. The smallest period you can sleep is roughly
40ms and that isn't good enough. Let's call the frame rate at which the
hardware is capable of running "real frame rate" and the rate at
which the game should run "game frame rate". An example. Suppose the game
frame rate is 50 fps and the real frame rate is 60 fps. 50fps means that
each frame should take 1000/50 = 20ms and at 60 fps, each frame only takes
1000/60 = 16.67 ms. So, in this case we should sleep for 2.33 ms inbetween
drawing each frame to get the correct 50fps. Since we cannot sleep, what
we'll do instead is take advantage of a known factor: the time it takes
to draw a frame. In the above example, if we run at 60 fps then if we draw
10 frames twice in each second, the games runs at the correct speed of
50 fps as well. In automatic mode, EMame does all the calculation for you,
in manual mode you have can use '+' and '-' to specify the number of frames
that will be drawn twice during 1 second.