CAESAR Logo

Catalogue of Arcade Emulation Software - the Absolute Reference

Valid XHTML 1.0! Valid CSS!

X-Arcade

X-Arcade

Large CAESAR Logo

offtwall.c

0.36b3 [Aaron Giles]


NOTES:

- Hardware: Atari "Round"

- Unknown Verify: In several places, the value 1 is stored to the byte at $3fdf1e. A fairly complex subroutine is called, and then $3fdf1e is checked to see if it was set to zero. If it was, "HARDWARE ERROR" is displayed. To avoid this, we just return 1 when this value is read within the range of PCs where it is tested.

- Sprite Cache: Somewhere in the code, if all the hardware tests are met properly, some additional dummy sprites are added to the sprite cache before they are copied to sprite RAM. The sprite RAM copy routine computes the total width of all sprites as they are copied and if the total width is less than or equal to 38, it added a "HARDWARE ERROR" spriteto the end. Here we detect the read of the sprite count from within the copy routine, and add some dummy sprites to the cache ourself if there isn't enough total width.

- Bankswitching: Like the slapstic, the SoS bankswitches memory using A13 and A14. Unlike the slapstic, the exact addresses to trigger the bankswitch are unknown. Fortunately, Off the Wall uses a common routine for the important bankswitching. The playfield data is stored in the banked area of ROM, and by comparing the playfields to a real system, a mechanism to bankswitch at the appropriate time was discovered. Fortunately, it's really basic.


WIP:

- 0.36b3: Added offtwall.c driver.