Chuck Rock

Work in progress...

The hack

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

.rombankmap
bankstotal 32
banksize $4000
banks 32
.endro

.background "Chuck Rock.sms"

; We place the hack here. We are overwriting the credits text so that will be broken.
.unbackground $7f64 $7f8b

.define Y $c109
.define X $c107

.bank 0 slot 0
.org $38
.section "hack hook" overwrite
  jp hack
.ends

.bank 1 slot 1
.orga $7f64
.section "hack" force
hack:
; code we replaced to get here
    push af
    push hl
    push de
; the hack
    in a,($dc) ; get P1 inputs
    ld hl,(Y)
    bit 1,a
    jr nz,+
    inc hl
  +:bit 0,a
    jr nz,+
    dec hl
  +:ld (Y),hl
    ld hl,(X)
    bit 3,a
    jr nz,+
    inc hl
  +:bit 2,a
    jr nz,+
    dec hl
  +:ld (X),hl

  ; resume game
  jp $38+3
.ends

.macro patch args addr, len
.define page\@ addr>>14
.bank page\@ slot page\@
.orga addr
.section "patch\@" overwrite
.dsb len $00
.ends
.endm

; patch out y movement
 patch $28da 3
 patch $291a 3
 patch $294e 3

; patch out damage
 patch $2a5c 3

Stage 1

Stage 1-1 (21KB, 2528×512)
Stage 1-2 (29KB, 2528×544)
Stage 1-3 (28KB, 3072×528)
Stage 1-4 (39KB, 2912×544)
Stage 1-boss (2KB, 256×288)

Stage 2

Stage 2-1 (48KB, 3168×544)