Tags

224-Line

Mapping hack

.memorymap
slotsize $4000
slot 0 $0000
slot 1 $4000
slot 2 $8000
defaultslot 2
.endme

.rombankmap
bankstotal 32
banksize $4000
banks 32
.endro

.background "mm2.gg"

.define scrollx $c137
.define scrolly $c139

.unbackground $69 $ff

.bank 2 slot 2
.orga $bc0f
.section "Hack redirection" overwrite
  jp hack
.ends

.bank 0 slot 0
.section "hack" free
hack:
  ; get inputs
  in a,($dc)
  ld b,a
  ; Y
  ld hl,(scrolly)
  ld a,h
  or l
  jr z,+
  bit 0,b
  jr nz,+
  dec hl
  dec hl
  dec hl
  dec hl
+:bit 1,b
  jr nz,+
  inc hl
  inc hl
  inc hl
  inc hl
+:ld (scrolly),hl
  ; X
  ld hl,(scrollx)
  ld a,h
  or l
  jr z,+
  bit 2,b
  jr nz,+
  dec hl
  dec hl
  dec hl
  dec hl
+:bit 3,b
  jr nz,+
  inc hl
  inc hl
  inc hl
  inc hl
+:ld (scrollx),hl
  bit 4,b
  ret nz
  ; return to game
  ; what should happen but we overwrote it...
  ld a,($c126)
  ; where we came from
  jp $bc13
.ends

When the game enters its "scroll to the player" mode (at the start of a race, when you respawn or go through a pool table), it will now get stuck in there. The D-pad controls the target position. Press [1] to resume the game.

Level data

Levels are stored in ROM at $3a684 for Super League mode, in the order 1-1, 1-2, 1-3, 1-4, 2-1, ... followed at $3a694 with the 19 stages of Challenge mode. 2-player mode lets you choose from the 19 bytes from $3a684, since the 20th is a duplicate level.

There are three unused levels: two "basement" stages with sprites but no stage graphics or data, and one sports cars stage "Turbo Turns" which seems complete.

Memory offsets

$de1f
The number of bonus races passed

Left-over code in the ROM

0x0069

D       DE,40*7
        LD      C,40
        CALL    OUT_TEXTWIN
        ;
        RET








TXT_2ON1        SVA     #784C+#380
        LD      DE,40*8
        LD      C,40
        CALL    OUT_TEXTWIN
        ;
        SVA     #784C+#38

0x7e86

NAME1
        CALL    OUT_LINE
        LD      HL,#7A4E+#40+20
        LD      DE,BNAME2
        CALL    OUT_LINE
        RET
        ;
$DOUBLES        LD      HL,#7A4E+#00-2
        LD      DE,BNAME1
        CALL    OUT_LINE
        LD      HL,#7A4E+#40-2
        LD      DE,BNAME2
        CALL    OUT_LINE
        ;
        LD      HL,#7A4E+#00+20
        LD      DE,BNAME3
        CALL    OUT_LINE



Return to top
0.168s