Game bugs: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(Added Education Games 18-in-1 (Ch) to Reliance on RAM values section.)
(→‎Reliance on RAM values: BT&DD does not rely on RAM (it has none), same with Low G Man, both of these are "tricky to emulate", not relying on RAM. BT&DD is already at Tricky to emulate games, moving Low-G-Man there too.)
Line 113: Line 113:
|-
|-
| ''Apple Town Story'' (FDS) || Uses RAM to determine what character name to default to when starting a new game; when RAM is pre-initialised to $00, the name キャシー (Cathy) will be used.<ref>http://forums.nesdev.org/viewtopic.php?p=183064#p183064</ref>
| ''Apple Town Story'' (FDS) || Uses RAM to determine what character name to default to when starting a new game; when RAM is pre-initialised to $00, the name キャシー (Cathy) will be used.<ref>http://forums.nesdev.org/viewtopic.php?p=183064#p183064</ref>
|-
| ''Battletoads & Double Dragon'' || Reads from PRG-RAM despite there being no WRAM on the cartridge.<ref>http://forums.nesdev.org/viewtopic.php?p=184535#p184535</ref>  PRG-RAM containing $FF will cause the game to crash at the end of stage 1 when Abobo makes his first appearance.<ref>http://forums.nesdev.org/viewtopic.php?p=184539#p184539</ref>
|-
|-
| ''Cheetahmen II'' || Suspected that certain RAM values may affect being able to reach the final two levels of the game (levels 5 and 6).<ref>http://forums.nesdev.org/viewtopic.php?p=178154#p178154</ref>
| ''Cheetahmen II'' || Suspected that certain RAM values may affect being able to reach the final two levels of the game (levels 5 and 6).<ref>http://forums.nesdev.org/viewtopic.php?p=178154#p178154</ref>
Line 123: Line 121:
|-
|-
| ''Final Fantasy'' || Relies on portions of RAM to act as an RNG seed for battles/encounters.
| ''Final Fantasy'' || Relies on portions of RAM to act as an RNG seed for battles/encounters.
|-
| ''Low G Man'' || Reads from PRG-RAM despite there being no WRAM on the cartridge.<ref>http://forums.nesdev.org/viewtopic.php?p=184535#p184535</ref>
|-
|-
| ''Minna no Taabou no Nakayoshi Daisakusen'' || Requires $11 contain $FF, otherwise the game will not start.<ref>http://forums.nesdev.org/viewtopic.php?p=185663#p185663</ref>
| ''Minna no Taabou no Nakayoshi Daisakusen'' || Requires $11 contain $FF, otherwise the game will not start.<ref>http://forums.nesdev.org/viewtopic.php?p=185663#p185663</ref>

Revision as of 05:47, 27 January 2017

Listed are games that have been tested on NES or Famicom hardware and verified to look wrong or odd, due to things like NES hardware limitations or programming errors. Refer to this if you're developing an emulator and find a game that looks wrong, before you look for a problem in your emulator. If you are attempting to give your emulator "bug for bug" compatibility, you'll want to make sure that these glitches (or unusual behaviors) appear the same in your emulator as they do on the NES.

This is an incomplete list that concentrates on commercial games. For a list of homebrew programs that don't work on the NES, or which have glitches on the NES, see Program Compatibility. Sometimes, a bug slips into a game to make it rely on less-than-intentional features of the hardware; for those, see Tricky-to-emulate games.

General bugs

Game Problem
Akumajou Densetsu When a door is opened/shut when the player goes through them, the screen shakes by one pixel.
Akumajou Special After game over at the bidirectional scroll stages, sometimes game over screen is glitched. (Validated in the Game Center CX)
Armadillo The in-game status bar occasionally bumps vertically by 1 pixel. This game also often suffers from slowdown.
Castlevania The PRG 0 version sometimes freezes right before the Grim Reaper. (Fixed in PRG 1 and PAL)
Castlevania II - Simon's Quest Sometimes incorrect tiles are shown on the playfield.
Castlevania III - Dracula's Curse
  • The DMC channel in music sometimes mutes.
  • When pressing the 'B' button at the exact time that Trevor falls off a block, you hear the whip sound, but Trevor doesn't attack.
