Common Emulator Development Issues

From 8BitDev.org - Atari 7800 Development Wiki
Revision as of 13:09, 9 May 2024 by MSaarna (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

ROMs That Can Cause Issues With Incomplete Emulation

  • Choplifter. If the line between the horizon isn't in the correct place, or moves, it means that DMA cycle penalties or timing aren't accurate.
  • Choplifter. If there's a glitch zone high in the sky, it means your TIA address space doesn't emulate a floating bus correctly.
  • One On One. If the player can't advance past the option menu with a button press, it means the RIOT 2-button implementation is incomplete. The game does a partial 2-button setup, relying on default RIOT state.
  • Worm! If the game can't be started at all, it means that the RIOT 2-button implementation is incompete. The game does a partial 2-button setup, relying on default RIOT state.
  • Xenophobe. If the bottom row of the titlescreen graphic is the incorrect color, it means that DMA cycle penalties or timing aren't accurate.
  • Xenophobe. If all of the main action screen glitches periodically, it means that DMA cycle penalties or timing aren't accurate.
  • Ninja Golf. If the player number selection screen has squished graphics (displaying 160A graphics at 160B) then you need to account for non-zero DLL terminators. Maria ignores bits 7 and 5, so your terminator check should be for "!(value & 0x5F)".
  • Crossbow. If all graphics appear garbled/in wrong mode then you need to account for non-zero DLL terminators. Maria ignores bits 7 and 5, so your terminator check should be for "!(value & 0x5F)".
  • Planet Smashers. If the background starfield is replaced by glitched graphics, you aren't checking the entire 8000-BFFF range for the bankswitch hotspot. This game uses the BFFF hotspot.
  • Alien Brigade. Corruption in the main screen can be caused by missing or incorrect DMA cycle penalties, whenever lots of objects are displayed in this game.
  • Summer Games. If the Platform Diving event has a flickering line between the stands and pool deck, it means that DMA cycle penalties or timing aren't accurate.
  • Ace Of Aces. If the top line of sky bounces around, it means that DMA cycle penalties or timing aren't accurate.
  • Karateka. If during the second enemy stage, there is flickering in the bottom right area and/or the power meter, it means that DMA cycle penalties or timing aren't accurate.
  • BallBlazer. If the music track is missing a voice, it's likely the Pokey random number generation is missing or broken.
  • Pole Position II. If the track selection by joystick only allows selection between tracks 2 and 4, it's due to a race condition that is won on a real console. Starting the emulation at vblank, instead of the top of the visible screen, should allow track selection to work correctly.
  • Klax. If the game starts up with black screen. you might need to change where the emulator starts in the screen, similar to Pole Position II. The Klax proto has a race condition, and has hit-or-miss startup on (some) real consoles too.
  • Tower Toppler. If graphics are striped and ugly, it's due to missing composite video effects. On a composite video display, pixels that alternate intensity at 320 resolution should appear as a continuous area of "artifacting" color.
  • Legend of Silverpeak. (homebrew) If the game crashes, you need to bankswitch to bank 0 prior to starting emulation.
  • E.X.O. (homebrew) If some musical notes are silent or off-key, the pokey emulation needs cycle-accurate emulation of 16-bit joined channels, 1.79Mhz audio channels, two-tone, and "low pass" filtering. See the pokey section of The Altirra Hardware Reference Manual. Accurate pokey emulations, for reference source, include Altirra (original), MAME/A7800 (original), JS7800 (prosystem derived).
  • A.R.T.I. (homebrew) If some musical notes are silent or off-key, the pokey emulation needs cycle-accurate emulation of 16-bit joined channels, 1.79Mhz audio channels, two-tone, and "low pass" filtering. See the pokey section of The Altirra Hardware Reference Manual. Accurate pokey emulations, for reference source, include Altirra (original), MAME/A7800 (original), JS7800 (prosystem derived).


ROMs That May Be Reported As Bugs, But Aren't

  • Tower Toppler. If the game keeps skipping levels, this is part of a level-skip feature that's activated by the difficulty switch position.
  • Xenophobe. During the play player one level completion stats the last line of the ship is displayed in 320A instead of 160A like the rest of the ship. The result of this is last line appears as a series of alternating pixels.
  • Commando. If the game doesn't play Pokey music, you have a dump with a bad A78 header.
  • Xevious. If the ship shoots missiles and bombs, even when a 2-button stick is used, it's due to the difficulty switch position. This is a selectable feature.
  • Super Huey UH-IX. Flickering line at the lower right-side portion of the screen, between outside view and console. Occurs under original hardware.
  • Water Ski. A rope 'ghost' line flickers to the left and right of where the actual real rope line is located. Occurs under original hardware.
  • Sentinel. Background music missing. Check difficulty switches position.
  • Super Skateboardin'. Missing background melody. Toggles via difficulty switches.
  • Ikari Warriors. No background music. Music presence set by difficulty switches.
  • Missing In Action. Keeps rotating through start of level or player invincible. Invincibility, taking damage, and level select are determined by difficulty switch settings.
  • Bentley Bear's Crystal Quest. Doesn't jump or walks too slow, can't run. Check difficulty switch settings. Set the Left Switch to the right & set the Right Switch to the left.
  • Rikki & Vikki. Sound effects volume too low or too high. Difficulty switch settings control TIA (Sound effects) amplitude.
  • Crazy Brix. Controls not responding, can't start a game, or game freeze. Check difficulty switches, tells game what controller types to expect.
  • Armor Attack II. Second button does not accelerate vehicle. Difficulty switch setting toggle between pressing Up on joystick or Button 2 to accelerate.
  • Galaxian. Player's ship fires too fast or too slow. Shot speed determined by difficulty switches.
  • Plutos. Always starts a 2 Player game. Difficulty switch settings determine whether 1 Player or 2 Players simultaneous game.