FCE Ultra General User's FAQ
Last updated on: Friday 13th, 2003
Q: Why do some games make a popping sound(Rad Racer 2, Final Fantasy 3)?
A: These games do a very crude drum imitation by causing a large jump in
the output level for a short period of time via the register at $4011.
The analog filters on a real NES and Famicom make it sound rather decent.
I have not completely emulated these filters. Enabling high-quality
sound emulation will also make these pseudo-drums sound better. See
the next question for more information.
Q: Why do some games' digitized sounds sound too loud?
Why do the drums in Crystalis and other games sound fuzzy?
A: The NES' digital to analog converter is faulty, in that it does not output
sound linearly. This effect is most noteable when a games messes with
register $4011, which is added with the triangle wave channel and the noise
channel outputs. When $4011 is set to a large value, the volume
of the triangle wave channel and the noise channel drop significantly. More
Importantly, when digitized sounds are being played and the digitized sample
stream is at a high value, less changes will be noticeable. In other words,
the byte sequence "00 01 00" would be much more audible than the sequence
"7e 7f 7e". This non-linearity is only emulated when high-quality sound
emulation is enabled.
Q: Why doesn't the NSF <insert name here> work(correctly) on FCE Ultra?
A: Some NSF rips are bad. Some read from addresses that are not specified
in the NSF specifications, expecting certain values to be returned.
Others execute undocumented instructions that have no affect on
less-accurate software NSF players, but will cause problems on NSF players
that emulate these instructions. Also, the playback rate specified
in the NSF header is currently ignored, though I haven't encountered
any problems in doing this.
Q: Why doesn't the game <insert name here> work(correctly) on FCE Ultra?
A: Many factors can make a game not work on FCE Ultra:
- If the ROM image is in the iNES format(typically files that have
the extension "nes"), its header may be incorrect. This
incorrectness may also be because of garbage in the
header. Certain utilities used to put text in the reserved
bytes of the iNES header, then those reserved bytes were
later assigned functions. FCE Ultra recognizes and
automatically removes(from the ROM image in RAM, not on the
storage medium) SOME header junk.
If the game has graphical errors while scrolling, chances are
the mirroring is set incorrectly in the header.
You can try to edit the header with a utility(in the NES
utilities section at http://zophar.net ) or a hex editor.
- The on-cart hardware the game uses may not be emulated
- Limitations of the ROM image format may prevent a game from
being emulated correctly without special code to recognize that
game. This occurs quite often with many Koei MMC5(iNES mapper 5)
and MMC1(iNES mapper 1) games in the iNES format. FCE Ultra identifies
and emulates some of these games based on the ROM CRC32 value.
- The ROM image may be encrypted. The author of SMYNES seems to
have done this intentionally to block other emulators from
playing "SMYNES only" games.