Chip 'n Dale Rescue Rangers After reading the intro to the last, garbage sprites will appear in the upper left (right) corner of the screen.
Commando There are many bugs that may look like emulator glitches but aren't.
Crystalis The scanline above the status bar and above text boxes looks wrong.
Dizzy The Adventurer Resets the sound phase every frame, causing a nasty 60hz buzz.
Donald Land When the player progresses too quickly by boosting off of apples, the background loads fall behind and the scroll seam becomes visible.
Double Dragon
  • "Garbage sprites" (sprite 0 (for sprite-0 hit) and sprite 1) can be seen in the lower right of the game screen.
    • Sprite 0 consists of tile $FF (a black tile with 2x2 non-background pixels (i.e. a tile with a 2x2 "dot" in it, visually similar to ▣ or ⚀)), and the priority bit set.
    • Sprite 1 consists of tile $FE (a tile consisting entirely of a single non-transparent colour, often palette entry $0F but varies per stage).
  • The screen will sometimes shake vertically on heavy sprite usage.
Double Dragon II The status bar may suddenly change colors: sometimes when scrolling vertically it shows incorrectly for a couple of frames.
Double Dragon III Same status bar issue as Double Dragon II.
Exed Exes When pausing, the immediate next note of the music will play after the pause jingle completes.
Ghostbusters (J) The Japanese version of Ghostbusters loads the ending text from the wrong CHR bank, causing it to display a blank screen that eventually scrolls the hiragana 'riri' on the screen.
Ghosts 'n Goblins
  • Sometimes appear garbage sprites of 8x8 pixel on the in-game screen.
  • Sometimes it will hit the pixels that are invisible.
Hebereke
  • After switching to the password screen from the title screen, and then returning to the title screen to exit from the password screen, the triangle channel is glitched.
  • When a player touches the HUD, it may make the HUD disappear.
Hottarman no Chitei Tanken During the game, when it caused a deceleration in when you are using a lot of heavy sprite, sometimes caused by a glitch in the scroll on the game suddenly it is paused and garbage sprites.
Ironsword: Wizards and Warriors II Noise channel doesn't work properly, sometimes plays longer notes and sometimes mutes.
Kirby's Adventure When Kirby of copy capability has changed, it attributed the icon flickers glitch representing the Kirby of the state, which is displayed in the status bar.
Legend of Zelda The screen "jumps" off 2 pixels at the start and end of vertical fast scrolling.
Mega Man 3
  • On the boss select screen, the scanline above Shadow Man looks wrong.
  • The first scanline of the menu is glitched.
Mega Man 5 In Gyro Man's stage, inside the two elevators, the floor moves up by a few pixels when the elevator goes up, and move back down when the screen is fast-scrolled.
Mitsume ga Tooru Garbage data is visible in the upper side of the status bar by mistake when shaken by an earthquake, due to the status bar and playfield both sharing the nametables.
Panic Restaurant The in-game status bar, always bumps up by 1 pixel.
Rad Racer Steer to the far left, and a background scanline will be seen on the road.
Rambo One scanline is occasionally glitched, for the same reason as in Super Mario Bros.[1]
Rampart (Jaleco) During build phase, the drums (on the noise channel) drop out fairly early.
Snow Bros. When you clear the stage to rise to the next floor, the cause of it of CHR bank switching, glitches before the floor of the graphic will be due.
StarTropics The island map music (NSF track 1) has a problem with the second square channel: it is intermittently silent or playing the wrong notes after the first minute or two, because the music data was not made to fit/repeat properly.
Super Mario Bros.
  • The status bar shakes horizontally on heavy sprite usage and the music slows down. This can be seen especially in worlds 6-4, 7-4 and 8-4, where the large number of hammer objects created by Bowser's code causes the processing time to overshoot a frame. NMIs are disabled on entry to the NMI code and only reenabled when the CPU is "idle", thus when the overshoot occurs, the CPU "misses" a frame, causing general slowdown and status bar shakiness.
  • At various parts of 1-2, in certain CPU/PPU alignments, a single scanline gets glitched. This is caused by writing $2000 to reenable NMI at the exact end of the previous scanline, causing the PPU to begin that scanline from the first nametable instead of the second.
