Zeldara109

SMB Deluxe: Super Players 1-1 in Challenge mode

Nov 7th, 2023 (edited)
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.83 KB | None | 0 0
  1. ; Patch to SMB Deluxe U V1.1
  2. ; For assembling with WLA DX
  3.  
  4. .memorymap
  5. slotsize $4000
  6. defaultslot 1
  7. slot 0 $0000
  8. slot 1 $4000
  9. .endme
  10. .rombanksize $4000
  11. .rombanks $40
  12.  
  13. .define SetROMBank $10DE ; subroutine: change ROM bank to register A
  14. .define SPFlag $C160 ; Super Players flag
  15.  
  16. ;;;;;;;;;;;;;;;;;;;;;;;;
  17.  
  18. .background "smbdx-vanilla.gbc"
  19. .unbackground $4703C $47FFF ; bank 11 freespace
  20. .unbackground $484F0 $48D15 ; vanilla challenge objects/red coin coordinates
  21. .unbackground $4ABDC $4BFFF ; bank 12 freespace
  22.  
  23. ;;;;;;;;;;;;;;;;;;;;;;;;
  24.  
  25. ; Remap challenge mode tables to account for Super Players' higher sublevel count
  26.  
  27. .bank $00 slot 0
  28. .orga $37B6
  29. .section "Challenge object pointers" overwrite
  30. ld a,:ChObjPtrs
  31. call SetROMBank
  32. ld hl,ChObjPtrs
  33. .ends
  34.  
  35. .orga $398C
  36. .section "Challenge red coin pointers" overwrite
  37. ld a,:ChRedCoinPtrs
  38. call SetROMBank
  39. ld hl,ChRedCoinPtrs
  40. .ends
  41.  
  42. ;;;;;;;;;;;;;;;;;;;;;;;;
  43.  
  44. .bank $11 slot 1
  45.  
  46. ; When loading challenge mode menu, set Super Players flag and unlock all levels
  47.  
  48. .orga $52DC
  49. .section "LoadChallengeOverride jump" overwrite
  50. jp LoadChallengeOverride
  51. .ends
  52.  
  53. .section "LoadChallengeOverride" free
  54. LoadChallengeOverride:
  55. ld a,$01 ;\
  56. ld [SPFlag],a ;/ set Super Players flag
  57. ld a,$FF ;\
  58. ld hl,$C18E ;|
  59. ldi [hl],a ;| unlock all levels
  60. ldi [hl],a ;|
  61. ldi [hl],a ;|
  62. ldi [hl],a ;/
  63.  
  64. ld a,$00 ;\ replaced
  65. ld [$C0C4],a ;/
  66. jp $52E1 ; return
  67. .ends
  68.  
  69. .orga $6FDB
  70. .section "High score medal requirements" overwrite
  71. .dl 7700
  72. .ends
  73.  
  74. ;;;;;;;;;;;;;;;;;;;;;;;;
  75.  
  76. .bank $12 slot 1
  77. .section "Challenge object data" free
  78. ChObjPtrs:
  79. .dw ChObj_1_1_Main ; sublevel 00
  80. .dsw $33, ChNullObjData ; nothing for sublevels 01-33
  81. .dw ChObj_1_1_Bonus ; sublevel 34
  82. .dsw $2F, ChNullObjData ; nothing for sublevels 35-63
  83.  
  84. ChObj_1_1_Main: ; 0D screens
  85. .db $FF
  86. .db $01,$72,$78,$FF ; screen 01: brick with red coin
  87. .db $FF
  88. .db $FF
  89. .db $01,$79,$78,$FF ; screen 04: brick with red coin
  90. .db $01,$BC,$77,$FF ; screen 05: ? block with red coin
  91. .db $FF
  92. .db $FF
  93. .db $01,$70,$7A,$FF ; screen 08: multi-coin brick with red coin
  94. .db $01,$43,$56,$FF ; screen 09: red coin
  95. .db $FF
  96. .db $FF
  97. .db $FF
  98.  
  99. ChObj_1_1_Bonus: ; 01 screen
  100. .db $01,$84,$7F,$FF ; hidden block with Yoshi egg
  101.  
  102. ChNullObjData:
  103. .dsb $20, $FF ; skip 20 screens
  104. .ends
  105.  
  106. .section "Challenge red coin X positions" free
  107. ChRedCoinPtrs:
  108. .dw ChRedCoin_1_1
  109. .dsw $33, ChNullRedCoinData ; nothing for levels 01-33
  110.  
  111. ChRedCoin_1_1:
  112. .db $01,$02, $04,$09, $05,$0C, $08,$00, $09,$03
  113.  
  114. ChNullRedCoinData: ; 5 red coins all in the first column
  115. .db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
  116. .ends
Advertisement
Add Comment
Please, Sign In to add comment