CAESAR Logo

Catalogue of Arcade Emulation Software - the Absolute Reference

Valid XHTML 1.0! Valid CSS!

X-Arcade

X-Arcade

Large CAESAR Logo

kangaroo.c

0.21 [Ville Laitinen]


TODO:

- There is a custom microcontroller on the original Kangaroo board which is not emulated. This MIGHT cause some problems, but we don't know of any.


NOTES:

- kangaroo: I think there is a bug in the startup checks of the game. At the very beginning, during the RAM check, it goes one byte too far, and ends up trying to write, and re-read, location dfff. To the best of my knowledge, that is a ROM address, so the test fails and the code keeps jumping back at 0000. However, a NMI causes a successful reset. Maybe the hardware generates a NMI short after power on, therefore masking the bug? The NMI is generated by the MB8841 custom microcontroller, so this could be a way to disguise the copy protection. Anyway, what I do here is just immediately generate the NMI, so the game properly starts.


VIDEO HARDWARE NOTES:

- Kangaroo doesn't have color PROMs, the playfield data is directly converted into colors: 1 bit per gun, therefore only 8 possible colors, but there is also a global mask register which controls intensities of the three guns, separately for foreground and background. The fourth bit in the video RAM data disables this mask, making the color display at full intensity regardless of the mask value. Actually the mask doesn't directly control intensity. The guns are rapidly turned on and off at a subpixel rate, relying on the monitor to blend the colors into a more or less uniform half intensity color. We use three groups of 8 pens: the first is fixed and contains the 8 possible colors; the other two are dynamically modified when the mask register is written to, one is for the background, the other for sprites.


WIP:

- 0.21: Added kangaroo.c driver.