Super Mario Bros. 3 (U)
  • The first scanline after a scroll split is glitched. This shows up as garbage above the left side of the status bar and as incorrectly scrolled lines in the "spade" (not N-spade) bonus game.
  • Note blocks containing items become squarer for a second while the item is popping out. (This is an artifact of the sprite priority exploit that it uses.)
  • If a Hammer Bros. battle ends precisely when a note is starting, the note will freeze on an incorrect duty cycle.
  • Big fat attribute glitch on the right side of most levels, because this game uses horizontal scrolling with horizontal mirroring. Discussed heavily.[2]
Teenage Mutant Ninja Turtles The status bar flashes to a situation where you are using a heavy sprite in most action levels.
The Addams Family The in-game status bar occasionally bumps vertically by 1 pixel, caused by non-solid background pixels overlapping the sprite zero that is used for the status bar split.
Zelda II: The Adventure of Link (U)

Reads from $2007 during the title screen twice, moving the background upward by 2 scanlines after the split point.

Reliance on RAM values

Several games erroneously rely on RAM areas being pre-populated with certain values at power-on, despite RAM contents not being in a consistent state on power-on. Other games rely on similar values, but in PRG-RAM (WRAM), or CHR-RAM.

Game Problem
Apple Town Story (FDS) Uses RAM to determine what character name to default to when starting a new game; when RAM is pre-initialised to $00, the name キャシー (Cathy) will be used.[1]
Cheetahmen II Suspected that certain RAM values may affect being able to reach the final two levels of the game (levels 5 and 6).[2]
Education Games 18-in-1 (Ch) Memory location $5FF0 must be read as $FF, otherwise the main menu freezes.
F-1 Race (1984, Nintendo) Title screen will be skipped if $6B and $70 contain non-zero values.[3] Game blindly reads and uses values from $51, $55, $70, $A4, and $0200-02FF (via sprite DMA).[4]
Final Fantasy Relies on portions of RAM to act as an RNG seed for battles/encounters.
Minna no Taabou no Nakayoshi Daisakusen Requires $11 contain $FF, otherwise the game will not start.[5]
River City Ransom Relies on portions of RAM to act as RNG seed for which gangs you encounter, particularly at start.[6]
Super Mario Bros (bootleg versions) Relies on portions of RAM containing $00, otherwise player starts at world 0-1.[7]
Terminator 2: Judgment Day The copyright screen is skipped if RAM is filled with $00 (more generally, if a high score table checksum happens to be valid).[8]
Ultima: Exodus Relies on PRG-RAM contents before they're initialised; a fresh/new game may see artifacts such as shaking/wobbly text during the initial text intro screens, corruption of text intro screen fonts, and possibly audio anomalies.[9]

"Impossible" controller input

Many games do weird and buggy things when button combinations that would be impossible (or at least very hard) to input on a real controller are pressed. This comprises pressing left+right and up+down simultaneously. You probably want to prevent impossible controller input by default in an emulator, but have an option to allow it for those feeling experimental.

  • In Zelda II: The Adventure of Link, Link can gain tremendous speed when pressing left+right.
  • In Tiny Toon Adventures, the player can gain unusual speed when pressing left+right.
  • In Spy vs. Spy, the character turns into an airplane when pressing left+right.
  • In Battletoads, pressing up+down in the vertical tunnel level kills the player instantly. Additionally, pressing left+right causes the player to walk up/back even when in pure 2D stages, which can result in certain areas becoming impossible to complete.
  • In Mega Man 1, 2, by pressing up+down at the top of a ladder, one may enter the "climbing ladder" state briefly above the top of the ladder. This allows "zipping" through walls.
  • In Panic Restaurant, pressing up while crouching (by pressing down, thus pressing up+down simultaneously) the player character's sprite uses garbage data including the damage sprite. This does not occur if up is pressed before down; the player chef merely stands still.
  • In Teenage Mutant Ninja Turtles, If you press the attack button while you jump while pressing up+down, the player character uses a garbage sprite, and attacks will use unusual (i.e. garbage data) hitboxes.
  • In Teenage Mutant Ninja Turtles II: The Arcade Game, when you jump with a left or right move while pressing up+down, the player character will move in unusual directions and speeds, possibly screen-wrapping.

Overscan ugliness

Some games display junk tiles in the overscan area, which is usually not seen (or is at least partially obstructed) on real TV sets. Examples include the NTSC versions of Metal Gear (e.g. in the jungle area when gameplay starts) and Solstice (on the title screen).

References