From 27685ac77d562d491a1f55ad2ffb302af579ed37 Mon Sep 17 00:00:00 2001 From: codemann8 Date: Sun, 7 Apr 2024 05:09:32 -0500 Subject: [PATCH] More merge labeling --- bonktreemaps.asm | 1428 ++++++++++---------- bookofmudora.asm | 37 +- bugfixes.asm | 6 +- darkworldspawn.asm | 2 +- decompresseditemgraphics.asm | 4 +- decryption.asm | 8 +- dialog.asm | 8 +- doorrando/doorrando.asm | 6 - doorrando/drhooks.asm | 2 +- doorrando/edges.asm | 26 +- doorrando/entrance_fixes.asm | 2 +- doorrando/gfx.asm | 2 +- doorrando/hudadditions.asm | 28 +- doorrando/keydoors.asm | 4 +- doorrando/math.asm | 14 +- doorrando/normal.asm | 63 +- doorrando/overrides.asm | 6 +- doorrando/scroll.asm | 76 +- doorrando/spiral.asm | 52 +- dungeondrops.asm | 8 +- dungeonmap.asm | 8 +- enemizer/NMI.asm | 6 +- enemizer/blindboss.asm | 2 +- enemizer/bosses_moved.asm | 8 +- enemizer/hooks/damage_hooks.asm | 2 +- enemizer/hooks/moldorm_hooks.asm | 4 +- enemizer/hooks/overworld_sprite_hooks.asm | 14 +- enemizer/hooks/underworld_sprite_hooks.asm | 26 +- enemizer/kodongo_fixes.asm | 2 +- enemizer/main.asm | 7 - enemizer/mimic_fixes.asm | 2 +- enemizer/moldorm.asm | 4 +- enemizer/special_action.asm | 6 +- entrances.asm | 2 +- failure.asm | 14 +- fileselect.asm | 14 +- framehook.asm | 8 +- goalitem.asm | 4 +- hardmode.asm | 2 +- hashalphabet.asm | 2 +- heartpieces.asm | 159 ++- hooks.asm | 53 +- hudtext.asm | 4 +- icepalacegraphics.asm | 18 +- inventory.asm | 14 +- inverted.asm | 2 +- invertedmaps2.asm | 2 +- itemdowngrade.asm | 4 +- keydrop/dynamic_si_vram.asm | 6 +- keydrop/standing_items.asm | 150 +- menu/hudalpha.asm | 8 +- msu.asm | 26 +- multiworld.asm | 69 +- music.asm | 16 +- newhud.asm | 8 +- newitems.asm | 74 +- owrando.asm | 116 +- password.asm | 2 +- pendantcrystalhud.asm | 4 +- playername.asm | 4 +- potions.asm | 4 +- ram.asm | 16 +- registers.asm | 4 +- servicerequest.asm | 2 +- shopkeeper.asm | 48 +- stats.asm | 20 +- stats/main.asm | 18 +- swordswap.asm | 8 +- utilities.asm | 12 +- vanillalabels.asm | 6 + 70 files changed, 1386 insertions(+), 1410 deletions(-) diff --git a/bonktreemaps.asm b/bonktreemaps.asm index 3c51021..4206829 100644 --- a/bonktreemaps.asm +++ b/bonktreemaps.asm @@ -64,22 +64,22 @@ RTS map00: ; Map00/Map01/Map08/Map09 { LDA.l OverworldEventDataWRAM+$00 : BIT.w #$0010 : BNE + - LDA #$0364 : STA $31D0 - LDA #$0365 : STA $31D2 - LDA #$0366 : STA $31D4 - LDA #$0367 : STA $31D6 - LDA #$0368 : STA $3250 - LDA #$0369 : STA $3252 - LDA #$036A : STA $3254 - LDA #$036B : STA $3256 - LDA #$036E : STA $32D0 - LDA #$036F : STA $32D2 - LDA #$0370 : STA $32D4 - LDA #$0371 : STA $32D6 - LDA #$0375 : STA $3350 - LDA #$0376 : STA $3352 - LDA #$0377 : STA $3354 - LDA #$0378 : STA $3356 + LDA.w #$0364 : STA.w $31D0 + LDA.w #$0365 : STA.w $31D2 + LDA.w #$0366 : STA.w $31D4 + LDA.w #$0367 : STA.w $31D6 + LDA.w #$0368 : STA.w $3250 + LDA.w #$0369 : STA.w $3252 + LDA.w #$036A : STA.w $3254 + LDA.w #$036B : STA.w $3256 + LDA.w #$036E : STA.w $32D0 + LDA.w #$036F : STA.w $32D2 + LDA.w #$0370 : STA.w $32D4 + LDA.w #$0371 : STA.w $32D6 + LDA.w #$0375 : STA.w $3350 + LDA.w #$0376 : STA.w $3352 + LDA.w #$0377 : STA.w $3354 + LDA.w #$0378 : STA.w $3356 + RTS } @@ -89,42 +89,42 @@ map0a: ; Map10 LDA.l OverworldEventDataWRAM+$0a : BIT.w #$0010 : BNE + ; north tree PHA - LDA #$0364 : STA $2118 - LDA #$0365 : STA $211A - LDA #$0366 : STA $211C - LDA #$0367 : STA $211E - LDA #$0368 : STA $2198 - LDA #$0369 : STA $219A - LDA #$036A : STA $219C - LDA #$036B : STA $219E - LDA #$036E : STA $2218 - LDA #$036F : STA $221A - LDA #$0370 : STA $221C - LDA #$0371 : STA $221E - LDA #$0375 : STA $2298 - LDA #$0376 : STA $229A - LDA #$0377 : STA $229C - LDA #$0378 : STA $229E + LDA.w #$0364 : STA.w $2118 + LDA.w #$0365 : STA.w $211A + LDA.w #$0366 : STA.w $211C + LDA.w #$0367 : STA.w $211E + LDA.w #$0368 : STA.w $2198 + LDA.w #$0369 : STA.w $219A + LDA.w #$036A : STA.w $219C + LDA.w #$036B : STA.w $219E + LDA.w #$036E : STA.w $2218 + LDA.w #$036F : STA.w $221A + LDA.w #$0370 : STA.w $221C + LDA.w #$0371 : STA.w $221E + LDA.w #$0375 : STA.w $2298 + LDA.w #$0376 : STA.w $229A + LDA.w #$0377 : STA.w $229C + LDA.w #$0378 : STA.w $229E PLA + BIT.w #$0008 : BNE + ; south tree - LDA #$0364 : STA $2C30 - LDA #$0365 : STA $2C32 - LDA #$0366 : STA $2C34 - LDA #$0367 : STA $2C36 - LDA #$0368 : STA $2CB0 - LDA #$0369 : STA $2CB2 - LDA #$036A : STA $2CB4 - LDA #$036B : STA $2CB6 - LDA #$036E : STA $2D30 - LDA #$036F : STA $2D32 - LDA #$0370 : STA $2D34 - LDA #$0371 : STA $2D36 - LDA #$0375 : STA $2DB0 - LDA #$0376 : STA $2DB2 - LDA #$0377 : STA $2DB4 - LDA #$0378 : STA $2DB6 + LDA.w #$0364 : STA.w $2C30 + LDA.w #$0365 : STA.w $2C32 + LDA.w #$0366 : STA.w $2C34 + LDA.w #$0367 : STA.w $2C36 + LDA.w #$0368 : STA.w $2CB0 + LDA.w #$0369 : STA.w $2CB2 + LDA.w #$036A : STA.w $2CB4 + LDA.w #$036B : STA.w $2CB6 + LDA.w #$036E : STA.w $2D30 + LDA.w #$036F : STA.w $2D32 + LDA.w #$0370 : STA.w $2D34 + LDA.w #$0371 : STA.w $2D36 + LDA.w #$0375 : STA.w $2DB0 + LDA.w #$0376 : STA.w $2DB2 + LDA.w #$0377 : STA.w $2DB4 + LDA.w #$0378 : STA.w $2DB6 + RTS } @@ -134,42 +134,42 @@ map10: ; Map16 LDA.l OverworldEventDataWRAM+$10 : BIT.w #$0010 : BNE + ; west tree PHA - LDA #$0364 : STA $250C - LDA #$0365 : STA $250E - LDA #$0366 : STA $2510 - LDA #$0367 : STA $2512 - LDA #$0368 : STA $258C - LDA #$0369 : STA $258E - LDA #$036A : STA $2590 - LDA #$036B : STA $2592 - LDA #$036E : STA $260C - LDA #$036F : STA $260E - LDA #$0370 : STA $2610 - LDA #$0371 : STA $2612 - LDA #$0375 : STA $268C - LDA #$0376 : STA $268E - LDA #$0377 : STA $2690 - LDA #$0378 : STA $2692 + LDA.w #$0364 : STA.w $250C + LDA.w #$0365 : STA.w $250E + LDA.w #$0366 : STA.w $2510 + LDA.w #$0367 : STA.w $2512 + LDA.w #$0368 : STA.w $258C + LDA.w #$0369 : STA.w $258E + LDA.w #$036A : STA.w $2590 + LDA.w #$036B : STA.w $2592 + LDA.w #$036E : STA.w $260C + LDA.w #$036F : STA.w $260E + LDA.w #$0370 : STA.w $2610 + LDA.w #$0371 : STA.w $2612 + LDA.w #$0375 : STA.w $268C + LDA.w #$0376 : STA.w $268E + LDA.w #$0377 : STA.w $2690 + LDA.w #$0378 : STA.w $2692 PLA + BIT.w #$0008 : BNE + ; east tree - LDA #$0364 : STA $26AC - LDA #$0365 : STA $26AE - LDA #$0366 : STA $26B0 - LDA #$0367 : STA $26B2 - LDA #$0368 : STA $272C - LDA #$0369 : STA $272E - LDA #$036A : STA $2730 - LDA #$036B : STA $2732 - LDA #$036E : STA $27AC - LDA #$036F : STA $27AE - LDA #$0370 : STA $27B0 - LDA #$0371 : STA $27B2 - LDA #$0375 : STA $282C - LDA #$0376 : STA $282E - LDA #$0377 : STA $2830 - LDA #$0378 : STA $2832 + LDA.w #$0364 : STA.w $26AC + LDA.w #$0365 : STA.w $26AE + LDA.w #$0366 : STA.w $26B0 + LDA.w #$0367 : STA.w $26B2 + LDA.w #$0368 : STA.w $272C + LDA.w #$0369 : STA.w $272E + LDA.w #$036A : STA.w $2730 + LDA.w #$036B : STA.w $2732 + LDA.w #$036E : STA.w $27AC + LDA.w #$036F : STA.w $27AE + LDA.w #$0370 : STA.w $27B0 + LDA.w #$0371 : STA.w $27B2 + LDA.w #$0375 : STA.w $282C + LDA.w #$0376 : STA.w $282E + LDA.w #$0377 : STA.w $2830 + LDA.w #$0378 : STA.w $2832 + RTS } @@ -177,22 +177,22 @@ LDA.l OverworldEventDataWRAM+$10 : BIT.w #$0010 : BNE + map12: ; Map18 { LDA.l OverworldEventDataWRAM+$12 : BIT.w #$0010 : BNE + - LDA #$0364 : STA $2426 - LDA #$0365 : STA $2428 - LDA #$064F : STA $242A - LDA #$0652 : STA $242C - LDA #$0368 : STA $24A6 - LDA #$0369 : STA $24A8 - LDA #$036A : STA $24AA - LDA #$0655 : STA $24AC - LDA #$036E : STA $2526 - LDA #$036F : STA $2528 - LDA #$0370 : STA $252A - LDA #$0371 : STA $252C - LDA #$0375 : STA $25A6 - LDA #$0376 : STA $25A8 - LDA #$0377 : STA $25AA - LDA #$0378 : STA $25AC + LDA.w #$0364 : STA.w $2426 + LDA.w #$0365 : STA.w $2428 + LDA.w #$064F : STA.w $242A + LDA.w #$0652 : STA.w $242C + LDA.w #$0368 : STA.w $24A6 + LDA.w #$0369 : STA.w $24A8 + LDA.w #$036A : STA.w $24AA + LDA.w #$0655 : STA.w $24AC + LDA.w #$036E : STA.w $2526 + LDA.w #$036F : STA.w $2528 + LDA.w #$0370 : STA.w $252A + LDA.w #$0371 : STA.w $252C + LDA.w #$0375 : STA.w $25A6 + LDA.w #$0376 : STA.w $25A8 + LDA.w #$0377 : STA.w $25AA + LDA.w #$0378 : STA.w $25AC + RTS } @@ -202,61 +202,61 @@ map13: ; Map19 LDA.l OverworldEventDataWRAM+$13 : BIT.w #$0010 : BNE + ; ledge tree PHA - LDA #$0364 : STA $250C - LDA #$0365 : STA $250E - LDA #$0366 : STA $2510 - LDA #$0367 : STA $2512 - LDA #$0368 : STA $258C - LDA #$0369 : STA $258E - LDA #$036A : STA $2590 - LDA #$036B : STA $2592 - LDA #$036E : STA $260C - LDA #$036F : STA $260E - LDA #$0370 : STA $2610 - LDA #$0371 : STA $2612 - LDA #$0375 : STA $268C - LDA #$0376 : STA $268E - LDA #$0377 : STA $2690 - LDA #$0378 : STA $2692 + LDA.w #$0364 : STA.w $250C + LDA.w #$0365 : STA.w $250E + LDA.w #$0366 : STA.w $2510 + LDA.w #$0367 : STA.w $2512 + LDA.w #$0368 : STA.w $258C + LDA.w #$0369 : STA.w $258E + LDA.w #$036A : STA.w $2590 + LDA.w #$036B : STA.w $2592 + LDA.w #$036E : STA.w $260C + LDA.w #$036F : STA.w $260E + LDA.w #$0370 : STA.w $2610 + LDA.w #$0371 : STA.w $2612 + LDA.w #$0375 : STA.w $268C + LDA.w #$0376 : STA.w $268E + LDA.w #$0377 : STA.w $2690 + LDA.w #$0378 : STA.w $2692 PLA + BIT.w #$0008 : BEQ + ; BEQ because tree is already colored ; east tree - LDA #$00AE : STA $23AE - LDA #$00AF : STA $23B0 - LDA #$007E : STA $23B2 - LDA #$007F : STA $23B4 - LDA #$00B0 : STA $242E - LDA #$0014 : STA $2430 - LDA #$0015 : STA $2432 - LDA #$00A8 : STA $2434 - LDA #$0089 : STA $24AE - LDA #$001C : STA $24B0 - LDA #$001D : STA $24B2 - LDA #$0076 : STA $24B4 - LDA #$00F1 : STA $252E - LDA #$004E : STA $2530 - LDA #$004F : STA $2532 - LDA #$00D9 : STA $2534 + LDA.w #$00AE : STA.w $23AE + LDA.w #$00AF : STA.w $23B0 + LDA.w #$007E : STA.w $23B2 + LDA.w #$007F : STA.w $23B4 + LDA.w #$00B0 : STA.w $242E + LDA.w #$0014 : STA.w $2430 + LDA.w #$0015 : STA.w $2432 + LDA.w #$00A8 : STA.w $2434 + LDA.w #$0089 : STA.w $24AE + LDA.w #$001C : STA.w $24B0 + LDA.w #$001D : STA.w $24B2 + LDA.w #$0076 : STA.w $24B4 + LDA.w #$00F1 : STA.w $252E + LDA.w #$004E : STA.w $2530 + LDA.w #$004F : STA.w $2532 + LDA.w #$00D9 : STA.w $2534 + ; west tree -LDA #$00AE : STA $23A2 -LDA #$00AF : STA $23A4 -LDA #$007E : STA $23A6 -LDA #$007F : STA $23A8 -LDA #$00B0 : STA $2422 -LDA #$0014 : STA $2424 -LDA #$0015 : STA $2426 -LDA #$00A8 : STA $2428 -LDA #$0089 : STA $24A2 -LDA #$001C : STA $24A4 -LDA #$001D : STA $24A6 -LDA #$0076 : STA $24A8 -LDA #$00F1 : STA $2522 -LDA #$004E : STA $2524 -LDA #$004F : STA $2526 -LDA #$00D9 : STA $2528 +LDA.w #$00AE : STA.w $23A2 +LDA.w #$00AF : STA.w $23A4 +LDA.w #$007E : STA.w $23A6 +LDA.w #$007F : STA.w $23A8 +LDA.w #$00B0 : STA.w $2422 +LDA.w #$0014 : STA.w $2424 +LDA.w #$0015 : STA.w $2426 +LDA.w #$00A8 : STA.w $2428 +LDA.w #$0089 : STA.w $24A2 +LDA.w #$001C : STA.w $24A4 +LDA.w #$001D : STA.w $24A6 +LDA.w #$0076 : STA.w $24A8 +LDA.w #$00F1 : STA.w $2522 +LDA.w #$004E : STA.w $2524 +LDA.w #$004F : STA.w $2526 +LDA.w #$00D9 : STA.w $2528 RTS } @@ -266,64 +266,64 @@ map15: ; Map21 LDA.l OverworldEventDataWRAM+$15 : BIT.w #$0010 : BNE + ; southwest tree PHA - LDA #$0364 : STA $2C06 - LDA #$0365 : STA $2C08 - LDA #$0366 : STA $2C0A - LDA #$0367 : STA $2C0C - LDA #$0368 : STA $2C86 - LDA #$0369 : STA $2C88 - LDA #$036A : STA $2C8A - LDA #$036B : STA $2C8C - LDA #$036E : STA $2D06 - LDA #$036F : STA $2D08 - LDA #$0370 : STA $2D0A - LDA #$0371 : STA $2D0C - LDA #$0375 : STA $2D86 - LDA #$0376 : STA $2D88 - LDA #$0377 : STA $2D8A - LDA #$0378 : STA $2D8C + LDA.w #$0364 : STA.w $2C06 + LDA.w #$0365 : STA.w $2C08 + LDA.w #$0366 : STA.w $2C0A + LDA.w #$0367 : STA.w $2C0C + LDA.w #$0368 : STA.w $2C86 + LDA.w #$0369 : STA.w $2C88 + LDA.w #$036A : STA.w $2C8A + LDA.w #$036B : STA.w $2C8C + LDA.w #$036E : STA.w $2D06 + LDA.w #$036F : STA.w $2D08 + LDA.w #$0370 : STA.w $2D0A + LDA.w #$0371 : STA.w $2D0C + LDA.w #$0375 : STA.w $2D86 + LDA.w #$0376 : STA.w $2D88 + LDA.w #$0377 : STA.w $2D8A + LDA.w #$0378 : STA.w $2D8C PLA + BIT.w #$0008 : BNE + ; east bank tree - LDA #$0364 : STA $26B4 - LDA #$0365 : STA $26B6 - LDA #$0366 : STA $26B8 - LDA #$0367 : STA $26BA - LDA #$0368 : STA $2734 - LDA #$0369 : STA $2736 - LDA #$036A : STA $2738 - LDA #$036B : STA $273A - LDA #$036E : STA $27B4 - LDA #$036F : STA $27B6 - LDA #$0370 : STA $27B8 - LDA #$0371 : STA $27BA - LDA #$0375 : STA $2834 - LDA #$0376 : STA $2836 - LDA #$0377 : STA $2838 - LDA #$0378 : STA $283A + LDA.w #$0364 : STA.w $26B4 + LDA.w #$0365 : STA.w $26B6 + LDA.w #$0366 : STA.w $26B8 + LDA.w #$0367 : STA.w $26BA + LDA.w #$0368 : STA.w $2734 + LDA.w #$0369 : STA.w $2736 + LDA.w #$036A : STA.w $2738 + LDA.w #$036B : STA.w $273A + LDA.w #$036E : STA.w $27B4 + LDA.w #$036F : STA.w $27B6 + LDA.w #$0370 : STA.w $27B8 + LDA.w #$0371 : STA.w $27BA + LDA.w #$0375 : STA.w $2834 + LDA.w #$0376 : STA.w $2836 + LDA.w #$0377 : STA.w $2838 + LDA.w #$0378 : STA.w $283A + RTS } map16: ; Map22 { -LDA #$00AE : STA $281E -LDA #$00AF : STA $2820 -LDA #$007E : STA $2822 -LDA #$007F : STA $2824 -LDA #$00B0 : STA $289E -LDA #$0014 : STA $28A0 -LDA #$0015 : STA $28A2 -LDA #$00A8 : STA $28A4 -LDA #$0089 : STA $291E -LDA #$001C : STA $2920 -LDA #$001D : STA $2922 -LDA #$0076 : STA $2924 -LDA #$00F1 : STA $299E -LDA #$004E : STA $29A0 -LDA #$004F : STA $29A2 -LDA #$00D9 : STA $29A4 +LDA.w #$00AE : STA.w $281E +LDA.w #$00AF : STA.w $2820 +LDA.w #$007E : STA.w $2822 +LDA.w #$007F : STA.w $2824 +LDA.w #$00B0 : STA.w $289E +LDA.w #$0014 : STA.w $28A0 +LDA.w #$0015 : STA.w $28A2 +LDA.w #$00A8 : STA.w $28A4 +LDA.w #$0089 : STA.w $291E +LDA.w #$001C : STA.w $2920 +LDA.w #$001D : STA.w $2922 +LDA.w #$0076 : STA.w $2924 +LDA.w #$00F1 : STA.w $299E +LDA.w #$004E : STA.w $29A0 +LDA.w #$004F : STA.w $29A2 +LDA.w #$00D9 : STA.w $29A4 RTS } @@ -332,42 +332,42 @@ map18: ; Map24/Map25/Map32/Map33 LDA.l OverworldEventDataWRAM+$18 : BIT.w #$0010 : BNE + ; northwest tree PHA - LDA #$0364 : STA $242C - LDA #$0365 : STA $242E - LDA #$0366 : STA $2430 - LDA #$0367 : STA $2432 - LDA #$0368 : STA $24AC - LDA #$0369 : STA $24AE - LDA #$036A : STA $24B0 - LDA #$036B : STA $24B2 - LDA #$036E : STA $252C - LDA #$036F : STA $252E - LDA #$0370 : STA $2530 - LDA #$0371 : STA $2532 - LDA #$0375 : STA $25AC - LDA #$0376 : STA $25AE - LDA #$0377 : STA $25B0 - LDA #$0378 : STA $25B2 + LDA.w #$0364 : STA.w $242C + LDA.w #$0365 : STA.w $242E + LDA.w #$0366 : STA.w $2430 + LDA.w #$0367 : STA.w $2432 + LDA.w #$0368 : STA.w $24AC + LDA.w #$0369 : STA.w $24AE + LDA.w #$036A : STA.w $24B0 + LDA.w #$036B : STA.w $24B2 + LDA.w #$036E : STA.w $252C + LDA.w #$036F : STA.w $252E + LDA.w #$0370 : STA.w $2530 + LDA.w #$0371 : STA.w $2532 + LDA.w #$0375 : STA.w $25AC + LDA.w #$0376 : STA.w $25AE + LDA.w #$0377 : STA.w $25B0 + LDA.w #$0378 : STA.w $25B2 PLA + BIT.w #$0008 : BNE + ; southeast tree - LDA #$0364 : STA $38EA - LDA #$0365 : STA $38EC - LDA #$0366 : STA $38EE - LDA #$0367 : STA $38F0 - LDA #$0368 : STA $396A - LDA #$0369 : STA $396C - LDA #$036A : STA $396E - LDA #$036B : STA $3970 - LDA #$036E : STA $39EA - LDA #$036F : STA $39EC - LDA #$0370 : STA $39EE - LDA #$0371 : STA $39F0 - LDA #$0375 : STA $3A6A - LDA #$0376 : STA $3A6C - LDA #$0377 : STA $3A6E - LDA #$0378 : STA $3A70 + LDA.w #$0364 : STA.w $38EA + LDA.w #$0365 : STA.w $38EC + LDA.w #$0366 : STA.w $38EE + LDA.w #$0367 : STA.w $38F0 + LDA.w #$0368 : STA.w $396A + LDA.w #$0369 : STA.w $396C + LDA.w #$036A : STA.w $396E + LDA.w #$036B : STA.w $3970 + LDA.w #$036E : STA.w $39EA + LDA.w #$036F : STA.w $39EC + LDA.w #$0370 : STA.w $39EE + LDA.w #$0371 : STA.w $39F0 + LDA.w #$0375 : STA.w $3A6A + LDA.w #$0376 : STA.w $3A6C + LDA.w #$0377 : STA.w $3A6E + LDA.w #$0378 : STA.w $3A70 + RTS } @@ -377,42 +377,42 @@ map1a: ; Map26 LDA.l OverworldEventDataWRAM+$1a : BIT.w #$0010 : BNE + ; southwest tree PHA - LDA #$0364 : STA $2B10 - LDA #$0365 : STA $2B12 - LDA #$0366 : STA $2B14 - LDA #$0367 : STA $2B16 - LDA #$0368 : STA $2B90 - LDA #$0369 : STA $2B92 - LDA #$036A : STA $2B94 - LDA #$036B : STA $2B96 - LDA #$036E : STA $2C10 - LDA #$036F : STA $2C12 - LDA #$0370 : STA $2C14 - LDA #$0371 : STA $2C16 - LDA #$0375 : STA $2C90 - LDA #$0376 : STA $2C92 - LDA #$0377 : STA $2C94 - LDA #$0378 : STA $2C96 + LDA.w #$0364 : STA.w $2B10 + LDA.w #$0365 : STA.w $2B12 + LDA.w #$0366 : STA.w $2B14 + LDA.w #$0367 : STA.w $2B16 + LDA.w #$0368 : STA.w $2B90 + LDA.w #$0369 : STA.w $2B92 + LDA.w #$036A : STA.w $2B94 + LDA.w #$036B : STA.w $2B96 + LDA.w #$036E : STA.w $2C10 + LDA.w #$036F : STA.w $2C12 + LDA.w #$0370 : STA.w $2C14 + LDA.w #$0371 : STA.w $2C16 + LDA.w #$0375 : STA.w $2C90 + LDA.w #$0376 : STA.w $2C92 + LDA.w #$0377 : STA.w $2C94 + LDA.w #$0378 : STA.w $2C96 PLA + BIT.w #$0008 : BNE + ; central tree - LDA #$0364 : STA $2798 - LDA #$0365 : STA $279A - LDA #$0366 : STA $279C - LDA #$0367 : STA $279E - LDA #$0368 : STA $2818 - LDA #$0369 : STA $281A - LDA #$036A : STA $281C - LDA #$036B : STA $281E - LDA #$036E : STA $2898 - LDA #$036F : STA $289A - LDA #$0370 : STA $289C - LDA #$0371 : STA $289E - LDA #$0375 : STA $2918 - LDA #$0376 : STA $291A - LDA #$0377 : STA $291C - LDA #$0378 : STA $291E + LDA.w #$0364 : STA.w $2798 + LDA.w #$0365 : STA.w $279A + LDA.w #$0366 : STA.w $279C + LDA.w #$0367 : STA.w $279E + LDA.w #$0368 : STA.w $2818 + LDA.w #$0369 : STA.w $281A + LDA.w #$036A : STA.w $281C + LDA.w #$036B : STA.w $281E + LDA.w #$036E : STA.w $2898 + LDA.w #$036F : STA.w $289A + LDA.w #$0370 : STA.w $289C + LDA.w #$0371 : STA.w $289E + LDA.w #$0375 : STA.w $2918 + LDA.w #$0376 : STA.w $291A + LDA.w #$0377 : STA.w $291C + LDA.w #$0378 : STA.w $291E + RTS } @@ -420,22 +420,22 @@ LDA.l OverworldEventDataWRAM+$1a : BIT.w #$0010 : BNE + map1b: ; Map27/Map28/Map35/Map36 { LDA.l OverworldEventDataWRAM+$1b : BIT.w #$0010 : BNE + - LDA #$0364 : STA $29AA - LDA #$0365 : STA $29AC - LDA #$0366 : STA $29AE - LDA #$0367 : STA $29B0 - LDA #$0368 : STA $2A2A - LDA #$0369 : STA $2A2C - LDA #$036A : STA $2A2E - LDA #$036B : STA $2A30 - LDA #$036E : STA $2AAA - LDA #$036F : STA $2AAC - LDA #$0370 : STA $2AAE - LDA #$0371 : STA $2AB0 - LDA #$0375 : STA $2B2A - LDA #$0376 : STA $2B2C - LDA #$0377 : STA $2B2E - LDA #$0378 : STA $2B30 + LDA.w #$0364 : STA.w $29AA + LDA.w #$0365 : STA.w $29AC + LDA.w #$0366 : STA.w $29AE + LDA.w #$0367 : STA.w $29B0 + LDA.w #$0368 : STA.w $2A2A + LDA.w #$0369 : STA.w $2A2C + LDA.w #$036A : STA.w $2A2E + LDA.w #$036B : STA.w $2A30 + LDA.w #$036E : STA.w $2AAA + LDA.w #$036F : STA.w $2AAC + LDA.w #$0370 : STA.w $2AAE + LDA.w #$0371 : STA.w $2AB0 + LDA.w #$0375 : STA.w $2B2A + LDA.w #$0376 : STA.w $2B2C + LDA.w #$0377 : STA.w $2B2E + LDA.w #$0378 : STA.w $2B30 + RTS } @@ -443,22 +443,22 @@ LDA.l OverworldEventDataWRAM+$1b : BIT.w #$0010 : BNE + map1d: ; Map29 { LDA.l OverworldEventDataWRAM+$1d : BIT.w #$0010 : BNE + - LDA #$0364 : STA $2212 - LDA #$0365 : STA $2214 - LDA #$0366 : STA $2216 - LDA #$0367 : STA $2218 - LDA #$0368 : STA $2292 - LDA #$0369 : STA $2294 - LDA #$036A : STA $2296 - LDA #$036B : STA $2298 - LDA #$036E : STA $2312 - LDA #$036F : STA $2314 - LDA #$0370 : STA $2316 - LDA #$0371 : STA $2318 - LDA #$0375 : STA $2392 - LDA #$0376 : STA $2394 - LDA #$0377 : STA $2396 - LDA #$0378 : STA $2398 + LDA.w #$0364 : STA.w $2212 + LDA.w #$0365 : STA.w $2214 + LDA.w #$0366 : STA.w $2216 + LDA.w #$0367 : STA.w $2218 + LDA.w #$0368 : STA.w $2292 + LDA.w #$0369 : STA.w $2294 + LDA.w #$036A : STA.w $2296 + LDA.w #$036B : STA.w $2298 + LDA.w #$036E : STA.w $2312 + LDA.w #$036F : STA.w $2314 + LDA.w #$0370 : STA.w $2316 + LDA.w #$0371 : STA.w $2318 + LDA.w #$0375 : STA.w $2392 + LDA.w #$0376 : STA.w $2394 + LDA.w #$0377 : STA.w $2396 + LDA.w #$0378 : STA.w $2398 + RTS } @@ -466,86 +466,86 @@ LDA.l OverworldEventDataWRAM+$1d : BIT.w #$0010 : BNE + map1e: ; Map30/Map31/Map38/Map39 { ; two northeast trees -LDA #$00AE : STA $36E6 : STA $375E -LDA #$00AF : STA $36E8 : STA $3760 -LDA #$007E : STA $36EA : STA $3762 -LDA #$007F : STA $36EC : STA $3764 -LDA #$00B0 : STA $3766 : STA $37DE -LDA #$0014 : STA $3768 : STA $37E0 -LDA #$0015 : STA $376A : STA $37E2 -LDA #$00A8 : STA $376C : STA $37E4 -LDA #$0089 : STA $37E6 : STA $385E -LDA #$001C : STA $37E8 : STA $3860 -LDA #$001D : STA $37EA : STA $3862 -LDA #$0076 : STA $37EC : STA $3864 -LDA #$00F1 : STA $3866 : STA $38DE -LDA #$004E : STA $3868 : STA $38E0 -LDA #$004F : STA $386A : STA $38E2 -LDA #$00D9 : STA $386C : STA $38E4 +LDA.w #$00AE : STA.w $36E6 : STA.w $375E +LDA.w #$00AF : STA.w $36E8 : STA.w $3760 +LDA.w #$007E : STA.w $36EA : STA.w $3762 +LDA.w #$007F : STA.w $36EC : STA.w $3764 +LDA.w #$00B0 : STA.w $3766 : STA.w $37DE +LDA.w #$0014 : STA.w $3768 : STA.w $37E0 +LDA.w #$0015 : STA.w $376A : STA.w $37E2 +LDA.w #$00A8 : STA.w $376C : STA.w $37E4 +LDA.w #$0089 : STA.w $37E6 : STA.w $385E +LDA.w #$001C : STA.w $37E8 : STA.w $3860 +LDA.w #$001D : STA.w $37EA : STA.w $3862 +LDA.w #$0076 : STA.w $37EC : STA.w $3864 +LDA.w #$00F1 : STA.w $3866 : STA.w $38DE +LDA.w #$004E : STA.w $3868 : STA.w $38E0 +LDA.w #$004F : STA.w $386A : STA.w $38E2 +LDA.w #$00D9 : STA.w $386C : STA.w $38E4 ; tree cluster -LDA #$0000 : STA $3954 : STA $395A : STA $3C54 -LDA #$0001 : STA $3950 : STA $3956 : STA $3C50 -LDA #$0002 : STA $3952 : STA $3958 : STA $3C52 -LDA #$0006 : STA $3B4E -LDA #$0007 : STA $3B50 -LDA #$0009 : STA $3B54 -LDA #$000A : STA $39D4 -LDA #$000B : STA $39D0 : STA $39D6 -LDA #$000C : STA $39D2 -LDA #$000D : STA $39D8 -LDA #$0011 : STA $38D0 : STA $38D6 : STA $3BD0 -LDA #$0012 : STA $38D2 : STA $38D8 : STA $3BD2 -LDA #$0013 : STA $38D4 : STA $38DA : STA $3BD4 -LDA #$0014 : STA $3A4E : STA $3A54 -LDA #$0015 : STA $3A50 : STA $3A56 -LDA #$0016 : STA $3A52 -LDA #$001C : STA $3ACE : STA $3AD4 -LDA #$001D : STA $3AD0 : STA $3AD6 -LDA #$001E : STA $3AD2 -LDA #$0025 : STA $3CD2 -LDA #$0026 : STA $3852 : STA $3858 : STA $3B52 -LDA #$0031 : STA $3B56 -LDA #$0076 : STA $3AD8 -LDA #$0078 : STA $3854 : STA $385A -LDA #$0079 : STA $385C -LDA #$007B : STA $38DC -LDA #$007C : STA $395C : STA $3C56 -LDA #$0082 : STA $39DA : STA $3CD4 -LDA #$0083 : STA $3CD0 -LDA #$0089 : STA $3ACC -LDA #$0094 : STA $3BD6 -LDA #$00A8 : STA $3A58 -LDA #$00AE : STA $39CC -LDA #$00AF : STA $39CE -LDA #$00B0 : STA $3A4C -LDA #$00B5 : STA $384E -LDA #$00B6 : STA $3850 : STA $3856 -LDA #$00B9 : STA $38CE -LDA #$00BE : STA $394E : STA $3C4E -LDA #$00D9 : STA $3B58 -LDA #$00DE : STA $3BCE -LDA #$00F1 : STA $3B4C +LDA.w #$0000 : STA.w $3954 : STA.w $395A : STA.w $3C54 +LDA.w #$0001 : STA.w $3950 : STA.w $3956 : STA.w $3C50 +LDA.w #$0002 : STA.w $3952 : STA.w $3958 : STA.w $3C52 +LDA.w #$0006 : STA.w $3B4E +LDA.w #$0007 : STA.w $3B50 +LDA.w #$0009 : STA.w $3B54 +LDA.w #$000A : STA.w $39D4 +LDA.w #$000B : STA.w $39D0 : STA.w $39D6 +LDA.w #$000C : STA.w $39D2 +LDA.w #$000D : STA.w $39D8 +LDA.w #$0011 : STA.w $38D0 : STA.w $38D6 : STA.w $3BD0 +LDA.w #$0012 : STA.w $38D2 : STA.w $38D8 : STA.w $3BD2 +LDA.w #$0013 : STA.w $38D4 : STA.w $38DA : STA.w $3BD4 +LDA.w #$0014 : STA.w $3A4E : STA.w $3A54 +LDA.w #$0015 : STA.w $3A50 : STA.w $3A56 +LDA.w #$0016 : STA.w $3A52 +LDA.w #$001C : STA.w $3ACE : STA.w $3AD4 +LDA.w #$001D : STA.w $3AD0 : STA.w $3AD6 +LDA.w #$001E : STA.w $3AD2 +LDA.w #$0025 : STA.w $3CD2 +LDA.w #$0026 : STA.w $3852 : STA.w $3858 : STA.w $3B52 +LDA.w #$0031 : STA.w $3B56 +LDA.w #$0076 : STA.w $3AD8 +LDA.w #$0078 : STA.w $3854 : STA.w $385A +LDA.w #$0079 : STA.w $385C +LDA.w #$007B : STA.w $38DC +LDA.w #$007C : STA.w $395C : STA.w $3C56 +LDA.w #$0082 : STA.w $39DA : STA.w $3CD4 +LDA.w #$0083 : STA.w $3CD0 +LDA.w #$0089 : STA.w $3ACC +LDA.w #$0094 : STA.w $3BD6 +LDA.w #$00A8 : STA.w $3A58 +LDA.w #$00AE : STA.w $39CC +LDA.w #$00AF : STA.w $39CE +LDA.w #$00B0 : STA.w $3A4C +LDA.w #$00B5 : STA.w $384E +LDA.w #$00B6 : STA.w $3850 : STA.w $3856 +LDA.w #$00B9 : STA.w $38CE +LDA.w #$00BE : STA.w $394E : STA.w $3C4E +LDA.w #$00D9 : STA.w $3B58 +LDA.w #$00DE : STA.w $3BCE +LDA.w #$00F1 : STA.w $3B4C LDA.l OverworldEventDataWRAM+$1e : BIT.w #$0010 : BEQ + ; BEQ because tree is already colored ; bonk tree - LDA #$00AE : STA $3AC2 - LDA #$00AF : STA $3AC4 - LDA #$007E : STA $3AC6 - LDA #$007F : STA $3AC8 - LDA #$00B0 : STA $3B42 - LDA #$0014 : STA $3B44 - LDA #$0015 : STA $3B46 - LDA #$00A8 : STA $3B48 - LDA #$0089 : STA $3BC2 - LDA #$001C : STA $3BC4 - LDA #$001D : STA $3BC6 - LDA #$0076 : STA $3BC8 - LDA #$00F1 : STA $3C42 - LDA #$004E : STA $3C44 - LDA #$004F : STA $3C46 - LDA #$00D9 : STA $3C48 + LDA.w #$00AE : STA.w $3AC2 + LDA.w #$00AF : STA.w $3AC4 + LDA.w #$007E : STA.w $3AC6 + LDA.w #$007F : STA.w $3AC8 + LDA.w #$00B0 : STA.w $3B42 + LDA.w #$0014 : STA.w $3B44 + LDA.w #$0015 : STA.w $3B46 + LDA.w #$00A8 : STA.w $3B48 + LDA.w #$0089 : STA.w $3BC2 + LDA.w #$001C : STA.w $3BC4 + LDA.w #$001D : STA.w $3BC6 + LDA.w #$0076 : STA.w $3BC8 + LDA.w #$00F1 : STA.w $3C42 + LDA.w #$004E : STA.w $3C44 + LDA.w #$004F : STA.w $3C46 + LDA.w #$00D9 : STA.w $3C48 + RTS } @@ -555,42 +555,42 @@ map2a: ; Map42 LDA.l OverworldEventDataWRAM+$2a : BIT.w #$0010 : BNE + ; south tree PHA - LDA #$0364 : STA $2B1C - LDA #$0365 : STA $2B1E - LDA #$0366 : STA $2B20 - LDA #$0367 : STA $2B22 - LDA #$0368 : STA $2B9C - LDA #$0369 : STA $2B9E - LDA #$036A : STA $2BA0 - LDA #$036B : STA $2BA2 - LDA #$036E : STA $2C1C - LDA #$036F : STA $2C1E - LDA #$0370 : STA $2C20 - LDA #$0371 : STA $2C22 - LDA #$0375 : STA $2C9C - LDA #$0376 : STA $2C9E - LDA #$0377 : STA $2CA0 - LDA #$0378 : STA $2CA2 + LDA.w #$0364 : STA.w $2B1C + LDA.w #$0365 : STA.w $2B1E + LDA.w #$0366 : STA.w $2B20 + LDA.w #$0367 : STA.w $2B22 + LDA.w #$0368 : STA.w $2B9C + LDA.w #$0369 : STA.w $2B9E + LDA.w #$036A : STA.w $2BA0 + LDA.w #$036B : STA.w $2BA2 + LDA.w #$036E : STA.w $2C1C + LDA.w #$036F : STA.w $2C1E + LDA.w #$0370 : STA.w $2C20 + LDA.w #$0371 : STA.w $2C22 + LDA.w #$0375 : STA.w $2C9C + LDA.w #$0376 : STA.w $2C9E + LDA.w #$0377 : STA.w $2CA0 + LDA.w #$0378 : STA.w $2CA2 PLA + BIT.w #$0008 : BNE + ; southeast tree - LDA #$0364 : STA $2928 - LDA #$0365 : STA $292A - LDA #$0366 : STA $292C - LDA #$0367 : STA $292E - LDA #$0368 : STA $29A8 - LDA #$0369 : STA $29AA - LDA #$036A : STA $29AC - LDA #$036B : STA $29AE - LDA #$036E : STA $2A28 - LDA #$036F : STA $2A2A - LDA #$0370 : STA $2A2C - LDA #$0371 : STA $2A2E - LDA #$0375 : STA $2AA8 - LDA #$0376 : STA $2AAA - LDA #$0377 : STA $2AAC - LDA #$0378 : STA $2AAE + LDA.w #$0364 : STA.w $2928 + LDA.w #$0365 : STA.w $292A + LDA.w #$0366 : STA.w $292C + LDA.w #$0367 : STA.w $292E + LDA.w #$0368 : STA.w $29A8 + LDA.w #$0369 : STA.w $29AA + LDA.w #$036A : STA.w $29AC + LDA.w #$036B : STA.w $29AE + LDA.w #$036E : STA.w $2A28 + LDA.w #$036F : STA.w $2A2A + LDA.w #$0370 : STA.w $2A2C + LDA.w #$0371 : STA.w $2A2E + LDA.w #$0375 : STA.w $2AA8 + LDA.w #$0376 : STA.w $2AAA + LDA.w #$0377 : STA.w $2AAC + LDA.w #$0378 : STA.w $2AAE + RTS } @@ -598,22 +598,22 @@ LDA.l OverworldEventDataWRAM+$2a : BIT.w #$0010 : BNE + map2b: ; Map43 { LDA.l OverworldEventDataWRAM+$2b : BIT.w #$0010 : BNE + - LDA #$0364 : STA $25AA - LDA #$0365 : STA $25AC - LDA #$0366 : STA $25AE - LDA #$0367 : STA $25B0 - LDA #$0368 : STA $262A - LDA #$0369 : STA $262C - LDA #$036A : STA $262E - LDA #$036B : STA $2630 - LDA #$036E : STA $26AA - LDA #$036F : STA $26AC - LDA #$0370 : STA $26AE - LDA #$0371 : STA $26B0 - LDA #$0375 : STA $272A - LDA #$0376 : STA $272C - LDA #$0377 : STA $272E - LDA #$0378 : STA $2730 + LDA.w #$0364 : STA.w $25AA + LDA.w #$0365 : STA.w $25AC + LDA.w #$0366 : STA.w $25AE + LDA.w #$0367 : STA.w $25B0 + LDA.w #$0368 : STA.w $262A + LDA.w #$0369 : STA.w $262C + LDA.w #$036A : STA.w $262E + LDA.w #$036B : STA.w $2630 + LDA.w #$036E : STA.w $26AA + LDA.w #$036F : STA.w $26AC + LDA.w #$0370 : STA.w $26AE + LDA.w #$0371 : STA.w $26B0 + LDA.w #$0375 : STA.w $272A + LDA.w #$0376 : STA.w $272C + LDA.w #$0377 : STA.w $272E + LDA.w #$0378 : STA.w $2730 + RTS } @@ -623,42 +623,42 @@ map2e: ; Map46 LDA.l OverworldEventDataWRAM+$2e : BIT.w #$0010 : BNE + ; tree 2 PHA - LDA #$0364 : STA $2396 - LDA #$0365 : STA $2398 - LDA #$0366 : STA $239A - LDA #$0367 : STA $239C - LDA #$0368 : STA $2416 - LDA #$0369 : STA $2418 - LDA #$036A : STA $241A - LDA #$036B : STA $241C - LDA #$036E : STA $2496 - LDA #$036F : STA $2498 - LDA #$0370 : STA $249A - LDA #$0371 : STA $249C - LDA #$0375 : STA $2516 - LDA #$0376 : STA $2518 - LDA #$0377 : STA $251A - LDA #$0378 : STA $251C + LDA.w #$0364 : STA.w $2396 + LDA.w #$0365 : STA.w $2398 + LDA.w #$0366 : STA.w $239A + LDA.w #$0367 : STA.w $239C + LDA.w #$0368 : STA.w $2416 + LDA.w #$0369 : STA.w $2418 + LDA.w #$036A : STA.w $241A + LDA.w #$036B : STA.w $241C + LDA.w #$036E : STA.w $2496 + LDA.w #$036F : STA.w $2498 + LDA.w #$0370 : STA.w $249A + LDA.w #$0371 : STA.w $249C + LDA.w #$0375 : STA.w $2516 + LDA.w #$0376 : STA.w $2518 + LDA.w #$0377 : STA.w $251A + LDA.w #$0378 : STA.w $251C PLA + BIT.w #$0008 : BNE + ; tree 4 - LDA #$0364 : STA $24A6 - LDA #$0365 : STA $24A8 - LDA #$0366 : STA $24AA - LDA #$0367 : STA $24AC - LDA #$0368 : STA $2526 - LDA #$0369 : STA $2528 - LDA #$036A : STA $252A - LDA #$036B : STA $252C - LDA #$036E : STA $25A6 - LDA #$036F : STA $25A8 - LDA #$0370 : STA $25AA - LDA #$0371 : STA $25AC - LDA #$0375 : STA $2626 - LDA #$0376 : STA $2628 - LDA #$0377 : STA $262A - LDA #$0378 : STA $262C + LDA.w #$0364 : STA.w $24A6 + LDA.w #$0365 : STA.w $24A8 + LDA.w #$0366 : STA.w $24AA + LDA.w #$0367 : STA.w $24AC + LDA.w #$0368 : STA.w $2526 + LDA.w #$0369 : STA.w $2528 + LDA.w #$036A : STA.w $252A + LDA.w #$036B : STA.w $252C + LDA.w #$036E : STA.w $25A6 + LDA.w #$036F : STA.w $25A8 + LDA.w #$0370 : STA.w $25AA + LDA.w #$0371 : STA.w $25AC + LDA.w #$0375 : STA.w $2626 + LDA.w #$0376 : STA.w $2628 + LDA.w #$0377 : STA.w $262A + LDA.w #$0378 : STA.w $262C + RTS } @@ -668,42 +668,42 @@ map32: ; Map50 LDA.l OverworldEventDataWRAM+$32 : BIT.w #$0010 : BNE + ; southeast tree PHA - LDA #$0364 : STA $2830 - LDA #$0365 : STA $2832 - LDA #$0366 : STA $2834 - LDA #$0367 : STA $2836 - LDA #$0368 : STA $28B0 - LDA #$0369 : STA $28B2 - LDA #$036A : STA $28B4 - LDA #$036B : STA $28B6 - LDA #$036E : STA $2930 - LDA #$036F : STA $2932 - LDA #$0370 : STA $2934 - LDA #$0371 : STA $2936 - LDA #$0375 : STA $29B0 - LDA #$0376 : STA $29B2 - LDA #$0377 : STA $29B4 - LDA #$0378 : STA $29B6 + LDA.w #$0364 : STA.w $2830 + LDA.w #$0365 : STA.w $2832 + LDA.w #$0366 : STA.w $2834 + LDA.w #$0367 : STA.w $2836 + LDA.w #$0368 : STA.w $28B0 + LDA.w #$0369 : STA.w $28B2 + LDA.w #$036A : STA.w $28B4 + LDA.w #$036B : STA.w $28B6 + LDA.w #$036E : STA.w $2930 + LDA.w #$036F : STA.w $2932 + LDA.w #$0370 : STA.w $2934 + LDA.w #$0371 : STA.w $2936 + LDA.w #$0375 : STA.w $29B0 + LDA.w #$0376 : STA.w $29B2 + LDA.w #$0377 : STA.w $29B4 + LDA.w #$0378 : STA.w $29B6 PLA + BIT.w #$0008 : BNE + ; northeast tree - LDA #$0364 : STA $23B2 - LDA #$0365 : STA $23B4 - LDA #$0366 : STA $23B6 - LDA #$0367 : STA $23B8 - LDA #$0368 : STA $2432 - LDA #$0369 : STA $2434 - LDA #$036A : STA $2436 - LDA #$036B : STA $2438 - LDA #$036E : STA $24B2 - LDA #$036F : STA $24B4 - LDA #$0370 : STA $24B6 - LDA #$0371 : STA $24B8 - LDA #$0375 : STA $2532 - LDA #$0376 : STA $2534 - LDA #$0377 : STA $2536 - LDA #$0378 : STA $2538 + LDA.w #$0364 : STA.w $23B2 + LDA.w #$0365 : STA.w $23B4 + LDA.w #$0366 : STA.w $23B6 + LDA.w #$0367 : STA.w $23B8 + LDA.w #$0368 : STA.w $2432 + LDA.w #$0369 : STA.w $2434 + LDA.w #$036A : STA.w $2436 + LDA.w #$036B : STA.w $2438 + LDA.w #$036E : STA.w $24B2 + LDA.w #$036F : STA.w $24B4 + LDA.w #$0370 : STA.w $24B6 + LDA.w #$0371 : STA.w $24B8 + LDA.w #$0375 : STA.w $2532 + LDA.w #$0376 : STA.w $2534 + LDA.w #$0377 : STA.w $2536 + LDA.w #$0378 : STA.w $2538 + RTS } @@ -711,44 +711,44 @@ LDA.l OverworldEventDataWRAM+$32 : BIT.w #$0010 : BNE + map42: ; Map02 { LDA.l OverworldEventDataWRAM+$42 : BIT.w #$0010 : BNE + - LDA #$0364 : STA $2A0A - LDA #$0365 : STA $2A0C - LDA #$0366 : STA $2A0E - LDA #$0367 : STA $2A10 - LDA #$0368 : STA $2A8A - LDA #$0369 : STA $2A8C - LDA #$036A : STA $2A8E - LDA #$036B : STA $2A90 - LDA #$036E : STA $2B0A - LDA #$036F : STA $2B0C - LDA #$0370 : STA $2B0E - LDA #$0371 : STA $2B10 - LDA #$0375 : STA $2B8A - LDA #$0376 : STA $2B8C - LDA #$0377 : STA $2B8E - LDA #$0378 : STA $2B90 + LDA.w #$0364 : STA.w $2A0A + LDA.w #$0365 : STA.w $2A0C + LDA.w #$0366 : STA.w $2A0E + LDA.w #$0367 : STA.w $2A10 + LDA.w #$0368 : STA.w $2A8A + LDA.w #$0369 : STA.w $2A8C + LDA.w #$036A : STA.w $2A8E + LDA.w #$036B : STA.w $2A90 + LDA.w #$036E : STA.w $2B0A + LDA.w #$036F : STA.w $2B0C + LDA.w #$0370 : STA.w $2B0E + LDA.w #$0371 : STA.w $2B10 + LDA.w #$0375 : STA.w $2B8A + LDA.w #$0376 : STA.w $2B8C + LDA.w #$0377 : STA.w $2B8E + LDA.w #$0378 : STA.w $2B90 + RTS } map53: ; Map19 { -LDA #$00AE : STA $2422 : STA $242E -LDA #$00AF : STA $2424 : STA $2430 -LDA #$007E : STA $2426 : STA $2432 -LDA #$007F : STA $2428 : STA $2434 -LDA #$00B0 : STA $24A2 : STA $24AE -LDA #$0014 : STA $24A4 : STA $24B0 -LDA #$0015 : STA $24A6 : STA $24B2 -LDA #$00A8 : STA $24A8 : STA $24B4 -LDA #$0089 : STA $2522 : STA $252E -LDA #$001C : STA $2524 : STA $2530 -LDA #$001D : STA $2526 : STA $2532 -LDA #$0076 : STA $2528 : STA $2534 -LDA #$00F1 : STA $25A2 : STA $25AE -LDA #$004E : STA $25A4 : STA $25B0 -LDA #$004F : STA $25A6 : STA $25B2 -LDA #$00D9 : STA $25A8 : STA $25B4 +LDA.w #$00AE : STA.w $2422 : STA.w $242E +LDA.w #$00AF : STA.w $2424 : STA.w $2430 +LDA.w #$007E : STA.w $2426 : STA.w $2432 +LDA.w #$007F : STA.w $2428 : STA.w $2434 +LDA.w #$00B0 : STA.w $24A2 : STA.w $24AE +LDA.w #$0014 : STA.w $24A4 : STA.w $24B0 +LDA.w #$0015 : STA.w $24A6 : STA.w $24B2 +LDA.w #$00A8 : STA.w $24A8 : STA.w $24B4 +LDA.w #$0089 : STA.w $2522 : STA.w $252E +LDA.w #$001C : STA.w $2524 : STA.w $2530 +LDA.w #$001D : STA.w $2526 : STA.w $2532 +LDA.w #$0076 : STA.w $2528 : STA.w $2534 +LDA.w #$00F1 : STA.w $25A2 : STA.w $25AE +LDA.w #$004E : STA.w $25A4 : STA.w $25B0 +LDA.w #$004F : STA.w $25A6 : STA.w $25B2 +LDA.w #$00D9 : STA.w $25A8 : STA.w $25B4 RTS } @@ -757,42 +757,42 @@ map55: ; Map21 LDA.l OverworldEventDataWRAM+$55 : BIT.w #$0010 : BNE + ; west bank tree PHA - LDA #$0364 : STA $2C12 - LDA #$0365 : STA $2C14 - LDA #$0366 : STA $2C16 - LDA #$0367 : STA $2C18 - LDA #$0368 : STA $2C92 - LDA #$0369 : STA $2C94 - LDA #$036A : STA $2C96 - LDA #$036B : STA $2C98 - LDA #$036E : STA $2D12 - LDA #$036F : STA $2D14 - LDA #$0370 : STA $2D16 - LDA #$0371 : STA $2D18 - LDA #$0375 : STA $2D92 - LDA #$0376 : STA $2D94 - LDA #$0377 : STA $2D96 - LDA #$0378 : STA $2D98 + LDA.w #$0364 : STA.w $2C12 + LDA.w #$0365 : STA.w $2C14 + LDA.w #$0366 : STA.w $2C16 + LDA.w #$0367 : STA.w $2C18 + LDA.w #$0368 : STA.w $2C92 + LDA.w #$0369 : STA.w $2C94 + LDA.w #$036A : STA.w $2C96 + LDA.w #$036B : STA.w $2C98 + LDA.w #$036E : STA.w $2D12 + LDA.w #$036F : STA.w $2D14 + LDA.w #$0370 : STA.w $2D16 + LDA.w #$0371 : STA.w $2D18 + LDA.w #$0375 : STA.w $2D92 + LDA.w #$0376 : STA.w $2D94 + LDA.w #$0377 : STA.w $2D96 + LDA.w #$0378 : STA.w $2D98 PLA + BIT.w #$0008 : BNE + ; east bank tree - LDA #$0364 : STA $26B4 - LDA #$0365 : STA $26B6 - LDA #$0366 : STA $26B8 - LDA #$0367 : STA $26BA - LDA #$0368 : STA $2734 - LDA #$0369 : STA $2736 - LDA #$036A : STA $2738 - LDA #$036B : STA $273A - LDA #$036E : STA $27B4 - LDA #$036F : STA $27B6 - LDA #$0370 : STA $27B8 - LDA #$0371 : STA $27BA - LDA #$0375 : STA $2834 - LDA #$0376 : STA $2836 - LDA #$0377 : STA $2838 - LDA #$0378 : STA $283A + LDA.w #$0364 : STA.w $26B4 + LDA.w #$0365 : STA.w $26B6 + LDA.w #$0366 : STA.w $26B8 + LDA.w #$0367 : STA.w $26BA + LDA.w #$0368 : STA.w $2734 + LDA.w #$0369 : STA.w $2736 + LDA.w #$036A : STA.w $2738 + LDA.w #$036B : STA.w $273A + LDA.w #$036E : STA.w $27B4 + LDA.w #$036F : STA.w $27B6 + LDA.w #$0370 : STA.w $27B8 + LDA.w #$0371 : STA.w $27BA + LDA.w #$0375 : STA.w $2834 + LDA.w #$0376 : STA.w $2836 + LDA.w #$0377 : STA.w $2838 + LDA.w #$0378 : STA.w $283A + RTS } @@ -800,87 +800,87 @@ LDA.l OverworldEventDataWRAM+$55 : BIT.w #$0010 : BNE + map56: ; Map22 { LDA.l OverworldEventDataWRAM+$56 : BIT.w #$0010 : BNE + - LDA #$0640 : STA $2604 - LDA #$0641 : STA $2606 - LDA #$0642 : STA $2608 - LDA #$0643 : STA $260A - LDA #$0644 : STA $260C - LDA #$0645 : STA $2684 - LDA #$0646 : STA $2686 - LDA #$0647 : STA $2688 - LDA #$0648 : STA $268A - LDA #$0649 : STA $268C - LDA #$064A : STA $2704 - LDA #$064B : STA $2706 - LDA #$064C : STA $2708 - LDA #$064D : STA $270A - LDA #$064E : STA $270C - LDA #$0662 : STA $2786 - LDA #$0663 : STA $2788 - LDA #$0653 : STA $278A + LDA.w #$0640 : STA.w $2604 + LDA.w #$0641 : STA.w $2606 + LDA.w #$0642 : STA.w $2608 + LDA.w #$0643 : STA.w $260A + LDA.w #$0644 : STA.w $260C + LDA.w #$0645 : STA.w $2684 + LDA.w #$0646 : STA.w $2686 + LDA.w #$0647 : STA.w $2688 + LDA.w #$0648 : STA.w $268A + LDA.w #$0649 : STA.w $268C + LDA.w #$064A : STA.w $2704 + LDA.w #$064B : STA.w $2706 + LDA.w #$064C : STA.w $2708 + LDA.w #$064D : STA.w $270A + LDA.w #$064E : STA.w $270C + LDA.w #$0662 : STA.w $2786 + LDA.w #$0663 : STA.w $2788 + LDA.w #$0653 : STA.w $278A + RTS } map58: ; Map24/Map25/Map32/Map33 { -LDA #$00AE : STA $242C : STA $38EA -LDA #$00AF : STA $242E : STA $38EC -LDA #$007E : STA $2430 : STA $38EE -LDA #$007F : STA $2432 : STA $38F0 -LDA #$00B0 : STA $24AC : STA $396A -LDA #$0014 : STA $24AE : STA $396C -LDA #$0015 : STA $24B0 : STA $396E -LDA #$00A8 : STA $24B2 : STA $3970 -LDA #$0089 : STA $252C : STA $39EA -LDA #$001C : STA $252E : STA $39EC -LDA #$001D : STA $2530 : STA $39EE -LDA #$0076 : STA $2532 : STA $39F0 -LDA #$00F1 : STA $25AC : STA $3A6A -LDA #$004E : STA $25AE : STA $3A6C -LDA #$004F : STA $25B0 : STA $3A6E -LDA #$00D9 : STA $25B2 : STA $3A70 +LDA.w #$00AE : STA.w $242C : STA.w $38EA +LDA.w #$00AF : STA.w $242E : STA.w $38EC +LDA.w #$007E : STA.w $2430 : STA.w $38EE +LDA.w #$007F : STA.w $2432 : STA.w $38F0 +LDA.w #$00B0 : STA.w $24AC : STA.w $396A +LDA.w #$0014 : STA.w $24AE : STA.w $396C +LDA.w #$0015 : STA.w $24B0 : STA.w $396E +LDA.w #$00A8 : STA.w $24B2 : STA.w $3970 +LDA.w #$0089 : STA.w $252C : STA.w $39EA +LDA.w #$001C : STA.w $252E : STA.w $39EC +LDA.w #$001D : STA.w $2530 : STA.w $39EE +LDA.w #$0076 : STA.w $2532 : STA.w $39F0 +LDA.w #$00F1 : STA.w $25AC : STA.w $3A6A +LDA.w #$004E : STA.w $25AE : STA.w $3A6C +LDA.w #$004F : STA.w $25B0 : STA.w $3A6E +LDA.w #$00D9 : STA.w $25B2 : STA.w $3A70 RTS } map5b: ; Map27/Map28/Map35/Map36 { ; east tree -LDA #$00AE : STA $344C -LDA #$00AF : STA $344E -LDA #$007E : STA $3450 -LDA #$007F : STA $3452 -LDA #$00B0 : STA $34CC -LDA #$0014 : STA $34CE -LDA #$0015 : STA $34D0 -LDA #$00A8 : STA $34D2 -LDA #$0089 : STA $354C -LDA #$001C : STA $354E -LDA #$001D : STA $3550 -LDA #$0076 : STA $3552 -LDA #$00F1 : STA $35CC -LDA #$004E : STA $35CE -LDA #$004F : STA $35D0 -LDA #$00D9 : STA $35D2 +LDA.w #$00AE : STA.w $344C +LDA.w #$00AF : STA.w $344E +LDA.w #$007E : STA.w $3450 +LDA.w #$007F : STA.w $3452 +LDA.w #$00B0 : STA.w $34CC +LDA.w #$0014 : STA.w $34CE +LDA.w #$0015 : STA.w $34D0 +LDA.w #$00A8 : STA.w $34D2 +LDA.w #$0089 : STA.w $354C +LDA.w #$001C : STA.w $354E +LDA.w #$001D : STA.w $3550 +LDA.w #$0076 : STA.w $3552 +LDA.w #$00F1 : STA.w $35CC +LDA.w #$004E : STA.w $35CE +LDA.w #$004F : STA.w $35D0 +LDA.w #$00D9 : STA.w $35D2 LDA.l OverworldEventDataWRAM+$5b : BIT.w #$0010 : BEQ + ; BEQ because tree is already colored ; west tree - LDA #$00AE : STA $342C - LDA #$00AF : STA $342E - LDA #$007E : STA $3430 - LDA #$007F : STA $3432 - LDA #$00B0 : STA $34AC - LDA #$0014 : STA $34AE - LDA #$0015 : STA $34B0 - LDA #$00A8 : STA $34B2 - LDA #$0089 : STA $352C - LDA #$001C : STA $352E - LDA #$001D : STA $3530 - LDA #$0076 : STA $3532 - LDA #$00F1 : STA $35AC - LDA #$004E : STA $35AE - LDA #$004F : STA $35B0 - LDA #$00D9 : STA $35B2 + LDA.w #$00AE : STA.w $342C + LDA.w #$00AF : STA.w $342E + LDA.w #$007E : STA.w $3430 + LDA.w #$007F : STA.w $3432 + LDA.w #$00B0 : STA.w $34AC + LDA.w #$0014 : STA.w $34AE + LDA.w #$0015 : STA.w $34B0 + LDA.w #$00A8 : STA.w $34B2 + LDA.w #$0089 : STA.w $352C + LDA.w #$001C : STA.w $352E + LDA.w #$001D : STA.w $3530 + LDA.w #$0076 : STA.w $3532 + LDA.w #$00F1 : STA.w $35AC + LDA.w #$004E : STA.w $35AE + LDA.w #$004F : STA.w $35B0 + LDA.w #$00D9 : STA.w $35B2 + RTS } @@ -888,71 +888,71 @@ LDA.l OverworldEventDataWRAM+$5b : BIT.w #$0010 : BEQ + ; BEQ because tree is al map5e: ; Map30/Map31/Map38/Map39 { ; non-bonk trees -LDA #$0000 : STA $3954 : STA $395A : STA $3C54 -LDA #$0001 : STA $3950 : STA $3956 : STA $3C50 -LDA #$0002 : STA $3952 : STA $3958 : STA $3C52 -LDA #$0006 : STA $3B4E -LDA #$0007 : STA $3B50 -LDA #$0009 : STA $3B54 -LDA #$000A : STA $39D4 -LDA #$000B : STA $39D0 : STA $39D6 -LDA #$000C : STA $39D2 -LDA #$000D : STA $39D8 -LDA #$0011 : STA $38D0 : STA $38D6 : STA $3BD0 -LDA #$0012 : STA $38D2 : STA $38D8 : STA $3BD2 -LDA #$0013 : STA $38D4 : STA $38DA : STA $3BD4 -LDA #$0014 : STA $3768 : STA $3A4E : STA $3A54 : STA $3B44 -LDA #$0015 : STA $376A : STA $3A50 : STA $3A56 : STA $3B46 -LDA #$0016 : STA $3A52 -LDA #$001C : STA $37E8 : STA $3ACE : STA $3AD4 : STA $3BC4 -LDA #$001D : STA $37EA : STA $3AD0 : STA $3AD6 : STA $3BC6 -LDA #$001E : STA $3AD2 -LDA #$0025 : STA $3CD2 -LDA #$0026 : STA $3852 : STA $3858 : STA $3B52 -LDA #$0031 : STA $3B56 -LDA #$004E : STA $3868 : STA $3C44 -LDA #$004F : STA $386A : STA $3C46 -LDA #$0076 : STA $37EC : STA $3AD8 : STA $3BC8 -LDA #$0078 : STA $3854 : STA $385A -LDA #$0079 : STA $385C -LDA #$007B : STA $38DC -LDA #$007C : STA $395C : STA $3C56 -LDA #$007E : STA $36EA : STA $3AC6 -LDA #$007F : STA $36EC : STA $3AC8 -LDA #$0082 : STA $39DA : STA $3CD4 -LDA #$0083 : STA $3CD0 -LDA #$0089 : STA $37E6 : STA $3ACC : STA $3BC2 -LDA #$0094 : STA $3BD6 -LDA #$00A8 : STA $376C : STA $3A58 : STA $3B48 -LDA #$00AE : STA $36E6 : STA $39CC : STA $3AC2 -LDA #$00AF : STA $36E8 : STA $39CE : STA $3AC4 -LDA #$00B0 : STA $3766 : STA $3A4C : STA $3B42 -LDA #$00B5 : STA $384E -LDA #$00B6 : STA $3850 : STA $3856 -LDA #$00B9 : STA $38CE -LDA #$00BE : STA $394E : STA $3C4E -LDA #$00D9 : STA $386C : STA $3B58 : STA $3C48 -LDA #$00DE : STA $3BCE -LDA #$00F1 : STA $3866 : STA $3B4C : STA $3C42 +LDA.w #$0000 : STA.w $3954 : STA.w $395A : STA.w $3C54 +LDA.w #$0001 : STA.w $3950 : STA.w $3956 : STA.w $3C50 +LDA.w #$0002 : STA.w $3952 : STA.w $3958 : STA.w $3C52 +LDA.w #$0006 : STA.w $3B4E +LDA.w #$0007 : STA.w $3B50 +LDA.w #$0009 : STA.w $3B54 +LDA.w #$000A : STA.w $39D4 +LDA.w #$000B : STA.w $39D0 : STA.w $39D6 +LDA.w #$000C : STA.w $39D2 +LDA.w #$000D : STA.w $39D8 +LDA.w #$0011 : STA.w $38D0 : STA.w $38D6 : STA.w $3BD0 +LDA.w #$0012 : STA.w $38D2 : STA.w $38D8 : STA.w $3BD2 +LDA.w #$0013 : STA.w $38D4 : STA.w $38DA : STA.w $3BD4 +LDA.w #$0014 : STA.w $3768 : STA.w $3A4E : STA.w $3A54 : STA.w $3B44 +LDA.w #$0015 : STA.w $376A : STA.w $3A50 : STA.w $3A56 : STA.w $3B46 +LDA.w #$0016 : STA.w $3A52 +LDA.w #$001C : STA.w $37E8 : STA.w $3ACE : STA.w $3AD4 : STA.w $3BC4 +LDA.w #$001D : STA.w $37EA : STA.w $3AD0 : STA.w $3AD6 : STA.w $3BC6 +LDA.w #$001E : STA.w $3AD2 +LDA.w #$0025 : STA.w $3CD2 +LDA.w #$0026 : STA.w $3852 : STA.w $3858 : STA.w $3B52 +LDA.w #$0031 : STA.w $3B56 +LDA.w #$004E : STA.w $3868 : STA.w $3C44 +LDA.w #$004F : STA.w $386A : STA.w $3C46 +LDA.w #$0076 : STA.w $37EC : STA.w $3AD8 : STA.w $3BC8 +LDA.w #$0078 : STA.w $3854 : STA.w $385A +LDA.w #$0079 : STA.w $385C +LDA.w #$007B : STA.w $38DC +LDA.w #$007C : STA.w $395C : STA.w $3C56 +LDA.w #$007E : STA.w $36EA : STA.w $3AC6 +LDA.w #$007F : STA.w $36EC : STA.w $3AC8 +LDA.w #$0082 : STA.w $39DA : STA.w $3CD4 +LDA.w #$0083 : STA.w $3CD0 +LDA.w #$0089 : STA.w $37E6 : STA.w $3ACC : STA.w $3BC2 +LDA.w #$0094 : STA.w $3BD6 +LDA.w #$00A8 : STA.w $376C : STA.w $3A58 : STA.w $3B48 +LDA.w #$00AE : STA.w $36E6 : STA.w $39CC : STA.w $3AC2 +LDA.w #$00AF : STA.w $36E8 : STA.w $39CE : STA.w $3AC4 +LDA.w #$00B0 : STA.w $3766 : STA.w $3A4C : STA.w $3B42 +LDA.w #$00B5 : STA.w $384E +LDA.w #$00B6 : STA.w $3850 : STA.w $3856 +LDA.w #$00B9 : STA.w $38CE +LDA.w #$00BE : STA.w $394E : STA.w $3C4E +LDA.w #$00D9 : STA.w $386C : STA.w $3B58 : STA.w $3C48 +LDA.w #$00DE : STA.w $3BCE +LDA.w #$00F1 : STA.w $3866 : STA.w $3B4C : STA.w $3C42 LDA.l OverworldEventDataWRAM+$5e : BIT.w #$0010 : BEQ + ; BEQ because tree is already colored ; bonk tree - LDA #$00AE : STA $375E - LDA #$00AF : STA $3760 - LDA #$007E : STA $3762 - LDA #$007F : STA $3764 - LDA #$00B0 : STA $37DE - LDA #$0014 : STA $37E0 - LDA #$0015 : STA $37E2 - LDA #$00A8 : STA $37E4 - LDA #$0089 : STA $385E - LDA #$001C : STA $3860 - LDA #$001D : STA $3862 - LDA #$0076 : STA $3864 - LDA #$00F1 : STA $38DE - LDA #$004E : STA $38E0 - LDA #$004F : STA $38E2 - LDA #$00D9 : STA $38E4 + LDA.w #$00AE : STA.w $375E + LDA.w #$00AF : STA.w $3760 + LDA.w #$007E : STA.w $3762 + LDA.w #$007F : STA.w $3764 + LDA.w #$00B0 : STA.w $37DE + LDA.w #$0014 : STA.w $37E0 + LDA.w #$0015 : STA.w $37E2 + LDA.w #$00A8 : STA.w $37E4 + LDA.w #$0089 : STA.w $385E + LDA.w #$001C : STA.w $3860 + LDA.w #$001D : STA.w $3862 + LDA.w #$0076 : STA.w $3864 + LDA.w #$00F1 : STA.w $38DE + LDA.w #$004E : STA.w $38E0 + LDA.w #$004F : STA.w $38E2 + LDA.w #$00D9 : STA.w $38E4 + RTS } @@ -962,63 +962,63 @@ map6e: ; Map46 LDA.l OverworldEventDataWRAM+$6e : BIT.w #$0010 : BNE + ; tree 2 PHA - LDA #$0364 : STA $2396 - LDA #$0365 : STA $2398 - LDA #$0366 : STA $239A - LDA #$0367 : STA $239C - LDA #$0368 : STA $2416 - LDA #$0369 : STA $2418 - LDA #$036A : STA $241A - LDA #$036B : STA $241C - LDA #$036E : STA $2496 - LDA #$036F : STA $2498 - LDA #$0370 : STA $249A - LDA #$0371 : STA $249C - LDA #$0375 : STA $2516 - LDA #$0376 : STA $2518 - LDA #$0377 : STA $251A - LDA #$0378 : STA $251C + LDA.w #$0364 : STA.w $2396 + LDA.w #$0365 : STA.w $2398 + LDA.w #$0366 : STA.w $239A + LDA.w #$0367 : STA.w $239C + LDA.w #$0368 : STA.w $2416 + LDA.w #$0369 : STA.w $2418 + LDA.w #$036A : STA.w $241A + LDA.w #$036B : STA.w $241C + LDA.w #$036E : STA.w $2496 + LDA.w #$036F : STA.w $2498 + LDA.w #$0370 : STA.w $249A + LDA.w #$0371 : STA.w $249C + LDA.w #$0375 : STA.w $2516 + LDA.w #$0376 : STA.w $2518 + LDA.w #$0377 : STA.w $251A + LDA.w #$0378 : STA.w $251C PLA + BIT.w #$0008 : BNE + ; tree 3 PHA - LDA #$0364 : STA $241E - LDA #$0365 : STA $2420 - LDA #$0366 : STA $2422 - LDA #$0367 : STA $2424 - LDA #$0368 : STA $249E - LDA #$0369 : STA $24A0 - LDA #$036A : STA $24A2 - LDA #$036B : STA $24A4 - LDA #$036E : STA $251E - LDA #$036F : STA $2520 - LDA #$0370 : STA $2522 - LDA #$0371 : STA $2524 - LDA #$0375 : STA $259E - LDA #$0376 : STA $25A0 - LDA #$0377 : STA $25A2 - LDA #$0378 : STA $25A4 + LDA.w #$0364 : STA.w $241E + LDA.w #$0365 : STA.w $2420 + LDA.w #$0366 : STA.w $2422 + LDA.w #$0367 : STA.w $2424 + LDA.w #$0368 : STA.w $249E + LDA.w #$0369 : STA.w $24A0 + LDA.w #$036A : STA.w $24A2 + LDA.w #$036B : STA.w $24A4 + LDA.w #$036E : STA.w $251E + LDA.w #$036F : STA.w $2520 + LDA.w #$0370 : STA.w $2522 + LDA.w #$0371 : STA.w $2524 + LDA.w #$0375 : STA.w $259E + LDA.w #$0376 : STA.w $25A0 + LDA.w #$0377 : STA.w $25A2 + LDA.w #$0378 : STA.w $25A4 PLA + BIT.w #$0004 : BNE + ; tree 4 - LDA #$0364 : STA $24A6 - LDA #$0365 : STA $24A8 - LDA #$0366 : STA $24AA - LDA #$0367 : STA $24AC - LDA #$0368 : STA $2526 - LDA #$0369 : STA $2528 - LDA #$036A : STA $252A - LDA #$036B : STA $252C - LDA #$036E : STA $25A6 - LDA #$036F : STA $25A8 - LDA #$0370 : STA $25AA - LDA #$0371 : STA $25AC - LDA #$0375 : STA $2626 - LDA #$0376 : STA $2628 - LDA #$0377 : STA $262A - LDA #$0378 : STA $262C + LDA.w #$0364 : STA.w $24A6 + LDA.w #$0365 : STA.w $24A8 + LDA.w #$0366 : STA.w $24AA + LDA.w #$0367 : STA.w $24AC + LDA.w #$0368 : STA.w $2526 + LDA.w #$0369 : STA.w $2528 + LDA.w #$036A : STA.w $252A + LDA.w #$036B : STA.w $252C + LDA.w #$036E : STA.w $25A6 + LDA.w #$036F : STA.w $25A8 + LDA.w #$0370 : STA.w $25AA + LDA.w #$0371 : STA.w $25AC + LDA.w #$0375 : STA.w $2626 + LDA.w #$0376 : STA.w $2628 + LDA.w #$0377 : STA.w $262A + LDA.w #$0378 : STA.w $262C + RTS } diff --git a/bookofmudora.asm b/bookofmudora.asm index 3e7be7c..32389dd 100644 --- a/bookofmudora.asm +++ b/bookofmudora.asm @@ -54,27 +54,26 @@ GiveBonkItem: LDA.w SprItemMWPlayer, X : STA.l !MULTIWORLD_ITEM_PLAYER_ID LDA.w SprItemReceipt, X JSR AbsorbKeyCheck : BCC .notKey - .key - PHY : LDY.b #$24 : JSL AddInventory : PLY ; do inventory processing for a small key - LDA.l CurrentSmallKeys : INC A : STA.l CurrentSmallKeys - LDA.b #$2F : JSL Sound_SetSfx3PanLong - INC.w UpdateHUDFlag -RTL - .notKey + PHY : LDY.b #$24 : JSL AddInventory : PLY ; do inventory processing for a small key + LDA.l CurrentSmallKeys : INC A : STA.l CurrentSmallKeys + LDA.b #$2F : JSL Sound_SetSfx3PanLong + INC.w UpdateHUDFlag + RTL + .notKey PHY : TAY : JSL Link_ReceiveItem : PLY RTL ;-------------------------------------------------------------------------------- LoadBonkItem: - LDA.b RoomIndex ; check room ID - only bonk keys in 2 rooms so we're just checking the lower byte - CMP.b #$73 : BNE + ; Desert Bonk Key - LDA.l BonkKey_Desert - BRA ++ - + : CMP.b #$8C : BNE + ; GTower Bonk Key - LDA.l BonkKey_GTower - BRA ++ - + - LDA.b #$24 ; default to small key - ++ + LDA.b RoomIndex ; check room ID - only bonk keys in 2 rooms so we're just checking the lower byte + CMP.b #$73 : BNE + ; Desert Bonk Key + LDA.l BonkKey_Desert + BRA ++ + + : CMP.b #$8C : BNE + ; GTower Bonk Key + LDA.l BonkKey_GTower + BRA ++ + + + LDA.b #$24 ; default to small key +++ RTS ;-------------------------------------------------------------------------------- LoadBonkItem_Player: @@ -86,8 +85,8 @@ LoadBonkItem_Player: LDA.l BonkKey_GTower_Player BRA ++ + - LDA.b #$00 - ++ + LDA.b #$00 +++ RTS ;-------------------------------------------------------------------------------- AbsorbKeyCheck: diff --git a/bugfixes.asm b/bugfixes.asm index 0b34dc3..8f678ba 100644 --- a/bugfixes.asm +++ b/bugfixes.asm @@ -193,7 +193,7 @@ RTL ;-------------------------------------------------------------------------------- ; Fix losing VRAM gfx when using quake PostNMIUpdateBGCharHalf: - STA.w MDMAEN : SEP #$10 ; what we wrote over + STA.w DMAENABLE : SEP #$10 ; what we wrote over LDA.w VRAMTileMapIndex : CMP.b #$46 : BNE .return ; checks to see if this is the last VRAM write LDA.b LinkState : CMP.b #$08 : BCC + : CMP.b #$0A+1 : BCS + ; skip if we're mid-medallion RTL @@ -259,7 +259,7 @@ ParadoxCaveGfxFix: CPX.w #$1E00 : BEQ .uploadLine .uploadLine - LDA.b #$01 : STA.w MDMAEN + LDA.b #$01 : STA.w DMAENABLE .skipLine RTL @@ -270,7 +270,7 @@ ParadoxCaveGfxFix: BRA .uploadLine ;-------------------------------------------------------------------------------- SetItemRiseTimer: - LDA.w ItemReceiptMethod : CMP #$01 : BNE .not_from_chest + LDA.w ItemReceiptMethod : CMP.b #$01 : BNE .not_from_chest LDA.b #$38 : STA.w AncillaTimer, X RTL .not_from_chest diff --git a/darkworldspawn.asm b/darkworldspawn.asm index 1423350..0b0cdca 100644 --- a/darkworldspawn.asm +++ b/darkworldspawn.asm @@ -41,7 +41,7 @@ SetDeathWorldChecked: LDA.w DungeonID : CMP.b #$FF : BNE .dungeon LDA.b RoomIndex : ORA.b RoomIndex+1 : BNE ++ LDA.l GanonPyramidRespawn : BNE .pyramid ; if flag is set, force respawn at pyramid on death to ganon - ++ + ++ .outdoors JMP DoWorldFix diff --git a/decompresseditemgraphics.asm b/decompresseditemgraphics.asm index 7adfb2a..c3dca13 100644 --- a/decompresseditemgraphics.asm +++ b/decompresseditemgraphics.asm @@ -142,13 +142,13 @@ TransferItemToVRAM: STA.w $2116 LDX.b #$01 - STX.w $420B + STX.w DMAENABLE ADC.w #$0100 STA.w $2116 INX - STX.w $420B + STX.w DMAENABLE STZ.w ItemGFXPtr STZ.w ItemGFXTarget diff --git a/decryption.asm b/decryption.asm index 5bb3632..b3b3eb2 100644 --- a/decryption.asm +++ b/decryption.asm @@ -24,10 +24,10 @@ RetrieveValueFromEncryptedTable: LDY.b Scrap0A : PHY : LDY.b Scrap0C : PHY : LDY.b Scrap0E : PHY AND.w #$FFF8 : TAY - LDA.b [$00], Y : STA.l CryptoBuffer : INY #2 - LDA.b [$00], Y : STA.l CryptoBuffer+2 : INY #2 - LDA.b [$00], Y : STA.l CryptoBuffer+4 : INY #2 - LDA.b [$00], Y : STA.l CryptoBuffer+6 + LDA.b [Scrap00], Y : STA.l CryptoBuffer : INY #2 + LDA.b [Scrap00], Y : STA.l CryptoBuffer+2 : INY #2 + LDA.b [Scrap00], Y : STA.l CryptoBuffer+4 : INY #2 + LDA.b [Scrap00], Y : STA.l CryptoBuffer+6 LDA.w #$0002 : STA.b Scrap04 ;set block size diff --git a/dialog.asm b/dialog.asm index 62c09fa..4ec50c3 100644 --- a/dialog.asm +++ b/dialog.asm @@ -21,7 +21,7 @@ macro LoadDialogAddress(address) PHB : PHK : PLB SEP #$20 ; set 8-bit accumulator REP #$10 ; set 16-bit index registers - PEI.b ($00) + PEI.b (Scrap00) LDA.b Scrap02 : PHA STZ.w TextID : STZ.w TextID+1 ; reset decompression buffer LDA.b #$01 : STA.l AltTextFlag ; set flag @@ -44,7 +44,7 @@ endmacro macro CopyDialogIndirect() REP #$20 : LDA.l DialogOffsetPointer : TAX : LDY.w #$0000 : SEP #$20 ; copy 2-byte offset pointer to X and set Y to 0 ?loop: - LDA.b [$00], Y ; load the next character from the pointer + LDA.b [Scrap00], Y ; load the next character from the pointer STA.l DialogBuffer, X ; write to the buffer INX : INY CMP.b #$7F : BNE ?loop @@ -149,7 +149,7 @@ FreeDungeonItemNotice: .self_notice SEP #$20 %CopyDialog(Notice_Self) - JMP.w .done + JMP .done + SEP #$20 LDA.w ScratchBufferNV+1 @@ -251,7 +251,7 @@ DialogFairyThrow: ORA.l BottleContentsTwo : ORA.l BottleContentsThree : ORA.l BottleContentsFour : BNE .normal .noInventory - LDA.w SpriteActivity, X : !ADD #$08 : STA.w SpriteActivity, X + LDA.w SpriteActivity, X : !ADD.b #$08 : STA.w SpriteActivity, X LDA.b #$51 LDY.b #$01 RTL diff --git a/doorrando/doorrando.asm b/doorrando/doorrando.asm index 08bdccd..c0ab7db 100644 --- a/doorrando/doorrando.asm +++ b/doorrando/doorrando.asm @@ -1,9 +1,3 @@ -!add = "clc : adc" -!addl = "clc : adc.l" -!sub = "sec : sbc" -!bge = "bcs" -!blt = "bcc" - ; Free RAM notes ; Normal doors use $AB-AC for scrolling indicator ; Normal doors use $FE to store the trap door indicator diff --git a/doorrando/drhooks.asm b/doorrando/drhooks.asm index a6c0bc1..e37bc5e 100644 --- a/doorrando/drhooks.asm +++ b/doorrando/drhooks.asm @@ -188,7 +188,7 @@ Main_ShowTextMessage: ; Conditionally disable UW music changes in Door Rando org $828ADB ; <- Bank02.asm:2088-2095 (LDX.b #$14 : LDA $A0 ...) -JSL Underworld_DoorDown_Entry : CPX #$FF +JSL Underworld_DoorDown_Entry : CPX.b #$FF BEQ + : db $80, $1C ; BRA $028B04 NOP #6 : + diff --git a/doorrando/edges.asm b/doorrando/edges.asm index 6016b93..01cd2b1 100644 --- a/doorrando/edges.asm +++ b/doorrando/edges.asm @@ -5,8 +5,8 @@ HorzEdge: cpy.b #$ff : beq + jsr DetectWestEdge : ldy.b #$02 : bra ++ + jsr DetectEastEdge - ++ cmp #$ff : beq + - sta.b Scrap00 : asl : !add.b Scrap00 : tax + ++ cmp.b #$ff : beq + + sta.b Scrap00 : asl : !ADD.b Scrap00 : tax cpy.b #$ff : beq ++ jsr LoadWestData : bra .main ++ jsr LoadEastData @@ -20,7 +20,7 @@ VertEdge: jsr DetectNorthEdge : bra ++ + jsr DetectSouthEdge ++ cmp.b #$ff : beq + - sta.b Scrap00 : asl : !add.b Scrap00 : tax + sta.b Scrap00 : asl : !ADD.b Scrap00 : tax cpy.b #$ff : beq ++ jsr LoadNorthData : bra .main ++ jsr LoadSouthData @@ -32,8 +32,8 @@ VertEdge: LoadEdgeRoomHorz: lda.b Scrap03 : sta.b RoomIndex sty.b Scrap06 - and.b #$0f : asl a : !sub.b LinkPosX+1 : !add.b Scrap06 : sta.b Scrap02 - ldy #$00 : jsr ShiftVariablesMainDir + and.b #$0f : asl a : !SUB.b LinkPosX+1 : !ADD.b Scrap06 : sta.b Scrap02 + ldy.b #$00 : jsr ShiftVariablesMainDir lda.b Scrap04 : and.b #$80 : bne .edge lda.b Scrap04 : sta.b Scrap01 ; load up flags in $01 @@ -54,7 +54,7 @@ LoadEdgeRoomHorz: LoadEdgeRoomVert: lda.b Scrap03 : sta.b RoomIndex sty.b Scrap06 - and.b #$f0 : lsr #3 : !sub.b LinkPosY+1 : !add.b Scrap06 : sta.b Scrap02 + and.b #$f0 : lsr #3 : !SUB.b LinkPosY+1 : !ADD.b Scrap06 : sta.b Scrap02 lda.b Scrap04 : and.b #$80 : bne .edge lda.b Scrap04 : sta.b Scrap01 ; load up flags in $01 @@ -99,7 +99,7 @@ MathStart: rts MathMid: - and.w #$01ff : !sub.b Scrap00 : and.w #$00ff : sta.b Scrap00 + and.w #$01ff : !SUB.b Scrap00 : and.w #$00ff : sta.b Scrap00 ; nothing should be bigger than $a0 at this point lda.b Scrap05 : and.w #$00f0 : lsr #4 : tax @@ -118,7 +118,7 @@ MathMid: MathEnd: beq + lda.w #$0100 - + !add.b Scrap02 : !add.b Scrap00 + + !ADD.b Scrap02 : !ADD.b Scrap00 sta.b Scrap04 sep #$30 rts @@ -137,7 +137,7 @@ LoadNorthData: rts LoadSouthMidpoint: - and.b #$0f : sta.b Scrap00 : asl : !add.b Scrap00 : tax + and.b #$0f : sta.b Scrap00 : asl : !ADD.b Scrap00 : tax lda.w SouthEdgeInfo, x : sta.b Scrap0A ; needed now, and for nrml transition rts @@ -153,7 +153,7 @@ LoadSouthData: rts LoadNorthMidpoint: - and.b #$0f : sta.b Scrap00 : asl : !add.b Scrap00 : tax + and.b #$0f : sta.b Scrap00 : asl : !ADD.b Scrap00 : tax lda.w NorthEdgeInfo, x : sta.b Scrap0A ; needed now, and for nrml transition rts @@ -169,7 +169,7 @@ LoadWestData: rts LoadEastMidpoint: - and.b #$0f : sta.b Scrap00 : asl : !add.b Scrap00 : tax + and.b #$0f : sta.b Scrap00 : asl : !ADD.b Scrap00 : tax lda.w EastEdgeInfo, x : sta.b Scrap0A ; needed now, and for nrml transition rts @@ -185,7 +185,7 @@ LoadEastData: LoadWestMidpoint: - and.b #$0f : sta.b Scrap00 : asl : !add.b Scrap00 : tax + and.b #$0f : sta.b Scrap00 : asl : !ADD.b Scrap00 : tax lda.w WestEdgeInfo, x : sta.b Scrap0A ; needed now, and for nrml transition rts @@ -289,7 +289,7 @@ DetectEastEdge: ldx.b #$04 : bra .end ++ ldx.b #$03 : bra .end + cmp.b #$84 : bne + - ldx #$05 : bra .end + ldx.b #$05 : bra .end + cmp.b #$cb : bne + lda.b LinkQuadrantV : beq ++ ldx.b #$06 : bra .end diff --git a/doorrando/entrance_fixes.asm b/doorrando/entrance_fixes.asm index 8bab17c..2381221 100644 --- a/doorrando/entrance_fixes.asm +++ b/doorrando/entrance_fixes.asm @@ -46,7 +46,7 @@ pullpc ;=================================================================================================== StoreDoorInfo: STA.w $1980,X - LDA.b $00 : STA.w $19F0,X + LDA.b Scrap00 : STA.w $19F0,X TXA RTL diff --git a/doorrando/gfx.asm b/doorrando/gfx.asm index 483da5c..26bf910 100644 --- a/doorrando/gfx.asm +++ b/doorrando/gfx.asm @@ -86,7 +86,7 @@ CgramAuxToMain: ; ripped this from bank02 because it ended with rts OverridePaletteHeader: lda.l DRMode : cmp.b #$02 : bne + lda.l DRFlags : and.b #$20 : bne + - cpx.w #$01c2 : !bge + + cpx.w #$01c2 : !BGE + rep #$20 txa : lsr : tax lda.l PaletteTable, x diff --git a/doorrando/hudadditions.asm b/doorrando/hudadditions.asm index 1995bea..134ba28 100644 --- a/doorrando/hudadditions.asm +++ b/doorrando/hudadditions.asm @@ -124,7 +124,7 @@ DrHudDungeonItemsAdditions: sta.w $1644 : sta.w $164a : sta.w $1652 : sta.w $1662 : sta.w $1684 : sta.w $16c4 ldx.w #$0000 - sta.w $1704, x : sta.w $170e, x : sta.w $1718, x - inx #2 : cpx.w #$0008 : !blt - + inx #2 : cpx.w #$0008 : !BLT - lda.l HudFlag : and.w #$0020 : beq + : JMP ++ : + lda.l HUDDungeonItems : and.w #$0007 : bne + : JMP ++ : + @@ -136,7 +136,7 @@ DrHudDungeonItemsAdditions: lda.w #$24f5 : sta.w $1724 ldx.w #$0002 - - lda.w #$0000 : !addl RowOffsets,x : !addl ColumnOffsets, x : tay + - lda.w #$0000 : !ADD.l RowOffsets,x : !ADD.l ColumnOffsets, x : tay lda.l DungeonReminderTable, x : sta.w $1644, y : iny #2 lda.w #$24f5 : sta.w $1644, y lda.l MapField : and.l DungeonMask, x : beq + ; must have map @@ -146,7 +146,7 @@ DrHudDungeonItemsAdditions: .smallKey + iny #2 cpx.w #$001a : bne + - tya : !add.w #$003c : tay + tya : !ADD.w #$003c : tay + stx.b Scrap00 txa : lsr : tax lda.w #$24f5 : sta.w $1644, y @@ -158,7 +158,7 @@ DrHudDungeonItemsAdditions: lda.l MapField : and.l DungeonMask, x : beq + ; must have map plx : sep #$30 : lda.l ChestKeys, x : sta.b Scrap02 lda.l GenericKeys : bne +++ - lda.b Scrap02 : !sub.l DungeonCollectedKeys, x : sta.b Scrap02 + lda.b Scrap02 : !SUB.l DungeonCollectedKeys, x : sta.b Scrap02 +++ lda.b Scrap02 rep #$30 jsr ConvertToDisplay2 : sta.w $1644, y ; small key totals @@ -180,7 +180,7 @@ DrHudDungeonItemsAdditions: sta.w $160a : sta.w $1614 : sta.w $161e ; blank out sm key indicators ldx.w #$0002 - lda.w #$0000 ; start of hud area - !addl RowOffsets, x : !addl ColumnOffsets, x : tay + !ADD.l RowOffsets, x : !ADD.l ColumnOffsets, x : tay lda.l DungeonReminderTable, x : sta.w $1644, y iny #2 lda.w #$24f5 : sta.w $1644, y ; blank out map spot @@ -188,10 +188,10 @@ DrHudDungeonItemsAdditions: JSR MapIndicatorShort : STA.w $1644, Y + iny #2 cpx.w #$001a : bne + - tya : !add.w #$003c : tay + tya : !ADD.w #$003c : tay + lda.l CompassField : and.l DungeonMask, x : beq + ; must have compass phx ; total chest counts - LDA.l CompassTotalsWRAM, x : !sub.l DungeonLocationsChecked, x + LDA.l CompassTotalsWRAM, x : !SUB.l DungeonLocationsChecked, x SEP #$30 : JSR HudHexToDec2DigitCopy : REP #$30 lda.b Scrap06 : jsr ConvertToDisplay2 : sta.w $1644, y : iny #2 lda.b Scrap07 : jsr ConvertToDisplay2 : sta.w $1644, y @@ -201,7 +201,7 @@ DrHudDungeonItemsAdditions: .skipBlanks iny #2 cpx.w #$001a : beq + lda.w #$24f5 : sta.w $1644, y ; blank out spot - + inx #2 : cpx.w #$001b : !bge ++ : JMP - + + inx #2 : cpx.w #$001b : !BGE ++ : JMP - ++ plp : ply : plx : rtl } @@ -244,15 +244,15 @@ BkStatus: +++ lda.w #$2826 : rts ; check mark ConvertToDisplay: - and.w #$00ff : cmp.w #$000a : !blt + - !add.w #$2553 : rts - + !add.w #$2490 : rts + and.w #$00ff : cmp.w #$000a : !BLT + + !ADD.w #$2553 : rts + + !ADD.w #$2490 : rts ConvertToDisplay2: and.w #$00ff : beq ++ - cmp.w #$000a : !blt + - !add.w #$2553 : rts ; 2580 with 258A as "A" for non transparent digits - + !add.w #$2816 : rts + cmp.w #$000a : !BLT + + !ADD.w #$2553 : rts ; 2580 with 258A as "A" for non transparent digits + + !ADD.w #$2816 : rts ++ lda.w #$2827 : rts ; 0/O for 0 or placeholder digit ;2483 CountAbsorbedKeys: diff --git a/doorrando/keydoors.asm b/doorrando/keydoors.asm index 8be4b06..2eb42b5 100644 --- a/doorrando/keydoors.asm +++ b/doorrando/keydoors.asm @@ -23,11 +23,11 @@ CheckIfDoorsOpen: { .nextDoor lda.b RoomIndex : asl : tax lda.w KeyDoorOffset, x : beq .skipDoor - asl : sty.b Scrap05 : !add.b Scrap05 : tax + asl : sty.b Scrap05 : !ADD.b Scrap05 : tax lda.w PairedDoorTable, x : beq .skipDoor sta.b Scrap02 : and.w #$00ff : asl a : tax lda.b Scrap02 : and.w #$ff00 : sta.b Scrap03 - lda RoomDataWRAM.l, X : and.w #$f000 : and.b Scrap03 : beq .skipDoor + lda.l RoomDataWRAM.l, X : and.w #$f000 : and.b Scrap03 : beq .skipDoor tyx : lda.w $068c : ora.l DungeonMask,x : sta.w $068c .skipDoor iny #2 : cpy.b Scrap00 : bne .nextDoor diff --git a/doorrando/math.asm b/doorrando/math.asm index a2ba83f..fabd76d 100644 --- a/doorrando/math.asm +++ b/doorrando/math.asm @@ -31,18 +31,18 @@ lda.b Scrap00 : bra .loop .done rts MultiBy3: -sta.b Scrap00 : asl : !add.b Scrap00 +sta.b Scrap00 : asl : !ADD.b Scrap00 rts MultiBy5: -sta.b Scrap00 : asl #2 : !add.b Scrap00 +sta.b Scrap00 : asl #2 : !ADD.b Scrap00 rts ;width of divison in x: rounds toward X/2 DivideBy2: sta.b Scrap00 lsr : bcc .done -sta.b Scrap02 : txa : lsr : cmp.b Scrap00 : !blt + +sta.b Scrap02 : txa : lsr : cmp.b Scrap00 : !BLT + lda.b Scrap02 : inc : bra .done + lda.b Scrap02 .done rts @@ -51,8 +51,8 @@ DivideBy3: sta.b Scrap00 ldx.w #$0000 lda.w #$0002 -.loop cmp.b Scrap00 : !bge .store - inx : !add.w #$0003 : bra .loop +.loop cmp.b Scrap00 : !BGE .store + inx : !ADD.w #$0003 : bra .loop .store txa rts @@ -60,7 +60,7 @@ DivideBy5: sta.b Scrap00 ldx.w #$0000 lda.w #$0003 -.loop cmp.b Scrap00 : !bge .store - inx : !add.w #$0005 : bra .loop +.loop cmp.b Scrap00 : !BGE .store + inx : !ADD.w #$0005 : bra .loop .store txa rts \ No newline at end of file diff --git a/doorrando/normal.asm b/doorrando/normal.asm index 3523f7a..b4359b6 100644 --- a/doorrando/normal.asm +++ b/doorrando/normal.asm @@ -3,7 +3,7 @@ WarpLeft: JSR CheckIfCave : BCS .end lda.b LinkPosY : ldx.b LinkQuadrantV jsr CalcIndex - !add.b #$06 : ldy.b #$01 ; offsets in A, Y + !ADD.b #$06 : ldy.b #$01 ; offsets in A, Y jsr LoadRoomHorz .end jsr Cleanup @@ -14,7 +14,7 @@ WarpRight: JSR CheckIfCave : BCS .end lda.b LinkPosY : ldx.b LinkQuadrantV jsr CalcIndex - !add.b #$12 : ldy.b #$ff ; offsets in A, Y + !ADD.b #$12 : ldy.b #$ff ; offsets in A, Y jsr LoadRoomHorz .end jsr Cleanup @@ -43,7 +43,7 @@ WarpDown: JSR CheckIfCave : BCS .end lda.b LinkPosX : ldx.b LinkQuadrantH jsr CalcIndex - !add.b #$0c : ldy.b #$ff ; offsets in A, Y + !ADD.b #$0c : ldy.b #$ff ; offsets in A, Y jsr LoadRoomVert %StonewallCheck($43) .end @@ -65,9 +65,9 @@ CheckLinkDoorL: + clc : rtl TrapDoorFixer: - lda.b $fe : and #$0038 : beq .end + lda.b $fe : and.w #$0038 : beq .end xba : asl #2 : sta.b Scrap00 - stz.w $0468 : lda.w $068c : ora.b Scrap00 : sta.w $068c + stz.w TrapDoorFlag : lda.w $068c : ora.b Scrap00 : sta.w $068c .end stz.b $fe ; clear our fe here because we don't need it anymore rts @@ -113,7 +113,7 @@ LoadRoomHorz: .gtg ;Good to Go! pla ; Throw away normal room (don't fill up the stack) - lda.b RoomIndex : and.b #$0F : asl a : !sub.b LinkPosX+1 : !add.b Scrap06 : sta.b Scrap02 + lda.b RoomIndex : and.b #$0F : asl a : !SUB.b LinkPosX+1 : !ADD.b Scrap06 : sta.b Scrap02 ldy.b #$00 : jsr ShiftVariablesMainDir lda.b Scrap01 : and.b #$80 : beq .normal @@ -146,7 +146,7 @@ LoadRoomVert: sta.b RoomIndex : bra .end ; Restore normal room, abort (straight staircases and open edges can get in this routine) .gtg ;Good to Go! pla ; Throw away normal room (don't fill up the stack) - lda.b RoomIndex : and.b #$F0 : lsr #3 : !sub.b LinkPosY+1 : !add.b Scrap06 : sta.b Scrap02 + lda.b RoomIndex : and.b #$F0 : lsr #3 : !SUB.b LinkPosY+1 : !ADD.b Scrap06 : sta.b Scrap02 lda.b Scrap01 : and.b #$80 : beq .notEdge ldy.b #$01 : jsr ShiftVariablesMainDir @@ -173,12 +173,12 @@ LoadRoomVert: LookupNewRoom: ; expects data offset to be in A { - rep #$30 : and #$00FF ;sanitize A reg (who knows what is in the high byte) + rep #$30 : and.w #$00FF ;sanitize A reg (who knows what is in the high byte) sta.b Scrap00 ; offset in 00 lda.b PreviousRoom : tax ; probably okay loading $a3 in the high byte lda.w DoorOffset,x : and.w #$00FF ;we only want the low byte - asl #3 : sta.b Scrap02 : !add.b Scrap02 : !add.b Scrap02 ;multiply by 24 (data size) - !add.b Scrap00 ; should now have the offset of the address I want to load + asl #3 : sta.b Scrap02 : !ADD.b Scrap02 : !ADD.b Scrap02 ;multiply by 24 (data size) + !ADD.b Scrap00 ; should now have the offset of the address I want to load tax : lda.w DoorTable,x : sta.b Scrap00 and.w #$00FF : sta.b RoomIndex ; assign new room sep #$30 @@ -190,14 +190,14 @@ LookupNewRoom: ; expects data offset to be in A ShiftVariablesMainDir: { lda.w CoordIndex,y : tax - lda.b LinkPosY+1,x : !add.b Scrap02 : sta.b LinkPosY+1,x ; coordinate update + lda.b LinkPosY+1,x : !ADD.b Scrap02 : sta.b LinkPosY+1,x ; coordinate update lda.w CameraIndex,y : tax - lda.b $e3,x : !add.b Scrap02 : sta.b $e3,x ; scroll register high byte + lda.b $e3,x : !ADD.b Scrap02 : sta.b $e3,x ; scroll register high byte lda.w CamQuadIndex,y : tax - lda.w $0605,x : !add.b Scrap02 : sta.w $0605,x ; high bytes of these guys - lda.w $0607,x : !add.b Scrap02 : sta.w $0607,x - lda.w $0601,x : !add.b Scrap02 : sta.w $0601,x - lda.w $0603,x : !add.b Scrap02 : sta.w $0603,x + lda.w $0605,x : !ADD.b Scrap02 : sta.w $0605,x ; high bytes of these guys + lda.w $0607,x : !ADD.b Scrap02 : sta.w $0607,x + lda.w $0601,x : !ADD.b Scrap02 : sta.w $0601,x + lda.w $0603,x : !ADD.b Scrap02 : sta.w $0603,x rts } @@ -232,10 +232,10 @@ PrepScrollToInroomStairs: inc.w $0603 : inc.w $0607 dec.w CameraScrollN+1 : dec.w CameraScrollS+1 + - lda.w InroomStairsY,y : !add.b #$20 : sta.b LinkPosY - !sub.b #$38 : sta.w $045e + lda.w InroomStairsY,y : !ADD.b #$20 : sta.b LinkPosY + !SUB.b #$38 : sta.w $045e lda.b Scrap01 : and.b #$40 : beq + - lda.b LinkPosY : !add.b #$20 : sta.b LinkPosY + lda.b LinkPosY : !ADD.b #$20 : sta.b LinkPosY stz.w $045f + dec.b LinkPosY+1 @@ -251,10 +251,10 @@ PrepScrollToInroomStairs: dec.w $0603 : dec.w $0607 inc.w CameraScrollN+1 : inc.w CameraScrollS+1 + - lda.w InroomStairsY,y : !sub.b #$20 : sta.b LinkPosY - !add.b #$38 : sta.w $045e + lda.w InroomStairsY,y : !SUB.b #$20 : sta.b LinkPosY + !ADD.b #$38 : sta.w $045e lda.b Scrap01 : and.b #$40 : beq + - lda.b LinkPosY : !sub.b #$20 : sta.b LinkPosY + lda.b LinkPosY : !SUB.b #$20 : sta.b LinkPosY stz.w $045f + inc.b LinkPosY+1 @@ -287,7 +287,7 @@ PrepScrollToNormal: stz.w $0476 + stz.b Scrap05 : lda.b #$78 : sta.b Scrap04 lda.b Scrap01 : and.b #$03 : beq .end - cmp.b #$02 : !bge + + cmp.b #$02 : !BGE + lda.b #$f8 : sta.b Scrap04 : bra .end + inc.b Scrap05 .end rts @@ -306,11 +306,11 @@ StraightStairsAdj: jsr GetTileAttribute : tax lda.b GameSubMode : cmp.b #$12 : beq .goingNorth lda.b PreviousRoom : cmp.b #$51 : bne ++ - rep #$20 : lda.w #$0018 : !add.b LinkPosY : sta.b LinkPosY : sep #$20 ; special fix for throne room + rep #$20 : lda.w #$0018 : !ADD.b LinkPosY : sta.b LinkPosY : sep #$20 ; special fix for throne room jsr GetTileAttribute : tax ++ lda.l StepAdjustmentDown, X : bra .end ; lda.b LinkLayer : beq .end -; rep #$20 : lda.w #$ffe0 : !add.b LinkPosY : sta.b LinkPosY : sep #$20 +; rep #$20 : lda.w #$ffe0 : !ADD.b LinkPosY : sta.b LinkPosY : sep #$20 .goingNorth cpx.b #$00 : bne ++ lda.b RoomIndex : cmp.b #$51 : bne ++ @@ -320,8 +320,8 @@ StraightStairsAdj: ++ lda.l StepAdjustmentUp, X .end pha : lda.w $0462 : and.b #$04 : bne ++ - pla : !add.b #$f6 : pha - ++ pla : !add.w $0464 : sta.w $0464 + pla : !ADD.b #$f6 : pha + ++ pla : !ADD.w $0464 : sta.w $0464 + rtl .toInroom lda.b #$32 : sta.w $0464 : stz.w $045e @@ -352,7 +352,7 @@ StraightStairsFix: { pha lda.l DRMode : bne + - pla : !add.b LinkPosY : sta.b LinkPosY : rtl ;what we wrote over + pla : !ADD.b LinkPosY : sta.b LinkPosY : rtl ;what we wrote over + pla : rtl } @@ -405,13 +405,13 @@ StraightStairsTrapDoor: pea.w $82802c jml ResetThenCacheRoomEntryProperties ; $10D71 .reset label of Bank02 .jslrtsreturn - lda.w $0468 : bne ++ + lda.w TrapDoorFlag : bne ++ lda.b RoomIndex : cmp.b #$ac : bne .animateTraps lda.w $0403 : and.b #$20 : bne .animateTraps lda.w $0403 : and.b #$10 : beq ++ .animateTraps lda.b #$05 : sta.b GameSubMode - inc.w $0468 : stz.w $068e : stz.w $0690 + inc.w TrapDoorFlag : stz.w TileMapDoorPos : stz.w DoorTimer ++ JML Underworld_SetBossOrSancMusicUponEntry_long + JML Dungeon_ApproachFixedColor ; what we wrote over } @@ -443,5 +443,6 @@ HandleSpecialDoorLanding: { PLA CMP.b #$34 : BNE + ; inroom stairs PHA : LDA.b #$26 : STA.w $045E : PLA - + RTL + + +RTL } diff --git a/doorrando/overrides.asm b/doorrando/overrides.asm index 07d999a..62c1415 100644 --- a/doorrando/overrides.asm +++ b/doorrando/overrides.asm @@ -36,7 +36,7 @@ BlockEraseFix: + rtl FixShopCode: - cpx.w #$0300 : !bge + + cpx.w #$0300 : !BGE + sta.l RoomDataWRAM[$00].l, x + rtl @@ -46,8 +46,8 @@ VitreousKeyReset: + JML SpritePrep_LoadProperties ; what we wrote over GuruguruFix: - lda.b RoomIndex : cmp.b #$df : !bge + - and.b #$0f : cmp.b #$0e : !blt + + lda.b RoomIndex : cmp.b #$df : !BGE + + and.b #$0f : cmp.b #$0e : !BLT + iny #2 + rtl diff --git a/doorrando/scroll.asm b/doorrando/scroll.asm index 0c09d3f..b551b20 100644 --- a/doorrando/scroll.asm +++ b/doorrando/scroll.asm @@ -12,7 +12,7 @@ AdjustTransition: .add jsr AdjustCamAdd : ply : bra .reset + lda.b $ab : and.w #$0200 : xba : tax lda.l OffsetTable,x : jsr AdjustCamAdd - lda.b $ab : !sub.w #$0008 : sta.b $ab + lda.b $ab : !SUB.w #$0008 : sta.b $ab ply : bra .done .reset ; clear the $ab variable so to not disturb intra-tile doors stz.b $ab @@ -22,11 +22,11 @@ AdjustTransition: } AdjustCamAdd: - !add.w $00E2,y : pha - and.w #$01ff : cmp.w #$0111 : !blt + - cmp.w #$01f8 : !bge ++ + !ADD.w $00E2,y : pha + and.w #$01ff : cmp.w #$0111 : !BLT + + cmp.w #$01f8 : !BGE ++ pla : and.w #$ff10 : pha : bra + - ++ pla : and.w #$ff00 : !add.w #$0100 : pha + ++ pla : and.w #$ff00 : !ADD.w #$0100 : pha + pla : sta.w $00E2,y : sta.w $00E0,y : rts ; expects target quad in $05 (either 0 or 1) and target pixel in $04, target room should be in $a0 @@ -45,22 +45,22 @@ ScrollY: ;change the Y offset variables rep #$30 lda.b Scrap00 : pha - lda.b BG2V : and #$01ff : sta.b Scrap02 + lda.b BG2V : and.w #$01ff : sta.b Scrap02 lda.b Scrap04 : jsr LimitYCamera : sta.b Scrap00 jsr CheckRoomLayoutY : bcc + - lda.b Scrap00 : cmp.w #$0080 : !bge ++ - cmp.w #$0010 : !blt .cmpSrll + lda.b Scrap00 : cmp.w #$0080 : !BGE ++ + cmp.w #$0010 : !BLT .cmpSrll lda.w #$0010 : bra .cmpSrll - ++ cmp.w #$0100 : !bge .cmpSrll + ++ cmp.w #$0100 : !BGE .cmpSrll lda.w #$0100 .cmpSrll sta.b Scrap00 ; figures out scroll amt + lda.b Scrap00 : cmp.b Scrap02 : bne + lda.w #$0000 : bra .next - + !blt + - !sub.b Scrap02 : inc.b Scrap0E : bra .next - + lda.b Scrap02 : !sub.b Scrap00 + + !BLT + + !SUB.b Scrap02 : inc.b Scrap0E : bra .next + + lda.b Scrap02 : !SUB.b Scrap00 .next sta.b $ab @@ -76,11 +76,11 @@ ScrollY: ;change the Y offset variables rts LimitYCamera: - cmp.w #$006c : !bge + + cmp.w #$006c : !BGE + lda.w #$0000 : bra .end - + cmp.w #$017d : !blt + + + cmp.w #$017d : !BLT + lda.w #$0110 : bra .end - + !sub.w #$006c + + !SUB.w #$006c .end rts CheckRoomLayoutY: @@ -88,7 +88,7 @@ CheckRoomLayoutY: cmp.b #$00 : beq .lock cmp.b #$07 : beq .free cmp.b #$01 : beq .free - cmp.b #$04 : !bge .lock + cmp.b #$04 : !BGE .lock cmp.b #$02 : bne + lda.b Scrap06 : cmp.b #$ff : beq .lock + cmp.b #$03 : bne .free @@ -100,26 +100,26 @@ AdjustCameraBoundsY: jsr CheckRoomLayoutY : bcc .free ; layouts that are camera locked (quads only) - lda.b Scrap04 : and.w #$00ff : cmp.w #$007d : !blt + + lda.b Scrap04 : and.w #$00ff : cmp.w #$007d : !BLT + lda.w #$0088 : bra ++ - + cmp.w #$006d : !bge + + + cmp.w #$006d : !BGE + lda.w #$0078 : bra ++ - + !add.w #$000b + + !ADD.w #$000b ; I think we no longer need the $02 variable - ++ sta.b Scrap02 : lda.b Scrap04 : and.w #$0100 : !add.b Scrap02 : bra .setBounds + ++ sta.b Scrap02 : lda.b Scrap04 : and.w #$0100 : !ADD.b Scrap02 : bra .setBounds ; layouts where the camera is free - .free lda.b Scrap04 : cmp.w #$006c : !bge + + .free lda.b Scrap04 : cmp.w #$006c : !BGE + lda.w #$0077 : bra .setBounds - + cmp.w #$017c : !blt + + + cmp.w #$017c : !BLT + lda.w #$0187 : bra .setBounds - + !add.w #$000b + + !ADD.w #$000b .setBounds sta.w $0618 : inc #2 : sta.w $061a rts LoadRoomLayout: - lda.b RoomIndex : asl : !add.b RoomIndex : tax + lda.b RoomIndex : asl : !ADD.b RoomIndex : tax lda.l RoomData_ObjectDataPointers+1, x : sta.b $b8 lda.l RoomData_ObjectDataPointers, x : sta.b $b7 sep #$30 @@ -144,7 +144,7 @@ ScrollX: ;change the X offset variables lda.b BG2H : and.w #$01ff : sta.b Scrap02 lda.b Scrap04 : jsr LimitXCamera : sta.b Scrap00 jsr CheckRoomLayoutX : bcc + - lda.b Scrap00 : cmp.w #$0080 : !bge ++ + lda.b Scrap00 : cmp.w #$0080 : !BGE ++ lda.w #$0000 : bra .cmpSrll ++ lda.w #$0100 .cmpSrll sta.b Scrap00 @@ -152,18 +152,18 @@ ScrollX: ;change the X offset variables ;figures out scroll amt + lda.b Scrap00 : cmp.b Scrap02 : bne + lda.w #$0000 : bra .next - + !blt + - !sub.b Scrap02 : inc.b Scrap0E : bra .next - + lda.b Scrap02 : !sub.b Scrap00 + + !BLT + + !SUB.b Scrap02 : inc.b Scrap0E : bra .next + + lda.b Scrap02 : !SUB.b Scrap00 .next sta.b $ab : lda.b Scrap04 - cmp.w #$0078 : !bge + + cmp.w #$0078 : !BGE + lda.w #$007f : bra ++ - + cmp.w #$0178 : !blt + + + cmp.w #$0178 : !BLT + lda.w #$017f : bra ++ - + !add.w #$0007 + + !ADD.w #$0007 ++ sta.w $061c : inc #2 : sta.w $061e pla : sta.b Scrap00 @@ -181,19 +181,19 @@ ScrollX: ;change the X offset variables rts LimitXCamera: - cmp.w #$0079 : !bge + + cmp.w #$0079 : !BGE + lda.w #$0000 : bra .end - + cmp.w #$0178 : !blt + + + cmp.w #$0178 : !BLT + lda.w #$0178 - + !sub.w #$0078 + + !SUB.w #$0078 .end rts CheckRoomLayoutX: jsr LoadRoomLayout ;switches to 8-bit - cmp.b #$04 : !blt .lock + cmp.b #$04 : !BLT .lock cmp.b #$05 : bne + lda.b Scrap06 : cmp.b #$ff : beq .lock - + cmp #$06 : bne .free + + cmp.b #$06 : bne .free lda.b Scrap06 : cmp.b #$ff : bne .lock .free rep #$30 : clc : rts .lock rep #$30 : sec : rts @@ -202,8 +202,8 @@ ApplyScroll: rep #$30 lda.b $ab : and.w #$01ff : sta.b Scrap00 lda.b $ab : and.w #$0200 : beq + - lda.w $00e2, y : !add.b Scrap00 : bra .end - + lda.w $00e2, y : !sub.b Scrap00 + lda.w $00e2, y : !ADD.b Scrap00 : bra .end + + lda.w $00e2, y : !SUB.b Scrap00 .end sta.w $00e2, y sta.w $00e0, y diff --git a/doorrando/spiral.asm b/doorrando/spiral.asm index 01c63e5..7a748f9 100644 --- a/doorrando/spiral.asm +++ b/doorrando/spiral.asm @@ -2,7 +2,7 @@ RecordStairType: { pha lda.l DRMode : beq .norm REP #$30 : LDA.b PreviousRoom : CMP.w #$00E1 : BCS .norm - CMP #$00DF : BEQ .norm + CMP.w #$00DF : BEQ .norm SEP #$30 lda.b Scrap0E cmp.b #$25 : bcc ++ ; don't record straight staircases @@ -38,42 +38,42 @@ SpiralWarp: { lda.b Scrap00 : sta.b RoomIndex ; shift quadrant if necessary stz.b Scrap07 ; this is a x quad adjuster for those blasted staircase on the edges - lda.b Scrap01 : and.b #$01 : !sub.b LinkQuadrantH + lda.b Scrap01 : and.b #$01 : !SUB.b LinkQuadrantH bne .xQuad lda.w $0462 : and.b #$04 : bne .xqCont inc.b Scrap07 .xqCont lda.b LinkPosX : bne .skipXQuad ; this is an edge case dec.b LinkPosX+1 : bra .skipXQuad ; need to -1 if $22 is 0 - .xQuad sta.b Scrap06 : !add.b LinkQuadrantH : sta.b LinkQuadrantH + .xQuad sta.b Scrap06 : !ADD.b LinkQuadrantH : sta.b LinkQuadrantH lda.w $0462 : and.b #$04 : bne .xCont inc.b Scrap07 ; up stairs are going to -1 the quad anyway during transition, need to add this back .xCont ldy.b #$00 : jsr ShiftQuadSimple .skipXQuad - lda.b LinkQuadrantV : lsr : sta.b Scrap06 : lda.b Scrap01 : and.b #$02 : lsr : !sub.b Scrap06 + lda.b LinkQuadrantV : lsr : sta.b Scrap06 : lda.b Scrap01 : and.b #$02 : lsr : !SUB.b Scrap06 beq .skipYQuad - sta.b Scrap06 : asl : !add.b LinkQuadrantV : sta.b LinkQuadrantV + sta.b Scrap06 : asl : !ADD.b LinkQuadrantV : sta.b LinkQuadrantV ldy.b #$01 : jsr ShiftQuadSimple .skipYQuad lda.b Scrap01 : and.b #$04 : lsr : sta.w $048a ;fix layer calc 0->0 2->1 lda.b Scrap01 : and.b #$08 : lsr #2 : sta.w $0492 ;fix from layer calc 0->0 2->1 ; shift lower coordinates - lda.b Scrap02 : sta.b LinkPosX : bne .adjY : lda.b LinkPosX+1 : !add.b Scrap07 : sta.b LinkPosX+1 + lda.b Scrap02 : sta.b LinkPosX : bne .adjY : lda.b LinkPosX+1 : !ADD.b Scrap07 : sta.b LinkPosX+1 .adjY lda.b Scrap03 : sta.b LinkPosY : bne .upDownAdj : inc.b LinkPosY+1 .upDownAdj ldx.b #$08 lda.w $0462 : and.b #$04 : beq .upStairs ldx.b #$fd lda.b Scrap01 : and.b #$80 : bne .set53 ; if target is also down adjust by (6,-15) - lda.b #$06 : !add.b LinkPosY : sta.b LinkPosY : lda.b #$eb : !add.b LinkPosX : sta.b LinkPosX : bra .set53 + lda.b #$06 : !ADD.b LinkPosY : sta.b LinkPosY : lda.b #$eb : !ADD.b LinkPosX : sta.b LinkPosX : bra .set53 .upStairs lda.b Scrap01 : and.b #$80 : beq .set53 ; if target is also up adjust by (-6, 14) - lda.b #$fa : !add.b LinkPosY : sta.b LinkPosY : lda.b #$14 : !add.b LinkPosX : sta.b LinkPosX + lda.b #$fa : !ADD.b LinkPosY : sta.b LinkPosY : lda.b #$14 : !ADD.b LinkPosX : sta.b LinkPosX bne .set53 : inc.b LinkPosX+1 .set53 - txa : !add.b LinkPosX : sta.b $53 + txa : !ADD.b LinkPosX : sta.b $53 lda.b Scrap01 : and.b #$10 : sta.b Scrap07 ; zeroHzCam check ldy.b #$00 : jsr SetCamera @@ -90,7 +90,7 @@ StairCleanup: { stz.w $045e ; clear the staircase flag ; animated tiles fix - lda.l DRMode : cmp #$02 : bne + ; only do this in crossed mode + lda.l DRMode : cmp.b #$02 : bne + ; only do this in crossed mode ldx.b RoomIndex : lda.l TilesetTable, x cmp.w $0aa1 : beq + ; already eq no need to decomp sta.w $0aa1 @@ -154,7 +154,7 @@ LookupSpiralOffset: { .done lda.b PreviousRoom : tax : lda.w SpiralOffset,x - !add.b Scrap01 ;add a thing (0 in easy case) + !ADD.b Scrap01 ;add a thing (0 in easy case) rts } @@ -202,7 +202,7 @@ InroomStairsWarp: { lda.w InroomStairsX,y : sta.b LinkPosX lda.w InroomStairsY,y ldy.b Scrap07 : beq + - !add #$07 + !ADD.b #$07 + sta.b LinkPosY inc.b Scrap07 @@ -228,7 +228,7 @@ InroomStairsWarp: { ++ sta.b LinkPosY inc.b Scrap07 : stz.b Scrap02 : lda.b #$78 : sta.b LinkPosX lda.b Scrap01 : and.b #$03 : beq ++ - cmp.b #$02 : !bge + + cmp.b #$02 : !BGE + lda.b #$f8 : sta.b LinkPosX : stz.b Scrap07 : bra ++ + inc.b Scrap02 ++ @@ -240,14 +240,14 @@ InroomStairsWarp: { stz.w $0476 + - lda.b Scrap02 : !sub.b LinkQuadrantH + lda.b Scrap02 : !SUB.b LinkQuadrantH beq .skipXQuad - sta.b Scrap06 : !add.b LinkQuadrantH : sta.b LinkQuadrantH + sta.b Scrap06 : !ADD.b LinkQuadrantH : sta.b LinkQuadrantH ldy.b #$00 : jsr ShiftQuadSimple .skipXQuad - lda.b LinkQuadrantV : lsr : sta.b Scrap06 : lda.b Scrap03 : !sub.b Scrap06 + lda.b LinkQuadrantV : lsr : sta.b Scrap06 : lda.b Scrap03 : !SUB.b Scrap06 beq .skipYQuad - sta.b Scrap06 : asl : !add.b LinkQuadrantV : sta.b LinkQuadrantV + sta.b Scrap06 : asl : !ADD.b LinkQuadrantV : sta.b LinkQuadrantV ldy.b #$01 : jsr ShiftQuadSimple .skipYQuad @@ -268,11 +268,11 @@ InroomStairsWarp: { ShiftQuadSimple: { lda.w CoordIndex,y : tax lda.b LinkPosY,x : beq .skip - lda.b LinkPosY+1,x : !add.b Scrap06 : sta.b LinkPosY+1,x ; coordinate update + lda.b LinkPosY+1,x : !ADD.b Scrap06 : sta.b LinkPosY+1,x ; coordinate update .skip lda.w CamQuadIndex,y : tax - lda.w $0601,x : !add.b Scrap06 : sta.w $0601,x - lda.w $0605,x : !add.b Scrap06 : sta.w $0605,x ; high bytes of these guys + lda.w $0601,x : !ADD.b Scrap06 : sta.w $0601,x + lda.w $0605,x : !ADD.b Scrap06 : sta.w $0605,x ; high bytes of these guys rts } @@ -288,8 +288,8 @@ SetCamera: { lda.w CoordIndex,y : tax lda.b LinkPosY,x : beq .oddQuad cmp.b #$79 : bcc .adj0 - !sub.b #$78 : sta.b Scrap04 - tya : asl : !add.b #$04 : tax : jsr AdjCamBounds : bra .done + !SUB.b #$78 : sta.b Scrap04 + tya : asl : !ADD.b #$04 : tax : jsr AdjCamBounds : bra .done .oddQuad lda.b #$80 : sta.b Scrap04 : bra .adj1 ; this is such a weird case - quad cross boundary .adj0 @@ -299,16 +299,16 @@ SetCamera: { lda.b Scrap07 : bne .setQuad lda.w CoordIndex,y : tax lda.b LinkPosY,x : cmp.b #$78 : bcs .setQuad - !add.b #$78 : sta.b Scrap04 + !ADD.b #$78 : sta.b Scrap04 lda.w CamQuadIndex,y : tax : lda.w $0603, x : pha lda.w CameraIndex,y : tax : pla : sta.b BG2H+1, x .adj1 - tya : asl : !add.b #$08 : tax : jsr AdjCamBounds : bra .done + tya : asl : !ADD.b #$08 : tax : jsr AdjCamBounds : bra .done .setQuad lda.w CamQuadIndex,y : tax : lda.w $0607, x : pha lda.w CameraIndex,y : tax : pla : sta.b BG2H+1, x - tya : asl : !add.b #$0c : tax : jsr AdjCamBounds : bra .done + tya : asl : !ADD.b #$0c : tax : jsr AdjCamBounds : bra .done .done lda.w CameraIndex,y : tax @@ -322,7 +322,7 @@ AdjCamBounds: { rep #$20 : lda.w CamBoundBaseLine, x : sta.b Scrap05 lda.b Scrap04 : and.w #$00ff : beq .common lda.w CoordIndex,y : tax - lda.b LinkPosY, x : and.w #$00ff : !add.b Scrap05 : sta.b Scrap05 + lda.b LinkPosY, x : and.w #$00ff : !ADD.b Scrap05 : sta.b Scrap05 .common lda.w OppCamBoundIndex,y : tax lda.b Scrap05 : sta.w CameraScrollN, x diff --git a/dungeondrops.asm b/dungeondrops.asm index 73ecd9f..b9a9cc8 100644 --- a/dungeondrops.asm +++ b/dungeondrops.asm @@ -103,7 +103,7 @@ SetCutsceneFlag: PHX LDY.b #$01 ; wrote over LDA.w DungeonID : BMI .no_cutscene - LDA.w RoomItemsTaken : BIT #$80 : BNE .dungeon_prize + LDA.w RoomItemsTaken : BIT.b #$80 : BNE .dungeon_prize .no_cutscene SEP #$30 PLX @@ -124,7 +124,7 @@ AnimatePrizeCutscene: LDA.w ItemReceiptMethod : CMP.b #$03 : BNE + JSR CrystalOrPendantBehavior : BCC + LDA.w DungeonID : BMI + - LDA.w RoomItemsTaken : BIT #$80 : BEQ + + LDA.w RoomItemsTaken : BIT.b #$80 : BEQ + SEC RTL + @@ -141,7 +141,7 @@ PrizeDropSparkle: RTL HandleDropSFX: - LDA.w RoomItemsTaken : BIT #$80 : BEQ .no_sound + LDA.w RoomItemsTaken : BIT.b #$80 : BEQ .no_sound JSR CrystalOrPendantBehavior : BCC .no_sound SEC RTL @@ -161,7 +161,7 @@ RTL MaybeKeepLootID: PHA LDA.w DungeonID : BMI .no_prize - LDA.w RoomItemsTaken : BIT #$80 : BNE .prize + LDA.w RoomItemsTaken : BIT.b #$80 : BNE .prize .no_prize STZ.w ItemReceiptID STZ.w ItemReceiptPose diff --git a/dungeonmap.asm b/dungeonmap.asm index 3eaa1aa..e366532 100644 --- a/dungeonmap.asm +++ b/dungeonmap.asm @@ -25,7 +25,7 @@ DoDungeonMapBossIcon: ; get first byte to make sure it isn't an empty room SEP #$20 - LDA.b [$00], Y + LDA.b [Scrap00], Y CMP.b #$FF BNE ++ @@ -34,7 +34,7 @@ DoDungeonMapBossIcon: ; check first sprite ++ INY #2 - LDA.b [$00], Y + LDA.b [Scrap00], Y SEP #$10 ; match boss id @@ -99,13 +99,13 @@ DoDungeonMapBossIcon: STA.w DAS1L LDX.b #$02 - STX.w MDMAEN + STX.w DMAENABLE STA.w DAS1L LDA.w #$A260>>1 STA.w VMADDL - STX.w MDMAEN + STX.w DMAENABLE ; done SEP #$30 diff --git a/enemizer/NMI.asm b/enemizer/NMI.asm index 4bf6912..8271f46 100644 --- a/enemizer/NMI.asm +++ b/enemizer/NMI.asm @@ -10,10 +10,10 @@ NMIHookActionEnemizer: LDA.l !SHELL_DMA_FLAG : BEQ .return ; check our draw flag AND.b #$01 : BNE .loadKholdstare - LDA.l !SHELL_DMA_FLAG : AND #$02 : BNE .loadTrinexx + LDA.l !SHELL_DMA_FLAG : AND.b #$02 : BNE .loadTrinexx BRA .return ; just in case - ;BIT #$01 : BEQ .loadKholdstare - ;BIT #$02 : BEQ .loadTrinexx + ;BIT.b #$01 : BEQ .loadKholdstare + ;BIT.b #$02 : BEQ .loadTrinexx .loadKholdstare JSL DMAKholdstare diff --git a/enemizer/blindboss.asm b/enemizer/blindboss.asm index b21ce60..9508cde 100644 --- a/enemizer/blindboss.asm +++ b/enemizer/blindboss.asm @@ -15,7 +15,7 @@ pullpc check_blind_boss_room: LDA.b RoomIndex ; load room index (low byte) - CMP.b #172 : BNE + ; Is is Thieves Town Boss Room + CMP.b #$AC : BNE + ; Is is Thieves Town Boss Room LDA.l !BLIND_DOOR_FLAG : BNE + ; Blind maiden does not need rescuing LDA.l FollowerIndicator : JML Check_for_Blind_Fight diff --git a/enemizer/bosses_moved.asm b/enemizer/bosses_moved.asm index 0c7f92a..4ccf041 100644 --- a/enemizer/bosses_moved.asm +++ b/enemizer/bosses_moved.asm @@ -57,10 +57,10 @@ boss_move: JSL Dungeon_ResetSprites ; Restore the dungeon_resetsprites ;Close the door if !BLIND_DOOR_FLAG == 1 LDA.l !BLIND_DOOR_FLAG : BEQ .no_blind_door - INC.w $0468 ; $0468[0x02] - Flag that is set when trap doors are down. - STZ.w $068E ; $068E[0x02] - (Dungeon) ???? related to trap doors and if they are open ; possibly bomb doors too? Update: module 0x07.0x4 probably uses this to know whether it's a key door or big key door to open. - STZ.w $0690 ; $0690[0x02] - (Overworld) Generally is used as an animation step indicator, only for doors that animate when they open, such as the Santuary and Hyrule Castle doors. This variable is incremented up to a value of 3, at which point a logic check kicks in and stops animating the opening of a door. - INC.w $0CF3 ; $0CF3[0x01] - free ram + INC.w TrapDoorFlag + STZ.w TileMapDoorPos + STZ.w DoorTimer + INC.w BossSpecialAction ; ;That must be called after the room load! .no_blind_door BRL .move_to_bottom_right diff --git a/enemizer/hooks/damage_hooks.asm b/enemizer/hooks/damage_hooks.asm index 2756622..8367623 100644 --- a/enemizer/hooks/damage_hooks.asm +++ b/enemizer/hooks/damage_hooks.asm @@ -1,6 +1,6 @@ org $8780CA ; Bank07.asm(179) JSL CheckIfLinkShouldDie : NOP : NOP : NOP -;SEC : SBC.b $00 : CMP #$00 : BEQ .linkIsDead ; Bank07.asm(179) - +;SEC : SBC.b Scrap00 : CMP.b #$00 : BEQ .linkIsDead ; Bank07.asm(179) - org $8780D1 BNE linkNotDead : NOP : NOP ; Bank07.asm(183) - CMP.b #$A8 : BCC .linkNotDead diff --git a/enemizer/hooks/moldorm_hooks.asm b/enemizer/hooks/moldorm_hooks.asm index ee98cec..44cf8f7 100644 --- a/enemizer/hooks/moldorm_hooks.asm +++ b/enemizer/hooks/moldorm_hooks.asm @@ -3,8 +3,8 @@ org $9DD88E { ; original: GiantMoldorm_Draw+5lines (sprite_giant_moldorm.asm) - ; lda.b $90 : add.w #$0008 : sta.b $90 - ; INC.b $92 : INC.b $92 + ; lda.b OAMPtr : add.w #$0008 : sta.b OAMPtr + ; INC.b OAMPtr+2 : INC.b OAMPtr+2 JSL Moldorm_UpdateOamPosition NOP #08 diff --git a/enemizer/hooks/overworld_sprite_hooks.asm b/enemizer/hooks/overworld_sprite_hooks.asm index 9ff555b..3c1122e 100644 --- a/enemizer/hooks/overworld_sprite_hooks.asm +++ b/enemizer/hooks/overworld_sprite_hooks.asm @@ -13,36 +13,36 @@ org $89C50B ; 0x4C50B } org $89C510 ; 0x4C510 -LDA.b [$00], Y ; replace LDA ($00), Y +LDA.b [Scrap00], Y ; replace LDA ($00), Y ; CMP.b #$FF : BEQ .stopLoading ; INY #2 org $89C518 ; 0x4C518 -LDA.b [$00], Y ; replace LDA ($00), Y +LDA.b [Scrap00], Y ; replace LDA ($00), Y ; DEY #2 : CMP.b #$F4 : BNE .notFallingRocks ; INC.w $0FFD ; INY #3 ; BRA .nextSprite ; .notFallingRocks ; Anything other than falling rocks. org $89C528 ; 0x4C528 -LDA.b [$00], Y ; replace LDA ($00), Y +LDA.b [Scrap00], Y ; replace LDA ($00), Y ; PHA : LSR #4 : ASL #2 : org $89C531 ; 0x4C531 STA.b Scrap0A ; STA.b $02 ; INY org $89C534 ; 0x4C534 -LDA.b [$00], Y ; replace LDA ($00), Y +LDA.b [Scrap00], Y ; replace LDA ($00), Y ; LSR #4 : CLC org $89C53B ; 0x4C53B ADC.b Scrap0A ; ADC.b $02 ; STA.b $06 ; PLA : ASL #4 : STA.b $07 org $89C546 ; 0x4C546 -LDA.b [$00], Y ; replace LDA ($00), Y +LDA.b [Scrap00], Y ; replace LDA ($00), Y ; AND.b #$0F : ORA.b $07 : STA.b $05 ; INY org $89C54F ; 0x4C54F -LDA.b [$00], Y ; replace LDA ($00), Y -; LDX.b $05 : INC A : STA.l $7FDF80, X +LDA.b [Scrap00], Y ; replace LDA ($00), Y +; LDX.b Scrap05 : INC A : STA.l $7FDF80, X ; ; $4C558- ; ; Move on to the next sprite / overlord. diff --git a/enemizer/hooks/underworld_sprite_hooks.asm b/enemizer/hooks/underworld_sprite_hooks.asm index 84b5e3d..e97c33a 100644 --- a/enemizer/hooks/underworld_sprite_hooks.asm +++ b/enemizer/hooks/underworld_sprite_hooks.asm @@ -6,25 +6,25 @@ JSL LoadUnderworldSprites : NOP ; also needs to change the use of $02 to $03 for slot index to make that possible org $89C2B2 -LDA.b [$00] +LDA.b [Scrap00] org $89C2C1 -LDA.b [$00],Y +LDA.b [Scrap00],Y org $89C2CA INC.b Scrap03 ; change slot variable to $03 ;org $09C329 standing items overwrote this one -;LDA.b [$00],Y +;LDA.b [Scrap00],Y org $89C332 -LDA.b [$00],Y +LDA.b [Scrap00],Y org $89C345 DEC.b Scrap03 : LDX.b Scrap03 org $89C350 -LDA.b [$00],Y +LDA.b [Scrap00],Y org $89C35A DEC.b Scrap03 @@ -36,31 +36,31 @@ org $89C383 LDX.b Scrap03 org $89C38C -LDA.b [$00],Y +LDA.b [Scrap00],Y org $89C398 -LDA.b [$00],Y +LDA.b [Scrap00],Y org $89C3AA -LDA.b [$00],Y +LDA.b [Scrap00],Y org $89C3BF -LDA.b [$00],Y +LDA.b [Scrap00],Y org $89C3DF LDA.b Scrap03 org $89C3F3 -LDA.b [$00],Y +LDA.b [Scrap00],Y org $89C3FB -LDA.b [$00],Y +LDA.b [Scrap00],Y org $89C404 -LDA.b [$00],Y +LDA.b [Scrap00],Y org $89C416 -LDA.b [$00],Y +LDA.b [Scrap00],Y diff --git a/enemizer/kodongo_fixes.asm b/enemizer/kodongo_fixes.asm index 4e983f7..b803f94 100644 --- a/enemizer/kodongo_fixes.asm +++ b/enemizer/kodongo_fixes.asm @@ -2,7 +2,7 @@ pushpc org $9EC147 JSL NewKodongoCollision -JMP.w .continue : NOP #2 +JMP .continue : NOP #2 .continue org $9EC152 diff --git a/enemizer/main.asm b/enemizer/main.asm index 3d3e429..a90a649 100644 --- a/enemizer/main.asm +++ b/enemizer/main.asm @@ -2,13 +2,6 @@ lorom -;================================================================================ - -!ADD = "CLC : ADC" -!SUB = "SEC : SBC" -!BLT = "BCC" -!BGE = "BCS" - ;=Constants====================================================================== !BUSHES_FLAG = "$368100" diff --git a/enemizer/mimic_fixes.asm b/enemizer/mimic_fixes.asm index 047dd05..76b5e98 100644 --- a/enemizer/mimic_fixes.asm +++ b/enemizer/mimic_fixes.asm @@ -58,7 +58,7 @@ SpritePrep_EyegoreNew: .mimic SBC.b #$6C : STA.w SpriteTypeTable, X : JSL SpritePrep_LoadProperties ; pretending to be $83 or $84 JSL SpritePrep_Eyegore_become_mimic -; LDA.w SpriteTypeTable, X : ADC #$6C : STA.w SpriteTypeTable, X ; set the sprite back to special mimic +; LDA.w SpriteTypeTable, X : ADC.b #$6C : STA.w SpriteTypeTable, X ; set the sprite back to special mimic ; todo? unsure about this code - seems unnecessary ; LDA.w $0CAA, X : AND.b #$FB : ORA.b #$80 : STA.w $0CAA, X ; STZ.w $0CAA, X RTL diff --git a/enemizer/moldorm.asm b/enemizer/moldorm.asm index 6334a65..bf6795f 100644 --- a/enemizer/moldorm.asm +++ b/enemizer/moldorm.asm @@ -4,8 +4,8 @@ Moldorm_UpdateOamPosition: LDA.l !MOLDORM_EYES_FLAG : TAX .more_eyes - LDA.b $90 : CLC : ADC.w #$0004 : STA.b $90 - LDA.b $92 : CLC : ADC.w #$0001 : STA.b $92 + LDA.b OAMPtr : CLC : ADC.w #$0004 : STA.b OAMPtr + LDA.b OAMPtr+2 : CLC : ADC.w #$0001 : STA.b OAMPtr+2 DEX : BPL .more_eyes ; X >= 0 PLX diff --git a/enemizer/special_action.asm b/enemizer/special_action.asm index 2e9b998..ec61bc1 100644 --- a/enemizer/special_action.asm +++ b/enemizer/special_action.asm @@ -3,9 +3,9 @@ ;================================================================================ check_special_action: { - LDA.w $0CF3 : BEQ .no_special_action - LDA.b #$05 : STA.b GameSubMode ; $11[0x01] - (Main) Submodule Index (See $B0) - STZ.w $0CF3 ; $0CF3[0x01] - free ram + LDA.w BossSpecialAction : BEQ .no_special_action + LDA.b #$05 : STA.b GameSubMode + STZ.w BossSpecialAction .no_special_action JSL Player_Main RTL diff --git a/entrances.asm b/entrances.asm index 12f117e..ee13067 100644 --- a/entrances.asm +++ b/entrances.asm @@ -87,7 +87,7 @@ AllowStartFromSingleEntranceCave: + DEC STA.b Scrap00 - ASL #2 : !ADD Scrap00 : ASL #2 ; mult by 20 + ASL #2 : !ADD.l Scrap00 : ASL #2 ; mult by 20 TAX LDA.w #$0016 : STA.l EN_MAINDESQ ; Cache the main screen designation diff --git a/failure.asm b/failure.asm index 763ef79..44fe45d 100644 --- a/failure.asm +++ b/failure.asm @@ -27,7 +27,7 @@ DontUseZSNES: LDA.b #$00 STA.l NMITIMEN ; disable NMI and IRQ - STA.l HDMAEN ; disable HDMA + STA.l HDMAENABLE ; disable HDMA ROR ; A = 0x80 from carry STA.l INIDISP @@ -48,7 +48,7 @@ DontUseZSNES: STA.l DAS0L LDA.w #$0001 - STA.l MDMAEN + STA.l DMAENABLE JSR ConfigurePPUForFailureReport JSR ConfigureBSODVWF @@ -93,7 +93,7 @@ Crashed: LDA.b #$00 STA.l NMITIMEN ; disable NMI and IRQ - STA.l HDMAEN ; disable HDMA + STA.l HDMAENABLE ; disable HDMA ROR ; A = 0x80 from carry STA.l INIDISP @@ -114,7 +114,7 @@ Crashed: STA.l DAS0L LDA.w #$0001 - STA.l MDMAEN + STA.l DMAENABLE ;=================================================================================================== @@ -312,7 +312,7 @@ DrawVWFMessage: STZ.w A1B0 LDA.b #$01 - STA.w MDMAEN + STA.w DMAENABLE REP #$20 @@ -376,7 +376,7 @@ DrawFailureVWFChar: LDY.w #$0000 .next_row - LDA.b ($08),Y + LDA.b (Scrap08),Y AND.w #$00FF XBA LDX.w VWFS @@ -427,7 +427,7 @@ LoadBSODHexFont: STA.w A1B0 LDA.b #$01 - STA.w MDMAEN + STA.w DMAENABLE REP #$30 diff --git a/fileselect.asm b/fileselect.asm index 849bce8..ec01083 100644 --- a/fileselect.asm +++ b/fileselect.asm @@ -23,12 +23,12 @@ macro fs_draw16x8(screenrow,screencol) endmacro macro fs_draw8x16(screenrow,screencol) %fs_draw8x8(,) - !ADD #$0010 + !ADD.w #$0010 %fs_draw8x8(+1,) endmacro macro fs_draw16x16(screenrow,screencol) %fs_draw16x8(,) - !ADD #$000F + !ADD.w #$000F %fs_draw16x8(+1,) endmacro @@ -771,7 +771,7 @@ LoadFullItemTiles: LDA.b #FileSelectNewGraphics>>16 : STA.w A1B0 LDX.w #FileSelectNewGraphics : STX.w A1T0L LDX.w #$0C00 : STX.w DAS0L - LDA.b #$01 : STA.w MDMAEN + LDA.b #$01 : STA.w DMAENABLE RTL ;-------------------------------------------------------------------------------- ; z colon @ @@ -788,7 +788,7 @@ LoadLowerCaseLettersSymbols: LDX.w #NewFont+$400 : STX.w A1T0L LDX.w #$0400 : STX.w DAS0L LDX.w #$2D00 : STX.w VMADDL - LDA.b #$01 : STA.w MDMAEN + LDA.b #$01 : STA.w DMAENABLE ; : @ # LDA.b #NewFont>>16 : STA.w A1B0 @@ -798,9 +798,9 @@ LoadLowerCaseLettersSymbols: LDX.w #$0030 : STX.w DAS0L : STX.w DAS1L LDX.w #$2E50 : STX.w VMADDL - LDA.b #$01 : STA.w MDMAEN + LDA.b #$01 : STA.w DMAENABLE LDX.w #$2ED0 : STX.w VMADDL - LDA.b #$02 : STA.w MDMAEN + LDA.b #$02 : STA.w DMAENABLE RTL ;-------------------------------------------------------------------------------- LoadFileSelectVanillaItems: @@ -814,7 +814,7 @@ LoadFileSelectVanillaItems: LDX.w #DecompBuffer2 : STX.w A1T0L LDX.w #$0600 : STX.w DAS0L LDX.w #$2F00 : STX.w VMADDL - LDA.b #$01 : STA.w MDMAEN + LDA.b #$01 : STA.w DMAENABLE SEP #$10 RTL diff --git a/framehook.asm b/framehook.asm index 0e555a5..40f82fb 100644 --- a/framehook.asm +++ b/framehook.asm @@ -24,15 +24,15 @@ RTL NMIHookAction: PHA : PHX : PHY : PHD ; thing we wrote over, push stuff - LDA !NMI_MW : BEQ ++ + LDA.l !NMI_MW : BEQ ++ PHP SEP #$30 - LDA #$00 : STA !NMI_MW + LDA.b #$00 : STA.l !NMI_MW ; Multiworld text - LDA !NMI_MW+1 : BEQ + - LDA #$00 : STA !NMI_MW+1 + LDA.l !NMI_MW+1 : BEQ + + LDA.b #$00 : STA.l !NMI_MW+1 JSL WriteText + PLP diff --git a/goalitem.asm b/goalitem.asm index ac4f40f..aadbd44 100644 --- a/goalitem.asm +++ b/goalitem.asm @@ -62,12 +62,12 @@ CheckGanonVulnerability: .all_dungeons_no_agahnim LDA.l PendantsField : AND.b #$07 : CMP.b #$07 : BNE .fail ; require all pendants LDA.l CrystalsField : AND.b #$7F : CMP.b #$7F : BNE .fail ; require all crystals - LDA RoomDataWRAM[$0D].high : AND.b #$08 : BEQ .fail ; require aga2 defeated (pyramid hole open) + LDA.l RoomDataWRAM[$0D].high : AND.b #$08 : BEQ .fail ; require aga2 defeated (pyramid hole open) BRA .success ; 03 = crystals and aga 2 .crystals_and_aga - LDA RoomDataWRAM[$0D].high : AND.b #$08 : BEQ .fail ; check aga2 first then bleed in + LDA.l RoomDataWRAM[$0D].high : AND.b #$08 : BEQ .fail ; check aga2 first then bleed in ; 04 = crystals only .crystals diff --git a/hardmode.asm b/hardmode.asm index b163566..0afb6fa 100644 --- a/hardmode.asm +++ b/hardmode.asm @@ -100,7 +100,7 @@ SearchAncilla: LDX.b #$00 .loop LDA.w AncillaID, X - INX : CPX #$0A : BEQ .notFound + INX : CPX.b #$0A : BEQ .notFound CMP.b Scrap05 : BNE .loop LDA.b #$01 BRA .return diff --git a/hashalphabet.asm b/hashalphabet.asm index dd22373..fb60062 100644 --- a/hashalphabet.asm +++ b/hashalphabet.asm @@ -78,7 +78,7 @@ DMAAlphabetTilemap: LDA.b #BigRAM>>16 : STA.w A1B0 LDX.w #BigRAM : STX.w A1T0L LDX.w #$0080 : STX.w DAS0L - LDA.b #$01 : STA.w MDMAEN + LDA.b #$01 : STA.w DMAENABLE SEP #$10 PLX : PLA RTS diff --git a/heartpieces.asm b/heartpieces.asm index 4e61d20..f68cf89 100644 --- a/heartpieces.asm +++ b/heartpieces.asm @@ -145,40 +145,39 @@ HeartContainerSpritePrep: + JML RequestStandingItemVRAMSlot ;-------------------------------------------------------------------------------- LoadHeartPieceRoomValue: - LDA.b IndoorsFlag : BEQ .outdoors ; check if we're indoors or outdoors - .indoors - JSL LoadIndoorValue - JMP .done - .outdoors - JSL LoadOutdoorValue - .done + LDA.b IndoorsFlag : BEQ .outdoors ; check if we're indoors or outdoors + .indoors + JSL LoadIndoorValue + JMP .done + .outdoors + JSL LoadOutdoorValue + .done RTL ;-------------------------------------------------------------------------------- !DynamicDropGFXSlotCount_UW = (FreeUWGraphics_end-FreeUWGraphics)>>1 !DynamicDropGFXSlotCount_OW = (FreeOWGraphics_end-FreeOWGraphics)>>1 HPItemReset: - PHA - LDA.l !MULTIWORLD_ITEM_PLAYER_ID : BNE .skip - PLA - JSL GiveRupeeGift ; thing we wrote over - BRA .done - .skip - PLA - .done - PHA - JSL HeartPieceSetRedraw - PLA + PHA + LDA.l !MULTIWORLD_ITEM_PLAYER_ID : BNE .skip + PLA + JSL GiveRupeeGift ; thing we wrote over + BRA .done + .skip + PLA + .done + PHA + JSL HeartPieceSetRedraw + PLA RTL ;-------------------------------------------------------------------------------- MaybeMarkDigSpotCollected: - PHA : PHP - LDA.b IndoorsFlag : BNE + - REP #$20 ; set 16-bit accumulator - LDA.b OverworldIndex - CMP.w #$2A : BNE + - LDA.l HasGroveItem : ORA.w #$0001 : STA.l HasGroveItem - + - PLP : PLA + PHA : PHP + LDA.b IndoorsFlag : BNE + + REP #$20 ; set 16-bit accumulator + LDA.b OverworldIndex : CMP.w #$002A : BNE + + LDA.l HasGroveItem : ORA.w #$0001 : STA.l HasGroveItem + + + PLP : PLA RTL ;-------------------------------------------------------------------------------- HeartPieceSpawnDelayFix: @@ -189,22 +188,22 @@ HeartPieceSpawnDelayFix: + CLC : RTL ;-------------------------------------------------------------------------------- macro GetPossiblyEncryptedItem(ItemLabel,TableLabel) - LDA.l IsEncrypted : BNE ?encrypted - LDA.l - BRA ?done - ?encrypted: - PHX : PHP - REP #$30 ; set 16-bit accumulator & index registers - LDA.b Scrap00 : PHA : LDA.b Scrap02 : PHA + LDA.l IsEncrypted : BNE ?encrypted + LDA.l + BRA ?done + ?encrypted: + PHX : PHP + REP #$30 ; set 16-bit accumulator & index registers + LDA.b Scrap00 : PHA : LDA.b Scrap02 : PHA - LDA.w # : STA.b Scrap00 - LDA.w #>>16 : STA.b Scrap02 - LDA.w #- - JSL RetrieveValueFromEncryptedTable + LDA.w # : STA.b Scrap00 + LDA.w #>>16 : STA.b Scrap02 + LDA.w #- + JSL RetrieveValueFromEncryptedTable - PLX : STX.b Scrap02 : PLX : STX.b Scrap01 - PLP : PLX - ?done: + PLX : STX.b Scrap02 : PLX : STX.b Scrap01 + PLP : PLX + ?done: endmacro LoadIndoorValue: @@ -241,10 +240,10 @@ LoadIndoorValue: LDA.l StandingKey_Hera JMP .done + - PHX - LDX.w CurrentSpriteSlot ; If we're on a different screen ID via glitches load the sprite - LDA.w SprItemReceipt,X ; we can see and are interacting with - PLX + PHX + LDX.w CurrentSpriteSlot ; If we're on a different screen ID via glitches load the sprite + LDA.w SprItemReceipt,X ; we can see and are interacting with + PLX .done AND.w #$00FF ; the loads are words but the values are 1-byte so we need to clear the top half of the accumulator - no guarantee it was 8-bit before PLP @@ -446,10 +445,10 @@ LoadOutdoorValue: %GetPossiblyEncryptedItem(HeartPiece_Zora, HeartPieceOutdoorValues) JMP .done + - PHX - LDX.w CurrentSpriteSlot ; If we're on a different screen ID via glitches load the sprite - LDA.w SprItemReceipt,X ; we can see and are interacting with. - PLX + PHX + LDX.w CurrentSpriteSlot ; If we're on a different screen ID via glitches load the sprite + LDA.w SprItemReceipt,X ; we can see and are interacting with. + PLX .done AND.w #$00FF ; the loads are words but the values are 1-byte so we need to clear the top half of the accumulator - no guarantee it was 8-bit before PLP @@ -561,63 +560,63 @@ HeartPieceGetPlayer: REP #$20 ; set 16-bit accumulator LDA.b RoomIndex ; these are all decimal because i got them that way CMP.w #135 : BNE + - LDA StandingKey_Hera_Player + LDA.l StandingKey_Hera_Player BRL .done + CMP.w #200 : BNE + - LDA HeartContainer_ArmosKnights_Player + LDA.l HeartContainer_ArmosKnights_Player BRL .done + CMP.w #51 : BNE + - LDA HeartContainer_Lanmolas_Player + LDA.l HeartContainer_Lanmolas_Player BRL .done + CMP.w #7 : BNE + - LDA HeartContainer_Moldorm_Player + LDA.l HeartContainer_Moldorm_Player BRL .done + CMP.w #90 : BNE + - LDA HeartContainer_HelmasaurKing_Player + LDA.l HeartContainer_HelmasaurKing_Player BRL .done + CMP.w #6 : BNE + - LDA HeartContainer_Arrghus_Player + LDA.l HeartContainer_Arrghus_Player BRL .done + CMP.w #41 : BNE + - LDA HeartContainer_Mothula_Player + LDA.l HeartContainer_Mothula_Player BRL .done + CMP.w #172 : BNE + - LDA HeartContainer_Blind_Player + LDA.l HeartContainer_Blind_Player BRL .done + CMP.w #222 : BNE + - LDA HeartContainer_Kholdstare_Player + LDA.l HeartContainer_Kholdstare_Player BRL .done + CMP.w #144 : BNE + - LDA HeartContainer_Vitreous_Player + LDA.l HeartContainer_Vitreous_Player BRL .done + CMP.w #164 : BNE + - LDA HeartContainer_Trinexx_Player + LDA.l HeartContainer_Trinexx_Player BRL .done + CMP.w #225 : BNE + - LDA HeartPiece_Forest_Thieves_Player + LDA.l HeartPiece_Forest_Thieves_Player BRL .done + CMP.w #226 : BNE + - LDA HeartPiece_Lumberjack_Tree_Player + LDA.l HeartPiece_Lumberjack_Tree_Player BRL .done + CMP.w #234 : BNE + - LDA HeartPiece_Spectacle_Cave_Player + LDA.l HeartPiece_Spectacle_Cave_Player BRL .done + CMP.w #283 : BNE + LDA.b LinkPosX : XBA : AND.w #$0001 ; figure out where link is BNE ++ - LDA HeartPiece_Circle_Bushes_Player + LDA.l HeartPiece_Circle_Bushes_Player BRL .done ++ - LDA HeartPiece_Graveyard_Warp_Player + LDA.l HeartPiece_Graveyard_Warp_Player BRL .done + CMP.w #288 : BNE + LDA.l OWBonkPrizeTable[$2A].mw_player BRL .done + CMP.w #294 : BNE + - LDA HeartPiece_Mire_Warp_Player + LDA.l HeartPiece_Mire_Warp_Player BRL .done + CMP.w #295 : BNE + - LDA HeartPiece_Smith_Pegs_Player + LDA.l HeartPiece_Smith_Pegs_Player BRL .done LDA.w #$0000 BRL .done @@ -631,17 +630,17 @@ HeartPieceGetPlayer: BRL .done + CMP.w #$03 : BNE + LDA.b LinkPosX : CMP.w #1890 : !BLT ++ - LDA HeartPiece_Spectacle_Player + LDA.l HeartPiece_Spectacle_Player BRL .done ++ - LDA EtherItem_Player + LDA.l EtherItem_Player BRL .done + CMP.w #$05 : BNE + LDA.w SpriteSpawnStep,X : AND.w #$00FF : CMP.w #$0010 : BNE ++ LDA.l OWBonkPrizeTable[$01].mw_player BRL .done ++ - LDA HeartPiece_Mountain_Warp_Player + LDA.l HeartPiece_Mountain_Warp_Player BRL .done + CMP.w #$0A : BNE + LDA.w SpriteSpawnStep,X : AND.w #$00FF : CMP.w #$0010 : BNE ++ @@ -701,7 +700,7 @@ HeartPieceGetPlayer: LDA.l OWBonkPrizeTable[$13].mw_player BRL .done + CMP.w #$28 : BNE + - LDA HeartPiece_Maze_Player + LDA.l HeartPiece_Maze_Player BRL .done + CMP.w #$2A : BNE + LDA.w SpriteSpawnStep,X : AND.w #$00FF : CMP.w #$0010 : BNE ++ @@ -711,7 +710,7 @@ HeartPieceGetPlayer: LDA.l OWBonkPrizeTable[$15].mw_player BRL .done ++ - LDA HauntedGroveItem_Player + LDA.l HauntedGroveItem_Player BRL .done + CMP.w #$2B : BNE + LDA.l OWBonkPrizeTable[$16].mw_player @@ -725,10 +724,10 @@ HeartPieceGetPlayer: BRL .done + CMP.w #$30 : BNE + LDA.b LinkPosX : CMP.w #512 : !BGE ++ - LDA HeartPiece_Desert_Player + LDA.l HeartPiece_Desert_Player BRL .done ++ - LDA BombosItem_Player + LDA.l BombosItem_Player BRL .done + CMP.w #$32 : BNE + LDA.w SpriteSpawnStep,X : AND.w #$00FF : CMP.w #$0010 : BNE ++ @@ -738,20 +737,20 @@ HeartPieceGetPlayer: LDA.l OWBonkPrizeTable[$1A].mw_player BRL .done + CMP.w #$35 : BNE + - LDA HeartPiece_Lake_Player + LDA.l HeartPiece_Lake_Player BRL .done + CMP.w #$3B : BNE + - LDA HeartPiece_Swamp_Player + LDA.l HeartPiece_Swamp_Player BRL .done + CMP.w #$42 : BNE + LDA.w SpriteSpawnStep,X : AND.w #$00FF : CMP.w #$0010 : BNE ++ LDA.l OWBonkPrizeTable[$1B].mw_player BRL .done ++ - LDA HeartPiece_Cliffside_Player + LDA.l HeartPiece_Cliffside_Player BRL .done + CMP.w #$4A : BNE + - LDA HeartPiece_Cliffside_Player + LDA.l HeartPiece_Cliffside_Player BRL .done + CMP.w #$51 : BNE + LDA.w SpriteSpawnStep,X : AND.w #$00FF : CMP.w #$0010 : BNE ++ @@ -785,13 +784,13 @@ HeartPieceGetPlayer: LDA.l OWBonkPrizeTable[$24].mw_player BRL .done ++ - LDA HeartPiece_Pyramid_Player + LDA.l HeartPiece_Pyramid_Player BRL .done + CMP.w #$5E : BNE + LDA.l OWBonkPrizeTable[$25].mw_player BRL .done + CMP.w #$68 : BNE + - LDA HeartPiece_Digging_Player + LDA.l HeartPiece_Digging_Player BRL .done + CMP.w #$6E : BNE + LDA.w SpriteSpawnStep,X : AND.w #$00FF : CMP.w #$0010 : BNE ++ @@ -807,7 +806,7 @@ HeartPieceGetPlayer: LDA.l OWBonkPrizeTable[$29].mw_player BRL .done + CMP.w #$81 : BNE + - LDA HeartPiece_Zora_Player + LDA.l HeartPiece_Zora_Player BRL .done + LDA.w #$0000 diff --git a/hooks.asm b/hooks.asm index 3cdc146..ac69d71 100755 --- a/hooks.asm +++ b/hooks.asm @@ -476,7 +476,7 @@ JSL Overworld_InvertedTRPuzzle BRA + : NOP #12 : + org $84E7B9 ; <- bank0E.asm : 4237 (LDX $04C8) -JMP.w TurtleRockTrollPegs +JMP TurtleRockTrollPegs TurtleRockPegCheck: org $84E7C9 @@ -495,11 +495,11 @@ JSL GetRandomInt LDA.l PegProbability : BEQ .vanilla : CMP.l $7E0FA1 REP #$20 : !BGE .succeed .fail -JMP.w TurtleRockPegFail +JMP TurtleRockPegFail .succeed -JMP.w TurtleRockPegSuccess +JMP TurtleRockPegSuccess .vanilla -REP #$20 : JMP.w TurtleRockPegCheck +REP #$20 : JMP TurtleRockPegCheck ;-------------------------------------------------------------------------------- org $9BBD05 ; <- bank1B.asm : 261 (TYA : STA $00) ; hook starts at the STA JML PreventEnterOnBonk : NOP @@ -831,8 +831,6 @@ db $B1, $C6, $F9, $C9, $C6, $F9 ; data insert - 2 chests, fat fairy room org $81E97E dw $0116 : db $08 dw $0116 : db $25 - -;-------------------------------------------------------------------------------- ;-------------------------------------------------------------------------------- org $9EE16E ; <- F616E - sprite_bomb_shop_entity.asm : 73 NOP #8 ; fix bomb shop dialog for dwarfless big bomb @@ -1130,7 +1128,7 @@ JSL ItemCheck_Library org $8DDF38 ; <- 6DF38 - equipment.asm : 480 JSL ProcessMenuButtons BCC _equipment_497 -JMP.w _equipment_544 +JMP _equipment_544 ResetEquipment: JSR RestoreNormalMenu ; (short) RTL @@ -1222,30 +1220,17 @@ JSL DrawMushroom org $85EE97 ; <- 2EE97 - sprite_mushroom.asm : 81 NOP #14 ;-------------------------------------------------------------------------------- -org $86C09C ; <- - bank06.asm : 1885 (JSL SpritePrep_PotionShopLong) +org $86C09C ; <- - bank06.asm : 1885 (JSL SpritePrep_MagicShopAssistant) JSL SpritePrep_ShopKeeper_PotionShop - -org $85F521 -SpritePrep_PotionShopLong: - -org $85F539 -SpawnMagicPowder: ;-------------------------------------------------------------------------------- org $85F568 ; <- 2F568 - sprite_potion_shop.asm LDA.b #$B0 : STA.w SpritePosYLow, Y : LDA.b #$90 : STA.w SpritePosXLow, Y ; manually set position of powder item LDA.b #$21 : STA.w SpritePosYHigh, Y : LDA.b #$12 : STA.w SpritePosXHigh, Y -JMP $F61D +JMP MagicShopAssistant_SpawnObject ;-------------------------------------------------------------------------------- org $85F633 ; <- 2F633 - sprite_potion_shop.asm JSL Sprite_ShopKeeperPotion : RTS : NOP ;; TODO: i don't remember prices being set on top of the player PotionShopkeeperJumpTable: - -org $85F893 ; <- witch behavior here -Sprite_WitchAssistant: - -org $85F644 ; <- powder behavior here -Sprite_MagicPowderItem: - ;-------------------------------------------------------------------------------- org $85EB1D ; <- 2EB1D - sprite_bottle_vendor.asm : 158 JSL Multiworld_BottleVendor_GiveBottle @@ -1955,7 +1940,7 @@ org $8690BD ; <- 310BD - SpritePrep_FluteBoy : 2202 JSL ItemCheck_TreeKid2 org $86AF9B ; <- 32F9B - FluteBoy_Chillin : 73 : LDA $7EF34C : CMP.b #$02 : BCS .player_has_flute -LDA HasGroveItem : AND.b #$01 +LDA.l HasGroveItem : AND.b #$01 db $D0 ; BNE org $86B062 ; <- 33062 - FluteAardvark_InitialStateFromFluteState : 225 : LDA $7EF34C : AND.b #$03 : !BGE #$05 @@ -2349,7 +2334,7 @@ Overworld_Entrance_BRANCH_RHO: ; branch here to continue into door ;================================================================================ ; Paradox Cave Shopkeeper Fixes ;-------------------------------------------------------------------------------- -org $808C19 ; Bank00.asm 1633 (LDA.b #$01 : STA MDMAEN) +org $808C19 ; Bank00.asm 1633 (LDA.b #$01 : STA DMAENABLE) JSL ParadoxCaveGfxFix : NOP ;================================================================================ @@ -2384,7 +2369,7 @@ JSL LoadActualGearPalettesWithGloves : RTL ;-------------------------------------------------------------------------------- ; Bunny Palette/Overworld Map Bugfix ;-------------------------------------------------------------------------------- -org $82FDF0 ; <- 017df0 - bank0E (LDA [$00] : STA $7EC300, X : STA $7EC500, X) +org $82FDF0 ; <- 017df0 - bank0E (LDA [Scrap00] : STA $7EC300, X : STA $7EC500, X) JSL LoadGearPalette_safe_for_bunny : RTS ;================================================================================ @@ -2412,15 +2397,15 @@ JSL NewElderCode ; Add him to Castle Map post-rain, and post aga1 ;-------------------------------------------------------------------------------- org $89D0A9 -db $18, $0A, $D8, $18, $0F, $43, $FF;remove heart from tree adjancent map [LW1] -db $12, $19, $16 ;add sahasrala in castle Y, X, Sprite ID +db $18, $0A, $D8, $18, $0F, $43, $FF ; remove heart from tree adjancent map [LW1] +db $12, $19, $16 ; add sahasrala in castle Y, X, Sprite ID org $89C937 -db $B0, $D0 ;change [LW1] map 01C pointers +db $B0, $D0 ; change [LW1] map 01C pointers org $89D421 -db $18, $0F, $45, $FF;remove heart from tree adjancent map [LW2] -db $12, $19, $16 ;add sahasrala in castle Y, X, Sprite ID +db $18, $0F, $45, $FF ; remove heart from tree adjancent map [LW2] +db $12, $19, $16 ; add sahasrala in castle Y, X, Sprite ID org $89CA57 -db $25, $D4 ;change [LW2] map 01C pointers +db $25, $D4 ; change [LW2] map 01C pointers ;-------------------------------------------------------------------------------- ; Expanded trinexx sheet gfx. ;-------------------------------------------------------------------------------- @@ -2539,13 +2524,13 @@ org $8EE828 : JSL PreparePointer : LDA.b [CreditsPtr],Y : NOP org $8EE83F : LDA.b [CreditsPtr],Y : NOP org $8EE853 LDA.b [CreditsPtr],Y : NOP : AND.w #$00FF : ASL A : JSL CheckFontTable -org $8EE86D : JSL RenderCreditsStatCounter : JMP.w AfterDeathCounterOutput +org $8EE86D : JSL RenderCreditsStatCounter : JMP AfterDeathCounterOutput org $82857D : JSL LoadOverworldCreditsTiles ;================================================================================ ; Fast credits org $8EC2B1 : JSL FlagFastCredits org $82A096 : JSL DumbFlagForMSU -org $8EC3AF : JSL FastCreditsScrollOW : JMP.w Credits_ScrollScene_Overworld_no_scroll +org $8EC3AF : JSL FastCreditsScrollOW : JMP Credits_ScrollScene_Overworld_no_scroll org $8EC41F : JSL FastCreditsCutsceneUnderworldY org $8EC42C : JSL FastCreditsCutsceneUnderworldX org $8EC488 : JSL FastCreditsCutsceneTimer @@ -2710,4 +2695,4 @@ NOP #2 ; this fixes Link's direction after mirroring and falling after entering ; Enable new room header table ;-------------------------------------------------------------------------------- org $81B5E6 -LDA.b #$30 +LDA.b #$30 \ No newline at end of file diff --git a/hudtext.asm b/hudtext.asm index 880cb4b..bd97419 100644 --- a/hudtext.asm +++ b/hudtext.asm @@ -17,7 +17,7 @@ PHP LDX.b #$7E : STX.w A1B4 LDA.w #$0040 : STA.w DAS4L LDA.w #$1801 : STA.w DMAP4 - LDX.b #$10 : STX.w MDMAEN + LDX.b #$10 : STX.w DMAENABLE LDX.b #$0F : STX.w INIDISP PLP @@ -36,7 +36,7 @@ PHP LDA.w #$0040 : STA.w DAS4L LDA.w #$1801 : STA.w DMAP4 - LDX.b #$10 : STX.w MDMAEN + LDX.b #$10 : STX.w DMAENABLE LDX.b #$0F : STX.w INIDISP PLP diff --git a/icepalacegraphics.asm b/icepalacegraphics.asm index 284b36d..977b03a 100644 --- a/icepalacegraphics.asm +++ b/icepalacegraphics.asm @@ -1,6 +1,6 @@ ShouldOverrideFileLoad: ; Y = Graphics file being loaded - CPY #$0A ; 0A = Ice/Mire floor file + CPY.b #$0A ; 0A = Ice/Mire floor file BNE .no LDA.w DungeonID ; Dungeon number @@ -33,14 +33,14 @@ BgGraphicsLoading: LDX.b #64*2 ; Tiles to load * 2 - ; Unrolled loop to upload half a tile - LDA.b [$00] : STA.w VMDATAL : INC.b Scrap00 : INC.b Scrap00 - LDA.b [$00] : STA.w VMDATAL : INC.b Scrap00 : INC.b Scrap00 - LDA.b [$00] : STA.w VMDATAL : INC.b Scrap00 : INC.b Scrap00 - LDA.b [$00] : STA.w VMDATAL : INC.b Scrap00 : INC.b Scrap00 - LDA.b [$00] : STA.w VMDATAL : INC.b Scrap00 : INC.b Scrap00 - LDA.b [$00] : STA.w VMDATAL : INC.b Scrap00 : INC.b Scrap00 - LDA.b [$00] : STA.w VMDATAL : INC.b Scrap00 : INC.b Scrap00 - LDA.b [$00] : STA.w VMDATAL : INC.b Scrap00 : INC.b Scrap00 + LDA.b [Scrap00] : STA.w VMDATAL : INC.b Scrap00 : INC.b Scrap00 + LDA.b [Scrap00] : STA.w VMDATAL : INC.b Scrap00 : INC.b Scrap00 + LDA.b [Scrap00] : STA.w VMDATAL : INC.b Scrap00 : INC.b Scrap00 + LDA.b [Scrap00] : STA.w VMDATAL : INC.b Scrap00 : INC.b Scrap00 + LDA.b [Scrap00] : STA.w VMDATAL : INC.b Scrap00 : INC.b Scrap00 + LDA.b [Scrap00] : STA.w VMDATAL : INC.b Scrap00 : INC.b Scrap00 + LDA.b [Scrap00] : STA.w VMDATAL : INC.b Scrap00 : INC.b Scrap00 + LDA.b [Scrap00] : STA.w VMDATAL : INC.b Scrap00 : INC.b Scrap00 DEX BNE - diff --git a/inventory.asm b/inventory.asm index 10e434d..e74f7c6 100644 --- a/inventory.asm +++ b/inventory.asm @@ -49,10 +49,10 @@ RTL PLX LDA.l SilverArrowsUseRestriction : BEQ ++ LDA.b RoomIndex : ORA.b RoomIndex+1 : BEQ ++ ; not in ganon's room in restricted mode - LDA.l BowEquipment : CMP.b #$03 : !BLT .errorJump : !SUB #$02 : STA.l BowEquipment + LDA.l BowEquipment : CMP.b #$03 : !BLT .errorJump : !SUB.b #$02 : STA.l BowEquipment BRA .errorJump2 ++ - LDA.l BowEquipment : !SUB #$01 : EOR.b #$02 : !ADD #$01 : STA.l BowEquipment ; swap bows + LDA.l BowEquipment : !SUB.b #$01 : EOR.b #$02 : !ADD.b #$01 : STA.l BowEquipment ; swap bows LDA.b #$20 : STA.w SFX3 ; menu select sound JMP .captured + BRA + @@ -269,7 +269,7 @@ IncrementYAItems: BIT.b #$20 : BNE .bow_check BIT.b #$04 : BEQ .not_y .y_item - LDA.l YAItemCounter : !ADD #$08 : STA.l YAItemCounter + LDA.l YAItemCounter : !ADD.b #$08 : STA.l YAItemCounter BRA .done .not_y BIT.b #$08 : BEQ .done @@ -310,7 +310,7 @@ IncrementBossSword: BRA .none + ASL : TAX - JMP.w (.vectors,X) + JMP (.vectors,X) .vectors dw .none @@ -359,7 +359,7 @@ IncrementFinalSword: BRA IncrementBossSword_none + ASL : TAX - JMP.w (IncrementBossSword_vectors,X) + JMP (IncrementBossSword_vectors,X) .done SEP #$20 PLX @@ -473,7 +473,7 @@ FluteCallForDuck: LDA.l ProgressIndicator : CMP.b #$02 : BCS .vanilla ; must rescue Zelda first .noDuck - LDA.b #$02 : RTL + LDA.b #$02 : RTL .vanilla LDA.l FluteEquipment ; what we wrote over @@ -822,4 +822,4 @@ CPY.b #$4A : BNE + + ; normal itemget sfx JSL Sound_SetSfxPanWithPlayerCoords : ORA.b #$0F : STA.w SFX3 ; what we wrote over RTL -;-------------------------------------------------------------------------------- +;-------------------------------------------------------------------------------- \ No newline at end of file diff --git a/inverted.asm b/inverted.asm index b970fe4..97dff98 100644 --- a/inverted.asm +++ b/inverted.asm @@ -228,7 +228,7 @@ MirrorBonk: PLB : PLP : PLX BRA .forceBonk ++ - TXA : !ADD #$0008 : CMP.w #.tableEnd-.bonkRectanglesTable : BEQ .endLoop + TXA : !ADD.w #$0008 : CMP.w #.tableEnd-.bonkRectanglesTable : BEQ .endLoop TAX BRA .loop .endbonkRectanglesTable diff --git a/invertedmaps2.asm b/invertedmaps2.asm index b441c8f..f17bd2d 100644 --- a/invertedmaps2.asm +++ b/invertedmaps2.asm @@ -1132,7 +1132,7 @@ OverworldMapChangePointers2: Overworld_InvertedTRPuzzle: { REP #$30 - LDA.l OWTileMapAlt+07 : AND #$00FF : BNE .inverted + LDA.l OWTileMapAlt+07 : AND.w #$00FF : BNE .inverted LDA.w #$0212 : LDX.w #$0720 : STA.l TileMapA,X ; what we wrote over JSL Overworld_MemorizeMap16Change : JSL Overworld_DrawPersistentMap16+4 ; what we wrote over RTL diff --git a/itemdowngrade.asm b/itemdowngrade.asm index b0b6c46..349de3a 100644 --- a/itemdowngrade.asm +++ b/itemdowngrade.asm @@ -36,8 +36,8 @@ RTL .isBlueBoomerang .isBow .isBowAndArrows - CMP.b [$00] : !BGE .done ; finished if we're upgrading - LDA.b [$00] ; reload old value + CMP.b [Scrap00] : !BGE .done ; finished if we're upgrading + LDA.b [Scrap00] ; reload old value RTL .isSilverArrowBow .isRedBoomerang diff --git a/keydrop/dynamic_si_vram.asm b/keydrop/dynamic_si_vram.asm index 755257a..b191211 100644 --- a/keydrop/dynamic_si_vram.asm +++ b/keydrop/dynamic_si_vram.asm @@ -329,8 +329,8 @@ DrawPotItem: JSL Sprite_DrawMultiple_quantity_preset PLB - LDA.b $90 : CLC : ADC.b #$08 : STA.b $90 - INC.b $92 : INC.b $92 + LDA.b OAMPtr : CLC : ADC.b #$08 : STA.b OAMPtr + INC.b OAMPtr+2 : INC.b OAMPtr+2 PLA CLC @@ -348,7 +348,7 @@ ConditionalPushBlockTransfer: LDA.b #$0F ; don't transfer push block when on the OW BRA .return-3 + - LDA.b #$1F : STA.w $420B ; what we wrote over + LDA.b #$1F : STA.w DMAENABLE ; what we wrote over .return RTL diff --git a/keydrop/standing_items.asm b/keydrop/standing_items.asm index c7d3b26..e924f1c 100644 --- a/keydrop/standing_items.asm +++ b/keydrop/standing_items.asm @@ -70,8 +70,6 @@ org $8681F4 Sprite_SpawnSecret_pool_ID: org $868283 Sprite_SpawnSecret_NotRandomBush: -org $8682A5 -Sprite_SpawnSecret_SetCoords: org $86d23a Sprite_DrawAbsorbable: org $86D038 @@ -187,7 +185,7 @@ RevealPotItem: .next_pot INY : INY : INY - LDA.b [$00],Y + LDA.b [Scrap00],Y CMP.w #$FFFF : BEQ .exit INX @@ -232,7 +230,7 @@ RevealPotItem: LoadMultiWorldPotItem: INY : INY - LDA.b [$00],Y : AND.w #$00FF + LDA.b [Scrap00],Y : AND.w #$00FF INC.w SpawnedItemIsMultiWorld PHX @@ -251,7 +249,7 @@ RTL LoadMajorPotItem: INY : INY - LDA.b [$00],Y : AND.w #$00FF + LDA.b [Scrap00],Y : AND.w #$00FF SaveMajorItemDrop: ; A currently holds the item receipt ID @@ -295,7 +293,7 @@ RTL RTL ShouldCountNormalPot: - INY : INY : LDA.b [$00], Y : AND.w #$00FF : CMP.w #$0080 : BCS .clear + INY : INY : LDA.b [Scrap00], Y : AND.w #$00FF : CMP.w #$0080 : BCS .clear LDA.l PotCountMode : BEQ .clear LDA.l PotCollectionRateTable, X : BIT.b Scrap0A : BEQ .clear ; don't count if clear .set @@ -388,20 +386,20 @@ RTS ; Runs during sprite load of the room LoadSpriteData: INY : INY - LDA.b [$00], Y + LDA.b [Scrap00], Y CMP.b #$F3 : BCC .normal PHA DEC.b Scrap03 ; standing items shouldn't consume a sprite slot LDX.b Scrap03 ; these were changed to $03, for moved sprites CMP.b #$F9 : BNE .not_multiworld - DEY : LDA.b [$00], Y : STA.w SprItemMWPlayer, X + DEY : LDA.b [Scrap00], Y : STA.w SprItemMWPlayer, X LDA.b #$02 : STA.w SprDropsItem, X : BRA .common .not_multiworld LDA.b #$00 : STA.w SprItemMWPlayer, X LDA.b #$01 : STA.w SprDropsItem, X DEY .common - DEY : LDA.b [$00], Y : STA.w SprSourceItemId, X + DEY : LDA.b [Scrap00], Y : STA.w SprSourceItemId, X STA.b Scrap0E LDA.w SprItemMWPlayer, X : BNE + ; skip if multiworld PHX @@ -636,73 +634,73 @@ SpriteKeyPrep: SpriteKeyDrawGFX: JSL Sprite_DrawRippleIfInWater PHA - LDA.l SprItemMWPlayer, X : STA.l !MULTIWORLD_SPRITEITEM_PLAYER_ID - LDA.w SprRedrawFlag, X : BEQ + - LDA.w SprSourceItemId, X - JSL RequestStandingItemVRAMSlot - LDA.w SprRedrawFlag, X : CMP.b #$02 : BEQ + - BRA .skipDraw - + LDA.w SprItemReceipt, X - CMP.b #$24 : BNE + - LDA.b RoomIndex : CMP.b #$80 : BNE ++ - LDA.w SpawnedItemFlag : BNE ++ - LDA.b #$24 : BRA + - ++ PLA - PHK : PEA.w .jslrtsreturn-1 - PEA.w $868014 ; an rtl address - 1 in Bank06 - JML Sprite_DrawAbsorbable - .jslrtsreturn - RTL - + JSL DrawPotItem : BCS .skipDraw - ; draw shadow - CMP.b #$02 : BNE + - PHA - LDA.w SpriteControl, X : AND.b #$DF : STA.w SpriteControl, X - REP #$20 - LDA.b Scrap00 : SEC : SBC.w #$0004 : STA.b Scrap00 - SEP #$20 - PLA - + CMP.b #$03 : BNE + - PHA : LDA.w SpriteControl, X : ORA.b #$20 : STA.w SpriteControl, X : PLA - + JSL Sprite_DrawShadowLong - .skipDraw - PLA : RTL + LDA.w SprItemMWPlayer, X : STA.l !MULTIWORLD_SPRITEITEM_PLAYER_ID + LDA.w SprRedrawFlag, X : BEQ + + LDA.w SprSourceItemId, X + JSL RequestStandingItemVRAMSlot + LDA.w SprRedrawFlag, X : CMP.b #$02 : BEQ + + BRA .skipDraw + + LDA.w SprItemReceipt, X + CMP.b #$24 : BNE + + LDA.b RoomIndex : CMP.b #$80 : BNE ++ + LDA.w SpawnedItemFlag : BNE ++ + LDA.b #$24 : BRA + + ++ PLA + PHK : PEA.w .jslrtsreturn-1 + PEA.w $868014 ; an rtl address - 1 in Bank06 + JML Sprite_DrawAbsorbable + .jslrtsreturn + RTL + + JSL DrawPotItem : BCS .skipDraw + ; draw shadow + CMP.b #$02 : BNE + + PHA + LDA.w SpriteControl, X : AND.b #$DF : STA.w SpriteControl, X + REP #$20 + LDA.b Scrap00 : SEC : SBC.w #$0004 : STA.b Scrap00 + SEP #$20 + PLA + + CMP.b #$03 : BNE + + PHA : LDA.w SpriteControl, X : ORA.b #$20 : STA.w SpriteControl, X : PLA + + JSL Sprite_DrawShadowLong + .skipDraw + PLA : RTL KeyGet: - LDA.l CurrentSmallKeys ; what we wrote over - PHA - LDA.l StandingItemsOn : BNE + - PLA : RTL - + LDY.w SprItemReceipt, X - LDA.w SprItemIndex, X : STA.w SpawnedItemIndex - LDA.w SprItemFlags, X : STA.w SpawnedItemFlag - LDA.b RoomIndex : CMP.b #$87 : BNE + ;check for hera cage - LDA.w SpawnedItemFlag : BNE + ; if it came from a pot, it's fine - JSR ShouldKeyBeCountedForDungeon : BCC ++ - JSL CountChestKeyLong - ++ PLA : RTL - + STY.b Scrap00 - LDA.w SprItemMWPlayer, X : STA.l !MULTIWORLD_ITEM_PLAYER_ID - STA.l !MULTIWORLD_SPRITEITEM_PLAYER_ID : BNE .receive - PHX - LDA.w DungeonID : CMP.b #$FF : BNE + - LDA.b Scrap00 : CMP.b #$AF : BNE .skip - LDA.l CurrentGenericKeys : INC : STA.l CurrentGenericKeys - LDA.b Scrap00 : BRA .countIt - + LSR : TAX - LDA.b Scrap00 : CMP.l KeyTable, X : BNE + - .countIt - LDA.l StandingItemCounterMask : AND.w SpawnedItemFlag : BEQ ++ - JSL AddInventory - ++ PLX : PLA : RTL - + CMP.b #$AF : beq .countIt ; universal key - CMP.b #$24 : beq .countIt ; small key for this dungeon - .skip PLX - .receive - JSL Player_HaltDashAttackLong - TYA : JSL AttemptItemSubstitution : JSL ResolveLootIDLong : TAY - JSL Link_ReceiveItem - PLA : DEC : RTL + LDA.l CurrentSmallKeys ; what we wrote over + PHA + LDA.l StandingItemsOn : BNE + + PLA : RTL + + LDY.w SprItemReceipt, X + LDA.w SprItemIndex, X : STA.w SpawnedItemIndex + LDA.w SprItemFlags, X : STA.w SpawnedItemFlag + LDA.b RoomIndex : CMP.b #$87 : BNE + ;check for hera cage + LDA.w SpawnedItemFlag : BNE + ; if it came from a pot, it's fine + JSR ShouldKeyBeCountedForDungeon : BCC ++ + JSL CountChestKeyLong + ++ PLA : RTL + + STY.b Scrap00 + LDA.w SprItemMWPlayer, X : STA.l !MULTIWORLD_ITEM_PLAYER_ID + STA.l !MULTIWORLD_SPRITEITEM_PLAYER_ID : BNE .receive + PHX + LDA.w DungeonID : CMP.b #$FF : BNE + + LDA.b Scrap00 : CMP.b #$AF : BNE .skip + LDA.l CurrentGenericKeys : INC : STA.l CurrentGenericKeys + LDA.b Scrap00 : BRA .countIt + + LSR : TAX + LDA.b Scrap00 : CMP.l KeyTable, X : BNE + + .countIt + LDA.l StandingItemCounterMask : AND.w SpawnedItemFlag : BEQ ++ + JSL AddInventory + ++ PLX : PLA : RTL + + CMP.b #$AF : beq .countIt ; universal key + CMP.b #$24 : beq .countIt ; small key for this dungeon + .skip PLX + .receive + JSL Player_HaltDashAttackLong + TYA : JSL AttemptItemSubstitution : JSL ResolveLootIDLong : TAY + JSL Link_ReceiveItem + PLA : DEC : RTL KeyTable: db $A0, $A0, $A2, $A3, $A4, $A5, $A6, $A7, $A8, $A9, $AA, $AB, $AC, $AD @@ -712,7 +710,7 @@ ShouldKeyBeCountedForDungeon: PHX LDA.w DungeonID : CMP.b #$FF : BEQ .done LSR : TAX - TYA : cmp KeyTable, X : BNE + + TYA : CMP.w KeyTable, X : BNE + - PLX : SEC : RTS + CMP.b #$24 : BEQ - .done @@ -791,7 +789,7 @@ CheckSprite_Spawn: BMI .check RTL .check - LDA.b Scrap0D : CMP #$08 : BNE + + LDA.b Scrap0D : CMP.b #$08 : BNE + LDA.w LinkDashing : BNE .error LDX.b #$0F diff --git a/menu/hudalpha.asm b/menu/hudalpha.asm index 5d6b736..22fcfc8 100644 --- a/menu/hudalpha.asm +++ b/menu/hudalpha.asm @@ -1,7 +1,7 @@ OnMenuLoad: - LDA.b #UploadMenuOnlyIcons>>0 : STA NMIAux - LDA.b #UploadMenuOnlyIcons>>8 : STA NMIAux+1 - LDA.b #UploadMenuOnlyIcons>>16 : STA NMIAux+2 + LDA.b #UploadMenuOnlyIcons>>0 : STA.w NMIAux + LDA.b #UploadMenuOnlyIcons>>8 : STA.w NMIAux+1 + LDA.b #UploadMenuOnlyIcons>>16 : STA.w NMIAux+2 LDA.b #$0E : STA.b GameMode ; what we overwrote RTL @@ -15,7 +15,7 @@ UploadMenuOnlyIcons: SEP #$20 LDA.b #MenuOnlyIcons>>16 : STA.w $4344 LDA.b #$80 : STA.w $2118 - LDA.b #$10 : STA.w $420B + LDA.b #$10 : STA.w DMAENABLE RTL diff --git a/msu.asm b/msu.asm index e834bc0..cbcb023 100644 --- a/msu.asm +++ b/msu.asm @@ -255,7 +255,7 @@ CheckMusicLoadRequest: PLA : LSR #3 : TAX LDA.w MSUFallbackTable,X : BEQ .secondary_fallback : CMP.b #$FF : BEQ .mute - - : CPY #$00 : BEQ + + - : CPY.b #$00 : BEQ + LSR : DEY : BRA - + @@ -271,8 +271,8 @@ CheckMusicLoadRequest: TAX : LDA.l MusicShuffleTable-1,X PLX CMP.w MusicControlRequest : BEQ .unmute - CPX #35 : !BLT + - CPX #47 : !BLT .dungeon_fallback + CPX.b #35 : !BLT + + CPX.b #47 : !BLT .dungeon_fallback + STA.w MusicControlRequest @@ -503,9 +503,9 @@ PHA : XBA : PHA JSR IsResumableTrack : BCC + ; dont save if we already saved recently REP #$20 - LDA.w MSUResumeTrack : AND #$00FF : BEQ ++ - LDA.l NMIFrames : !SUB MSUResumeTime : PHA - LDA.l NMIFrames+2 : SBC MSUResumeTime+2 : BNE +++ + LDA.w MSUResumeTrack : AND.w #$00FF : BEQ ++ + LDA.l NMIFrames : !SUB.w MSUResumeTime : PHA + LDA.l NMIFrames+2 : SBC.w MSUResumeTime+2 : BNE +++ PLA : CMP.l MSUResumeTimer : !BLT .too_early BRA ++ +++ @@ -578,7 +578,7 @@ MSUMain: PLA : LSR #3 : TAX LDA.w MSUFallbackTable,X : BEQ +++ : CMP.b #$FF : BEQ ++ - - : CPY #$00 : BEQ + + - : CPY.b #$00 : BEQ + LSR : DEY : BRA - + @@ -670,8 +670,8 @@ MSUMain: PLX TXA : CMP.w MSUResumeTrack : BNE + ; dont resume if too late REP #$20 - LDA.l NMIFrames : !SUB MSUResumeTime : PHA - LDA.l NMIFrames+2 : SBC MSUResumeTime+2 : BNE ++ + LDA.l NMIFrames : !SUB.w MSUResumeTime : PHA + LDA.l NMIFrames+2 : SBC.w MSUResumeTime+2 : BNE ++ PLA : CMP.l MSUResumeTimer : !BGE +++ SEP #$20 LDA.b #!FLAG_RESUME_FADEIN : BRA .done_resume @@ -684,8 +684,8 @@ MSUMain: STA.w MSUResumeControl LDA.b #$00 : STA.w MSUResumeTrack + - CPX #07 : BNE + ; Kakariko Village - LDA.b GameMode : CMP #$07 : BNE + + CPX.b #$07 : BNE + ; Kakariko Village + LDA.b GameMode : CMP.b #$07 : BNE + ; we're in link's house -> ignore LDA.b #$00 BRA ++ @@ -694,7 +694,7 @@ MSUMain: ++ STA.w MSULoadedTrack STX.w CurrentMSUTrack - LDA.w MSUPackCurrent : CMP #$FE : !BLT + + LDA.w MSUPackCurrent : CMP.b #$FE : !BLT + LDA.b #$00 : BRA ++ + : LDA.l MSUTrackList-1,X ++ : STA.w MSUDelayedCommand @@ -747,7 +747,7 @@ PendantFanfareWait: LDA.w MSUID+2 : CMP.w #!VAL_MSU_ID_23 : BNE .spc LDA.w MSUID+4 : CMP.w #!VAL_MSU_ID_45 : BNE .spc SEP #$20 - LDA.w MSUPackCurrent : CMP #$FE : !BGE .spc + LDA.w MSUPackCurrent : CMP.b #$FE : !BGE .spc LDA.w MSUSTATUS : BIT.b #!FLAG_MSU_STATUS_TRACK_MISSING : BNE .spc LDA.w MSUDelayedCommand : BNE .continue LDA.w MSUSTATUS : BIT.b #!FLAG_MSU_STATUS_AUDIO_PLAYING : BEQ .done diff --git a/multiworld.asm b/multiworld.asm index 8c455ed..f113106 100644 --- a/multiworld.asm +++ b/multiworld.asm @@ -3,26 +3,26 @@ macro Print_Text(hdr, hdr_len, player_id) PHX : PHY : PHP REP #$30 - LDX #$0000 + LDX.w #$0000 - - CPX : !BGE ++ - LDA , X - STA !MULTIWORLD_HUD_CHARACTER_DATA, X + CPX.w : !BGE ++ + LDA.l , X + STA.l !MULTIWORLD_HUD_CHARACTER_DATA, X INX #2 BRA - ++ - LDY + LDY.w - LDA + LDA.l AND.w #$00FF DEC CMP.w #$00FF : !BGE .textdone ASL #5 TAX - - CPY +$20 : !BGE ++ - LDA PlayerNames, X - PHX : TYX : STA !MULTIWORLD_HUD_CHARACTER_DATA, X : PLX + CPY.w +$20 : !BGE ++ + LDA.l PlayerNames, X + PHX : TYX : STA.l !MULTIWORLD_HUD_CHARACTER_DATA, X : PLX INX #2 : INY #2 BRA - ++ @@ -31,15 +31,15 @@ PHX : PHY : PHP - CPX.w #$0040 : !BGE ++ LDA.w #$007F - STA !MULTIWORLD_HUD_CHARACTER_DATA, X + STA.l !MULTIWORLD_HUD_CHARACTER_DATA, X INX #2 BRA - ++ SEP #$20 - LDA.b #$01 : STA !NMI_MW+1 : STA !NMI_MW - LDA !MULTIWORLD_HUD_DELAY - STA !MULTIWORLD_HUD_TIMER + LDA.b #$01 : STA.l !NMI_MW+1 : STA.l !NMI_MW + LDA.b !MULTIWORLD_HUD_DELAY + STA.l !MULTIWORLD_HUD_TIMER .textdone PLP : PLY : PLX endmacro @@ -67,7 +67,7 @@ WriteText: LDX.b #!MULTIWORLD_HUD_CHARACTER_DATA>>16 : STX.w $4344 LDA.w #$0040 : STA.w $4345 LDA.w #$1801 : STA.w $4340 - LDX.b #$10 : STX.w $420B + LDX.b #$10 : STX.w DMAENABLE PLX : STX.w $2100 ; put screen back however it was before PLX : STX.w $2117 ; restore DMA parameters @@ -87,8 +87,8 @@ RTL GetMultiworldItem: { PHP - LDA !MULTIWORLD_ITEM : BNE + - LDA !MULTIWORLD_HUD_TIMER : BNE + + LDA.l !MULTIWORLD_ITEM : BNE + + LDA.l !MULTIWORLD_HUD_TIMER : BNE + BRL .return + @@ -99,8 +99,8 @@ GetMultiworldItem: BRL .return + - LDA !MULTIWORLD_HUD_TIMER : BEQ .textend - DEC : STA !MULTIWORLD_HUD_TIMER + LDA.l !MULTIWORLD_HUD_TIMER : BEQ .textend + DEC.b #$01 : STA.l !MULTIWORLD_HUD_TIMER CMP.b #$00 : BNE .textend ; Clear text PHP : REP #$30 @@ -108,12 +108,12 @@ GetMultiworldItem: - CPX.w #$0040 : !BGE ++ LDA.w #$007F - STA !MULTIWORLD_HUD_CHARACTER_DATA, X + STA.l !MULTIWORLD_HUD_CHARACTER_DATA, X INX #2 BRA - ++ PLP - LDA.b #$01 : STA !NMI_MW+1 : STA !NMI_MW + LDA.b #$01 : STA.l !NMI_MW+1 : STA.l !NMI_MW .textend LDA.b LinkState @@ -123,7 +123,7 @@ GetMultiworldItem: BRL .return + - LDA !MULTIWORLD_ITEM : BNE + + LDA.l !MULTIWORLD_ITEM : BNE + BRL .return + @@ -173,13 +173,13 @@ GetMultiworldItem: STA.w ItemReceiptID ;Set Item to receive TAY - LDA.b #$01 : STA !MULTIWORLD_RECEIVING_ITEM - LDA.b #$00 : STA !MULTIWORLD_ITEM_PLAYER_ID + LDA.b #$01 : STA.l !MULTIWORLD_RECEIVING_ITEM + LDA.b #$00 : STA.l !MULTIWORLD_ITEM_PLAYER_ID STZ.w ItemReceiptMethod JSL Player_HaltDashAttackLong JSL Link_ReceiveItem - LDA.b #$00 : STA !MULTIWORLD_ITEM : STA !MULTIWORLD_RECEIVING_ITEM + LDA.b #$00 : STA.l !MULTIWORLD_ITEM : STA.l !MULTIWORLD_RECEIVING_ITEM %Print_Text(HUD_ReceivedFrom, #$001C, !MULTIWORLD_ITEM_FROM) @@ -193,10 +193,10 @@ Multiworld_OpenKeyedObject: { PHP SEP #$20 - LDA ChestData_Player+2, X : STA !MULTIWORLD_ITEM_PLAYER_ID + LDA.l ChestData_Player+2, X : STA.l !MULTIWORLD_ITEM_PLAYER_ID PLP - LDA !Dungeon_ChestData+2, X ; thing we wrote over + LDA.l !Dungeon_ChestData+2, X ; thing we wrote over RTL } @@ -204,7 +204,7 @@ Multiworld_BottleVendor_GiveBottle: { PHA : PHP SEP #$20 - LDA BottleMerchant_Player : STA !MULTIWORLD_ITEM_PLAYER_ID + LDA.l BottleMerchant_Player : STA.l !MULTIWORLD_ITEM_PLAYER_ID PLP : PLA JSL Link_ReceiveItem ; thing we wrote over @@ -215,7 +215,7 @@ Multiworld_MiddleAgedMan_ReactToSecretKeepingResponse: { PHA : PHP SEP #$20 - LDA PurpleChest_Item_Player : STA !MULTIWORLD_ITEM_PLAYER_ID + LDA.l PurpleChest_Item_Player : STA.l !MULTIWORLD_ITEM_PLAYER_ID PLP : PLA JSL Link_ReceiveItem ; thing we wrote over @@ -226,7 +226,7 @@ Multiworld_Hobo_GrantBottle: { PHA : PHP SEP #$20 - LDA HoboItem_Player : STA !MULTIWORLD_ITEM_PLAYER_ID + LDA.l HoboItem_Player : STA.l !MULTIWORLD_ITEM_PLAYER_ID PLP : PLA JSL Link_ReceiveItem ; thing we wrote over @@ -237,19 +237,18 @@ Multiworld_MasterSword_GrantToPlayer: { PHA : PHP SEP #$20 - LDA PedestalSword_Player : STA !MULTIWORLD_ITEM_PLAYER_ID + LDA.l PedestalSword_Player : STA.l !MULTIWORLD_ITEM_PLAYER_ID PLP : PLA - CPY.b #$6A : BEQ + - JML Link_ReceiveItem ; thing we wrote over - + JML ActivateGoal + JSL Link_ReceiveItem ; thing we wrote over +RTL } Multiworld_AddReceivedItem_notCrystal: { TYA : STA.w CutsceneFlag : PHX ; things we wrote over - LDA !MULTIWORLD_ITEM_PLAYER_ID : BEQ + + LDA.l !MULTIWORLD_ITEM_PLAYER_ID : BEQ + PHY : LDY.w ItemReceiptID : JSL AddInventory : PLY %Print_Text(HUD_SentTo, #$0010, !MULTIWORLD_ITEM_PLAYER_ID) @@ -263,7 +262,7 @@ Multiworld_AddReceivedItem_notCrystal: Multiworld_Ancilla_ReceiveItem_stillInMotion: { CMP.b #$28 : BNE + ; thing we wrote over - LDA !MULTIWORLD_ITEM_PLAYER_ID : BNE + + LDA.l !MULTIWORLD_ITEM_PLAYER_ID : BNE + JML Ancilla_ReceiveItem_stillInMotion_moveon + JML Ancilla_ReceiveItem_dontGiveRupees diff --git a/music.asm b/music.asm index b06ef78..f26dba8 100644 --- a/music.asm +++ b/music.asm @@ -48,10 +48,8 @@ Overworld_FinishMirrorWarp: LDA.w #$0000 : STA.l FadeTimer : STA.l FadeDirection SEP #$20 - JSL ReloadPreviouslyLoadedSheets - - LDA.b #$80 : STA.b HDMAENQ + LDA.b #$80 : STA.b HDMAENABLEQ JSL Overworld_DetermineAmbientSFX JSL Overworld_DetermineMusic @@ -73,7 +71,7 @@ Overworld_FinishMirrorWarp: BirdTravel_LoadTargetAreaMusic: JSL Overworld_DetermineAmbientSFX JSL Overworld_DetermineMusic - STZ $04C8 ; Clear peg puzzle count + STZ.w $04C8 ; Clear peg puzzle count RTL ;-------------------------------------------------------------------------------- @@ -189,7 +187,7 @@ Overworld_MosaicDarkWorldChecks: ; ; On entry, A=16bit XY=8bit, A & X safe to mod, Y unknown Underworld_DoorDown_Entry: - LDX #$FF ; some junk value to be used later to determine if the below lines will change the track + LDX.b #$FF ; some junk value to be used later to determine if the below lines will change the track LDA.l ProgressIndicator : AND.w #$00FF : CMP.w #2 : !BLT .vanilla LDA.l DRMode : BNE .done @@ -202,11 +200,11 @@ Underworld_DoorDown_Entry: .done LDA.b RoomIndex : RTL ;-------------------------------------------------------------------------------- -; This is for changing to/from ToH dungeon/boss music -; -; A=16bit XY=8bit + +;-------------------------------------------------------------------------------- +; Check if the boss in ToH has been defeated (16-bit accumulator) CheckHeraBossDefeated: -LDA RoomDataWRAM[$07].high : AND.w #$00FF : BEQ + +LDA.l RoomDataWRAM[$07].high : AND.w #$00FF : BEQ + SEC : RTL + CLC : RTL diff --git a/newhud.asm b/newhud.asm index 96457a3..d53031d 100644 --- a/newhud.asm +++ b/newhud.asm @@ -129,7 +129,7 @@ NewHUD_DrawDungeonCounters: LDA.w UpdateHUDFlag : BEQ NewHUD_DrawPrizeIcon LDA.l CompassMode : ORA.l MapHUDMode : BIT.b #$03 : BEQ NewHUD_DrawPrizeIcon LDX.b IndoorsFlag : BNE + - JMP.w NewHUD_DrawMagicMeter + JMP NewHUD_DrawMagicMeter + SEP #$30 ; extra hard safeties for getting dungeon ID to prevent crashes @@ -477,7 +477,7 @@ UpdateHearts: INC .add_heart - STA.b ($07) + STA.b (Scrap07) DEY DEX @@ -513,14 +513,14 @@ UpdateHearts: LDA.l HUDHeartColors_index : ASL : TAX LDA.l HUDHeartColors_masks_game_hud,X ORA.w #$20A1 - STA.b ($09) + STA.b (Scrap09) BRA .skip_partial .more_than_half LDA.l HUDHeartColors_index : ASL : TAX LDA.l HUDHeartColors_masks_game_hud,X ORA.w #$20A0 - STA.b ($09) + STA.b (Scrap09) .skip_partial SEP #$30 diff --git a/newitems.asm b/newitems.asm index 1fa1e4a..5b6286e 100755 --- a/newitems.asm +++ b/newitems.asm @@ -98,7 +98,7 @@ ProcessEventItems: CMP.b #$E0 : BNE + REP #$30 ; set 16-bit accumulator & index registers LDA.l RNGItem : ASL : TAX - LDA.l EventDataOffsets, X : !ADD #EventDataTable : STA.b Scrap00 + LDA.l EventDataOffsets, X : !ADD.l #EventDataTable : STA.b Scrap00 SEP #$20 ; set 8-bit accumulator LDA.b #$AF : STA.b Scrap02 @@ -110,7 +110,7 @@ ProcessEventItems: REP #$20 ; set 16-bit accumulator LDA.l GoalItemRequirement : BEQ ++ LDA.l GoalCounter : INC : STA.l GoalCounter - CMP.l GoalItemRequirement : !BLT ++ + CMP.l GoalItemRequirement : BCC ++ LDA.l TurnInGoalItems : AND.w #$00FF : BNE ++ SEP #$20 ; set 8-bit accumulator LDA.b OverworldIndex : CMP.b #$80 : BNE +++ @@ -164,9 +164,9 @@ RTL ItemBehavior: REP #$30 - AND #$00FF : ASL : TAX + AND.w #$00FF : ASL : TAX SEP #$20 - JMP.w (ItemReceipts_behavior,X) + JMP (ItemReceipts_behavior,X) .skip RTS @@ -279,7 +279,7 @@ ItemBehavior: RTS .bow - BIT #$40 : BNE .silversbow + BIT.b #$40 : BNE .silversbow LDA.b #$01 : STA.l BowEquipment RTS @@ -297,11 +297,11 @@ ItemBehavior: TAX LDA.l DungeonItemMasks,X : TAY ORA.l CompassField : STA.l CompassField - JMP.w .increment_compass + JMP .increment_compass ..hc_sewers LDA.w #$C000 : TAY ORA.l CompassField : STA.l CompassField - JMP.w .increment_compass + JMP .increment_compass .dungeon_bigkey @@ -309,10 +309,10 @@ ItemBehavior: LDA.w DungeonID : CMP.w #$0003 : BCC ..hc_sewers TAX LDA.l DungeonItemMasks,X : ORA.l BigKeyField : STA.l BigKeyField - JMP.w .increment_bigkey + JMP .increment_bigkey ..hc_sewers LDA.w #$C000 : ORA.l BigKeyField : STA.l BigKeyField - JMP.w .increment_bigkey + JMP .increment_bigkey .dungeon_map REP #$20 @@ -320,11 +320,11 @@ ItemBehavior: TAX LDA.l DungeonItemMasks,X : TAY ORA.l MapField : STA.l MapField - JMP.w .increment_map + JMP .increment_map ..hc_sewers LDA.w #$C000 : TAY ORA.l MapField : STA.l MapField - JMP.w .increment_map + JMP .increment_map .bow_and_arrows LDA.l BowTracking : BIT.b #$40 : BEQ .no_silvers @@ -442,7 +442,7 @@ ItemBehavior: RTS .rupoor - REP #$20 : LDA.l CurrentRupees : !SUB RupoorDeduction : STA.l CurrentRupees : SEP #$20 ; Take 1 rupee + REP #$20 : LDA.l CurrentRupees : !SUB.l RupoorDeduction : STA.l CurrentRupees : SEP #$20 ; Take 1 rupee RTS .null @@ -508,13 +508,13 @@ ItemBehavior: LDA.l DungeonItemMasks,X : TAY ORA.l MapField : STA.l MapField SEP #$20 - JMP.w .increment_map + JMP .increment_map .hc_map REP #$20 LDA.w #$C000 : TAY ORA.l MapField : STA.l MapField - JMP.w .increment_map + JMP .increment_map .free_compass REP #$20 @@ -524,14 +524,14 @@ ItemBehavior: LDA.l DungeonItemMasks,X : TAY ORA.l CompassField : STA.l CompassField SEP #$20 - JMP.w .increment_compass + JMP .increment_compass .hc_compass REP #$20 LDA.w #$C000 : TAY ORA.l CompassField : STA.l CompassField SEP #$20 - JMP.w .increment_compass + JMP .increment_compass .free_bigkey REP #$20 @@ -540,11 +540,11 @@ ItemBehavior: LDA.w DungeonItemIDMap,X : TAX LDA.l DungeonItemMasks,X : ORA.l BigKeyField : STA.l BigKeyField SEP #$20 - JMP.w .increment_bigkey + JMP .increment_bigkey .hc_bigkey LDA.b #$C0 : ORA.l BigKeyField+1 : STA.l BigKeyField+1 - JMP.w .increment_bigkey + JMP .increment_bigkey .free_smallkey REP #$20 @@ -762,30 +762,30 @@ ResolveLootID: REP #$30 AND.w #$00FF : ASL : TAX TYA - JMP.w (ItemReceipts_resolution,X) + JMP (ItemReceipts_resolution,X) .have_item SEP #$30 PLB : PLX RTS .skip - JMP.w .have_item + JMP .have_item .bottles SEP #$30 JSR CountBottles : CMP.l BottleLimit : BCC + LDA.l !MULTIWORLD_SPRITEITEM_PLAYER_ID : BNE + LDA.l BottleLimitReplacement - JMP.w .get_item + JMP .get_item + TYA - JMP.w .have_item + JMP .have_item .magic SEP #$20 LDA.l MagicConsumption : TAX LDA.w .magic_ids,X - JMP.w .have_item + JMP .have_item ..ids db $4E, $4F, $4F @@ -795,12 +795,12 @@ ResolveLootID: LDA.l HighestSword CMP.l ProgressiveSwordLimit : BCC + LDA.l ProgressiveSwordReplacement - JMP.w .get_item + JMP .get_item ++ LDA.l SwordEquipment + TAX LDA.w .prog_sword_ids,X - JMP.w .have_item + JMP .have_item ..ids db $49, $50, $02, $03, $03 @@ -811,12 +811,12 @@ ResolveLootID: LDA.l HighestShield CMP.l ProgressiveShieldLimit : BCC + LDA.l ProgressiveShieldReplacement - JMP.w .get_item + JMP .get_item ++ LDA.l HighestShield + TAX LDA.w .shields_ids,X - JMP.w .have_item + JMP .have_item ..ids db $04, $05, $06, $06 @@ -826,12 +826,12 @@ ResolveLootID: LDA.l HighestMail CMP.l ProgressiveArmorLimit : BCC + LDA.l ProgressiveArmorReplacement - JMP.w .get_item + JMP .get_item + ++ LDA.l ArmorEquipment TAX LDA.w .armor_ids,X - JMP.w .have_item + JMP .have_item ..ids db $22, $23, $23 @@ -840,7 +840,7 @@ ResolveLootID: SEP #$20 LDA.l GloveEquipment : TAX LDA.w .gloves_ids,X - JMP.w .have_item + JMP .have_item ..ids db $1B, $1C, $1C @@ -851,7 +851,7 @@ ResolveLootID: LDA.l !MULTIWORLD_SPRITEITEM_PLAYER_ID : BNE .skipbowlimit LDA.l BowEquipment : INC : LSR : CMP.l ProgressiveBowLimit : BCC + LDA.l ProgressiveBowReplacement - JMP.w .get_item + JMP .get_item + LDA.w ItemReceiptMethod : CMP.b #$01 : BEQ + LDX.w CurrentSpriteSlot @@ -860,14 +860,14 @@ ResolveLootID: .skipbowlimit LDA.l BowEquipment : TAX LDA.w ResolveLootID_bows_ids,X - JMP.w .get_item + JMP .get_item .progressive_bow_2 SEP #$30 LDA.l !MULTIWORLD_SPRITEITEM_PLAYER_ID : BNE .skipbowlimit_2 LDA.l BowEquipment : INC : LSR : CMP.l ProgressiveBowLimit : BCC + LDA.l ProgressiveBowReplacement - JMP.w .get_item + JMP .get_item + LDA.w ItemReceiptMethod : CMP.b #$01 : BEQ + LDX.w CurrentSpriteSlot @@ -876,7 +876,7 @@ ResolveLootID: + LDA.l BowEquipment : TAX LDA.w ResolveLootID_bows_ids,X - JMP.w .get_item + JMP .get_item .bows ..ids @@ -884,18 +884,18 @@ ResolveLootID: .null_chest ; JSL ChestItemServiceRequest - JMP.w .have_item + JMP .have_item .rng_single JSL GetRNGItemSingle : STA.w ScratchBufferV+6 XBA : JSR MarkRNGItemSingle LDA.b #$FF : STA.l RNGLockIn ; clear lock-in - LDA.w ScratchBufferV+6 : JMP.w .get_item + LDA.w ScratchBufferV+6 : JMP .get_item .rng_multi JSL GetRNGItemMulti : STA.w ScratchBufferV+6 LDA.b #$FF : STA.l RNGLockIn ; clear lock-in - LDA.w ScratchBufferV+6 : JMP.w .get_item + LDA.w ScratchBufferV+6 : JMP .get_item ;-------------------------------------------------------------------------------- DungeonItemMasks: diff --git a/owrando.asm b/owrando.asm index ee1afb5..075c237 100644 --- a/owrando.asm +++ b/owrando.asm @@ -152,7 +152,7 @@ org $9bed95 ; < ? - palettes.asm:748 () jsl OWWorldCheck16 : nop org $82b16e ; AND #$3F : ORA 7EF3CA -and #$7f : eor #$40 : nop #2 +and.b #$7f : eor.b #$40 : nop #2 org $89C3C4 jsl OWBonkDropPrepSprite : nop #2 @@ -290,7 +290,7 @@ OWMirrorSpriteSkipDraw: sec : rtl .vanilla - LDA.w $0FC6 : CMP.b #$03 ; what we wrote over + LDA.w GfxChrHalfSlotVerify : CMP.b #$03 ; what we wrote over RTL } OWLightWorldOrCrossed: @@ -322,7 +322,7 @@ OWFluteCancel2: } OWSmithAccept: { - lda FollowerIndicator : cmp.b #$07 : beq + + lda.l FollowerIndicator : cmp.b #$07 : beq + cmp.b #$08 : beq + clc : rtl + sec : rtl @@ -359,7 +359,7 @@ LoadMapDarkOrMixed: CMP.b #!FLAG_OW_MIXED : REP #$30 : BEQ .mixed LDX.w #$03FE ; draw vanilla Dark World (what we wrote over) .copy_next - LDA.w WorldMap_DarkWorldTilemap,X : STA.w $1000,X + LDA.w WorldMap_DarkWorldTilemap,X : STA.w GFXStripes,X DEX : DEX : BPL .copy_next BRL .end .mixed @@ -526,7 +526,7 @@ OWBonkDrops: ; JSLSpriteSFX_QueueSFX3WithPan .load_item_and_mw - LDA 3,S : TAX : INX : LDA.w OWBonkPrizeData,X + LDA.b 3,S : TAX : INX : LDA.w OWBonkPrizeData,X PHA : INX : LDA.w OWBonkPrizeData,X : BEQ + ; multiworld item DEX : PLA ; A = item id; X = row + 3 @@ -579,11 +579,11 @@ OWBonkDrops: PLA : BNE + ; S = FlagBitmask, X (row + 2) TYX : JSL Sprite_IsOnscreen : BCC + LDA.b IndoorsFlag : BEQ ++ - LDA.l RoomDataWRAM[$0120].high : ORA 1,S : STA.l RoomDataWRAM[$0120].high - LDA.w $0400 : ORA 1,S : STA.w $0400 + LDA.l RoomDataWRAM[$0120].high : ORA.b 1,S : STA.l RoomDataWRAM[$0120].high + LDA.w $0400 : ORA.b 1,S : STA.w $0400 BRA .increment_collection ++ - LDX.b OverworldIndex : LDA.l OverworldEventDataWRAM,X : ORA 1,S : STA.l OverworldEventDataWRAM,X + LDX.b OverworldIndex : LDA.l OverworldEventDataWRAM,X : ORA.b 1,S : STA.l OverworldEventDataWRAM,X .increment_collection REP #$20 @@ -626,7 +626,7 @@ OWBonkDrops: ; determines the initial spawn point of item PLX : INX : INX : INX LDA.w SpritePosYLow,Y : SEC : SBC.w OWBonkPrizeData,X : STA.w SpritePosYLow,Y - LDA.w SpritePosYHigh,Y : SBC #$00 : STA.w SpritePosYHigh,Y + LDA.w SpritePosYHigh,Y : SBC.b #$00 : STA.w SpritePosYHigh,Y BRA .return+2 @@ -661,7 +661,7 @@ OWBonkDropCollected: LDA.l RoomDataWRAM[$0120].high : AND.b 3,S : BEQ .return ; S = Collected, FlagBitmask, X (row + 2) SEC : RTS + - LDX.b OverworldIndex : LDA.l OverworldEventDataWRAM,X : AND 3,S : BEQ .return ; S = Collected, FlagBitmask, X (row + 2) + LDX.b OverworldIndex : LDA.l OverworldEventDataWRAM,X : AND.b 3,S : BEQ .return ; S = Collected, FlagBitmask, X (row + 2) SEC : RTS .return @@ -758,7 +758,7 @@ OWEdgeTransition: LDA.l Overworld_ActualScreenID,X : ORA.l CurrentWorld ; what we wrote over TAX : LDA.l OWMode+1 : AND.b #!FLAG_OW_MIXED : BEQ .vanilla LDA.l OWTileWorldAssoc,X : CMP.l CurrentWorld : BEQ .vanilla ; if dest screen mismatches the current world - TXA : EOR #$40 : RTL + TXA : EOR.b #$40 : RTL .vanilla TXA : RTL @@ -794,18 +794,18 @@ OWShuffle: ldx.b OverworldIndex : lda.l OWTileWorldAssoc,X : eor.l CurrentWorld : beq + ; fake world, will treat this OW area as opposite world txa : eor.b #$40 : tax - + txa : and #$40 : !add.w OverworldSlotPosition : rep #$30 : and #$00ff : asl #3 + + txa : and.b #$40 : !ADD.w OverworldSlotPosition : rep #$30 : and.w #$00ff : asl #3 - adc 1,S : tax + adc.b 1,S : tax asl.w OverworldSlotPosition : pla ;x = offset to edgeoffsets table - sep #$20 : lda.l OWEdgeOffsets,x : and #$ff : beq .noTransition : pha ;get number of transitions + sep #$20 : lda.l OWEdgeOffsets,x : and.b #$ff : beq .noTransition : pha ;get number of transitions ;s1 = number of transitions left to check inx : lda.l OWEdgeOffsets,x ;record id of first transition in table ;multiply ^ by 16, 16bytes per record - sta.w CPUMULTA : lda #16 : sta.w CPUMULTB ;wait 8 cycles + sta.w CPUMULTA : lda.b #16 : sta.w CPUMULTB ;wait 8 cycles pla ;a = number of trans rep #$20 and.w #$00ff @@ -814,7 +814,7 @@ OWShuffle: .nextTransition pha jsr OWSearchTransition_entry : bcs .newDestination - txa : !add.w #$0010 : tax + txa : !ADD.w #$0010 : tax pla : dec : bne .nextTransition : bra .noTransition .newDestination @@ -836,8 +836,8 @@ OWSearchTransition: ;A-16 XY-16 lda.w TransitionDirection : bne + ;north lda.l OWNorthEdges,x : dec - cmp.b LinkPosX : !bge .exitloop - lda.l OWNorthEdges+2,x : cmp.b LinkPosX : !blt .exitloop + cmp.b LinkPosX : !BGE .exitloop + lda.l OWNorthEdges+2,x : cmp.b LinkPosX : !BLT .exitloop ;MATCH lda.l OWNorthEdges+14,x : tay ;y = record id of dest lda.l OWNorthEdges+12,x ;a = current terrain @@ -845,8 +845,8 @@ OWSearchTransition: bra .matchfound + dec : bne + ;south lda.l OWSouthEdges,x : dec - cmp.b LinkPosX : !bge .exitloop - lda.l OWSouthEdges+2,x : cmp.b LinkPosX : !blt .exitloop + cmp.b LinkPosX : !BGE .exitloop + lda.l OWSouthEdges+2,x : cmp.b LinkPosX : !BLT .exitloop ;MATCH lda.l OWSouthEdges+14,x : tay ;y = record id of dest lda.l OWSouthEdges+12,x ;a = current terrain @@ -854,16 +854,16 @@ OWSearchTransition: bra .matchfound + dec : bne + ; west lda.l OWWestEdges,x : dec - cmp.b LinkPosY : !bge .exitloop - lda.l OWWestEdges+2,x : cmp.b LinkPosY : !blt .exitloop + cmp.b LinkPosY : !BGE .exitloop + lda.l OWWestEdges+2,x : cmp.b LinkPosY : !BLT .exitloop ;MATCH lda.l OWWestEdges+14,x : tay ;y = record id of dest lda.l OWWestEdges+12,x ;a = current terrain ldx.w #OWEastEdges ;x = address of table bra .matchfound + lda.l OWEastEdges,x : dec ;east - cmp.b LinkPosY : !bge .exitloop - lda.l OWEastEdges+2,x : cmp.b LinkPosY : !blt .exitloop + cmp.b LinkPosY : !BGE .exitloop + lda.l OWEastEdges+2,x : cmp.b LinkPosY : !BLT .exitloop ;MATCH lda.l OWEastEdges+14,x : tay ;y = record id of dest lda.l OWEastEdges+12,x ;a = current terrain @@ -877,7 +877,7 @@ OWSearchTransition: OWNewDestination: { tya : sta.w CPUMULTA : lda.b #16 : sta.w CPUMULTB ;wait 8 cycles - rep #$20 : txa : nop : !add.w CPUPRODUCT : tax ;a = offset to dest record + rep #$20 : txa : nop : !ADD.w CPUPRODUCT : tax ;a = offset to dest record lda.w $0008,x : sta.b Scrap04 ;save dest OW slot/ID ldy.b LinkPosY : lda.w TransitionDirection : dec #2 : bpl + : ldy.b LinkPosX : + sty.b Scrap06 @@ -888,21 +888,21 @@ OWNewDestination: LDA.l OWMode : AND.w #$0007 : BEQ .noLayoutShuffle ;temporary fix until VRAM issues are solved lda.w $0006,x : sta.b Scrap06 ;set coord lda.w $000a,x : sta.b OverworldMap16Buffer ;VRAM - tya : and.w #$01ff : cmp.b 3,s : !blt .adjustMainAxis - dec : cmp.b 1,s : !bge .adjustMainAxis - inc : pha : lda.b Scrap06 : and.w #$fe00 : !add.b 1,s : sta.b Scrap06 : pla + tya : and.w #$01ff : cmp.b 3,s : !BLT .adjustMainAxis + dec : cmp.b 1,s : !BGE .adjustMainAxis + inc : pha : lda.b Scrap06 : and.w #$fe00 : !ADD.b 1,s : sta.b Scrap06 : pla ; adjust and set other VRAM addresses - lda.w $0006,x : pha : lda.b Scrap06 : !sub 1,s + lda.w $0006,x : pha : lda.b Scrap06 : !SUB 1,s jsl DivideByTwoPreserveSign : jsl DivideByTwoPreserveSign : jsl DivideByTwoPreserveSign : jsl DivideByTwoPreserveSign : pha ; number of tiles lda.w TransitionDirection : dec #2 : bmi + pla : pea.w $0000 : bra ++ ;pla : asl #7 : pha : bra ++ ; y-axis shifts VRAM by increments of 0x80 (disabled for now) + pla : asl : pha ; x-axis shifts VRAM by increments of 0x02 - ++ lda.b OverworldMap16Buffer : !add 1,s : sta.b OverworldMap16Buffer : pla : pla + ++ lda.b OverworldMap16Buffer : !ADD.b 1,s : sta.b OverworldMap16Buffer : pla : pla .adjustMainAxis - LDA.b OverworldMap16Buffer : SEC : SBC #$0400 : AND #$0F00 : ASL : XBA : STA.b OverworldTilemapIndexY ; vram - LDA.b OverworldMap16Buffer : SEC : SBC #$0010 : AND #$003E : LSR : STA.b OverworldTilemapIndexX + LDA.b OverworldMap16Buffer : SEC : SBC.w #$0400 : AND.w #$0F00 : ASL : XBA : STA.b OverworldTilemapIndexY ; vram + LDA.b OverworldMap16Buffer : SEC : SBC.w #$0010 : AND.w #$003E : LSR : STA.b OverworldTilemapIndexX .noLayoutShuffle LDA.w $000F,X : AND.w #$00FF : STA.w RandoOverworldWalkDist ; position to walk to after transition (if non-zero) @@ -920,47 +920,47 @@ OWNewDestination: pla : pla : sep #$10 : ldy.w TransitionDirection ldx.w OWCoordIndex,y : lda.b LinkPosY,x : and.w #$fe00 : pha lda.b LinkPosY,x : and.w #$01ff : pha ;s1 = relative cur, s3 = ow cur - lda.b Scrap06 : and #$fe00 : !sub.b 3,s : pha ;set coord, s1 = ow diff, s3 = relative cur, s5 = ow cur - lda.b Scrap06 : and.w #$01ff : !sub.b 3,s : pha ;s1 = rel diff, s3 = ow diff, s5 = relative cur, s7 = ow cur + lda.b Scrap06 : and.w #$fe00 : !SUB.b 3,s : pha ;set coord, s1 = ow diff, s3 = relative cur, s5 = ow cur + lda.b Scrap06 : and.w #$01ff : !SUB.b 3,s : pha ;s1 = rel diff, s3 = ow diff, s5 = relative cur, s7 = ow cur lda.b Scrap06 : sta.b LinkPosY,x : and.w #$fe00 : sta.b Scrap06 ;set coord - ldx.w OWBGIndex,y : lda.b BG2H,x : !add.b 1,s : adc.b 3,s : sta.b BG2H,x - ldx.w OWCameraIndex,y : lda.w CameraScrollN,x : !add.b 1,s : adc.b 3,s : sta.w CameraScrollN,x - ldx.w OWCameraIndex,y : lda.w CameraScrollS,x : !add.b 1,s : adc.b 3,s : sta.w CameraScrollS,x + ldx.w OWBGIndex,y : lda.b BG2H,x : !ADD.b 1,s : adc.b 3,s : sta.b BG2H,x + ldx.w OWCameraIndex,y : lda.w CameraScrollN,x : !ADD.b 1,s : adc.b 3,s : sta.w CameraScrollN,x + ldx.w OWCameraIndex,y : lda.w CameraScrollS,x : !ADD.b 1,s : adc.b 3,s : sta.w CameraScrollS,x pla : jsl DivideByTwoPreserveSign : pha - ldx.w OWBGIndex,y : lda.b BG1H,x : !add.b 1,s : sta.b BG1H,x : pla - ldx.w OWBGIndex,y : lda.b BG1H,x : !add.b 1,s : sta.b BG1H,x : pla + ldx.w OWBGIndex,y : lda.b BG1H,x : !ADD.b 1,s : sta.b BG1H,x : pla + ldx.w OWBGIndex,y : lda.b BG1H,x : !ADD.b 1,s : sta.b BG1H,x : pla pla : pla ;fix camera unlock - lda.b BG2H,x : !sub.b Scrap06 : bpl + + lda.b BG2H,x : !SUB.b Scrap06 : bpl + pha : lda.b Scrap06 : sta.b BG2H,x - ldx.w OWCameraIndex,y : lda.w CameraScrollN,x : !sub.b 1,s : sta.w CameraScrollN,x - lda.w CameraScrollS,x : !sub.b 1,s : sta.w CameraScrollS,x : pla + ldx.w OWCameraIndex,y : lda.w CameraScrollN,x : !SUB.b 1,s : sta.w CameraScrollN,x + lda.w CameraScrollS,x : !SUB.b 1,s : sta.w CameraScrollS,x : pla bra .adjustOppositeAxis - + lda.b Scrap06 : ldx.w OWCameraRangeIndex,y : !add.w OWCameraRange,x : sta.b Scrap06 - ldx.w OWBGIndex,y : !sub.b BG2H,x : bcs .adjustOppositeAxis + + lda.b Scrap06 : ldx.w OWCameraRangeIndex,y : !ADD.w OWCameraRange,x : sta.b Scrap06 + ldx.w OWBGIndex,y : !SUB.b BG2H,x : bcs .adjustOppositeAxis pha : lda.b Scrap06 : sta.b BG2H,x - ldx.w OWCameraIndex,y : lda.w CameraScrollN,x : !add.b 1,s : sta.w CameraScrollN,x - lda.w CameraScrollS,x : !add.b 1,s : sta.w CameraScrollS,x : pla + ldx.w OWCameraIndex,y : lda.w CameraScrollN,x : !ADD.b 1,s : sta.w CameraScrollN,x + lda.w CameraScrollS,x : !ADD.b 1,s : sta.w CameraScrollS,x : pla .adjustOppositeAxis ;opposite coord stuff - rep #$30 : lda OWOppDirectionOffset,y : and.w #$00ff : bit.w #$0080 : beq + + rep #$30 : lda.w OWOppDirectionOffset,y : and.w #$00ff : bit.w #$0080 : beq + ora.w #$ff00 ;extend 8-bit negative to 16-bit negative - + pha : cpy.w #$0002 : lda.w OverworldSlotPosition : !bge + - and.w #$00f0 : pha : lda.b Scrap04 : asl : and.w #$0070 : !sub.b 1,s : tax : pla : txa - !add 1,s : tax : pla : txa : asl : asl : asl : asl : asl : pha : bra ++ - + and.w #$000f : pha : lda.b Scrap04 : asl : and.w #$000f : !sub.b 1,s : !add.b 3,s + + pha : cpy.w #$0002 : lda.w OverworldSlotPosition : !BGE + + and.w #$00f0 : pha : lda.b Scrap04 : asl : and.w #$0070 : !SUB.b 1,s : tax : pla : txa + !ADD.b 1,s : tax : pla : txa : asl : asl : asl : asl : asl : pha : bra ++ + + and.w #$000f : pha : lda.b Scrap04 : asl : and.w #$000f : !SUB.b 1,s : !ADD.b 3,s sep #$10 : tax : phx : ldx.b #$0 : phx : rep #$10 : pla : plx : plx : pha - ++ sep #$10 : ldx OWOppCoordIndex,y : lda.b LinkPosY,x : !add.b 1,s : sta.b LinkPosY,x ;set coord - ldx OWOppBGIndex,y : lda.b BG2H,x : !add.b 1,s : sta.b BG2H,x - ldx OWOppCameraIndex,y : lda.w CameraScrollN,x : !add.b 1,s : sta.w CameraScrollN,x - ldx OWOppCameraIndex,y : lda.w CameraScrollS,x : !add.b 1,s : sta.w CameraScrollS,x - ldx OWOppBGIndex,y : lda.b BG1H,x : !add.b 1,s : sta.b BG1H,x - lda.w TransitionDirection : asl : tax : lda.w CameraTargetN,x : !add.b 1,s : sta.w CameraTargetN,x : pla + ++ sep #$10 : ldx.w OWOppCoordIndex,y : lda.b LinkPosY,x : !ADD.b 1,s : sta.b LinkPosY,x ;set coord + ldx.w OWOppBGIndex,y : lda.b BG2H,x : !ADD.b 1,s : sta.b BG2H,x + ldx.w OWOppCameraIndex,y : lda.w CameraScrollN,x : !ADD.b 1,s : sta.w CameraScrollN,x + ldx.w OWOppCameraIndex,y : lda.w CameraScrollS,x : !ADD.b 1,s : sta.w CameraScrollS,x + ldx.w OWOppBGIndex,y : lda.b BG1H,x : !ADD.b 1,s : sta.b BG1H,x + lda.w TransitionDirection : asl : tax : lda.w CameraTargetN,x : !ADD.b 1,s : sta.w CameraTargetN,x : pla - sep #$30 : lda.b Scrap04 : and.b #$3f : !add OWOppSlotOffset,y : asl : sta.w OverworldSlotPosition + sep #$30 : lda.b Scrap04 : and.b #$3f : !ADD.w OWOppSlotOffset,y : asl : sta.w OverworldSlotPosition ; crossed OW shuffle and terrain ldx.b Scrap05 : ldy.b Scrap08 : jsr OWWorldTerrainUpdate diff --git a/password.asm b/password.asm index fcb22a4..719860b 100644 --- a/password.asm +++ b/password.asm @@ -260,7 +260,7 @@ LoadPasswordStripeTemplate: LDA.b #Password_StripeImageTemplate_end-Password_StripeImageTemplate>>8 STA.w DAS0H ; set transfer size - LDA.b #$01 : STA.w MDMAEN ; begin DMA transfer + LDA.b #$01 : STA.w DMAENABLE ; begin DMA transfer PLA : STA.w DAS0H : PLA : STA.w DAS0L : PLA : STA.w A1B0 ; restore DMA parameters PLA : STA.w A1T0H : PLA : STA.w A1T0L : PLA : STA.w BBAD0 ; restore DMA parameters diff --git a/pendantcrystalhud.asm b/pendantcrystalhud.asm index c357377..ca55503 100644 --- a/pendantcrystalhud.asm +++ b/pendantcrystalhud.asm @@ -83,7 +83,7 @@ BringMenuDownEnhanced: EOR.w #$FFFF : !ADD.w #$0001 ; negate menu speed - !ADD BG3VOFSQL : CMP.w #$FF18 : !BGE .noOvershoot + !ADD.l BG3VOFSQL : CMP.w #$FF18 : !BGE .noOvershoot LDA.w #$FF18 ; if we went past the limit, go to the limit .noOvershoot STA.b BG3VOFSQL : CMP.w #$FF18 @@ -101,7 +101,7 @@ RaiseHudMenu: LDA.l MenuSpeed : AND.w #$00FF ++ - !ADD BG3VOFSQL : BMI .noOvershoot + !ADD.l BG3VOFSQL : BMI .noOvershoot LDA.w #$0000 ; if we went past the limit, go to the limit .noOvershoot STA.b BG3VOFSQL diff --git a/playername.asm b/playername.asm index ad0f725..02aa175 100644 --- a/playername.asm +++ b/playername.asm @@ -128,5 +128,5 @@ RTL TYA : CLC : ADC.b Scrap03 : TAY SEP #$20 LDA.b Scrap07 : ORA.b #$80 : STA.w VMAIN - LDA.b #$02 : STA.w MDMAEN - JMP.w .check_next + LDA.b #$02 : STA.w DMAENABLE + JMP .check_next diff --git a/potions.asm b/potions.asm index 7068c0f..b282265 100644 --- a/potions.asm +++ b/potions.asm @@ -14,7 +14,7 @@ RefillHealth: LDA.l PotionHealthRefill : CMP.b #$A0 : !BGE .done LDA.l BusyHealth : BNE ++ LDA.l PotionHealthRefill ; load refill amount - !ADD CurrentHealth ; add to current health + !ADD.l CurrentHealth ; add to current health CMP.l MaximumHealth : !BLT +++ : LDA.l MaximumHealth : +++ STA.l BusyHealth ++ @@ -60,7 +60,7 @@ RefillMagic: LDA.l PotionMagicRefill : CMP.b #$80 : !BGE .done LDA.l BusyMagic : BNE ++ LDA.l PotionMagicRefill ; load refill amount - !ADD CurrentMagic ; add to current magic + !ADD.l CurrentMagic ; add to current magic CMP.b #$80 : !BLT +++ : LDA.b #$80 : +++ STA.l BusyMagic ++ diff --git a/ram.asm b/ram.asm index 98c4eeb..8195083 100644 --- a/ram.asm +++ b/ram.asm @@ -108,7 +108,7 @@ W34SELQ = $7E0097 ; WOBJSELQ = $7E0098 ; CGWSELQ = $7E0099 ; CGADSUBQ = $7E009A ; -HDMAENQ = $7E009B ; HDMA enable flags +HDMAENABLEQ = $7E009B ; HDMA enable flags ; RoomIndex = $7E00A0 ; Underworld room index. Word length. High byte: $00 = EG1 | $01 = EG2 ; Not zeroed on exit to overworld. @@ -270,6 +270,8 @@ DungeonID = $7E040C ; High byte mostly unused but sometimes read. ; TransitionDirection = $7E0418 ; OW: 0=N 1=S 2=W 3=E UW: 0=S 1=N 2=E 3=W ; +TrapDoorFlag = $7E0468 ; Flag that is set when trap doors are down. 2 bytes + ; LayerAdjustment = $7E047A ; Flags layer adjustments. Arms EG. ; RoomIndexMirror = $7E048E ; Mirrors RoomIndex @@ -296,6 +298,9 @@ SpriteRoomTag = $7E0642 ; Set high by sprites triggering room tags. ; SomariaSwitchFlag = $7E0646 ; Set by Somaria when on a switch. ; +TileMapDoorPos = $7E068E ; (Dungeon) ???? related to trap doors and if they are open ; possibly bomb doors too? Update: module 0x07.0x4 probably uses this to know whether it's a key door or big key door to open. Word length. +DoorTimer = $7E0690 ; Timer for animating doors, like Sanc or HC overworld doors + ; TileMapEntranceDoors = $7E0696 ; Tilemap location of entrance doors. Word length. TileMapTile32 = $7E0698 ; Tilemap location of new tile32 objects, such as from graves/rocks. Word length. ; @@ -382,6 +387,7 @@ SpriteForceDrop = $7E0CBA ; Forces drops on sprite death. $10 bytes. ; SpriteBump = $7E0CD2 ; See symbols_wram.asm. $10 bytes. ; +BossSpecialAction = $7E0CF3 ; Indicates special action required for some bosses TreePullKills = $7E0CFB ; Kills for tree pulls. TreePullHits = $7E0CFC ; Hits taken for tree pulls. ; @@ -410,7 +416,7 @@ SpriteOAMProperties = $7E0E40 ; h m w o o o o o | h = Harmless | m = m SpriteHitPoints = $7E0E50 ; Set from $0DB173 SpriteControl = $7E0E60 ; n i o s p p p t | n = Death animation? | i = Immune to attack/collion? ; o = Shadow | p = OAM prop palette | t = OAM prop name table -SpriteJumpIndex = $7E0E80 ; Sprite Item Type. Also used for jump table local. $10 bytes. +SpriteJumpIndex = $7E0E80 ; Sprite jump table local. $10 bytes. ; SpriteDirectionTable = $7E0EB0 ; Sprite direction. $10 bytes. ; @@ -763,7 +769,7 @@ endmacro %assertRAM(WOBJSELQ, $7E0098) %assertRAM(CGWSELQ, $7E0099) %assertRAM(CGADSUBQ, $7E009A) -%assertRAM(HDMAENQ, $7E009B) +%assertRAM(HDMAENABLEQ, $7E009B) %assertRAM(RoomIndex, $7E00A0) %assertRAM(PreviousRoom, $7E00A2) %assertRAM(CameraBoundH, $7E00A6) @@ -847,6 +853,7 @@ endmacro %assertRAM(OverworldIndexMirror, $7E040A) %assertRAM(DungeonID, $7E040C) %assertRAM(TransitionDirection, $7E0418) +%assertRAM(TrapDoorFlag, $7E0468) %assertRAM(LayerAdjustment, $7E047A) %assertRAM(RoomIndexMirror, $7E048E) %assertRAM(RespawnFlag, $7E04AA) @@ -864,6 +871,8 @@ endmacro %assertRAM(NMIAux, $7E0632) %assertRAM(SpriteRoomTag, $7E0642) %assertRAM(SomariaSwitchFlag, $7E0646) +%assertRAM(TileMapDoorPos, $7E068E) +%assertRAM(DoorTimer, $7E0690) %assertRAM(TileMapEntranceDoors, $7E0696) %assertRAM(TileMapTile32, $7E0698) %assertRAM(RandoOverworldEdgeAddr, $7E06F8) @@ -911,6 +920,7 @@ endmacro %assertRAM(AncillaLayer, $7E0C7C) %assertRAM(SpriteForceDrop, $7E0CBA) %assertRAM(SpriteBump, $7E0CD2) +%assertRAM(BossSpecialAction, $7E0CF3) %assertRAM(TreePullKills, $7E0CFB) %assertRAM(TreePullHits, $7E0CFC) %assertRAM(SpritePosYLow, $7E0D00) diff --git a/registers.asm b/registers.asm index 9c877d0..f13aa19 100644 --- a/registers.asm +++ b/registers.asm @@ -1390,8 +1390,8 @@ endmacro %assertREG(HTIMEH, $4208) %assertREG(VTIMEL, $4209) %assertREG(VTIMEH, $420A) -%assertREG(MDMAEN, $420B) -%assertREG(HDMAEN, $420C) +%assertREG(DMAENABLE, $420B) +%assertREG(HDMAENABLE, $420C) %assertREG(MEMSEL, $420D) %assertREG(RDNMI, $4210) %assertREG(TIMEUP, $4211) diff --git a/servicerequest.asm b/servicerequest.asm index 91c8633..2ec3031 100644 --- a/servicerequest.asm +++ b/servicerequest.asm @@ -67,7 +67,7 @@ macro ServiceRequestChest(type) LDA.b OverworldIndex : STA.l TxBuffer+9 ; area id LDA.b #$00 : STA.l TxBuffer+10 ; protocol defines this as a ushort ++ - LDA.b $76 : !SUB #$58 : STA.l TxBuffer+11 ; object index (type 2 only) + LDA.b $76 : !SUB.b #$58 : STA.l TxBuffer+11 ; object index (type 2 only) LDA.b # : STA.l TxBuffer ; item get LDA.b #$01 : STA.l TxStatus ; mark ready for reading SEC ; mark request as successful diff --git a/shopkeeper.asm b/shopkeeper.asm index 5ee6702..c3c9dc8 100644 --- a/shopkeeper.asm +++ b/shopkeeper.asm @@ -77,12 +77,12 @@ dw 4, 0, -4, -8 SpritePrep_ShopKeeper_PotionShop: JSL SpritePrep_ShopKeeper LDA.l ShopType : CMP.b #$FF : BNE + - JSL SpritePrep_PotionShopLong + JSL SpritePrep_MagicShopAssistant RTL + LDX.b #$0 PHK : PEA.w .jslrtsreturn-1 PEA.w $85f527 ; an rtl address - 1 in Bank05 - JML SpawnMagicPowder + JML MagicShopAssistant_SpawnPowder .jslrtsreturn RTL @@ -132,7 +132,7 @@ SpritePrep_ShopKeeper: PLA : STA.l ShopInventoryPlayer, X : LDA.b #0 : STA.l ShopInventoryDisguise, X : PLX PHY PHX - LDA.b #$00 : XBA : TYA : LSR #2 : !ADD ShopSRAMIndex : TAX + LDA.b #0 : XBA : TYA : LSR #2 : !ADD.l ShopSRAMIndex : TAX LDA.l PurchaseCounts, X : TYX : STA.l ShopInventory+3, X : TAY PLX @@ -258,11 +258,11 @@ Shopkepeer_CallOriginal: ;-------------------------------------------------------------------------------- Sprite_ShopKeeperPotion: - LDA.l ShopType : CMP.b #$FF : BNE + : JMP.w ShopkepeerPotion_CallOriginal : + + LDA.l ShopType : CMP.b #$FF : BNE + : JMP ShopkepeerPotion_CallOriginal : + TXA : BEQ + PHK : PEA.w .jslrtsreturn2-1 PEA.w $85f527 ; an rtl address - 1 in Bank05 - JML Sprite_MagicPowderItem + JML Sprite_BagOfPowder .jslrtsreturn2 RTL + @@ -277,14 +277,14 @@ Sprite_ShopKeeperPotion: LDA.w SpriteJumpIndex, X : BNE + PHK : PEA.w .jslrtsreturn-1 PEA.w $85f527 ; an rtl address - 1 in Bank05 - JML Sprite_WitchAssistant + JML MagicShopAssistant_Main .jslrtsreturn + RTL Sprite_ShopKeeper: - LDA.l ShopType : CMP.b #$FF : BNE + : JMP.w Shopkepeer_CallOriginal : + + LDA.l ShopType : CMP.b #$FF : BNE + : JMP Shopkepeer_CallOriginal : + PHB : PHK : PLB JSL Sprite_PlayerCantPassThrough @@ -368,7 +368,7 @@ Shopkeeper_DrawMerchant_Type1: LDA.b #$01 : STA.b Scrap06 ; request 1 OAM slot LDA.b #$04 : JSL OAM_AllocateFromRegionA ; request 4 bytes STZ.b Scrap07 - LDA.b FrameCounter : AND #$08 : BEQ + + LDA.b FrameCounter : AND.b #$08 : BEQ + LDA.b #.oam_shopkeeper_f1 : STA.b Scrap08 LDA.b #.oam_shopkeeper_f1>>8 : STA.b Scrap09 BRA ++ @@ -454,12 +454,12 @@ Shopkeeper_BuyItem: JMP .done .buy LDA.l ShopType : AND.b #$80 : BNE ++ ; don't charge if this is a take-any - REP #$20 : LDA.l CurrentRupees : !SUB ShopInventory+1, X : STA.l CurrentRupees : SEP #$20 ; Take price away + REP #$20 : LDA.l CurrentRupees : !SUB.l ShopInventory+1, X : STA.l CurrentRupees : SEP #$20 ; Take price away ++ PHX LDA.b #0 : XBA : TXA : LSR #2 : TAX - LDA.l ShopInventoryPlayer, X : STA.l !MULTIWORLD_ITEM_PLAYER_ID : STA.l !MULTIWORLD_SPRITEITEM_PLAYER_ID - TXA : !ADD ShopSRAMIndex : TAX + LDA.l ShopInventoryPlayer, X : STA.l !MULTIWORLD_ITEM_PLAYER_ID + TXA : !ADD.l ShopSRAMIndex : TAX LDA.l PurchaseCounts, X : BNE +++ ;Is this the first time buying this slot? LDA.l EnableShopItemCount, X : STA.l ShopEnableCount ; If so, store the permission to count the item here. +++ @@ -472,10 +472,10 @@ Shopkeeper_BuyItem: LDA.b #0 : STA.l ShopEnableCount TXA : LSR #2 : TAX LDA.l ShopType : BIT.b #$80 : BNE + - LDA ShopkeeperRefill : BNE +++ + LDA.l ShopkeeperRefill : BNE +++ LDA.l ShopState : ORA.w Shopkeeper_ItemMasks, X : STA.l ShopState +++ PHX - TXA : !ADD ShopSRAMIndex : TAX + TXA : !ADD.l ShopSRAMIndex : TAX LDA.l PurchaseCounts, X : INC : BEQ +++ : STA.l PurchaseCounts, X : +++ PLX BRA ++ @@ -496,7 +496,7 @@ Shopkeeper_BuyItem: PLX ++ .done - LDA.b #$0 : STA.l ShopkeeperRefill + LDA.b #$00 : STA.l ShopkeeperRefill PLY : PLX RTS Shopkeeper_ItemMasks: @@ -520,7 +520,7 @@ Setup_ShopItemCollisionHitbox: LDA.w Shopkeeper_DrawNextItem_item_offsets_idx, Y : STA.b Scrap00 ; get table from the table table PLY : PLA - !ADD ($00), Y + !ADD.b (Scrap00), Y !ADD.w #$0002 ; a small negative margin SEP #$20 ; set 8-bit accumulator @@ -532,7 +532,7 @@ Setup_ShopItemCollisionHitbox: REP #$20 ; set 16-bit accumulator PHY : INY #2 - !ADD ($00), Y + !ADD.b (Scrap00), Y PLY PHA : LDA.l ShopType : AND.w #$0080 : BEQ + ; lower by 4 for Take-any PLA : !ADD.w #$0004 @@ -625,12 +625,12 @@ Shopkeeper_DrawNextItem: LDA.b RoomIndex : CMP.w #$109 : BNE + : INY #6 : + LDA.w .item_offsets_idx, Y : STA.b Scrap00 ; get table from the table table LDA.b 1,s : ASL #2 : TAY ; set Y to the item index - LDA.b ($00), Y : STA.l SpriteOAM ; load X-coordinate + LDA.b (Scrap00), Y : STA.l SpriteOAM ; load X-coordinate INY #2 LDA.l ShopType : AND.w #$0080 : BNE + - LDA.b ($00), Y : STA.l SpriteOAM+2 : BRA ++ ; load Y-coordinate + LDA.b (Scrap00), Y : STA.l SpriteOAM+2 : BRA ++ ; load Y-coordinate + - LDA.b ($00), Y : !ADD.w #$0004 : STA.l SpriteOAM+2 ; load Y-coordinate + LDA.b (Scrap00), Y : !ADD.w #$0004 : STA.l SpriteOAM+2 ; load Y-coordinate ++ SEP #$20 ; set 8-bit accumulator PLY @@ -804,10 +804,10 @@ Shopkeeper_DrawNextPrice: LDA.w .price_columns_idx, Y : STA.b Scrap02 ; get table from the table table PLY : PHY TYA : ASL #2 : TAY - LDA.b ($00), Y : STA.b Scrap0E ; set coordinate + LDA.b (Scrap00), Y : STA.b Scrap0E ; set coordinate TYA : LSR : TAY - LDA.b ($02), Y : STA.l ShopPriceColumn - INY : LDA.b ($02), Y : STA.l ShopPriceColumn+1 + LDA.b (Scrap02), Y : STA.l ShopPriceColumn + INY : LDA.b (Scrap02), Y : STA.l ShopPriceColumn+1 PLY LDA.l ShopInventory+1, X : STA.b Scrap0C ; set value @@ -822,9 +822,9 @@ Shopkeeper_DrawNextPrice: PHX : PHA : LDA.l ShopScratch : TAX : PLA : JSL Sprite_DrawMultiple_quantity_preset : PLX LDA.b 1,s - ASL #2 : !ADD OAMPtr : STA.b OAMPtr ; increment oam pointer + ASL #2 : !ADD.b OAMPtr : STA.b OAMPtr ; increment oam pointer PLA - !ADD OAMPtr+2 : STA.b OAMPtr+2 + !ADD.b OAMPtr+2 : STA.b OAMPtr+2 .free PLP : PLY : PLX PLB diff --git a/stats.asm b/stats.asm index 2e1d39d..425d11a 100644 --- a/stats.asm +++ b/stats.asm @@ -42,7 +42,7 @@ DungeonHoleEntranceTransition: LDA.l BowTracking : AND.b #$40 : BEQ + ; skip if we don't have silvers LDA.l BowEquipment : BEQ + ; skip if we have no bow CMP.b #$03 : !BGE + ; skip if the bow is already silver - !ADD #$02 : STA.l BowEquipment ; increase bow to silver + !ADD.b #$02 : STA.l BowEquipment ; increase bow to silver + BRA StatTransitionCounter @@ -339,19 +339,19 @@ StatsFinalPrep: LDA.l ScreenTransitions : DEC : STA.l ScreenTransitions ; remove extra transition from exiting gtower via duck .ramPostOnly - LDA.l SwordBossKills : LSR #4 : !ADD SwordBossKills : STA.l BossKills - LDA.l SwordBossKills+1 : LSR #4 : !ADD SwordBossKills+1 : !ADD BossKills : AND.b #$0F : STA.l BossKills + LDA.l SwordBossKills : LSR #4 : !ADD.l SwordBossKills : STA.l BossKills + LDA.l SwordBossKills+1 : LSR #4 : !ADD.l SwordBossKills+1 : !ADD.l BossKills : AND.b #$0F : STA.l BossKills - LDA.l NMIFrames : !SUB LoopFrames : STA.l LagTime - LDA.l NMIFrames+1 : SBC LoopFrames+1 : STA.l LagTime+1 - LDA.l NMIFrames+2 : SBC LoopFrames+2 : STA.l LagTime+2 - LDA.l NMIFrames+3 : SBC LoopFrames+3 : STA.l LagTime+3 + LDA.l NMIFrames : !SUB.l LoopFrames : STA.l LagTime + LDA.l NMIFrames+1 : SBC.l LoopFrames+1 : STA.l LagTime+1 + LDA.l NMIFrames+2 : SBC.l LoopFrames+2 : STA.l LagTime+2 + LDA.l NMIFrames+3 : SBC.l LoopFrames+3 : STA.l LagTime+3 - LDA.l RupeesSpent : !ADD DisplayRupees : STA.l RupeesCollected - LDA.l RupeesSpent+1 : ADC DisplayRupees+1 : STA.l RupeesCollected+1 + LDA.l RupeesSpent : !ADD.l DisplayRupees : STA.l RupeesCollected + LDA.l RupeesSpent+1 : ADC.l DisplayRupees+1 : STA.l RupeesCollected+1 REP #$20 - LDA.l TotalItemCounter : !SUB ChestsOpened : STA.l NonChestCounter + LDA.l TotalItemCounter : !SUB.l ChestsOpened : STA.l NonChestCounter .done PLP : PLX : PLA diff --git a/stats/main.asm b/stats/main.asm index fcd426f..a413dbd 100755 --- a/stats/main.asm +++ b/stats/main.asm @@ -1,11 +1,5 @@ lorom -!ADD = "CLC : ADC" -!SUB = "SEC : SBC" -!BLT = "BCC" -!BGE = "BCS" - - ; Custom addresses. Most are arbitrary. Feel free to make sure they're okay or moving them elsewhere within ZP CreditsPtr = $7C ; 3 bytes Temp = $B3 ; 2 bytes @@ -141,11 +135,11 @@ LastHexDigit: BNE + ; Upper half PLA - ADC #$3D40 + ADC.w #$3D40 RTS + ; Lower half PLA - ADC #$3D50 + ADC.w #$3D50 RTS FindLine: @@ -153,7 +147,7 @@ FindLine: - LDA.w CreditsStats,y STZ.b StatsBottom - CMP #$FFFF + CMP.w #$FFFF BEQ .noLine XBA @@ -516,14 +510,14 @@ LoadCreditsTiles: LDA.b #FileSelectNewGraphics>>16 : STA.w A1B0 LDX.w #FileSelectNewGraphics : STX.w A1T0L LDX.w #$0C00 : STX.w DAS0L - LDA.b #$01 : STA.w MDMAEN + LDA.b #$01 : STA.w DMAENABLE ; Small characters A-Z LDX.w #$7F00 : STX.w VMADDL LDA.b #SmallCharacters>>16 : STA.w A1B0 LDX.w #SmallCharacters : STX.w A1T0L LDX.w #$0200 : STX.w DAS0L - LDA.b #$01 : STA.w MDMAEN + LDA.b #$01 : STA.w DMAENABLE SEP #$10 RTL @@ -540,7 +534,7 @@ LoadOverworldCreditsTiles: LDX.w #SmallCharacters : STX.w A1T0L LDX.w #$0200 : STX.w DAS0L LDX.w #$7F00 : STX.w VMADDL - LDA.b #$01 : STA.w MDMAEN + LDA.b #$01 : STA.w DMAENABLE SEP #$10 RTL diff --git a/swordswap.asm b/swordswap.asm index 44d3797..a2c0c56 100644 --- a/swordswap.asm +++ b/swordswap.asm @@ -33,7 +33,7 @@ RTL ;================================================================================ LoadModifiedSwordLevel: ; returns short LDA.l SwordModifier : BEQ + - !ADD SwordEquipment ; add normal sword value to modifier + !ADD.l SwordEquipment ; add normal sword value to modifier BNE ++ : LDA.b #$01 : RTS : ++ CMP.b #$05 : !BLT ++ : LDA.b #$04 : RTS : ++ RTS @@ -44,18 +44,18 @@ RTS ; ArmorEquipment - Armor Inventory LoadModifiedArmorLevel: PHA - LDA.l ArmorEquipment : !ADD ArmorModifier + LDA.l ArmorEquipment : !ADD.l ArmorModifier CMP.b #$FF : BNE + : LDA.b #$00 : + CMP.b #$03 : !BLT + : LDA.b #$02 : + STA.l ScratchBufferV PLA - !ADD ScratchBufferV + !ADD.w ScratchBufferV RTL ;================================================================================ ; MagicConsumption - Magic Inventory LoadModifiedMagicLevel: LDA.l MagicModifier : BEQ + - !ADD MagicConsumption ; add normal magic value to modifier + !ADD.l MagicConsumption ; add normal magic value to modifier CMP.b #$FF : BNE ++ : LDA.b #$00 : RTL : ++ CMP.b #$03 : !BLT ++ : LDA.b #$02 : ++ RTL diff --git a/utilities.asm b/utilities.asm index 97a48d5..95db8ac 100644 --- a/utilities.asm +++ b/utilities.asm @@ -50,15 +50,15 @@ RTL PrepDynamicTile: PHX : PHY : PHB LDA.l RemoteItems : BEQ .notRemote - LDA.l SprItemReceipt, X : CMP.l !MULTIWORLD_SCOUTREPLY_LOCATION : BNE ++ + LDA.w SprItemReceipt, X : CMP.l !MULTIWORLD_SCOUTREPLY_LOCATION : BNE ++ LDA.l !MULTIWORLD_SCOUTREPLY_PLAYER : STA.l !MULTIWORLD_SPRITEITEM_PLAYER_ID LDA.l !MULTIWORLD_SCOUTREPLY_ITEM - STA.l SprItemReceipt, X + STA.w SprItemReceipt, X BRA .notRemote ++ STA.l !MULTIWORLD_SCOUT_LOCATION LDA.b #$00 : STA.l !MULTIWORLD_SPRITEITEM_PLAYER_ID - LDA.b #$6B : STA.l SprItemReceipt, X ; make it a power star, I guess + LDA.b #$6B : STA.w SprItemReceipt, X ; make it a power star, I guess .notRemote JSR ResolveLootID - @@ -226,7 +226,7 @@ PrepDrawRemoteItemSprite: LDA.l !MULTIWORLD_SCOUTREPLY_LOCATION STA.l SprItemReceipt, X JSL PrepDynamicTile - LDA #$00 + LDA.b #$00 BRA ++ +++ LDA.l !MULTIWORLD_SCOUTREPLY_PLAYER : STA.l !MULTIWORLD_SPRITEITEM_PLAYER_ID @@ -323,7 +323,7 @@ SkipDrawEOR: LDA.w #$0000 : STA.l SpriteSkipEOR LDA.w #$0F00 : TRB.b Scrap04 .normal - LDA.b ($08), Y : EOR.w Scrap04 ; thing we wrote over + LDA.b (Scrap08), Y : EOR.w Scrap04 ; thing we wrote over RTL ;-------------------------------------------------------------------------------- @@ -508,7 +508,7 @@ AuxPaletteCheck: SEP #$30 LDA.w ItemReceiptMethod : BNE .main_buffer ; Never use aux if we're actually receiving an item LDA.b RoomIndex : CMP.b #$8C : BEQ .aux_buffer ; GT torch/Hope room - LDA.b RoomIndex : CMP.b #$87 : BEQ .aux_buffer ; Hera cage/basement + CMP.b #$87 : BEQ .aux_buffer ; Hera cage/basement .main_buffer REP #$31 PLX diff --git a/vanillalabels.asm b/vanillalabels.asm index e7ec3f0..1611fef 100644 --- a/vanillalabels.asm +++ b/vanillalabels.asm @@ -68,6 +68,7 @@ Sprite_ZeldaLong = $85EC96 Sprite_EA_HeartContainer = $85EF3F Sprite_EB_HeartPiece_handle_flags = $85F0C0 Sprite_16_Elder = $85F0CD +SpritePrep_MagicShopAssistant = $85F521 Player_ApplyRumbleToSprites = $8680FA Sprite_Main = $868328 Utility_CheckIfHitBoxesOverlapLong = $8683E6 @@ -185,6 +186,11 @@ RecoverPositionAfterDrowning = $829485 OverworldHandleTransitions_change_palettes = $82A9F3 Palette_RestoreFixedColor = $82FF58 Sprite_EA_HeartContainer_main = $85EF47 +MagicShopAssistant_SpawnPowder = $85F539 +MagicShopAssistant_SpawnObject = $85F61D +Sprite_BagOfPowder = $85F644 +MagicShopAssistant_Main = $85F893 +Sprite_SpawnSecret_SetCoords = $8682A5 Chicken_SpawnAvengerChicken = $86A7DB Link_PerformRead = $87B4DB Link_PerformOpenChest_no_replacement = $87B59F