Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; Patch to SMB Deluxe U V1.1
- ; For assembling with WLA DX
- .memorymap
- slotsize $4000
- defaultslot 1
- slot 0 $0000
- slot 1 $4000
- .endme
- .rombanksize $4000
- .rombanks $40
- .define SetROMBank $10DE ; subroutine: change ROM bank to register A
- .define SPFlag $C160 ; Super Players flag
- ;;;;;;;;;;;;;;;;;;;;;;;;
- .background "smbdx-vanilla.gbc"
- .unbackground $4703C $47FFF ; bank 11 freespace
- .unbackground $484F0 $48D15 ; vanilla challenge objects/red coin coordinates
- .unbackground $4ABDC $4BFFF ; bank 12 freespace
- ;;;;;;;;;;;;;;;;;;;;;;;;
- ; Remap challenge mode tables to account for Super Players' higher sublevel count
- .bank $00 slot 0
- .orga $37B6
- .section "Challenge object pointers" overwrite
- ld a,:ChObjPtrs
- call SetROMBank
- ld hl,ChObjPtrs
- .ends
- .orga $398C
- .section "Challenge red coin pointers" overwrite
- ld a,:ChRedCoinPtrs
- call SetROMBank
- ld hl,ChRedCoinPtrs
- .ends
- ;;;;;;;;;;;;;;;;;;;;;;;;
- .bank $11 slot 1
- ; When loading challenge mode menu, set Super Players flag and unlock all levels
- .orga $52DC
- .section "LoadChallengeOverride jump" overwrite
- jp LoadChallengeOverride
- .ends
- .section "LoadChallengeOverride" free
- LoadChallengeOverride:
- ld a,$01 ;\
- ld [SPFlag],a ;/ set Super Players flag
- ld a,$FF ;\
- ld hl,$C18E ;|
- ldi [hl],a ;| unlock all levels
- ldi [hl],a ;|
- ldi [hl],a ;|
- ldi [hl],a ;/
- ld a,$00 ;\ replaced
- ld [$C0C4],a ;/
- jp $52E1 ; return
- .ends
- .orga $6FDB
- .section "High score medal requirements" overwrite
- .dl 7700
- .ends
- ;;;;;;;;;;;;;;;;;;;;;;;;
- .bank $12 slot 1
- .section "Challenge object data" free
- ChObjPtrs:
- .dw ChObj_1_1_Main ; sublevel 00
- .dsw $33, ChNullObjData ; nothing for sublevels 01-33
- .dw ChObj_1_1_Bonus ; sublevel 34
- .dsw $2F, ChNullObjData ; nothing for sublevels 35-63
- ChObj_1_1_Main: ; 0D screens
- .db $FF
- .db $01,$72,$78,$FF ; screen 01: brick with red coin
- .db $FF
- .db $FF
- .db $01,$79,$78,$FF ; screen 04: brick with red coin
- .db $01,$BC,$77,$FF ; screen 05: ? block with red coin
- .db $FF
- .db $FF
- .db $01,$70,$7A,$FF ; screen 08: multi-coin brick with red coin
- .db $01,$43,$56,$FF ; screen 09: red coin
- .db $FF
- .db $FF
- .db $FF
- ChObj_1_1_Bonus: ; 01 screen
- .db $01,$84,$7F,$FF ; hidden block with Yoshi egg
- ChNullObjData:
- .dsb $20, $FF ; skip 20 screens
- .ends
- .section "Challenge red coin X positions" free
- ChRedCoinPtrs:
- .dw ChRedCoin_1_1
- .dsw $33, ChNullRedCoinData ; nothing for levels 01-33
- ChRedCoin_1_1:
- .db $01,$02, $04,$09, $05,$0C, $08,$00, $09,$03
- ChNullRedCoinData: ; 5 red coins all in the first column
- .db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- .ends
Advertisement
Add Comment
Please, Sign In to add comment