Displaying credits
Jump to navigation
Jump to search
The system ROM takes care of displaying the credits on the LED displays itself (see MV-LED board).
It's however the game's duty to display the counts on the screen.
In MVS mode, the credit count for each player is stored in BCD in $D00034 for player 1, and $D00035 for player 2. These locations are in the backup RAM, to keep the credit counts in case of a power failure during play.
Note: SYSTEM_IO must be called each v-blank to properly update those locations.
There's no call or signal from the system ROM when coins are inserted so games should refresh this display every frame. SNK recommends doing so by using a 8x8 fix layer font on the bottom of the screen.
In AES mode, it's up to the game to keep its own credits count in 68k user RAM.
moveq.l #0,d0
move.b $D00034,d0 ; Read P1 credits (hex)
move.w #$7088,REG_VRAMADDR ; Set position in fix map, top left
move.w d0,d1 ; Make a copy of the BCD value
move.w #$20,REG_VRAMMOD ; Auto-inc fix column
lsr.b #4,d1 ; Get tens
andi.w #$000F,d1 ; Mask off eventual garbage
ori.w #$5030,d1 ; Set palette 5 and tile offset $30 (ASCII "0")
move.w d1,REG_VRAMRW ; Write tens to VRAM
andi.w #$000F,d0 ; Get units
ori.w #$5030,d0 ; Same
move.w d0,REG_VRAMRW ; Write units to VRAM