From 5b6e23fcf58dfbb306e4318398a6dfaeb82c61d6 Mon Sep 17 00:00:00 2001 From: CaitSith2 Date: Tue, 13 Oct 2020 02:27:49 -0700 Subject: [PATCH 01/63] Fix Agahnim Tower compass counter --- compasses.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compasses.asm b/compasses.asm index 89ee265..11a9a59 100644 --- a/compasses.asm +++ b/compasses.asm @@ -67,7 +67,7 @@ CompassCount_Desert: CompassCount_Agah: %DrawConstantNumber(0,2) SEP #$20 - LDA $7EF435 : AND.b #$02 + LDA $7EF435 : AND.b #$03 JMP DrawDungeonCompassCounts_return_spot CompassCount_Swamp: From 99da1d31158461364cb783eaca8e7cb378e56be6 Mon Sep 17 00:00:00 2001 From: Catobat <69204835+Catobat@users.noreply.github.com> Date: Wed, 16 Dec 2020 18:04:37 +0100 Subject: [PATCH 02/63] Reset boss RNG and other things on new file --- events.asm | 10 ++++++++++ init.asm | 1 + rngfixes.asm | 8 ++++---- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/events.asm b/events.asm index 15912b7..4ff5905 100644 --- a/events.asm +++ b/events.asm @@ -149,6 +149,16 @@ OnNewFile: LDA StartingSword : STA $7EF359 ; set starting sword type LDA !INVENTORY_SWAP : STA $70038C ; copy starting equipment swaps to file select screen LDA !INVENTORY_SWAP_2 : STA $70038E + + ; reset some values on new file that are otherwise only reset on hard reset + STZ $03C4 ; ancilla slot index + STZ $047A ; EG + STZ $0B08 : STZ $0B09 ; arc variable + STZ $0CFB ; enemies killed (pull trees) + STZ $0CFC ; times taken damage (pull trees) + STZ $0FC7 : STZ $0FC8 : STZ $0FC9 : STZ $0FCA : STZ $0FCB : STZ $0FCC : STZ $0FCD ; prize packs + LDA #$00 : STA $7EC011 ; mosaic + JSL InitRNGPointerTable ; boss RNG PLP : PLX RTL ;-------------------------------------------------------------------------------- diff --git a/init.asm b/init.asm index 8da91a0..47a5726 100644 --- a/init.asm +++ b/init.asm @@ -56,5 +56,6 @@ RTL Init_PostRAMClear: JSL MSUInit + JSL InitRNGPointerTable JML $00D463 ; The original target of the jump table that we hijacked \ No newline at end of file diff --git a/rngfixes.asm b/rngfixes.asm index ae1e797..cf2b7b9 100644 --- a/rngfixes.asm +++ b/rngfixes.asm @@ -107,9 +107,9 @@ RTL !RNG_POINTERS = "$7F5200" GetStaticRNG: PHX : PHP - REP #$20 ; set 16-bit accumulator and index registers - AND.w #$007F - ASL : TAX : LDA !RNG_POINTERS, X : INC : AND.w #$03FF : STA !RNG_POINTERS, X : TAX : ASL ; increment pointer and move value to X + REP #$30 ; set 16-bit accumulator and index registers + AND.w #$000F + ASL : TAX : LDA !RNG_POINTERS, X : INC : AND.w #$03FF : STA !RNG_POINTERS, X : TAX ; increment pointer and move value to X LDA Static_RNG, X ; load RNG value PLP : PLX RTL @@ -123,7 +123,7 @@ InitRNGPointerTable: LDA.l .rngDefaults, X : STA !RNG_POINTERS, X : INX #2 LDA.l .rngDefaults, X : STA !RNG_POINTERS, X : INX #2 LDA.l .rngDefaults, X : STA !RNG_POINTERS, X : INX #2 - CPX.w #$007F : !BLT - + CPX.w #$001F : !BLT - PLP : PLX RTL .rngDefaults From 078aebed8dbc2d5c4e05f405a4370ea248ef1749 Mon Sep 17 00:00:00 2001 From: Catobat <69204835+Catobat@users.noreply.github.com> Date: Wed, 16 Dec 2020 18:42:40 +0100 Subject: [PATCH 03/63] Restore vanilla prize pack reset behavior --- save.asm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/save.asm b/save.asm index f1add73..1b41061 100644 --- a/save.asm +++ b/save.asm @@ -1,5 +1,13 @@ ;-------------------------------------------------------------------------------- Validate_SRAM: + REP #$30 ; vanilla behavior from $0CCD45, includes prize pack reset after save and quit + LDX #$00FE : - + STZ $0D00, X + STZ $0E00, X + STZ $0F00, X + DEX #2 + BPL - + SEP #$30 RTL ;-------------------------------------------------------------------------------- ClearExtendedSaveFile: From 0c608c1380db82ae7e2d4fa75ee9acc5e2ee04f6 Mon Sep 17 00:00:00 2001 From: Catobat <69204835+Catobat@users.noreply.github.com> Date: Wed, 16 Dec 2020 19:58:33 +0100 Subject: [PATCH 04/63] Fix starting equipment on file select --- events.asm | 8 ++++++-- hooks.asm | 4 +++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/events.asm b/events.asm index 4ff5905..412f1af 100644 --- a/events.asm +++ b/events.asm @@ -80,6 +80,12 @@ OnAga2Defeated: JSL.l IncrementAgahnim2Sword RTL ;-------------------------------------------------------------------------------- +OnFileCreation: + TAX ; what we wrote over + LDA StartingEquipment+$4C : STA $700340+$4C ; copy starting equipment swaps to file select screen + LDA StartingEquipment+$4E : STA $700340+$4E +RTL +;-------------------------------------------------------------------------------- !RNG_ITEM_LOCK_IN = "$7F5090" OnFileLoad: REP #$10 ; set 16 bit index registers @@ -147,8 +153,6 @@ OnNewFile: + LDA StartingSword : STA $7EF359 ; set starting sword type - LDA !INVENTORY_SWAP : STA $70038C ; copy starting equipment swaps to file select screen - LDA !INVENTORY_SWAP_2 : STA $70038E ; reset some values on new file that are otherwise only reset on hard reset STZ $03C4 ; ancilla slot index diff --git a/hooks.asm b/hooks.asm index e6c37f1..7c5478f 100755 --- a/hooks.asm +++ b/hooks.asm @@ -261,7 +261,9 @@ org $0CCE85 ; <- Bank0C.asm : 1953 (LDA $C8 : ASL A : INC #2 : STA $701FFE) NOP #4 ;-------------------------------------------------------------------------------- org $0CDB4C ; <- Bank0C.asm : 3655 (LDA $C8 : ASL A : INC #2 : STA $701FFE : TAX) -NOP #4 +JSL OnFileCreation +NOP +;Additionally, display inventory swap starting equipment on file select ;-------------------------------------------------------------------------------- org $09F5EA ; <- module_death.asm : 510 (LDA $701FFE : TAX : DEX #2) LDA.w #$0002 : NOP From df45a9b45134c9799bb6474907b98a885a5047c5 Mon Sep 17 00:00:00 2001 From: Catobat <69204835+Catobat@users.noreply.github.com> Date: Wed, 16 Dec 2020 21:32:30 +0100 Subject: [PATCH 05/63] Add Instant Post-Aga World State option --- openmode.asm | 11 +++++++++-- tables.asm | 6 +++++- zelda.asm | 1 + 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/openmode.asm b/openmode.asm index 53ff4cb..4bf907c 100644 --- a/openmode.asm +++ b/openmode.asm @@ -12,11 +12,18 @@ RTL InitOpenMode: LDA.l OpenMode : BEQ + ; Skip if not open mode LDA $7EF3C5 : CMP #$02 : !BGE + ; Skip if already past escape - LDA.b #02 : STA $7EF3C5 ; Go to post-escape phase (pre aga1) + LDA.b #$02 : STA $7EF3C5 ; Go to post-escape phase (pre aga1) LDA $7EF3C6 : ORA #$14 : STA $7EF3C6 ; remove uncle LDA $7EF3C8 : CMP #$05 : BEQ ++ : LDA.b #$01 : ++ : STA $7EF3C8 ; set spawn points to house+sanc unless already house+sanc+mountain LDA $7EF29B : ORA.b #$20 : STA $7EF29B ; open castle gate - RTL + JSL MaybeSetPostAgaWorldState + + +RTL +;-------------------------------------------------------------------------------- +MaybeSetPostAgaWorldState: + LDA.l InstantPostAgaWorldState : BEQ + ; Skip if not enabled + LDA.b #$03 : STA $7EF3C5 ; Go to post-aga phase + LDA $7EF282 : ORA.b #$20 : STA $7EF282 ; make lumberjack tree accessible + RTL ;-------------------------------------------------------------------------------- \ No newline at end of file diff --git a/tables.asm b/tables.asm index ff6a99e..1669708 100644 --- a/tables.asm +++ b/tables.asm @@ -380,7 +380,11 @@ org $30808C ; PC 0x18008C PreopenGanonsTower: db $00 ; #$00 = Off (default) - #$01 = On ;-------------------------------------------------------------------------------- -; 0x18008D - 0x18008F (unused) +org $30808D ; PC 0x18008D +InstantPostAgaWorldState: +db $00 ; #$00 = Off (default) - #$01 = On +;-------------------------------------------------------------------------------- +; 0x18008E - 0x18008F (unused) ;-------------------------------------------------------------------------------- org $308090 ; PC 0x180090 - 0x180097 ProgressiveSwordLimit: diff --git a/zelda.asm b/zelda.asm index f03a4ba..6b17d1d 100644 --- a/zelda.asm +++ b/zelda.asm @@ -14,6 +14,7 @@ EndRainState: LDA $7EF3C5 : CMP.b #$02 : !BGE + ; skip if past escape already LDA.b #$00 : STA !INFINITE_ARROWS : STA !INFINITE_BOMBS : STA !INFINITE_MAGIC LDA.b #$02 : STA $7EF3C5 ; end rain state + JSL MaybeSetPostAgaWorldState + RTL ;-------------------------------------------------------------------------------- From c97475f4227b94e4e4919383036d07646ddc5775 Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Sun, 27 Dec 2020 08:04:32 -0500 Subject: [PATCH 06/63] BRL -> JMP --- clock.asm | 4 +- crypto.asm | 2 +- dialog.asm | 46 +-- dpadinvert.asm | 2 +- entrances.asm | 2 +- heartpieces.asm | 90 ++--- hooks.asm | 2 +- inventory.asm | 212 +++++------ inverted.asm | 4 +- itemdowngrade.asm | 4 +- msu.asm | 8 +- newhud.asm | 6 +- newitems.asm | 126 +++---- newitems2.asm | 825 ++++++++++++++++++++++++++++++++++++++++++ password.asm | 2 +- pendantcrystalhud.asm | 18 +- shopkeeper.asm | 34 +- stats/main.asm | 6 +- swordswap.asm | 6 +- tablets.asm | 4 +- utilities.asm | 2 +- 21 files changed, 1115 insertions(+), 290 deletions(-) create mode 100644 newitems2.asm diff --git a/clock.asm b/clock.asm index 8fa0c3e..c0eebd1 100644 --- a/clock.asm +++ b/clock.asm @@ -144,7 +144,7 @@ Clock_QuickStamp: LDX #$00; - LDA $002800 : AND.b #$0F : CMP #$0F : BEQ .ready ; check for clock chip ready signal - CPX.b #$0E : !BLT ++ : CLC : BRL .done : ++ ; if we've read 14 bytes with no success, unset carry and exit + CPX.b #$0E : !BLT ++ : CLC : JMP .done : ++ ; if we've read 14 bytes with no success, unset carry and exit INX BRA - SEC ; indicate success @@ -226,7 +226,7 @@ Clock_GetTime: LDX #$00; - LDA $002800 : AND.b #$0F : CMP #$0F : BEQ .ready ; check for clock chip ready signal - CPX.b #$0E : !BLT ++ : CLC : BRL .done : ++ ; if we've read 14 bytes with no success, unset carry and exit + CPX.b #$0E : !BLT ++ : CLC : JMP .done : ++ ; if we've read 14 bytes with no success, unset carry and exit INX BRA - SEC ; indicate success diff --git a/crypto.asm b/crypto.asm index e28580a..120344f 100644 --- a/crypto.asm +++ b/crypto.asm @@ -192,7 +192,7 @@ XXTEA_Decode: LDA.w !sum : !SUB.l CryptoDelta : STA.w !sum LDA.w !sum+2 : SBC.l CryptoDelta+2 : STA.w !sum+2 - DEC !rounds : BEQ + : BRL --- : + ; } while (--rounds); + DEC !rounds : BEQ + : JMP --- : + ; } while (--rounds); PLB : PLP RTL diff --git a/dialog.asm b/dialog.asm index 3216fe0..720f7b1 100644 --- a/dialog.asm +++ b/dialog.asm @@ -137,7 +137,7 @@ FreeDungeonItemNotice: LDA $02 : PHA ;-------------------------------- - LDA.l FreeItemText : BNE + : BRL .skip : + + LDA.l FreeItemText : BNE + : JMP .skip : + LDA #$00 : STA $7F5010 ; initialize scratch LDA.l FreeItemText : AND.b #$01 : CMP.b #$01 : BNE + ; show message for general small key @@ -145,48 +145,48 @@ FreeDungeonItemNotice: %CopyDialog(Notice_SmallKeyOf) LDA !OFFSET_RETURN : DEC #2 : STA !OFFSET_POINTER %CopyDialog(Notice_Self) - BRL .done + JMP .done + : LDA.l FreeItemText : AND.b #$02 : CMP.b #$02 : BNE + ; show message for general compass LDA !ITEM_TEMPORARY : CMP.b #$25 : BNE + ; general compass %CopyDialog(Notice_CompassOf) LDA !OFFSET_RETURN : DEC #2 : STA !OFFSET_POINTER %CopyDialog(Notice_Self) - BRL .done + JMP .done + : LDA.l FreeItemText : AND.b #$04 : CMP.b #$04 : BNE + ; show message for general map LDA !ITEM_TEMPORARY : CMP.b #$33 : BNE + ; general map %CopyDialog(Notice_MapOf) LDA !OFFSET_RETURN : DEC #2 : STA !OFFSET_POINTER %CopyDialog(Notice_Self) - BRL .done + JMP .done + : LDA.l FreeItemText : AND.b #$08 : CMP.b #$08 : BNE + ; show message for general big key LDA !ITEM_TEMPORARY : CMP.b #$32 : BNE + ; general big key %CopyDialog(Notice_BigKeyOf) LDA !OFFSET_RETURN : DEC #2 : STA !OFFSET_POINTER %CopyDialog(Notice_Self) - BRL .done + JMP .done + LDA.l FreeItemText : AND.b #$04 : CMP.b #$04 : BNE + ; show message for dungeon map LDA !ITEM_TEMPORARY : AND.b #$F0 ; looking at high bits only CMP.b #$70 : BNE + ; map of... %CopyDialog(Notice_MapOf) - BRL .dungeon + JMP .dungeon + : LDA.l FreeItemText : AND.b #$02 : CMP.b #$02 : BNE + ; show message for dungeon compass LDA !ITEM_TEMPORARY : AND.b #$F0 : CMP.b #$80 : BNE + ; compass of... %CopyDialog(Notice_CompassOf) - BRL .dungeon + JMP .dungeon + : LDA.l FreeItemText : AND.b #$08 : CMP.b #$08 : BNE + ; show message for dungeon big key LDA !ITEM_TEMPORARY : AND.b #$F0 : CMP.b #$90 : BNE + ; big key of... %CopyDialog(Notice_BigKeyOf) BRA .dungeon + : LDA.l FreeItemText : AND.b #$01 : CMP.b #$01 : BNE + ; show message for dungeon small key LDA !ITEM_TEMPORARY : AND.b #$F0 : CMP.b #$A0 : BNE + ; small key of... - LDA !ITEM_TEMPORARY : CMP.b #$AF : BNE ++ : BRL .skip : ++ + LDA !ITEM_TEMPORARY : CMP.b #$AF : BNE ++ : JMP .skip : ++ %CopyDialog(Notice_SmallKeyOf) PLA : AND.b #$0F : STA $7F5020 : LDA.b #$0F : !SUB $7F5020 : PHA LDA #$01 : STA $7F5010 ; set up a flip for small keys BRA .dungeon + - BRL .skip ; it's not something we are going to give a notice for + JMP .skip ; it's not something we are going to give a notice for .dungeon LDA !OFFSET_RETURN : DEC #2 : STA !OFFSET_POINTER @@ -199,31 +199,31 @@ FreeDungeonItemNotice: + LDA $7F5011 CMP.b #$00 : BNE + ; ...light world - %CopyDialog(Notice_LightWorld) : BRL .done + %CopyDialog(Notice_LightWorld) : JMP .done + : CMP.b #$01 : BNE + ; ...dark world - %CopyDialog(Notice_DarkWorld) : BRL .done + %CopyDialog(Notice_DarkWorld) : JMP .done + : CMP.b #$02 : BNE + ; ...ganon's tower - %CopyDialog(Notice_GTower) : BRL .done + %CopyDialog(Notice_GTower) : JMP .done + : CMP.b #$03 : BNE + ; ...turtle rock - %CopyDialog(Notice_TRock) : BRL .done + %CopyDialog(Notice_TRock) : JMP .done + : CMP.b #$04 : BNE + ; ...thieves' town - %CopyDialog(Notice_Thieves) : BRL .done + %CopyDialog(Notice_Thieves) : JMP .done + : CMP.b #$05 : BNE + ; ...tower of hera - %CopyDialog(Notice_Hera) : BRL .done + %CopyDialog(Notice_Hera) : JMP .done + : CMP.b #$06 : BNE + ; ...ice palace - %CopyDialog(Notice_Ice) : BRL .done + %CopyDialog(Notice_Ice) : JMP .done + : CMP.b #$07 : BNE + ; ...skull woods - %CopyDialog(Notice_Skull) : BRL .done + %CopyDialog(Notice_Skull) : JMP .done + : CMP.b #$08 : BNE + ; ...misery mire - %CopyDialog(Notice_Mire) : BRL .done + %CopyDialog(Notice_Mire) : JMP .done + : CMP.b #$09 : BNE + ; ...dark palace - %CopyDialog(Notice_PoD) : BRL .done + %CopyDialog(Notice_PoD) : JMP .done + : CMP.b #$0A : BNE + ; ...swamp palace - %CopyDialog(Notice_Swamp) : BRL .done + %CopyDialog(Notice_Swamp) : JMP .done + : CMP.b #$0B : BNE + ; ...agahnim's tower - %CopyDialog(Notice_AgaTower) : BRL .done + %CopyDialog(Notice_AgaTower) : JMP .done + : CMP.b #$0C : BNE + ; ...desert palace - %CopyDialog(Notice_Desert) : BRL .done + %CopyDialog(Notice_Desert) : JMP .done + : CMP.b #$0D : BNE + ; ...eastern palace %CopyDialog(Notice_Eastern) : BRA .done + : CMP.b #$0E : BNE + ; ...hyrule castle @@ -424,7 +424,7 @@ Sprite_ShowMessageMinimal_Alt: INY : LDA [$00], Y : CMP.b #$6b : BNE + INY : LDA [$00], Y : CMP.b #$04 : BNE + STZ $1CE8 - BRL .end + JMP .end + STZ $0223 ; Otherwise set it so we are in text mode. diff --git a/dpadinvert.asm b/dpadinvert.asm index 130455f..e030526 100644 --- a/dpadinvert.asm +++ b/dpadinvert.asm @@ -6,7 +6,7 @@ ; Filtered Joypad 1 Register: [BYST | udlr] [AXLR | ????] !INVERT_DPAD = "$7F50CB" InvertDPad: - LDA !INVERT_DPAD : BNE + : BRL .normal : + + LDA !INVERT_DPAD : BNE + : JMP .normal : + DEC : BEQ .dpadOnly DEC : BEQ .buttonsOnly DEC : BEQ .invertBoth diff --git a/entrances.asm b/entrances.asm index 9ffd45b..2b2f171 100644 --- a/entrances.asm +++ b/entrances.asm @@ -72,7 +72,7 @@ AllowStartFromSingleEntranceCave: LDA.l StartingAreaExitOffset, X BNE + - BRL .done + JMP .done + DEC diff --git a/heartpieces.asm b/heartpieces.asm index 1009d8a..5c20ebd 100644 --- a/heartpieces.asm +++ b/heartpieces.asm @@ -24,7 +24,7 @@ HeartPieceGet: JSL.l $0791B3 ; Player_HaltDashAttackLong JSL.l Link_ReceiveItem CLC ; return false - BRL .done ; finished + JMP .done ; finished .unfinished_heart SEC ; return true @@ -54,7 +54,7 @@ DrawHeartPieceGFX: PHA : PHY LDA !REDRAW : BEQ .skipInit ; skip init if already ready JSL.l HeartPieceSpritePrep - BRL .done ; don't draw on the init frame + JMP .done ; don't draw on the init frame .skipInit LDA $0E80, X ; Retrieve stored item type @@ -177,7 +177,7 @@ LoadHeartPieceRoomValue: LDA $1B : BEQ .outdoors ; check if we're indoors or outdoors .indoors JSL.l LoadIndoorValue - BRL .done + JMP .done .outdoors JSL.l LoadOutdoorValue .done @@ -225,30 +225,30 @@ LoadIndoorValue: LDA $A0 ; these are all decimal because i got them that way CMP.w #225 : BNE + %GetPossiblyEncryptedItem(HeartPiece_Forest_Thieves, HeartPieceIndoorValues) - BRL .done + JMP .done + CMP.w #226 : BNE + %GetPossiblyEncryptedItem(HeartPiece_Lumberjack_Tree, HeartPieceIndoorValues) - BRL .done + JMP .done + CMP.w #234 : BNE + %GetPossiblyEncryptedItem(HeartPiece_Spectacle_Cave, HeartPieceIndoorValues) - BRL .done + JMP .done + CMP.w #283 : BNE + LDA $22 : XBA : AND.w #$0001 ; figure out where link is BNE ++ %GetPossiblyEncryptedItem(HeartPiece_Circle_Bushes, HeartPieceIndoorValues) - BRL .done + JMP .done ++ %GetPossiblyEncryptedItem(HeartPiece_Graveyard_Warp, HeartPieceIndoorValues) - BRL .done + JMP .done + CMP.w #294 : BNE + %GetPossiblyEncryptedItem(HeartPiece_Mire_Warp, HeartPieceIndoorValues) - BRL .done + JMP .done + CMP.w #295 : BNE + %GetPossiblyEncryptedItem(HeartPiece_Smith_Pegs, HeartPieceIndoorValues) - BRL .done + JMP .done + CMP.w #135 : BNE + LDA StandingKey_Hera - BRL .done + JMP .done + LDA.w #$0017 ; default to a normal hp .done @@ -271,47 +271,47 @@ LoadOutdoorValue: CMP.w #$03 : BNE + LDA $22 : CMP.w #1890 : !BLT ++ %GetPossiblyEncryptedItem(HeartPiece_Spectacle, HeartPieceOutdoorValues) - BRL .done + JMP .done ++ %GetPossiblyEncryptedItem(EtherItem, SpriteItemValues) - BRL .done + JMP .done + CMP.w #$05 : BNE + %GetPossiblyEncryptedItem(HeartPiece_Mountain_Warp, HeartPieceOutdoorValues) - BRL .done + JMP .done + CMP.w #$28 : BNE + %GetPossiblyEncryptedItem(HeartPiece_Maze, HeartPieceOutdoorValues) - BRL .done + JMP .done + CMP.w #$2A : BNE + %GetPossiblyEncryptedItem(HauntedGroveItem, HeartPieceOutdoorValues) - BRL .done + JMP .done + CMP.w #$30 : BNE + LDA $22 : CMP.w #512 : !BGE ++ %GetPossiblyEncryptedItem(HeartPiece_Desert, HeartPieceOutdoorValues) - BRL .done + JMP .done ++ %GetPossiblyEncryptedItem(BombosItem, SpriteItemValues) - BRL .done + JMP .done + CMP.w #$35 : BNE + %GetPossiblyEncryptedItem(HeartPiece_Lake, HeartPieceOutdoorValues) - BRL .done + JMP .done + CMP.w #$3B : BNE + %GetPossiblyEncryptedItem(HeartPiece_Swamp, HeartPieceOutdoorValues) - BRL .done + JMP .done + CMP.w #$42 : BNE + %GetPossiblyEncryptedItem(HeartPiece_Cliffside, HeartPieceOutdoorValues) - BRL .done + JMP .done + CMP.w #$4A : BNE + %GetPossiblyEncryptedItem(HeartPiece_Cliffside, HeartPieceOutdoorValues) - BRL .done + JMP .done + CMP.w #$5B : BNE + %GetPossiblyEncryptedItem(HeartPiece_Pyramid, HeartPieceOutdoorValues) - BRL .done + JMP .done + CMP.w #$68 : BNE + %GetPossiblyEncryptedItem(HeartPiece_Digging, HeartPieceOutdoorValues) - BRL .done + JMP .done + CMP.w #$81 : BNE + %GetPossiblyEncryptedItem(HeartPiece_Zora, HeartPieceOutdoorValues) - BRL .done + JMP .done + LDA.w #$0017 ; default to a normal hp .done @@ -338,34 +338,34 @@ LoadBossValue: LDA $A0 ; these are all decimal because i got them that way CMP.w #200 : BNE + %GetPossiblyEncryptedItem(HeartContainer_ArmosKnights, HeartContainerBossValues) - BRL .done + JMP .done + CMP.w #51 : BNE + %GetPossiblyEncryptedItem(HeartContainer_Lanmolas, HeartContainerBossValues) - BRL .done + JMP .done + CMP.w #7 : BNE + %GetPossiblyEncryptedItem(HeartContainer_Moldorm, HeartContainerBossValues) - BRL .done + JMP .done + CMP.w #90 : BNE + %GetPossiblyEncryptedItem(HeartContainer_HelmasaurKing, HeartContainerBossValues) - BRL .done + JMP .done + CMP.w #6 : BNE + %GetPossiblyEncryptedItem(HeartContainer_Arrghus, HeartContainerBossValues) - BRL .done + JMP .done + CMP.w #41 : BNE + %GetPossiblyEncryptedItem(HeartContainer_Mothula, HeartContainerBossValues) - BRL .done + JMP .done + CMP.w #172 : BNE + %GetPossiblyEncryptedItem(HeartContainer_Blind, HeartContainerBossValues) - BRL .done + JMP .done + CMP.w #222 : BNE + %GetPossiblyEncryptedItem(HeartContainer_Kholdstare, HeartContainerBossValues) - BRL .done + JMP .done + CMP.w #144 : BNE + %GetPossiblyEncryptedItem(HeartContainer_Vitreous, HeartContainerBossValues) - BRL .done + JMP .done + CMP.w #164 : BNE + %GetPossiblyEncryptedItem(HeartContainer_Trinexx, HeartContainerBossValues) - BRL .done + JMP .done + LDA.w #$003E ; default to a normal boss heart .done @@ -380,25 +380,25 @@ CheckIfBossRoom: REP #$20 ; set 16-bit accumulator LDA $A0 ; these are all decimal because i got them that way CMP.w #200 : BNE + - SEC : BRL .done + SEC : JMP .done + CMP.w #51 : BNE + - SEC : BRL .done + SEC : JMP .done + CMP.w #7 : BNE + - SEC : BRL .done + SEC : JMP .done + CMP.w #90 : BNE + - SEC : BRL .done + SEC : JMP .done + CMP.w #6 : BNE + - SEC : BRL .done + SEC : JMP .done + CMP.w #41 : BNE + - SEC : BRL .done + SEC : JMP .done + CMP.w #172 : BNE + - SEC : BRL .done + SEC : JMP .done + CMP.w #222 : BNE + - SEC : BRL .done + SEC : JMP .done + CMP.w #144 : BNE + - SEC : BRL .done + SEC : JMP .done + CMP.w #164 : BNE + - SEC : BRL .done + SEC : JMP .done + CLC .done diff --git a/hooks.asm b/hooks.asm index e6c37f1..f084147 100755 --- a/hooks.asm +++ b/hooks.asm @@ -1640,7 +1640,7 @@ JSL.l ShowDungeonItems : NOP #5 ;================================================================================ org $0DEA5F ; <- 6EA5F - equipment.asm:1679 - (SEP #$30) ;NOP #5 -;BRL .skipCrystalInit +;JMP .skipCrystalInit ;org $0DEAA4 ; <- 6EAA4 - equipment.asm:1706 - (LDA $7EF37A : AND.w #$0001) ;.skipCrystalInit ;================================================================================ diff --git a/inventory.asm b/inventory.asm index e8e118e..240dc78 100644 --- a/inventory.asm +++ b/inventory.asm @@ -60,7 +60,7 @@ RTL LDA !INVENTORY_SWAP : AND #$C0 : CMP #$C0 : BNE .errorJump ; make sure we have both boomerangs LDA $7EF341 : EOR #$03 : STA $7EF341 ; swap blue & red boomerang LDA.b #$20 : STA $012F ; menu select sound - BRL .captured + JMP .captured + CMP #$01 : BNE + ; bow LDA !INVENTORY_SWAP_2 : AND #$C0 : CMP #$C0 : BNE .errorJump ; make sure we have both bows PHX : LDX.b #$00 ; scan ancilla table for arrows @@ -77,7 +77,7 @@ RTL ++ LDA $7EF340 : !SUB #$01 : EOR #$02 : !ADD #$01 : STA $7EF340 ; swap bows LDA.b #$20 : STA $012F ; menu select sound - BRL .captured + JMP .captured + BRA + .errorJump BRA .errorJump2 @@ -85,7 +85,7 @@ RTL LDA !INVENTORY_SWAP : AND #$30 : CMP #$30 : BNE .errorJump ; make sure we have mushroom & magic powder LDA $7EF344 : EOR #$03 : STA $7EF344 ; swap mushroom & magic powder LDA.b #$20 : STA $012F ; menu select sound - BRL .captured + JMP .captured + BRA + .errorJump2 BRA .error @@ -203,61 +203,61 @@ AddInventory: PHA : PHX : PHP CPY.b #$0C : BNE + ; Blue Boomerang LDA !INVENTORY_SWAP : ORA #$80 : STA !INVENTORY_SWAP - BRL .incrementCounts + JMP .incrementCounts + CPY.b #$2A : BNE + ; Red Boomerang LDA !INVENTORY_SWAP : ORA #$40 : STA !INVENTORY_SWAP - BRL .incrementCounts + JMP .incrementCounts + CPY.b #$29 : BNE + ; Mushroom LDA !INVENTORY_SWAP : ORA #$28 : STA !INVENTORY_SWAP - BRL .incrementCounts + JMP .incrementCounts + CPY.b #$0D : BNE + ; Magic Powder LDA !INVENTORY_SWAP : ORA #$10 : STA !INVENTORY_SWAP - BRL .incrementCounts + JMP .incrementCounts + CPY.b #$13 : BNE + ; Shovel LDA !INVENTORY_SWAP : ORA #$04 : STA !INVENTORY_SWAP - BRL .incrementCounts + JMP .incrementCounts + CPY.b #$14 : BNE + ; Flute (Inactive) LDA !INVENTORY_SWAP : ORA #$02 : STA !INVENTORY_SWAP - BRL .incrementCounts + JMP .incrementCounts + CPY.b #$4A : BNE + ; Flute (Active) LDA !INVENTORY_SWAP : ORA #$01 : STA !INVENTORY_SWAP - BRL .incrementCounts + JMP .incrementCounts + CPY.b #$0B : BNE + ; Bow LDA ArrowMode : BNE +++ LDA !INVENTORY_SWAP_2 : ORA #$80 : STA !INVENTORY_SWAP_2 +++ - BRL .incrementCounts + JMP .incrementCounts + CPY.b #$3A : BNE + ; Bow & Arrows LDA !INVENTORY_SWAP_2 : ORA #$80 : STA !INVENTORY_SWAP_2 - BRL .incrementCounts + JMP .incrementCounts + CPY.b #$3B : BNE + ; Bow & Silver Arrows LDA !INVENTORY_SWAP_2 : ORA #$40 : STA !INVENTORY_SWAP_2 LDA ArrowMode : BNE +++ LDA !INVENTORY_SWAP_2 : ORA #$80 : STA !INVENTORY_SWAP_2 ; activate wood arrows when not in rupee bow +++ - BRL .incrementCounts + JMP .incrementCounts + CPY.b #$43 : BNE + ; Single arrow LDA ArrowMode : BEQ +++ LDA !INVENTORY_SWAP_2 : ORA #$80 : STA !INVENTORY_SWAP_2 ; activate wood arrows in quick-swap +++ - BRL .incrementCounts + JMP .incrementCounts + CPY.b #$58 : BNE + ; Upgrade-Only Silver Arrows LDA !INVENTORY_SWAP_2 : ORA #$40 : STA !INVENTORY_SWAP_2 + .incrementCounts - LDA !LOCK_STATS : BEQ + : BRL .done : + + LDA !LOCK_STATS : BEQ + : JMP .done : + ; don't count any of this stuff - CPY.b #$20 : BNE + : BRL .itemCounts : + ; Crystal - CPY.b #$26 : BNE + : BRL .itemCounts : + ; Heart Piece Completion Heart - CPY.b #$2E : BNE + : BRL .itemCounts : + ; Red Potion (Refill) - CPY.b #$2F : BNE + : BRL .itemCounts : + ; Green Potion (Refill) - CPY.b #$30 : BNE + : BRL .itemCounts : + ; Blue Potion (Refill) - CPY.b #$37 : BNE + : BRL .itemCounts : + ; Pendant - CPY.b #$38 : BNE + : BRL .itemCounts : + ; Pendant - CPY.b #$39 : BNE + : BRL .itemCounts : + ; Pendant - CPY.b #$00 : BNE + : BRL .itemCounts : + ; Uncle Sword & Shield + CPY.b #$20 : BNE + : JMP .itemCounts : + ; Crystal + CPY.b #$26 : BNE + : JMP .itemCounts : + ; Heart Piece Completion Heart + CPY.b #$2E : BNE + : JMP .itemCounts : + ; Red Potion (Refill) + CPY.b #$2F : BNE + : JMP .itemCounts : + ; Green Potion (Refill) + CPY.b #$30 : BNE + : JMP .itemCounts : + ; Blue Potion (Refill) + CPY.b #$37 : BNE + : JMP .itemCounts : + ; Pendant + CPY.b #$38 : BNE + : JMP .itemCounts : + ; Pendant + CPY.b #$39 : BNE + : JMP .itemCounts : + ; Pendant + CPY.b #$00 : BNE + : JMP .itemCounts : + ; Uncle Sword & Shield CPY.b #$04 : !BLT .isSword ; Swords - Skip Shop/Fairy Check for Swords CPY.b #$49 : BEQ .isSword @@ -265,32 +265,32 @@ AddInventory: CPY.b #$5E : BEQ .isSword BRA + .isSword - BRL .dungeonCounts + JMP .dungeonCounts + - CPY.b #$3B : BNE + : BRL .dungeonCounts : + ; Silver Arrow Bow - Skip Shop/Fairy Check for Silver Arrow Bow + CPY.b #$3B : BNE + : JMP .dungeonCounts : + ; Silver Arrow Bow - Skip Shop/Fairy Check for Silver Arrow Bow LDA $1B : BEQ ++ ; skip shop check if outdoors LDA $02E9 : CMP.b #$01 : BEQ ++ ; skip shop check for chests PHP : REP #$20 ; set 16-bit accumulator LDA $048E - CMP.w #274 : BNE + : BRL .shop : + ; dark world death mountain shop, ornamental shield shop - CMP.w #271 : BNE + : BRL .shop : + ; villiage of outcasts shop, lumberjack shop, lake hylia shop, dark world magic shop - CMP.w #272 : BNE + : BRL .shop : + ; red shield shop - CMP.w #284 : BNE + : BRL .shop : + ; bomb shop - ;CMP.w #265 : BNE + : BRL .shop : + ; potion shop - commented this out because it's easier to just block potion refills because this one interferes with the powder item being counted - ;CMP.w #271 : BNE + : BRL .shop : + ; lake hylia shop - CMP.w #287 : BNE + : BRL .shop : + ; kakariko shop - CMP.w #255 : BNE + : BRL .shop : + ; light world death mountain shop - CMP.w #276 : BNE + : BRL .shop : + ; waterfall fairy - CMP.w #277 : BNE + : BRL .shop : + ; upgrade fairy (shop) - CMP.w #278 : BNE + : BRL .shop : + ; pyramid fairy + CMP.w #274 : BNE + : JMP .shop : + ; dark world death mountain shop, ornamental shield shop + CMP.w #271 : BNE + : JMP .shop : + ; villiage of outcasts shop, lumberjack shop, lake hylia shop, dark world magic shop + CMP.w #272 : BNE + : JMP .shop : + ; red shield shop + CMP.w #284 : BNE + : JMP .shop : + ; bomb shop + ;CMP.w #265 : BNE + : JMP .shop : + ; potion shop - commented this out because it's easier to just block potion refills because this one interferes with the powder item being counted + ;CMP.w #271 : BNE + : JMP .shop : + ; lake hylia shop + CMP.w #287 : BNE + : JMP .shop : + ; kakariko shop + CMP.w #255 : BNE + : JMP .shop : + ; light world death mountain shop + CMP.w #276 : BNE + : JMP .shop : + ; waterfall fairy + CMP.w #277 : BNE + : JMP .shop : + ; upgrade fairy (shop) + CMP.w #278 : BNE + : JMP .shop : + ; pyramid fairy PLP : BRA ++ .shop - PLP : BRL .done + PLP : JMP .done ++ .dungeonCounts - LDA $1B : BNE + : BRL .fullItemCounts : + + LDA $1B : BNE + : JMP .fullItemCounts : + ; ==BEGIN INDOOR-ONLY SECTION ;REP #$20 ; Set 16-bit Accumulator @@ -307,54 +307,54 @@ AddInventory: BRA ++ + CMP.b #$02 : BNE + ; Hyrule Castle (Escape) ++ - CPY.b #$32 : BNE ++ : BRL .itemCounts : ++ ; Ball & Chain Guard's Big Key + CPY.b #$32 : BNE ++ : JMP .itemCounts : ++ ; Ball & Chain Guard's Big Key %TopHalf($7EF434) - BRL .fullItemCounts + JMP .fullItemCounts + CMP.b #$04 : BNE + ; Eastern Palace LDA $7EF436 : INC : AND #$07 : TAX LDA $7EF436 : AND #$F8 : STA $7EF436 TXA : ORA $7EF436 : STA $7EF436 - BRL .fullItemCounts + JMP .fullItemCounts + CMP.b #$06 : BNE + ; Desert Palace LDA $7EF435 : !ADD #$20 : STA $7EF435 - BRL .fullItemCounts + JMP .fullItemCounts + CMP.b #$08 : BNE + ; Agahnim's Tower LDA $7EF435 : INC : AND #$03 : TAX LDA $7EF435 : AND #$FC : STA $7EF435 TXA : ORA $7EF435 : STA $7EF435 - BRL .fullItemCounts + JMP .fullItemCounts + CMP.b #$0A : BNE + ; Swamp Palace %BottomHalf($7EF439) - BRL .fullItemCounts + JMP .fullItemCounts + CMP.b #$0C : BNE + ; Palace of Darkness %BottomHalf($7EF434) - BRL .fullItemCounts + JMP .fullItemCounts + CMP.b #$0E : BNE + ; Misery Mire %BottomHalf($7EF438) - BRL .fullItemCounts + JMP .fullItemCounts + CMP.b #$10 : BNE + ; Skull Woods %TopHalf($7EF437) - BRL .fullItemCounts + JMP .fullItemCounts + CMP.b #$12 : BNE + ; Ice Palace %TopHalf($7EF438) - BRL .fullItemCounts + JMP .fullItemCounts + CMP.b #$14 : BNE + ; Tower of Hera LDA $7EF435 : !ADD #$04 : AND #$1C : TAX LDA $7EF435 : AND #$E3 : STA $7EF435 TXA : ORA $7EF435 : STA $7EF435 - BRL .fullItemCounts + JMP .fullItemCounts + CMP.b #$16 : BNE + ; Thieves' Town %BottomHalf($7EF437) - BRL .fullItemCounts + JMP .fullItemCounts + CMP.b #$18 : BNE + ; Turtle Rock %TopHalf($7EF439) - BRL .fullItemCounts + JMP .fullItemCounts + CMP.b #$1A : BNE + ; Ganon's Tower LDA $7EF436 : !ADD #$08 : STA $7EF436 LDA $7EF366 : AND #$04 : BNE ++ JSR .incrementGTowerPreBigKey ++ - ;BRL .fullItemCounts + ;JMP .fullItemCounts + ; == END INDOOR-ONLY SECTION @@ -379,178 +379,178 @@ AddInventory: CPY.b #$00 : BNE + ; Fighter's Sword & Fighter's Shield JSR .incrementSword JSR .incrementShield - BRL .done + JMP .done + CPY.b #$01 : BNE + ; Master Sword JSR .incrementSword - BRL .done + JMP .done + CPY.b #$02 : BNE + ; Tempered Sword JSR .incrementSword - BRL .done + JMP .done + CPY.b #$03 : BNE + ; Golden Sword JSR .incrementSword - BRL .done + JMP .done + CPY.b #$04 : BNE + ; Fighter's Shield JSR .incrementShield - BRL .done + JMP .done + CPY.b #$05 : BNE + ; Red Shield JSR .incrementShield - BRL .done + JMP .done + CPY.b #$06 : BNE + ; Mirror Shield JSR .incrementShield - BRL .done + JMP .done + CPY.b #$07 : !BLT + ; Items $07 - $0D CPY.b #$0E : !BGE + JSR .incrementY - BRL .done + JMP .done + CPY.b #$14 : BNE + ; Flute (Inactive) - LEAVE THIS ABOVE THE 0F-16 CONDITION - kkat JSR .stampFlute JSR .incrementY - BRL .done + JMP .done + CPY.b #$0F : !BLT + ; Items $0F - $16 CPY.b #$17 : !BGE + JSR .incrementY - BRL .done + JMP .done + CPY.b #$17 : BNE + ; Heart Piece JSR .incrementHeartPiece - BRL .done + JMP .done + CPY.b #$18 : !BLT + ; Items $18 - $19 CPY.b #$1A : !BGE + JSR .incrementY - BRL .done + JMP .done + CPY.b #$1A : BNE + ; Magic Mirror JSR .stampMirror JSR .incrementY - BRL .done + JMP .done + CPY.b #$1D : BNE + ; Book of Mudora - LEAVE THIS ABOVE THE 1B-1F CONDITION - kkat JSR .incrementY - BRL .done + JMP .done + CPY.b #$1B : !BLT + ; Items $1B - $1F CPY.b #$20 : !BGE + JSR .incrementA - BRL .done + JMP .done + CPY.b #$20 : BNE + ; Crystal JSR .incrementCrystal - BRL .done + JMP .done + CPY.b #$21 : BNE + ; Bug Net JSR .incrementY - BRL .done + JMP .done + CPY.b #$22 : !BLT + ; Items $22 - $23 CPY.b #$24 : !BGE + JSR .incrementMail - BRL .done + JMP .done + CPY.b #$24 : BNE + ; Small Key JSR .incrementKey - BRL .done + JMP .done + CPY.b #$25 : BNE + ; Compass JSR .incrementCompass - BRL .done + JMP .done + CPY.b #$26 : BNE + ; Liar Heart (Container) ;JSR .incrementHeartContainer - BRL .done + JMP .done + CPY.b #$27 : BNE + ; 1 Bomb JSR .maybeIncrementBombs - BRL .done + JMP .done + CPY.b #$28 : BNE + ; 3 Bombs JSR .maybeIncrementBombs - BRL .done + JMP .done + CPY.b #$29 : BNE + ; Musoroom JSR .incrementY - BRL .done + JMP .done + CPY.b #$2A : !BLT + ; Items $2A - $2D CPY.b #$2E : !BGE + JSR .incrementY - BRL .done + JMP .done + CPY.b #$31 : BNE + ; 10 Bombs JSR .maybeIncrementBombs - BRL .done + JMP .done + CPY.b #$32 : BNE + ; Big Key JSR .incrementBigKey - BRL .done + JMP .done + CPY.b #$33 : BNE + ; Map JSR .incrementMap - BRL .done + JMP .done + CPY.b #$37 : !BLT + ; Items $37 - $39 - Pendants CPY.b #$3A : !BGE + JSR .incrementPendant - BRL .done + JMP .done + CPY.b #$3A : !BLT + ; Items $3A - $3B - Bow & Silver Arrows CPY.b #$3C : !BGE + JSR .incrementBow - BRL .done + JMP .done + CPY.b #$3C : BNE + ; Bottle w/Bee JSR .incrementY - BRL .done + JMP .done + CPY.b #$3D : BNE + ; Bottle w/Fairy JSR .incrementY - BRL .done + JMP .done + CPY.b #$3E : !BLT + ; Items $3E - $3F - Heart Containers CPY.b #$40 : !BGE + JSR .incrementHeartContainer - BRL .done + JMP .done + CPY.b #$48 : BNE + ; Bottle w/Gold Bee JSR .incrementY - BRL .done + JMP .done + CPY.b #$49 : BNE + ; Fighter's Sword JSR .incrementSword - BRL .done + JMP .done + CPY.b #$4A : BNE + ; Flute (Active) JSR .stampFlute JSR .incrementY - BRL .done + JMP .done + CPY.b #$4B : BNE + ; Pegasus Boots JSR .stampBoots JSR .incrementA - BRL .done + JMP .done + CPY.b #$4C : BNE + ; Bomb Capacity Upgrade JSR .incrementCapacity JSR .maybeIncrementBombs - BRL .done + JMP .done + CPY.b #$4D : !BLT + ; Items $4D - $4F - Capacity Upgrades CPY.b #$50 : !BGE + JSR .incrementCapacity - BRL .done + JMP .done + CPY.b #$50 : BNE + ; Master Sword (Safe) JSR .incrementSword - BRL .done + JMP .done + CPY.b #$51 : !BLT + ; Items $51 - $54 - Capacity Upgrades CPY.b #$55 : !BGE + JSR .incrementCapacity - BRL .done + JMP .done + CPY.b #$58 : BNE + ; Upgrade-Only Sivler Arrows JSR .incrementBow - BRL .done + JMP .done + CPY.b #$5E : BNE + ; Progressive Sword JSR .incrementSword - BRL .done + JMP .done + CPY.b #$5F : BNE + ; Progressive Shield JSR .incrementShield - BRL .done + JMP .done + CPY.b #$60 : BNE + ; Progressive Armor JSR .incrementMail - BRL .done + JMP .done + CPY.b #$61 : BNE + ; Progressive Lifting Glove JSR .incrementA - BRL .done + JMP .done + CPY.b #$64 : !BLT + ; Items $64 & $65 - Progressive Bow CPY.b #$66 : !BGE + JSR .incrementBow - BRL .done + JMP .done + CPY.b #$70 : !BLT + ; Items $70 - $7F - Free Maps CPY.b #$80 : !BGE + JSR .incrementMap - BRL .done + JMP .done + CPY.b #$80 : !BLT + ; Items $80 - $8F - Free Compasses CPY.b #$90 : !BGE + JSR .incrementCompass - BRL .done + JMP .done + CPY.b #$90 : !BLT + ; Items $90 - $9F - Free Big Keys CPY.b #$A0 : !BGE + JSR .incrementBigKey - BRL .done + JMP .done + CPY.b #$A0 : !BLT + ; Items $A0 - $AF - Free Small Keys CPY.b #$B0 : !BGE + JSR .incrementKey - BRL .done + JMP .done + .done PLP : PLX : PLA @@ -1113,10 +1113,10 @@ SpawnShovelItem: LDA $03FC : BEQ + JSL DiggingGameGuy_AttemptPrizeSpawn - BRL .skip + JMP .skip + - LDA $035B : AND.b #$01 : BNE + : BRL .skip : + ; corner dig fix + LDA $035B : AND.b #$01 : BNE + : JMP .skip : + ; corner dig fix PHY : PHP PHB : PHK : PLB diff --git a/inverted.asm b/inverted.asm index 1e05ee1..b60085d 100644 --- a/inverted.asm +++ b/inverted.asm @@ -4,7 +4,7 @@ ; after Ganon slams into it in bat form? Overworld_CreatePyramidHoleModified: LDA.l InvertedMode : BNE + - BRL .originalBehaviour + JMP .originalBehaviour + .invertedBehavior REP #$30 @@ -37,7 +37,7 @@ Overworld_CreatePyramidHoleModified: LDA.w #$FFFF : STA $1012, Y - BRL .ending + JMP .ending .originalBehaviour REP #$30 diff --git a/itemdowngrade.asm b/itemdowngrade.asm index aab1763..9d08af2 100644 --- a/itemdowngrade.asm +++ b/itemdowngrade.asm @@ -66,8 +66,8 @@ RTS INC : CMP !HIGHEST_SWORD_LEVEL : !BGE + ; skip if highest is lower (this is an upgrade) LDA !HIGHEST_SWORD_LEVEL : DEC ; convert to item id TAY : PLA : LDA !HIGHEST_SWORD_LEVEL ; put sword id into the thing to write - BRL .done + JMP .done + PLA -BRL .done +JMP .done ;================================================================================ \ No newline at end of file diff --git a/msu.asm b/msu.asm index 4af1caf..3118f01 100644 --- a/msu.asm +++ b/msu.asm @@ -185,11 +185,11 @@ CheckMusicLoadRequest: LDA !REG_MUSIC_CONTROL_REQUEST : CMP #$08 : BEQ ++ ; Mirror SFX is not affected by NoBGM or pack $FE LDA NoBGM : BNE + LDA !REG_MSU_PACK_CURRENT : CMP #$FE : BNE ++ - + : BRL .mute + + : JMP .mute ++ LDX !REG_MSU_ID_01 : CPX !VAL_MSU_ID_01 : BEQ + - - : BRL .unmute + - : JMP .unmute + LDX !REG_MSU_ID_23 : CPX !VAL_MSU_ID_23 : BNE - LDX !REG_MSU_ID_45 : CPX !VAL_MSU_ID_45 : BNE - @@ -277,7 +277,7 @@ CheckMusicLoadRequest: PLY : STY $00 : SEP #$10 : PLB TAX : LDA MusicShuffleTable-1,X STA !REG_MUSIC_CONTROL_REQUEST - BRL .check_fallback + JMP .check_fallback .unmute LDA.b !VAL_COMMAND_UNMUTE_SPC @@ -481,7 +481,7 @@ MSUMain: LDA !REG_MSU_ID_45 : CMP !VAL_MSU_ID_45 : BNE .nomsu SEP #$30 LDX !REG_MUSIC_CONTROL : BEQ + - BRL .command_ff + JMP .command_ff + LDA !REG_MSU_DELAYED_COMMAND : BEQ .do_fade diff --git a/newhud.asm b/newhud.asm index e4aef54..f41ed75 100644 --- a/newhud.asm +++ b/newhud.asm @@ -63,7 +63,7 @@ SEP #$30 ;================================================================================ SEP #$20 - LDA.l GoalItemRequirement : BNE + : BRL .done : + ; Star Meter + LDA.l GoalItemRequirement : BNE + : JMP .done : + ; Star Meter LDA.l !GOAL_COUNTER JSR HudHexToDec3Digit @@ -144,13 +144,13 @@ SEP #$30 AND #$FFF8 TAX ; end of crap - LDA !INFINITE_MAGIC : AND.w #$00FF : BNE + : BRL .green : + + LDA !INFINITE_MAGIC : AND.w #$00FF : BNE + : JMP .green : + SEP #$20 : LDA.b #$80 : STA $7EF36E : REP #$30 ; set magic to max LDX.w #$0080 ; load full magic meter graphics LDA $1A : AND.w #$000C : LSR #2 BEQ .red CMP.w #0001 : BEQ .yellow - CMP.w #0002 : BNE + : BRL .green : + + CMP.w #0002 : BNE + : JMP .green : + .blue LDA !DrawMagicMeter_mp_tilemap+0, X : AND.w #$EFFF : STA $7EC746 LDA !DrawMagicMeter_mp_tilemap+2, X : AND.w #$EFFF : STA $7EC786 diff --git a/newitems.asm b/newitems.asm index 3ccc496..cc8ded7 100755 --- a/newitems.asm +++ b/newitems.asm @@ -195,7 +195,7 @@ AddReceivedItemExpandedGetItem: ; ;JSL.l Main_ShowTextMessage_Alt ; LDA !GOAL_COUNTER : INC : STA !GOAL_COUNTER ; LDA.b #$01 : STA $7F50XX - ; BRL .done + ; JMP .done ;++ ;STA $FFFFFF LDA $02D8 ; check inventory @@ -205,7 +205,7 @@ AddReceivedItemExpandedGetItem: LDA.l SilverArrowsUseRestriction : BNE ++ LDA.b #03 : STA $7EF340 ; set bow to silver ++ - BRL .done + JMP .done + CMP.b #$3B : BNE + ; Silver Bow LDA.l SilverArrowsUseRestriction : BNE .noequip LDA.l SilverArrowsAutoEquip : AND.b #$01 : BEQ .noequip @@ -217,56 +217,56 @@ AddReceivedItemExpandedGetItem: STA $7EF340 .noequip LDA !INVENTORY_SWAP_2 : ORA #$40 : STA !INVENTORY_SWAP_2 ; mark silver bow on y-toggle - BRL .done + JMP .done + CMP.b #$4C : BNE + ; 50 bombs ;LDA.b #$07 : STA $7EF370 ; upgrade bombs LDA.b #50 : !SUB.l StartingMaxBombs : STA $7EF370 ; upgrade bombs LDA.b #50 : STA $7EF375 ; fill bombs - BRL .done + JMP .done + CMP.b #$4D : BNE + ; 70 arrows ;LDA #$07 : STA $7EF371 ; upgrade arrows LDA.b #70 : !SUB.l StartingMaxArrows : STA $7EF371 ; upgrade arrows LDA.b #70 : STA $7EF376 ; fill arrows - BRL .done + JMP .done + CMP.b #$4E : BNE + ; 1/2 magic LDA $7EF37B : CMP #$02 : !BGE ++ INC : STA $7EF37B ; upgrade magic ++ LDA.b #$80 : STA $7EF373 ; fill magic - BRL .done + JMP .done + CMP.b #$4F : BNE + ; 1/4 magic LDA.b #$02 : STA $7EF37B ; upgrade magic LDA.b #$80 : STA $7EF373 ; fill magic - BRL .done + JMP .done + CMP.b #$50 : BNE + ; Master Sword (Safe) LDA $7EF359 : CMP.b #$02 : !BGE + ; skip if we have a better sword LDA.b #$02 : STA $7EF359 ; set master sword - BRL .done + JMP .done + CMP.b #$51 : BNE + ; +5 Bombs LDA $7EF370 : !ADD.b #$05 : STA $7EF370 ; upgrade bombs +5 LDA.l Upgrade5BombsRefill : STA $7EF375 ; fill bombs - BRL .done + JMP .done + CMP.b #$52 : BNE + ; +10 Bombs LDA $7EF370 : !ADD.b #$0A : STA $7EF370 ; upgrade bombs +10 LDA.l Upgrade10BombsRefill : STA $7EF375 ; fill bombs - BRL .done + JMP .done + CMP.b #$53 : BNE + ; +5 Arrows LDA $7EF371 : !ADD.b #$05 : STA $7EF371 ; upgrade arrows +5 LDA.l Upgrade5ArrowsRefill : STA $7EF376 ; fill arrows - BRL .done + JMP .done + CMP.b #$54 : BNE + ; +10 Arrows LDA $7EF371 : !ADD.b #$0A : STA $7EF371 ; upgrade arrows +10 LDA.l Upgrade10ArrowsRefill : STA $7EF376 ; fill arrows - BRL .done + JMP .done + CMP.b #$55 : BNE + ; Programmable Object 1 %ProgrammableItemLogic(1) - BRL .done + JMP .done + CMP.b #$56 : BNE + ; Programmable Object 2 %ProgrammableItemLogic(2) - BRL .done + JMP .done + CMP.b #$57 : BNE + ; Programmable Object 3 %ProgrammableItemLogic(3) - BRL .done + JMP .done + CMP.b #$58 : BNE + ; Upgrade-Only Sivler Arrows LDA.l SilverArrowsUseRestriction : BNE +++ LDA.l SilverArrowsAutoEquip : AND.b #$01 : BEQ +++ @@ -279,46 +279,46 @@ AddReceivedItemExpandedGetItem: ++ + CMP.b #$59 : BNE + ; 1 Rupoor REP #$20 : LDA $7EF360 : !SUB RupoorDeduction : STA $7EF360 : SEP #$20 ; Take 1 rupee - BRL .done + JMP .done + CMP.b #$5A : BNE + ; Null Item - BRL .done + JMP .done + CMP.b #$5B : BNE + ; Red Clock REP #$20 ; set 16-bit accumulator LDA !CHALLENGE_TIMER : !ADD.l RedClockAmount : STA !CHALLENGE_TIMER LDA !CHALLENGE_TIMER+2 : ADC.l RedClockAmount+2 : STA !CHALLENGE_TIMER+2 SEP #$20 ; set 8-bit accumulator - BRL .done + JMP .done + CMP.b #$5C : BNE + ; Blue Clock REP #$20 ; set 16-bit accumulator LDA !CHALLENGE_TIMER : !ADD.l BlueClockAmount : STA !CHALLENGE_TIMER LDA !CHALLENGE_TIMER+2 : ADC.l BlueClockAmount+2 : STA !CHALLENGE_TIMER+2 SEP #$20 ; set 8-bit accumulator - BRL .done + JMP .done + CMP.b #$5D : BNE + ; Green Clock REP #$20 ; set 16-bit accumulator LDA !CHALLENGE_TIMER : !ADD.l GreenClockAmount : STA !CHALLENGE_TIMER LDA !CHALLENGE_TIMER+2 : ADC.l GreenClockAmount+2 : STA !CHALLENGE_TIMER+2 SEP #$20 ; set 8-bit accumulator - BRL .done + JMP .done + CMP.b #$5E : BNE + ; Progressive Sword - BRL .done + JMP .done + CMP.b #$5F : BNE + ; Progressive Shield - BRL .done + JMP .done + CMP.b #$60 : BNE + ; Progressive Armor - BRL .done + JMP .done + CMP.b #$61 : BNE + ; Progressive Lifting Glove - BRL .done + JMP .done + CMP.b #$62 : BNE + ; RNG Pool Item (Single) - BRL .done + JMP .done + CMP.b #$63 : BNE + ; RNG Pool Item (Multi) - BRL .done + JMP .done + CMP.b #$64 : BNE + ; Progressive Bow - BRL .done + JMP .done + CMP.b #$65 : BNE + ; Progressive Bow - BRL .done + JMP .done + CMP.b #$6A : BNE + ; Goal Collectable (Single/Triforce) JSL.l ActivateGoal - BRL .done + JMP .done + CMP.b #$6B : BNE + ; Goal Collectable (Multi/Power Star) BRA .multi_collect + CMP.b #$6C : BNE + ; Goal Collectable (Multi/Power Star) Alternate Graphic @@ -329,52 +329,52 @@ AddReceivedItemExpandedGetItem: LDA TurnInGoalItems : BNE ++ JSL.l ActivateGoal ++ - BRL .done + JMP .done + CMP.b #$6D : BNE + ; Server Request F0 JSL.l ItemGetServiceRequest_F0 - BRL .done + JMP .done + CMP.b #$6E : BNE + ; Server Request F1 JSL.l ItemGetServiceRequest_F1 - BRL .done + JMP .done + CMP.b #$6F : BNE + ; Server Request F2 JSL.l ItemGetServiceRequest_F2 - BRL .done + JMP .done ;+ CMP.b #$FE : BNE + ; Server Request (Null Chest) ; JSL.l ItemGetServiceRequest - ; BRL .done + ; JMP .done + CMP.b #$70 : !BLT + : CMP.b #$80 : !BGE + ; Free Map AND #$0F : CMP #$08 : !BGE ++ %ValueShift() ORA $7EF368 : STA $7EF368 ; Map 1 - BRL .done + JMP .done ++ !SUB #$08 %ValueShift() BIT.b #$C0 : BEQ +++ : LDA.b #$C0 : +++ ; Make Hyrule Castle / Sewers Count for Both ORA $7EF369 : STA $7EF369 ; Map 2 - BRL .done + JMP .done + CMP.b #$80 : !BLT + : CMP.b #$90 : !BGE + ; Free Compass AND #$0F : CMP #$08 : !BGE ++ %ValueShift() ORA $7EF364 : STA $7EF364 ; Compass 1 - BRL .done + JMP .done ++ !SUB #$08 %ValueShift() BIT.b #$C0 : BEQ +++ : LDA.b #$C0 : +++ ; Make Hyrule Castle / Sewers Count for Both ORA $7EF365 : STA $7EF365 ; Compass 2 - BRL .done + JMP .done + CMP.b #$90 : !BLT + : CMP.b #$A0 : !BGE + ; Free Big Key AND #$0F : CMP #$08 : !BGE ++ %ValueShift() ORA $7EF366 : STA $7EF366 ; Big Key 1 - BRL .done + JMP .done ++ !SUB #$08 %ValueShift() BIT.b #$C0 : BEQ +++ : LDA.b #$C0 : +++ ; Make Hyrule Castle / Sewers Count for Both ORA $7EF367 : STA $7EF367 ; Big Key 2 - BRL .done + JMP .done + CMP.b #$A0 : !BLT + : CMP.b #$B0 : !BGE + ; Free Small Key AND #$0F : TAX LDA $7EF37C, X : INC : STA $7EF37C, X ; Increment Key Count @@ -388,12 +388,12 @@ AddReceivedItemExpandedGetItem: LDA.l GenericKeys : BEQ + .generic LDA $7EF36F : INC : STA $7EF36F - BRL .done + JMP .done .normal TXA : ASL : CMP $040C : BNE ++ LDA $7EF36F : INC : STA $7EF36F ++ - BRL .done + JMP .done + .done PLX @@ -432,66 +432,66 @@ AddReceivedItemExpanded: CMP.b #$16 : BNE ++ ; Bottle JSR.w CountBottles : CMP.l BottleLimit : !BLT +++ LDA.l BottleLimitReplacement : STA $02D8 - +++ : BRL .done + +++ : JMP .done ++ : CMP.b #$2B : BNE ++ ; Red Potion w/bottle JSR.w CountBottles : CMP.l BottleLimit : !BLT +++ LDA.l BottleLimitReplacement : STA $02D8 - +++ : BRL .done + +++ : JMP .done ++ : CMP.b #$2C : BNE ++ ; Green Potion w/bottle JSR.w CountBottles : CMP.l BottleLimit : !BLT +++ LDA.l BottleLimitReplacement : STA $02D8 - +++ : BRL .done + +++ : JMP .done ++ : CMP.b #$2D : BNE ++ ; Blue Potion w/bottle JSR.w CountBottles : CMP.l BottleLimit : !BLT +++ LDA.l BottleLimitReplacement : STA $02D8 - +++ : BRL .done + +++ : JMP .done ++ : CMP.b #$3C : BNE ++ ; Bee w/bottle JSR.w CountBottles : CMP.l BottleLimit : !BLT +++ LDA.l BottleLimitReplacement : STA $02D8 - +++ : BRL .done + +++ : JMP .done ++ : CMP.b #$3D : BNE ++ ; Fairy w/bottle JSR.w CountBottles : CMP.l BottleLimit : !BLT +++ LDA.l BottleLimitReplacement : STA $02D8 - +++ : BRL .done + +++ : JMP .done ++ : CMP.b #$48 : BNE ++ ; Gold Bee w/bottle JSR.w CountBottles : CMP.l BottleLimit : !BLT +++ LDA.l BottleLimitReplacement : STA $02D8 - +++ : BRL .done + +++ : JMP .done ++ : CMP.b #$4E : BNE ++ ; Progressive Magic LDA $7EF37B : BEQ +++ LDA.b #$4F : STA $02D8 - +++ : BRL .done + +++ : JMP .done ++ : CMP.b #$5E : BNE ++ ; Progressive Sword LDA $7EF359 : CMP.l ProgressiveSwordLimit : !BLT + - LDA.l ProgressiveSwordReplacement : STA $02D8 : BRL .done + LDA.l ProgressiveSwordReplacement : STA $02D8 : JMP .done + : CMP.b #$00 : BNE + ; No Sword - LDA.b #$49 : STA $02D8 : BRL .done + LDA.b #$49 : STA $02D8 : JMP .done + : CMP.b #$01 : BNE + ; Fighter Sword - LDA.b #$50 : STA $02D8 : BRL .done + LDA.b #$50 : STA $02D8 : JMP .done + : CMP.b #$02 : BNE + ; Master Sword - LDA.b #$02 : STA $02D8 : BRL .done + LDA.b #$02 : STA $02D8 : JMP .done + ; Everything Else - LDA.b #$03 : STA $02D8 : BRL .done + LDA.b #$03 : STA $02D8 : JMP .done ++ : CMP.b #$5F : BNE ++ ; Progressive Shield LDA !PROGRESSIVE_SHIELD : LSR #6 : CMP.l ProgressiveShieldLimit : !BLT + - LDA.l ProgressiveShieldReplacement : STA $02D8 : BRL .done + LDA.l ProgressiveShieldReplacement : STA $02D8 : JMP .done + LDA !PROGRESSIVE_SHIELD : AND.b #$C0 : BNE + ; No Shield LDA.b #$04 : STA $02D8 - LDA !PROGRESSIVE_SHIELD : !ADD.b #$40 : STA !PROGRESSIVE_SHIELD : BRL .done + LDA !PROGRESSIVE_SHIELD : !ADD.b #$40 : STA !PROGRESSIVE_SHIELD : JMP .done + : CMP.b #$40 : BNE + ; Fighter Shield LDA.b #$05 : STA $02D8 - LDA !PROGRESSIVE_SHIELD : !ADD.b #$40 : STA !PROGRESSIVE_SHIELD : BRL .done + LDA !PROGRESSIVE_SHIELD : !ADD.b #$40 : STA !PROGRESSIVE_SHIELD : JMP .done + ; Everything Else LDA.b #$06 : STA $02D8 - LDA !PROGRESSIVE_SHIELD : !ADD.b #$40 : STA !PROGRESSIVE_SHIELD : BRL .done + LDA !PROGRESSIVE_SHIELD : !ADD.b #$40 : STA !PROGRESSIVE_SHIELD : JMP .done ++ : CMP.b #$60 : BNE ++ ; Progressive Armor LDA $7EF35B : CMP.l ProgressiveArmorLimit : !BLT + - LDA.l ProgressiveArmorReplacement : STA $02D8 : BRL .done + LDA.l ProgressiveArmorReplacement : STA $02D8 : JMP .done + : CMP.b #$00 : BNE + ; No Armor - LDA.b #$22 : STA $02D8 : BRL .done + LDA.b #$22 : STA $02D8 : JMP .done + ; Everything Else - LDA.b #$23 : STA $02D8 : BRL .done + LDA.b #$23 : STA $02D8 : JMP .done ++ : CMP.b #$61 : BNE ++ ; Progressive Lifting Glove LDA $7EF354 : BNE + ; No Lift LDA.b #$1B : STA $02D8 : BRA .done @@ -499,7 +499,7 @@ AddReceivedItemExpanded: LDA.b #$1C : STA $02D8 : BRA .done ++ : CMP.b #$64 : BNE ++ : -- ; Progressive Bow LDA $7EF340 : INC : LSR : CMP.l ProgressiveBowLimit : !BLT + - LDA.l ProgressiveBowReplacement : STA $02D8 : BRL .done + LDA.l ProgressiveBowReplacement : STA $02D8 : JMP .done + : CMP.b #$00 : BNE + ; No Bow LDA.b #$3A : STA $02D8 : BRA .done + ; Any Bow diff --git a/newitems2.asm b/newitems2.asm new file mode 100644 index 0000000..4bfaa77 --- /dev/null +++ b/newitems2.asm @@ -0,0 +1,825 @@ +;=============================================================================== +; Complete fucking revamp of how item get works +;=============================================================================== + +Ancilla_ReceiveItem_rupee_anim_tiles: + db $24, $25, $26 + +Ancilla_ReceiveItem_rupee_anim_timers: + db 9, 5, 5 + +Ancilla_ReceiveItem_oam_props: + db $05, $01, $04 + +Ancilla_ReceiveItem_hp_messages: + dw -1, $0155, $0156, $0157 + + + + + + +AddReceiveItem: + + + + + + + +.routine + fillword $0000 : fill $FF*2 + +.y_offsets + fillbyte $00 : fill $FF + +.x_offsets + fillbyte $00 : fill $FF + +.gfx_offsets + fillword $0000 : fill $FF*2 + +.wideness + fillbyte $00 : fill $FF + +.pal + fillbyte $00 : fill $FF + +.sram_addr + fillword $0000 : fill $FF*2 + +.sram_write + fillbyte $00 : fill $FF + +.message + fillbyte $00 : fill $FF + +.sound + fillbyte $00 : fill $FF + +; Pal defines: +!r = 1 ; red +!b = 2 ; blue +!g = 4 ; green +!e = 5 ; sword/shield + +!t = $00 ; not wide +!w = $80 ; wide + +; song storage +; top 2 bits = which address to write +; 00 $00 Song +; 01 $40 SFX1 +; 10 $80 SFX2 +; 11 $C0 SFX3 +; bottom 6 bits = data to write + +!sfxsong = $00<<6 +!sfx1 = $01<<6 +!sfx2 = $02<<6 +!sfx3 = $03<<6 + +!dodododo = $0F|!sfx3 +!badgesong = $13|!sfxsong +!hpsfx = $2D|!sfx3 +!hcsfx = $0D|!sfx3 + +!itemx = -1 +macro ritem(name, routine, y_off, x_off, gfx_off, oam_props, sram_addr, sram_write, message, sfx) + !itemx #= !itemx+1 + !get_ #= !itemx + + #g: + pushpc + ; routine points to either a general handler + ; or a specific routine for this item or class of items + org AddReceiveItem_routine+!itemx*2 : dw + + ; gfx dictates an offset into uncompressed 4bpp graphics data + org AddReceiveItem_gfx_offsets+!itemx*2 : dw + + + ;org AddReceiveItem_routine+!itemx*2 : dw + ;org AddReceiveItem_y_offsets+!itemx : db + ;org AddReceiveItem_x_offsets+!itemx : db + ;org AddReceiveItem_gfx_offsets+!itemx*2 : dw + ;org AddReceiveItem_wideness+!itemx : db + ;org AddReceiveItem_pal+!itemx : db

+ + ; SRAM address is an + org AddReceiveItem_sram_addr+!itemx*2 : dw + org AddReceiveItem_sram_write+!itemx : db + ;org AddReceiveItem_message+!itemx : db + ;org AddReceiveItem_sound+!itemx : db + pullpc +endmacro + +;=============================================================================== +; Vanilla Items +%ritem("fighter_sword", .directWrite,\ ; name, routine + -5, 4, $0420, !THIN|!e,\ ; OAM y/x offset, GFX char offset, props + $F359, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("master_sword", .directWrite,\ ; name, routine + -5, 4, $09C0, !THIN|!e,\ ; OAM y/x offset, GFX char offset, props + $F359, 2,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("tempered_sword", .directWrite,\ ; name, routine + -5, 4, $09C0, !THIN|!e,\ ; OAM y/x offset, GFX char offset, props + $F359, 3,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("butter_sword", .directWrite,\ ; name, routine + -5, 4, $09C0, !THIN|!e,\ ; OAM y/x offset, GFX char offset, props + $F359, 4,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("fighter_shield", .fighterShield,\ ; name, routine + -5, 4, $11E0, !THIN|!e,\ ; OAM y/x offset, GFX char offset, props + $F35A, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("red_shield", .directWrite,\ ; name, routine + -4, 0, $0140, !WIDE|!e,\ ; OAM y/x offset, GFX char offset, props + $F35A, 2,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("mirror_shield", .directWrite,\ ; name, routine + -4, 0, $1480, !WIDE|!e,\ ; OAM y/x offset, GFX char offset, props + $F35A, 3,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("fire_rod", .directWrite,\ ; name, routine + -5, 4, $0480, !THIN|!r,\ ; OAM y/x offset, GFX char offset, props + $F345, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + + +; $08 +%ritem("ice_rod", .directWrite,\ ; name, routine + -5, 4, $0480, !THIN|!b,\ ; OAM y/x offset, GFX char offset, props + $F346, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("hammer", .directWrite,\ ; name, routine + -4, 4, $04A0, !THIN|!r,\ ; OAM y/x offset, GFX char offset, props + $F34B, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("hookshot", .directWrite,\ ; name, routine + -4, 4, $0460, !THIN|!r,\ ; OAM y/x offset, GFX char offset, props + $F342, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("bow", .directWrite,\ ; name, routine + -4, 4, $0400, !THIN|!r,\ ; OAM y/x offset, GFX char offset, props + $F340, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("boomerang", .directWrite,\ ; name, routine + -2, 5, $05E0, !THIN|!b,\ ; OAM y/x offset, GFX char offset, props + $F341, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("powder", .directWrite,\ ; name, routine + -4, 0, $04C0, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props + $F344, 2,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("bee", .bottles,\ ; name, routine + -4, 0, $11A0, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props + $F35C, 7,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("bombos", .directWrite,\ ; name, routine + -4, 4, $0C40, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props + $F347, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + + +; $10 +%ritem("ether", .directWrite,\ ; name, routine + -4, 0, $0C00, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props + $F348, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("quake", .directWrite,\ ; name, routine + -4, 0, $0C80, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props + $F349, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("lamp", .directWrite,\ ; name, routine + -4, 0, $08C0, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props + $F34A, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("shovel", .directWrite,\ ; name, routine + -4, 4, $09E0, !THIN|!r,\ ; OAM y/x offset, GFX char offset, props + $F34C, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("flute", .directWrite,\ ; name, routine + -4, 0, $1440, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props + $F34C, 3,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("somaria", .directWrite,\ ; name, routine + -4, 4, $0440, !THIN|!r,\ ; OAM y/x offset, GFX char offset, props + $F350, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("bottle", .newBottle,\ ; name, routine + -4, 0, $0CC0, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props + $F35C, 0,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("hp", .hp,\ ; name, routine + -4, 0, $1400, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props + $F36B, 0,\ ; SRAM address, SRAM value + $FFFF,!hpsfx) ; Message, Sound + + + +; $18 +%ritem("byrna", .directWrite,\ ; name, routine + -4, 4, $0440, !THIN|!b,\ ; OAM y/x offset, GFX char offset, props + $F351, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("cape", .directWrite,\ ; name, routine + -4, 0, $0900, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props + $F352, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("mirror", .directWrite,\ ; name, routine + -4, 0, $0840, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props + $F353, 2,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("glove", .directWrite,\ ; name, routine + -4, 0, $0540, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props + $F354, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("mitts", .directWrite,\ ; name, routine + -4, 0, $0540, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props + $F354, 2,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("book", .directWrite,\ ; name, routine + -4, 0, $0580, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props + $F34E, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("flippers", .flippers,\ ; name, routine + -4, 0, $0800, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props + $F356, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("pearl", .directWrite,\ ; name, routine + -4, 0, $0980, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props + $F357, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + + +; $20 +%ritem("crystal", .palaceItem,\ ; name, routine + -4, 0, $10A0, !WIDE|6,\ ; OAM y/x offset, GFX char offset, props + $F37A, 0,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("net", .directWrite,\ ; name, routine + -4, 0, $1060, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props + $F34D, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("blue_mail", .blueMail,\ ; name, routine + -4, 0, $0100, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props + $F35B, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("red_mail", .directWrite,\ ; name, routine + -5, 0, $0100, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props + $F35B, 2,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("key", .addKey,\ ; name, routine + -4, 4, $05C0, !THIN|!b,\ ; OAM y/x offset, GFX char offset, props + $F36F, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("compass", .palaceItem,\ ; name, routine + -4, 0, $0940, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props + $F364, 0,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("4hp", .4hp,\ ; name, routine + -4, 0, $00C0, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props + $F36C, 0,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("bomb", .addBombs,\ ; name, routine + -4, 0, $0880, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props + $F375, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + + +; $28 +%ritem("3_bombs", .addBombs,\ ; name, routine + -4, 0, $0040, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props + $F375, 3,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("mushroom", .mushroom,\ ; name, routine + -4, 0, $0D40, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props + $F344, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("red_boomerang", .directWrite,\ ; name, routine + -2, 5, $05E0, !THIN|!r,\ ; OAM y/x offset, GFX char offset, props + $F341, 2,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("red_cauldron", .bottles,\ ; name, routine + -4, 0, $0000, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props + $F35C, 3,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("green_cauldron", .bottles,\ ; name, routine + -4, 0, $0000, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props + $F35C, 4,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("blue_cauldron", .bottles,\ ; name, routine + -4, 0, $0000, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props + $F35C, 5,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("red_cauldron2", .bottles,\ ; name, routine + -4, 0, $0000, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props + $F36D, 0,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("green_cauldron2", .bottles,\ ; name, routine + -4, 0, $0000, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props + $F36E, 0,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + + +; $30 +%ritem("blue_cauldron2", .bottles,\ ; name, routine + -4, 0, $0000, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props + $F36E, 0,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("10_bombs", .addBombs,\ ; name, routine + -4, 0, $0500, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props + $F375, 10,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("big_key", .palaceItem,\ ; name, routine + -4, 0, $0DC0, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props + $F366, 0,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("map", .palaceItem,\ ; name, routine + -4, 0, $0D80, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props + $F368, 0,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("1_rupee", .addRupees,\ ; name, routine + -2, 4, $1000, !THIN|!g,\ ; OAM y/x offset, GFX char offset, props + $F360, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("5_rupees", .addRupees,\ ; name, routine + -2, 4, $1000, !THIN|!b,\ ; OAM y/x offset, GFX char offset, props + $F360, 5,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("20_rupees", .addRupees,\ ; name, routine + -2, 4, $1000, !THIN|!r,\ ; OAM y/x offset, GFX char offset, props + $F360, 20,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("green_pendant", .palaceItem,\ ; name, routine + -4, 0, $1880, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props + $F374, 0,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + + +; $38 +%ritem("blue_pendant", .palaceItem,\ ; name, routine + -4, 0, $1880, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props + $F374, 0,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("red_pendant", .palaceItem,\ ; name, routine + -4, 0, $1880, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props + $F374, 0,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("tossed_bow", .directWrite,\ ; name, routine + -4, 0, $1120, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props + $F340, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("silvers", .directWrite,\ ; name, routine + -4, 0, $10E0, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props + $F340, 3,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("good_bee", .bottles,\ ; name, routine + -4, 0, $11A0, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props + $F35C, 7,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("fairy", .bottles,\ ; name, routine + -4, 0, $1160, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props + $F35C, 6,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("boss_hc", .hc,\ ; name, routine + -4, 0, $00C0, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props + $F36C, 0,\ ; SRAM address, SRAM value + $FFFF,!hcsfx) ; Message, Sound + + +%ritem("sanc_hc", .4hp,\ ; name, routine + -4, 0, $00C0, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props + $F36C, 0,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + + +; $40 +%ritem("100_rupees", .addRupees,\ ; name, routine + -4, 0, $1520, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props + $F360, 100,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("50_rupees", .addRupees,\ ; name, routine + -4, 0, $1560, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props + $F360, 50,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("heart", .addHeart,\ ; name, routine + -2, 4, $14C0, !THIN|!r,\ ; OAM y/x offset, GFX char offset, props + $F372, 8,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("arrow", .addArrows,\ ; name, routine + -2, 4, $1500, !THIN|!b,\ ; OAM y/x offset, GFX char offset, props + $F376, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("10_arrows", .addArrows,\ ; name, routine + -4, 0, $0080, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props + $F376, 10,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("small_magic", .addMagic,\ ; name, routine + -2, 4, $14E0, !THIN|!g,\ ; OAM y/x offset, GFX char offset, props + $F373, 16,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("300_rupees", .add300Rupees,\ ; name, routine + -4, 0, $15A0, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props + $F360, 0,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("20_rupees_green", .addRupees,\ ; name, routine + -4, 0, $1800, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props + $F360, 20,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + + +; $48 +%ritem("gold_bee", .bottles,\ ; name, routine + -4, 0, $11A0, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props + $F35C, 8,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("tossed_fighter_sword", .directWrite,\ ; name, routine + -5, 4, $0420, !THIN|!e,\ ; OAM y/x offset, GFX char offset, props + $F359, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("active_flute", .directWrite,\ ; name, routine + -4, 0, $1440, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props + $F34C, 3,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("boots", .boots,\ ; name, routine + -4, 0, $1840, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props + $F355, 1,\ ; SRAM address, SRAM value + $FFFF,!dodododo) ; Message, Sound + + +%ritem("Bomb_50" +%ritem("Arrow_70" +%ritem("Half_Magic" +%ritem("Quarter_Magic" + +; $50 +%ritem("Safe_MS" +%ritem("Bomb_plus5" +%ritem("Bomb_plus10" +%ritem("Arrow_plus5" +%ritem("Arrow_plus10" +%ritem("PRGM_1" +%ritem("PRGM_2" +%ritem("PRGM_3" + +; $58 +%ritem("Upgrade_Silvers" +%ritem("Rupoor" +%ritem("NULL" +%ritem("Clock_red" +%ritem("Clock_blue" +%ritem("Clock_green" +%ritem("Prog_Sword" +%ritem("Prog_Shield" + +; $60 +%ritem("Prog_Mail" +%ritem("Prog_Glove" +%ritem("RNG_Single" +%ritem("RNG_Multi" +%ritem("Prog_Bow" +%ritem("Prog_Bow" +%ritem( +%ritem( + +; $68 +%ritem( +%ritem( +%ritem("Goal_Trifoce" +%ritem("Goal_Multi_Star" +%ritem("Goal_Multi_Triforce" +%ritem("Server_F0" +%ritem("Server_F1" +%ritem("Server_F2" + +; $70 +%ritem(" +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( + +; $78 +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( + +; $80 +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( + +; $88 +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( + +; $90 +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( + +; $98 +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( + +; $A0 +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( + +; $A8 +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( + +; $B0 +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( + +; $B8 +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( + +; $C0 +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( + +; $C8 +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( + +; $D0 +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( + +; $D8 +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( + +; $E0 +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( + +; $E8 +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( + +; $F0 +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( + +; $F8 +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem( +%ritem("Server_async" +%ritem("NULL_2" + + + + + +org $08C3AE +Ancilla_ReceiveItem: + + diff --git a/password.asm b/password.asm index 7ead174..595d1cd 100644 --- a/password.asm +++ b/password.asm @@ -167,7 +167,7 @@ ValidatePassword: LDX #$0F - LDA.l !PASSWORD_SRAM, X : BNE + - BRL .incorrect + JMP .incorrect + DEX : BPL - diff --git a/pendantcrystalhud.asm b/pendantcrystalhud.asm index be4eedb..048a2be 100644 --- a/pendantcrystalhud.asm +++ b/pendantcrystalhud.asm @@ -56,7 +56,7 @@ RTL !MAP_OVERLAY = "$7EF414" ; [2] OverworldMap_CheckObject: PHX - ;CPX.b #$01 : BNE + : BRL ++ : + : BRL .fail + ;CPX.b #$01 : BNE + : JMP ++ : + : JMP .fail LDA $7EF3CA : AND.b #$40 : BNE + ;LW Map LDA.l MapMode : BEQ +++ @@ -66,7 +66,7 @@ OverworldMap_CheckObject: LDA !INVENTORY_MAP, X : ORA !MAP_OVERLAY, X PLX AND.l .lw_map_masks, X : BNE +++ - BRL .fail + JMP .fail +++ LDA.l .lw_offsets, X BPL +++ : CLC : BRA .done : +++ ; don't display master sword @@ -80,7 +80,7 @@ OverworldMap_CheckObject: LDA.l !INVENTORY_MAP, X : ORA !MAP_OVERLAY, X PLX AND.l .dw_map_masks, X : BNE +++ - BRL .fail + JMP .fail +++ LDA.l .dw_offsets, X TAX : BRA ++ @@ -294,8 +294,8 @@ DrawHUDDungeonItems: LDA #$24F5 : STA $1686, X : STA $16C6, X INX #2 : CPX.w #$0020 : BCC - - LDA !HUD_FLAG : AND.w #$0020 : BEQ + : BRL +++ : + - LDA HUDDungeonItems : AND.w #$0001 : BNE + : BRL ++ : + + LDA !HUD_FLAG : AND.w #$0020 : BEQ + : JMP +++ : + + LDA HUDDungeonItems : AND.w #$0001 : BNE + : JMP ++ : + LDA.w #$2810 : STA $1684 ; small keys icon SEP #$20 ; set 8-bit accumulator ; Small Keys @@ -320,7 +320,7 @@ DrawHUDDungeonItems: ++ ; Big Keys - LDA HUDDungeonItems : AND.w #$0002 : BNE + : BRL ++ : + + LDA HUDDungeonItems : AND.w #$0002 : BNE + : JMP ++ : + LDA.w #$2811 : STA $16C4 ; big key icon LDA $7EF367 : AND.w #$0040 : BEQ + ; Hyrule Castle LDA.w #$2826 : STA $16C6 @@ -365,9 +365,9 @@ DrawHUDDungeonItems: ; This should only display if select is pressed in hud +++ - LDA !HUD_FLAG : AND.w #$0020 : BNE + : BRL +++ : + + LDA !HUD_FLAG : AND.w #$0020 : BNE + : JMP +++ : + ; Maps - LDA HUDDungeonItems : AND.w #$0004 : BNE + : BRL ++ : + + LDA HUDDungeonItems : AND.w #$0004 : BNE + : JMP ++ : + LDA.w #$2821 : STA $1684 ; map icon LDA $7EF369 : AND.w #$0040 : BEQ + ; Hyrule Castle LDA.w #$2826 : STA $1686 @@ -411,7 +411,7 @@ DrawHUDDungeonItems: ++ ; Compasses - LDA HUDDungeonItems : AND.w #$0008 : BNE + : BRL ++ : + + LDA HUDDungeonItems : AND.w #$0008 : BNE + : JMP ++ : + LDA.w #$2C20 : STA $16C4 ; compass icon LDA $7EF365 : AND.w #$0040 : BEQ + ; Hyrule Castle LDA.w #$2C26 : STA $16C6 diff --git a/shopkeeper.asm b/shopkeeper.asm index cc546eb..4132011 100644 --- a/shopkeeper.asm +++ b/shopkeeper.asm @@ -70,10 +70,10 @@ DrawPrice: LDY.b #$FF LDX #$00 ; clear bigram pointer - LDA $0C : CMP.w #1000 : !BLT + : BRL .len4 : + - CMP.w #100 : !BLT + : BRL .len3 : + - CMP.w #10 : !BLT + : BRL .len2 : + - CMP.w #1 : !BLT + : BRL .len1 : + + LDA $0C : CMP.w #1000 : !BLT + : JMP .len4 : + + CMP.w #100 : !BLT + : JMP .len3 : + + CMP.w #10 : !BLT + : JMP .len2 : + + CMP.w #1 : !BLT + : JMP .len1 : + .len4 %DrawDigit(#1000,#6) @@ -149,7 +149,7 @@ SpritePrep_ShopKeeper: .fail SEP #$20 ; set 8-bit accumulator LDA.b #$FF : STA !SHOP_TYPE ; $FF = error condition - BRL .done + JMP .done .success SEP #$20 ; set 8-bit accumulator @@ -157,10 +157,10 @@ SpritePrep_ShopKeeper: LDX.w #$0000 LDY.w #$0000 - - TYA : CMP !SHOP_CAPACITY : !BLT ++ : BRL .stop : ++ - LDA.l ShopContentsTable+1, X : CMP.b #$FF : BNE ++ : BRL .stop : ++ + TYA : CMP !SHOP_CAPACITY : !BLT ++ : JMP .stop : ++ + LDA.l ShopContentsTable+1, X : CMP.b #$FF : BNE ++ : JMP .stop : ++ - LDA.l ShopContentsTable, X : CMP !SHOP_ID : BEQ ++ : BRL .next : ++ + LDA.l ShopContentsTable, X : CMP !SHOP_ID : BEQ ++ : JMP .next : ++ LDA.l ShopContentsTable+1, X : PHX : TYX : STA.l !SHOP_INVENTORY, X : PLX LDA.l ShopContentsTable+2, X : PHX : TYX : STA.l !SHOP_INVENTORY+1, X : PLX LDA.l ShopContentsTable+3, X : PHX : TYX : STA.l !SHOP_INVENTORY+2, X : PLX @@ -191,7 +191,7 @@ SpritePrep_ShopKeeper: .next INX #8 - BRL - + JMP - .stop ;LDA $A0 : CMP.b #$FF : BNE .normal @@ -289,7 +289,7 @@ Shopkeeper_UploadVRAMTiles: LDA #$7E : STA $4304 LDA !SHOP_TYPE : AND.b #$10 : BNE .special - BRL .normal + JMP .normal .special @@ -322,7 +322,7 @@ Shopkeeper_UploadVRAMTiles: LDA #$80 : STA $2116 ; set VRAM register destination address LDA #$5B : STA $2117 LDA #$01 : STA $420B ; begin DMA transfer - BRL .end + JMP .end .normal LDA #$40 : STA $4305 : STZ $4306 ; set transfer size to 0x40 @@ -456,9 +456,9 @@ endmacro Shopkeeper_DrawMerchant: LDA.l !SHOP_MERCHANT : AND.b #$07 BEQ Shopkeeper_DrawMerchant_Type0 - CMP.b #$01 : BNE + : BRL Shopkeeper_DrawMerchant_Type1 : + - CMP.b #$02 : BNE + : BRL Shopkeeper_DrawMerchant_Type2 : + - CMP.b #$03 : BNE + : BRL Shopkeeper_DrawMerchant_Type3 : + + CMP.b #$01 : BNE + : JMP Shopkeeper_DrawMerchant_Type1 : + + CMP.b #$02 : BNE + : JMP Shopkeeper_DrawMerchant_Type2 : + + CMP.b #$03 : BNE + : JMP Shopkeeper_DrawMerchant_Type3 : + CMP.b #$04 : BNE + : RTS : + ;-------------------------------------------------------------------------------- Shopkeeper_DrawMerchant_Type0: @@ -546,13 +546,13 @@ Shopkeeper_BuyItem: LDY.b #$01 JSL.l Sprite_ShowMessageUnconditional LDA.b #$3C : STA $012E ; error sound - BRL .done + JMP .done .full_bottles LDA.b #$6B LDY.b #$01 JSL.l Sprite_ShowMessageUnconditional LDA.b #$3C : STA $012E ; error sound - BRL .done + JMP .done .buy LDA !SHOP_TYPE : AND.b #$80 : BNE ++ ; don't charge if this is a take-any REP #$20 : LDA $7EF360 : !SUB !SHOP_INVENTORY+1, X : STA $7EF360 : SEP #$20 ; Take price away @@ -707,7 +707,7 @@ RTS ;-------------------------------------------------------------------------------- Shopkeeper_DrawNextItem: - LDA.l !SHOP_STATE : AND.w Shopkeeper_ItemMasks, Y : BEQ + : BRL .next : + + LDA.l !SHOP_STATE : AND.w Shopkeeper_ItemMasks, Y : BEQ + : JMP .next : + PHY diff --git a/stats/main.asm b/stats/main.asm index b78b459..1131840 100755 --- a/stats/main.asm +++ b/stats/main.asm @@ -226,7 +226,7 @@ RenderCreditsStatCounter: JSR FindLine BCS + - BRL .endStats + JMP .endStats + ; XXXX X00L LLLL LLLL BBBB SSSS CCC- ---- ---- ---- AAAA AAAA AAAA AAAA AAAA AAAA @@ -237,7 +237,7 @@ RenderCreditsStatCounter: AND #$0003 ; TT CMP.w #$0000 BEQ .normalStat - BRL .timeStat + JMP .timeStat .normalStat ; == Write Stripe header (VRAM address, i.e. tile coordinates) == @@ -491,7 +491,7 @@ RenderCreditsStatCounter: %StripeTile() %StripeEnd() - BRL .endStats + JMP .endStats RenderLineNumber: diff --git a/swordswap.asm b/swordswap.asm index 170ce66..bfea58f 100644 --- a/swordswap.asm +++ b/swordswap.asm @@ -166,7 +166,7 @@ GetSmithSword: ;================================================================================ CheckMedallionSword: PHB : PHX : PHY - LDA.l AllowSwordlessMedallionUse : BNE +++ : BRL + : +++ + LDA.l AllowSwordlessMedallionUse : BNE +++ : JMP + : +++ LDA $1B : BEQ .outdoors .indoors REP #$20 ; set 16-bit accumulator @@ -174,11 +174,11 @@ CheckMedallionSword: CMP.w #$000E : BNE ++ : .freezor1 LDA $22 : AND.w #$01FF : CMP.w #368-8 : !BLT .normal : CMP.w #368+32-8 : !BGE .normal ; check x-coord LDA $20 : AND.w #$01FF : CMP.w #400-22 : !BLT .normal : CMP.w #400+32-22 : !BGE .normal ; check y-coord - BRL .permit + JMP .permit ++ : CMP.w #$007E : BNE ++ : .freezor2 LDA $22 : AND.w #$01FF : CMP.w #112-8 : !BLT .normal : CMP.w #112+32-8 : !BGE .normal ; check x-coord LDA $20 : AND.w #$01FF : CMP.w #400-22 : !BLT .normal : CMP.w #400+32-22 : !BGE .normal ; check y-coord - BRL .permit + JMP .permit ++ : CMP.w #$00DE : BNE ++ : .kholdstare LDA $22 : AND.w #$01FF : CMP.w #368-8 : !BLT .normal : CMP.w #368+32-8 : !BGE .normal ; check x-coord LDA $20 : AND.w #$01FF : CMP.w #144-22 : !BLT .normal : CMP.w #144+32-22 : !BGE .normal ; check y-coord diff --git a/tablets.asm b/tablets.asm index 460cecf..3e12429 100644 --- a/tablets.asm +++ b/tablets.asm @@ -79,13 +79,13 @@ IsMedallion: CMP.w #$03 : BNE + ; Death Mountain LDA $22 : CMP.w #1890 : !BGE ++ SEC - BRL .done + JMP .done ++ BRA .false + CMP.w #$30 : BNE + ; Desert LDA $22 : CMP.w #512 : !BLT ++ SEC - BRL .done + JMP .done ++ + .false diff --git a/utilities.asm b/utilities.asm index 730918b..1ae47ec 100644 --- a/utilities.asm +++ b/utilities.asm @@ -304,7 +304,7 @@ IsNarrowSprite: JSR.w CountBottles : CMP.l BottleLimit : !BLT + LDA.l BottleLimitReplacement JSL.l IsNarrowSprite - BRL .done + JMP .done + : BRA .continue .notBottle CMP.b #$5E : BNE ++ ; Progressive Sword From d9946e8f2a42208ac479b92ffb65c64cbaed2517 Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Sun, 14 Feb 2021 01:33:48 -0500 Subject: [PATCH 07/63] boss kills --- pendantcrystalhud.asm | 390 ++++++++++++++++++++++++------------------ tables.asm | 3 +- 2 files changed, 228 insertions(+), 165 deletions(-) diff --git a/pendantcrystalhud.asm b/pendantcrystalhud.asm index 048a2be..67ffa73 100644 --- a/pendantcrystalhud.asm +++ b/pendantcrystalhud.asm @@ -265,194 +265,256 @@ DrawMoonPearlInMenuLocation: RTL ;-------------------------------------------------------------------------------- DrawHUDDungeonItems: - LDA.l HUDDungeonItems : BNE + : RTL : + - + LDA.l HUDDungeonItems : BNE .continue + + RTL + +.dungeon_positions + dw 0 ; Hyrule Castle + dw 2 ; Agahnims Tower + dw 6 ; Eastern + dw 8 ; Desert + dw 10 ; Hera + dw 14 ; PoD + dw 16 ; Swamp + dw 18 ; Skull Woods + dw 20 ; Thieves Town + dw 22 ; Ice + dw 24 ; Mire + dw 26 ; Turtle Rock + dw 30 ; Ganon's Tower + +.small_key_x_offset + dw $7EF37D-$7EF37D ; Hyrule Castle + dw $7EF380-$7EF37D ; Agahnims Tower + dw $7EF37E-$7EF37D ; Eastern + dw $7EF37F-$7EF37D ; Desert + dw $7EF386-$7EF37D ; Hera + dw $7EF382-$7EF37D ; PoD + dw $7EF381-$7EF37D ; Swamp + dw $7EF384-$7EF37D ; Skull Woods + dw $7EF387-$7EF37D ; Thieves Town + dw $7EF385-$7EF37D ; Ice + dw $7EF383-$7EF37D ; Mire + dw $7EF388-$7EF37D ; Turtle Rock + dw $7EF389-$7EF37D ; Ganon's Tower + + +.dungeon_bitmasks + dw $4000 ; Hyrule Castle + dw $0800 ; Agahnims Tower + dw $2000 ; Eastern + dw $1000 ; Desert + dw $0020 ; Hera + dw $0200 ; PoD + dw $0400 ; Swamp + dw $0080 ; Skull Woods + dw $0010 ; Thieves Town + dw $0040 ; Ice + dw $0100 ; Mire + dw $0008 ; Turtle Rock + dw $0004 ; Ganon's Tower + +.boss_room_ids + dw $80*2 ; ; Hyrule Castle (BNC) + dw $20*2 ; ; Agahnim + dw $C8*2 ; ; Eastern + dw $33*2 ; ; Desert + dw $07*2 ; ; Hera + dw $5A*2 ; ; PoD + dw $06*2 ; ; Swamp + dw $29*2 ; ; Skull Woods + dw $AC*2 ; ; Thieves Town + dw $DE*2 ; ; Ice + dw $90*2 ; ; Mire + dw $A4*2 ; ; Turtle Rock + dw $0D*2 ; ; Ganon's Tower + +.continue PHP - REP #$30 ; set 16-bit accumulator & index registers - + + PHB + PHK + PLB + + REP #$30 + +;------------------------------------------------------------------------------- ; dungeon names - LDA.w #$2D50 : STA $1646 ; sewers - LDA.w #$2D54 : STA $1648 ; Agahnims Tower + LDA.w #$2D50 - LDA.w #$2D51 : STA $164C ; Eastern - LDA.w #$2D52 : STA $164E ; Desert - LDA.w #$2D53 : STA $1650 ; Hera + LDY.w #0 - LDA.w #$2D55 : STA $1654 ; PoD - LDA.w #$2D56 : STA $1656 ; Swamp - LDA.w #$2D57 : STA $1658 ; Skull Woods - LDA.w #$2D58 : STA $165A ; Thieves Town - LDA.w #$2D59 : STA $165C ; Ice - LDA.w #$2D5A : STA $165E ; Mire - LDA.w #$2D5B : STA $1660 ; Turtle Rock - - LDA.w #$2D5C : STA $1664 ; Ganon's Tower + +.next_dungeon_name + LDX.w .dungeon_positions,Y + STA.w $1646,X + + INC + + INY : INY + CPY.w #26 : BCC .next_dungeon_name ; write black - LDX.w #$0000 ; Paint entire box black & draw empty pendants and crystals - - - LDA #$24F5 : STA $1686, X : STA $16C6, X - INX #2 : CPX.w #$0020 : BCC - + LDX.w #$001E + LDA.w #$24F5 - LDA !HUD_FLAG : AND.w #$0020 : BEQ + : JMP +++ : + - LDA HUDDungeonItems : AND.w #$0001 : BNE + : JMP ++ : + +-- STA.w $1686,X + STA.w $16C6,X + STA.w $1706,X + + DEX : DEX : BPL -- + + + LDA.l !HUD_FLAG : AND.w #$0020 : BEQ + : JMP +++ : + + +;------------------------------------------------------------------------------- + + LDA HUDDungeonItems : AND.w #$0001 : BEQ .skip_small_keys + +.draw_small_keys LDA.w #$2810 : STA $1684 ; small keys icon - SEP #$20 ; set 8-bit accumulator - ; Small Keys - LDA.b #$16 : !ADD $7EF37D : STA $1686 : LDA.b #$28 : ADC #$00 : sta.w $1686+1 ; Hyrule Castle - LDA.b #$16 : !ADD $7EF380 : STA $1688 : LDA.b #$28 : ADC #$00 : sta.w $1688+1 ; Agahnims Tower - LDA.b #$16 : !ADD $7EF37E : STA $168C : LDA.b #$28 : ADC #$00 : sta.w $168C+1 ; Eastern - LDA.b #$16 : !ADD $7EF37F : STA $168E : LDA.b #$28 : ADC #$00 : sta.w $168E+1 ; Desert - LDA.b #$16 : !ADD $7EF386 : STA $1690 : LDA.b #$28 : ADC #$00 : sta.w $1690+1 ; Hera + LDY.w #0 - LDA.b #$16 : !ADD $7EF382 : STA $1694 : LDA.b #$28 : ADC #$00 : sta.w $1694+1 ; PoD - LDA.b #$16 : !ADD $7EF381 : STA $1696 : LDA.b #$28 : ADC #$00 : sta.w $1696+1 ; Swamp - LDA.b #$16 : !ADD $7EF384 : STA $1698 : LDA.b #$28 : ADC #$00 : sta.w $1698+1 ; Skull Woods - LDA.b #$16 : !ADD $7EF387 : STA $169A : LDA.b #$28 : ADC #$00 : sta.w $169A+1 ; Thieves Town - LDA.b #$16 : !ADD $7EF385 : STA $169C : LDA.b #$28 : ADC #$00 : sta.w $169C+1 ; Ice - LDA.b #$16 : !ADD $7EF383 : STA $169E : LDA.b #$28 : ADC #$00 : sta.w $169E+1 ; Mire - LDA.b #$16 : !ADD $7EF388 : STA $16A0 : LDA.b #$28 : ADC #$00 : sta.w $16A0+1 ; Turtle Rock + ; Clear the carry only once + ; it will be cleared by looping condition afterwards + CLC - LDA.b #$16 : !ADD $7EF389 : STA $16A4 : LDA.b #$28 : ADC #$00 : sta.w $16A4+1 ; Ganon's Tower +.next_small_key + LDX.w .small_key_x_offset,Y + LDA.l $7EF37D,X + AND.w #$00FF - REP #$20 ; set 16-bit accumulator - ++ + LDX.w .dungeon_positions,Y + ADC.w #$2816 + STA.w $1686,X + + INY : INY + CPY.w #26 : BCC .next_small_key + +;------------------------------------------------------------------------------- + +.skip_small_keys ; Big Keys - LDA HUDDungeonItems : AND.w #$0002 : BNE + : JMP ++ : + + LDA HUDDungeonItems : AND.w #$0002 : BEQ .skip_big_keys + + LDA.w #$2811 : STA $16C4 ; big key icon - LDA $7EF367 : AND.w #$0040 : BEQ + ; Hyrule Castle - LDA.w #$2826 : STA $16C6 - + - LDA $7EF367 : AND.w #$0008 : BEQ + ; Agahnims Tower - LDA.w #$2826 : STA $16C8 - + - LDA $7EF367 : AND.w #$0020 : BEQ + ; Eastern - LDA.w #$2826 : STA $16CC - + - LDA $7EF367 : AND.w #$0010 : BEQ + ; Desert - LDA.w #$2826 : STA $16CE - + - LDA $7EF366 : AND.w #$0020 : BEQ + ; Hera - LDA.w #$2826 : STA $16D0 - + - LDA $7EF367 : AND.w #$0002 : BEQ + ; PoD - LDA.w #$2826 : STA $16D4 - + - LDA $7EF367 : AND.w #$0004 : BEQ + ; Swamp - LDA.w #$2826 : STA $16D6 - + - LDA $7EF366 : AND.w #$0080 : BEQ + ; Skull Woods - LDA.w #$2826 : STA $16D8 - + - LDA $7EF366 : AND.w #$0010 : BEQ + ; Thieves Town - LDA.w #$2826 : STA $16DA - + - LDA $7EF366 : AND.w #$0040 : BEQ + ; Ice - LDA.w #$2826 : STA $16DC - + - LDA $7EF367 : AND.w #$0001 : BEQ + ; Mire - LDA.w #$2826 : STA $16DE - + - LDA $7EF366 : AND.w #$0008 : BEQ + ; Turtle Rock - LDA.w #$2826 : STA $16E0 - + - LDA $7EF366 : AND.w #$0004 : BEQ + ; Ganon's Tower - LDA.w #$2826 : STA $16E4 - + - ++ + + ; use X so we can BIT + LDX.w #0 + + ; load once and test multiple times + LDA.l $7EF366 + +.next_big_key + BIT.w .dungeon_bitmasks,X + BEQ ..skip_key + + LDY.w .dungeon_positions,X + LDA.w #$2826 + STA.w $16C6,Y + + ; reload + LDA.l $7EF366 + +..skip_key + INX : INX + CPX.w #26 : BCC .next_big_key + +;------------------------------------------------------------------------------- + +.skip_big_keys + + LDA HUDDungeonItems : AND.w #$0010 : BEQ .skip_boss_kills + + LDA.w #$0000 : STA $1704 ; skull icon TODO + + LDY.w #0 + +.next_boss_kill + LDX.w .boss_room_ids,Y + LDA.l $7EF000,X + AND.w #$0400 + BEQ ..skip_boss_kill + + LDA.w #$2826 + LDX.w .dungeon_positions,Y + STA.w $1706,Y + +..skip_boss_kill + INY : INY + CPY.w #26 : BCC .next_boss_kill + +;------------------------------------------------------------------------------- + +.skip_boss_kills ; This should only display if select is pressed in hud +++ LDA !HUD_FLAG : AND.w #$0020 : BNE + : JMP +++ : + ; Maps - LDA HUDDungeonItems : AND.w #$0004 : BNE + : JMP ++ : + + LDA HUDDungeonItems : AND.w #$0004 : BEQ .skip_maps LDA.w #$2821 : STA $1684 ; map icon - LDA $7EF369 : AND.w #$0040 : BEQ + ; Hyrule Castle - LDA.w #$2826 : STA $1686 - + - LDA $7EF369 : AND.w #$0008 : BEQ + ; Agahnims Tower - LDA.w #$2826 : STA $1688 - + - LDA $7EF369 : AND.w #$0020 : BEQ + ; Eastern - LDA.w #$2826 : STA $168C - + - LDA $7EF369 : AND.w #$0010 : BEQ + ; Desert - LDA.w #$2826 : STA $168E - + - LDA $7EF368 : AND.w #$0020 : BEQ + ; Hera - LDA.w #$2826 : STA $1690 - + - LDA $7EF369 : AND.w #$0002 : BEQ + ; PoD - LDA.w #$2826 : STA $1694 - + - LDA $7EF369 : AND.w #$0004 : BEQ + ; Swamp - LDA.w #$2826 : STA $1696 - + - LDA $7EF368 : AND.w #$0080 : BEQ + ; Skull Woods - LDA.w #$2826 : STA $1698 - + - LDA $7EF368 : AND.w #$0010 : BEQ + ; Thieves Town - LDA.w #$2826 : STA $169A - + - LDA $7EF368 : AND.w #$0040 : BEQ + ; Ice - LDA.w #$2826 : STA $169C - + - LDA $7EF369 : AND.w #$0001 : BEQ + ; Mire - LDA.w #$2826 : STA $169E - + - LDA $7EF368 : AND.w #$0008 : BEQ + ; Turtle Rock - LDA.w #$2826 : STA $16A0 - + - LDA $7EF368 : AND.w #$0004 : BEQ + ; Ganon's Tower - LDA.w #$2826 : STA $16A4 - + - ++ + + ; use X so we can BIT + LDX.w #0 + + ; load once and test multiple times + LDA.l $7EF368 + +.next_map + BIT.w .dungeon_bitmasks,X + BEQ ..skip_map + + LDY.w .dungeon_positions,X + LDA.w #$2826 + STA.w $1686,Y + + ; reload + LDA.l $7EF368 + +..skip_map + INX : INX + CPX.w #26 : BCC .next_map + +;------------------------------------------------------------------------------- + +.skip_maps ; Compasses - LDA HUDDungeonItems : AND.w #$0008 : BNE + : JMP ++ : + + LDA HUDDungeonItems : AND.w #$0008 : BEQ .skip_compasses LDA.w #$2C20 : STA $16C4 ; compass icon - LDA $7EF365 : AND.w #$0040 : BEQ + ; Hyrule Castle - LDA.w #$2C26 : STA $16C6 - + - LDA $7EF365 : AND.w #$0008 : BEQ + ; Agahnims Tower - LDA.w #$2C26 : STA $16C8 - + - LDA $7EF365 : AND.w #$0020 : BEQ + ; Eastern - LDA.w #$2C26 : STA $16CC - + - LDA $7EF365 : AND.w #$0010 : BEQ + ; Desert - LDA.w #$2C26 : STA $16CE - + - LDA $7EF364 : AND.w #$0020 : BEQ + ; Hera - LDA.w #$2C26 : STA $16D0 - + - LDA $7EF365 : AND.w #$0002 : BEQ + ; PoD - LDA.w #$2C26 : STA $16D4 - + - LDA $7EF365 : AND.w #$0004 : BEQ + ; Swamp - LDA.w #$2C26 : STA $16D6 - + - LDA $7EF364 : AND.w #$0080 : BEQ + ; Skull Woods - LDA.w #$2C26 : STA $16D8 - + - LDA $7EF364 : AND.w #$0010 : BEQ + ; Thieves Town - LDA.w #$2C26 : STA $16DA - + - LDA $7EF364 : AND.w #$0040 : BEQ + ; Ice - LDA.w #$2C26 : STA $16DC - + - LDA $7EF365 : AND.w #$0001 : BEQ + ; Mire - LDA.w #$2C26 : STA $16DE - + - LDA $7EF364 : AND.w #$0008 : BEQ + ; Turtle Rock - LDA.w #$2C26 : STA $16E0 - + - LDA $7EF364 : AND.w #$0004 : BEQ + ; Ganon's Tower - LDA.w #$2C26 : STA $16E4 - + - ++ : +++ + + ; use X so we can BIT + LDX.w #0 + + ; load once and test multiple times + LDA.l $7EF364 + +.next_compass + BIT.w .dungeon_bitmasks,X + BEQ ..skip_compass + + LDY.w .dungeon_positions,X + LDA.w #$2826 + STA.w $16C6,Y + + ; reload + LDA.l $7EF364 + +..skip_compass + INX : INX + CPX.w #26 : BCC .next_compass + +;------------------------------------------------------------------------------- + +.skip_compasses + ++++ + PLB PLP RTL ;-------------------------------------------------------------------------------- diff --git a/tables.asm b/tables.asm index ff6a99e..81b26cc 100644 --- a/tables.asm +++ b/tables.asm @@ -184,7 +184,8 @@ db #$00 ; #$00 = Off (default) - #$01 = On ;-------------------------------------------------------------------------------- org $308045 ; PC 0x180045 HUDDungeonItems: -db #$00 ; display ----dcba a: Small Keys, b: Big Key, c: Map, d: Compass + ; display ---edcba a: Small Keys, b: Big Key, c: Map, d: Compass, e: Bosses +db #$00 ;-------------------------------------------------------------------------------- org $308046 ; PC 0x180046 Link's starting equipment LinkStartingRupees: From 6be396543e2e83d607162911332f7b6ab8a0f53d Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Sun, 14 Feb 2021 01:44:05 -0500 Subject: [PATCH 08/63] some obvious optimizations --- pendantcrystalhud.asm | 115 ++++++++++++++++++++++++------------------ utilities.asm | 19 ++++--- 2 files changed, 76 insertions(+), 58 deletions(-) diff --git a/pendantcrystalhud.asm b/pendantcrystalhud.asm index 67ffa73..e78f15f 100644 --- a/pendantcrystalhud.asm +++ b/pendantcrystalhud.asm @@ -524,58 +524,77 @@ DrawPendantCrystalDiagram: REP #$30 ; Set 16-bit accumulator & index registers LDX.w #$0000 ; Paint entire box black & draw empty pendants and crystals - - LDA.l .row0, X : STA $12EA, X - LDA.l .row1, X : STA $132A, X - LDA.l .row2, X : STA $136A, X - LDA.l .row3, X : STA $13AA, X - LDA.l .row4, X : STA $13EA, X - LDA.l .row5, X : STA $142A, X - LDA.l .row6, X : STA $146A, X - LDA.l .row7, X : STA $14AA, X - LDA.l .row8, X : STA $14EA, X + LDA.l .row0, X : STA $12EA, X + LDA.l .row1, X : STA $132A, X + LDA.l .row2, X : STA $136A, X + LDA.l .row3, X : STA $13AA, X + LDA.l .row4, X : STA $13EA, X + LDA.l .row5, X : STA $142A, X + LDA.l .row6, X : STA $146A, X + LDA.l .row7, X : STA $14AA, X + LDA.l .row8, X : STA $14EA, X INX #2 : CPX.w #$0014 : BCC - - ;pendants - LDA $7EF374 : AND.w #$0004 : BEQ + ; pendant of courage (green) - LDA.w #$3D2B : STA $1332 - LDA.w #$3D2C : STA $1334 - LDA.w #$3D2D : STA $1372 - LDA.w #$3D2E : STA $1374 - + LDA $7EF374 : AND.w #$0002 : BEQ + ; pendant of power (blue) - LDA.w #$2D2B : STA $13AE - LDA.w #$2D2C : STA $13B0 - LDA.w #$2D2D : STA $13EE - LDA.w #$2D2E : STA $13F0 - + LDA $7EF374 : AND.w #$0001 : BEQ + ; pendant of wisdom (red) - LDA.w #$252B : STA $13B6 - LDA.w #$252C : STA $13B8 - LDA.w #$252D : STA $13F6 - LDA.w #$252E : STA $13F8 + ; pendants + LDA $7EF374 + + LSR : BCC + ; pendant of wisdom (red) + LDX.w #$252B + STX.w $13B6 + INX : STX.w $13B8 + INX : STX.w $13F6 + INX : STX.w $13F8 + + + LSR : BCC + ; pendant of power (blue) + LDX.w #$2D2B + STX.w $13AE + INX : STX.w $13B0 + INX : STX.w $13EE + INX : STX.w $13F0 + + + LSR : BCC + ; pendant of courage (green) + LDX.w #$3D2B + STX.w $1332 + INX : STX.w $1334 + INX : STX.w $1372 + INX : STX.w $1374 + - - ;crystals - LDA $7EF37A : AND.w #$0002 : BEQ + ; crystal 1 - LDA.w #$2D44 : STA $14AC - LDA.w #$2D45 : STA $14AE - + LDA $7EF37A : AND.w #$0010 : BEQ + ; crystal 2 - LDA.w #$2D44 : STA $146E - LDA.w #$2D45 : STA $1470 - + LDA $7EF37A : AND.w #$0040 : BEQ + ; crystal 3 - LDA.w #$2D44 : STA $14B0 - LDA.w #$2D45 : STA $14B2 - + LDA $7EF37A : AND.w #$0020 : BEQ + ; crystal 4 - LDA.w #$2D44 : STA $1472 - LDA.w #$2D45 : STA $1474 - + LDA $7EF37A : AND.w #$0004 : BEQ + ; crystal 5 - LDA.w #$2544 : STA $14B4 - LDA.w #$2545 : STA $14B6 - + LDA $7EF37A : AND.w #$0001 : BEQ + ; crystal 6 - LDA.w #$2544 : STA $1476 - LDA.w #$2545 : STA $1478 - + LDA $7EF37A : AND.w #$0008 : BEQ + ; crystal 7 - LDA.w #$2D44 : STA $14B8 - LDA.w #$2D45 : STA $14BA + + + + ; crystals + LDA $7EF37A + LDX.w #$2D44 + LDY.w #$2D45 + + BIT.w #$0002 : BEQ + ; crystal 1 + STX.w $14AC + STY.w $14AE + + BIT.w #$0010 : BEQ + ; crystal 2 + STX.w $146E + STY.w $1470 + + BIT.w #$0040 : BEQ + ; crystal 3 + STX.w $14B0 + STY.w $14B2 + + BIT.w #$0020 : BEQ + ; crystal 4 + STX.w $1472 + STY.w $1474 + + BIT.w #$0008 : BEQ + ; crystal 7 + STX.w $14B8 + STY.w $14BA + + + LDX.w #$2544 + LDY.w #$2545 + + BIT.w #$0004 : BEQ + ; crystal 5 + STX.w $14B4 + STY.w $14B6 + + BIT.w #$0001 : BEQ + ; crystal 6 + STX.w $1476 + STY.w $1478 + + + PLB : PLP RTL ;================================================================================ diff --git a/utilities.asm b/utilities.asm index 1ae47ec..269760f 100644 --- a/utilities.asm +++ b/utilities.asm @@ -627,16 +627,15 @@ RTL ; caller is responsible for setting 8-bit mode and preserving X and Y ;-------------------------------------------------------------------------------- CountBits: - PHB : PHK : PLB - TAX ; Save a copy of value - LSR #4 ; Shift down hi nybble, Leave <3> in C - TAY ; And save <7:4> in Y - TXA ; Recover value - AND.b #$07 ; Put out <2:0> in X - TAX ; And save in X - LDA NybbleBitCounts, Y; Fetch count for Y - ADC.l NybbleBitCounts, X; Add count for X & C - PLB + TAX ; Save a copy of value + LSR #4 ; Shift down hi nybble, Leave <3> in C + TAY ; And save <7:4> in Y + TXA ; Recover value + AND.b #$07 ; Put out <2:0> in X + TAX ; And save in X + LDA.l NybbleBitCounts, X ; Fetch count for <2:0> + TYX ; get <7:4> + ADC.l NybbleBitCounts, X ; Add count for Y & C RTL ; Look up table of bit counts in the values $00-$0F From 98ecf42fbf73128a051f9b427b39cf82d9777ec0 Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Sun, 14 Feb 2021 23:05:34 -0500 Subject: [PATCH 09/63] gfx for skull --- c2e3e.bin | Bin 2048 -> 2048 bytes c2e3e.gfx | Bin 1537 -> 1581 bytes pendantcrystalhud.asm | 16 +++++++++++----- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/c2e3e.bin b/c2e3e.bin index 9675a12aa7f7338ad4d37c31196e69cb022ebdd6..5d75fdd855e1aca978fcb4ed795731f574089337 100644 GIT binary patch delta 26 fcmZn=Xb_n2f&c&i|A+rC1;R!kefa;z|BUPa;ZzZG delta 26 acmZn=Xb_n2f!~+`2>$~igx>g{ksSbbAPD^c diff --git a/c2e3e.gfx b/c2e3e.gfx index 1298f28e913c96f58031e288c04bee13bda04614..811afe1625f3ec2d1e08c205619642180a0b600a 100644 GIT binary patch delta 625 zcmWlWO-NKx9L4W_@6L?mo5m3O!W@|yW}!(R10g{LT_{lEMNqV;=o7LBGFdZ$5!hJ3G(-%F1zTjO>M<(@ zJ_7$U2+y48`bEf~k)fiGM#1L2v}HV`<^W|mNWADWJuGfgB0MV7^wRn$%w=kQr#wM; z0#=6-L$U-JQfg0ebVLxmtP2Em3zbk2MZfL^))ldeBG3&zhik}TMHgifB7_E%wXCM1 zsp>*qKAVjYt!CriszlxC$a&xO_I6JQ#35;?RnaZoWI0_7TWFcNDnvU>TD!iD!x>&ui$#|~NtYaKtVyof@#fd>X%n`C4%VBkQ zbrQr_R;?+f5RmSV%y`RWK|PotxP4Jo-Nn+32oetxbb)CfFzbGHKb7XZ@>U{9_1mn^ zzPlt36?%gOd6LydQrRJrO@TDPm}HG0?yWPbKMxCG=#l?_+j59)X7w;a@+E87VBArH zwlnRdolrU8N}wl+Q3_dNTXu0gRWXWpaquzleGnS)R%*sMoE7u_I4asOg`=25o0V4h z3b+m93YCX_^-*KiuVEg49Czu5GmbPwkOqEZ^>5j6znS&S+^)*|zQ$k@trWv?&>o0! IIpf>*582v5&Hw-a delta 639 zcmWNOUr1A77{ zvAI4IA!~V25ard9pg*)&)`i%hKX_rmYQ%#6IGL4m?mV5V_u>7$JUl$_yn02QoRN8N zUF7DGeH@g4w-7H{LhHl@@`d9UdC3uVNB$l^KOosaaVDB`a#VyKiYM~nN*~DhB9n+U zJ}?dU(@NSIw2}&sIx$7us&**i>$MU7W~Hs!MpFt!h6! zgXl)*Xpy-I1sOZ1xCx7su92Gd_?>o;@N?D(Vp_3nDHw1<3--z-#mrW6BbvXRyA{-A zhbPk+OAdtdO^QCGgqirt_O}O{WwnqjgbNi#yD5MP9~Q{9dN}5B7jw9e9!t+)5PqD; zOg+dl$0KP0%k}WSfY$?ECDtoBdT=3-w$+I)Ww*>T5dBJni^EffH2xIK^`C{;2nSSZ h-@w+tV!`|tY+zQ|;+4`^=0gX$XIW1K7KN!a{ReI#MREWD diff --git a/pendantcrystalhud.asm b/pendantcrystalhud.asm index e78f15f..8b67f11 100644 --- a/pendantcrystalhud.asm +++ b/pendantcrystalhud.asm @@ -366,8 +366,11 @@ DrawHUDDungeonItems: DEX : DEX : BPL -- - LDA.l !HUD_FLAG : AND.w #$0020 : BEQ + : JMP +++ : + + LDA.l !HUD_FLAG : AND.w #$0020 : BEQ + + JMP .maps_and_compasses + ++ ;------------------------------------------------------------------------------- LDA HUDDungeonItems : AND.w #$0001 : BEQ .skip_small_keys @@ -430,7 +433,7 @@ DrawHUDDungeonItems: LDA HUDDungeonItems : AND.w #$0010 : BEQ .skip_boss_kills - LDA.w #$0000 : STA $1704 ; skull icon TODO + LDA.w #$280F : STA $1704 ; skull icon LDY.w #0 @@ -451,10 +454,13 @@ DrawHUDDungeonItems: ;------------------------------------------------------------------------------- .skip_boss_kills + JMP .exit + +;------------------------------------------------------------------------------- ; This should only display if select is pressed in hud - +++ - LDA !HUD_FLAG : AND.w #$0020 : BNE + : JMP +++ : + + .maps_and_compasses + ; Maps LDA HUDDungeonItems : AND.w #$0004 : BEQ .skip_maps LDA.w #$2821 : STA $1684 ; map icon @@ -513,7 +519,7 @@ DrawHUDDungeonItems: .skip_compasses -+++ +.exit PLB PLP RTL From 5f1ea346461bd07cd2a3ee5b47eaccab4b525cd3 Mon Sep 17 00:00:00 2001 From: aerinon Date: Wed, 17 Feb 2021 11:52:10 -0700 Subject: [PATCH 10/63] Final fix for counting hera key --- stats.asm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/stats.asm b/stats.asm index 6aefd31..0b0f433 100644 --- a/stats.asm +++ b/stats.asm @@ -244,7 +244,7 @@ IncrementSmallKeysNoPrimary: LDA $1B : BEQ + ; skip room check if outdoors PHP : REP #$20 ; set 16-bit accumulator LDA $048E : CMP.w #$0087 : BNE ++ ; hera basement - PLP : PHY : LDY.b #24 : JSL.l FullInventoryExternal + PLP : PHY : LDY.b #$24 : JSL.l FullInventoryExternal JSR CountChestKey : PLY : BRA + ++ PLP @@ -264,7 +264,6 @@ RTL ;-------------------------------------------------------------------------------- CountChestKey: ; called by neighbor functions PHA : PHX - CPY #24 : BEQ + ; hera basement key CPY #$24 : BEQ + ; small key for this dungeon - use $040C CPY #$A0 : !BLT .end ; Ignore most items CPY #$AE : !BGE .end ; Ignore reserved key and generic key From f2ce8aaf5927b3e166ec2ff3714d35e82b0b900e Mon Sep 17 00:00:00 2001 From: StructuralMike <66819228+StructuralMike@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:58:54 +0100 Subject: [PATCH 11/63] Now possible to start with 0 bomb capacity --- capacityupgrades.asm | 3 ++- inventory.asm | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/capacityupgrades.asm b/capacityupgrades.asm index 59e4693..cdd343f 100644 --- a/capacityupgrades.asm +++ b/capacityupgrades.asm @@ -6,7 +6,8 @@ ;-------------------------------------------------------------------------------- IncrementBombs: LDA !BOMB_UPGRADES ; get bomb upgrades - !ADD.l StartingMaxBombs : DEC + !ADD.l StartingMaxBombs : BEQ + ; Skip if we can't have bombs + DEC CMP !BOMB_CURRENT diff --git a/inventory.asm b/inventory.asm index e8e118e..a048271 100644 --- a/inventory.asm +++ b/inventory.asm @@ -738,6 +738,7 @@ RTS Link_ReceiveItem_HUDRefresh: LDA $7EF343 : BNE + ; skip if we have bombs LDA $7EF375 : BEQ + ; skip if we are filling no bombs + LDA $7EF370 : !ADD.l StartingMaxBombs : BEQ + ; skip if we can't have bombs DEC : STA $7EF375 ; decrease bomb fill count LDA.b #$01 : STA $7EF343 ; increase actual bomb count + @@ -753,6 +754,7 @@ RTL HandleBombAbsorbtion: STA $7EF375 ; thing we wrote over LDA $0303 : BNE + ; skip if we already have some item selected + LDA $7EF370 : !ADD.l StartingMaxBombs : BEQ + ; skip if we can't have bombs LDA.b #$04 : STA $0202 ; set selected item to bombs LDA.b #$01 : STA $0303 ; set selected item to bombs JSL.l HUD_RebuildLong From a19c72a062693c01ba0a4fe74f9d609844b35224 Mon Sep 17 00:00:00 2001 From: ken Date: Tue, 16 Mar 2021 01:02:26 -0700 Subject: [PATCH 12/63] bottles via double shoulder --- inventory.asm | 2 ++ quickswap.asm | 55 ++++++++++++++++++++++++++------------------------- 2 files changed, 30 insertions(+), 27 deletions(-) diff --git a/inventory.asm b/inventory.asm index e8e118e..bbc7058 100644 --- a/inventory.asm +++ b/inventory.asm @@ -124,7 +124,9 @@ RTL ;ProcessBottleMenu: ;-------------------------------------------------------------------------------- ProcessBottleMenu: + LDA $F6 : AND #$30 : CMP.b #$30 : BEQ .double_shoulder_pressed LDA $F4 : AND #$40 : BEQ .y_not_pressed ; skip if Y is not down + .double_shoulder_pressed LDA $7EF34F ; check bottle state BEQ .no_bottles ; skip if we have no bottles PHX diff --git a/quickswap.asm b/quickswap.asm index da04ddb..d83fd4c 100644 --- a/quickswap.asm +++ b/quickswap.asm @@ -38,6 +38,7 @@ QuickSwap: CPX.b #$01 : BEQ + ; bow CPX.b #$05 : BEQ + ; powder CPX.b #$0D : BEQ + ; flute + CPX.b #$10 : BEQ + ; bottle BRA .store + STX $0202 : JSL ProcessMenuButtons_y_pressed @@ -54,20 +55,20 @@ RTL RCode: LDA.w $0202 : TAX - - CPX.b #$0F : BNE + ; incrementing into bottle - LDX.b #$00 : BRA ++ - + CPX.b #$10 : BNE + ; incrementing bottle - LDA.l $7EF34F : TAX - -- : ++ - CPX.b #$04 : BEQ .noMoreBottles - INX - LDA.l $7EF35B,X : BEQ -- - TXA : STA.l $7EF34F - LDX #$10 - RTS - .noMoreBottles - LDX #$11 - BRA .nextItem +; CPX.b #$0F : BNE + ; incrementing into bottle +; LDX.b #$00 : BRA ++ +; + CPX.b #$10 : BNE + ; incrementing bottle +; LDA.l $7EF34F : TAX +; -- : ++ +; CPX.b #$04 : BEQ .noMoreBottles +; INX +; LDA.l $7EF35B,X : BEQ -- +; TXA : STA.l $7EF34F +; LDX #$10 +; RTS +; .noMoreBottles +; LDX #$11 +; BRA .nextItem + CPX.b #$14 : BNE + : LDX.b #$00 ;will wrap around to 1 + INX .nextItem @@ -77,19 +78,19 @@ RTS LCode: LDA.w $0202 : TAX - - CPX.b #$11 : BNE + ; decrementing into bottle - LDX.b #$05 : BRA ++ - + CPX.b #$10 : BNE + ; decrementing bottle - LDA.l $7EF34F : TAX - -- : ++ - CPX.b #$01 : BEQ .noMoreBottles - DEX - LDA.l $7EF35B,X : BEQ -- - TXA : STA.l $7EF34F - LDX.b #$10 - RTS - .noMoreBottles - LDX.b #$0F : BRA .nextItem +; CPX.b #$11 : BNE + ; decrementing into bottle +; LDX.b #$05 : BRA ++ +; + CPX.b #$10 : BNE + ; decrementing bottle +; LDA.l $7EF34F : TAX +; -- : ++ +; CPX.b #$01 : BEQ .noMoreBottles +; DEX +; LDA.l $7EF35B,X : BEQ -- +; TXA : STA.l $7EF34F +; LDX.b #$10 +; RTS +; .noMoreBottles +; LDX.b #$0F : BRA .nextItem + CPX.b #$01 : BNE + : LDX.b #$15 ; will wrap around to $14 + DEX .nextItem From 025b4941f367c0f7e4ddf8dde0c3e8ad58294b3d Mon Sep 17 00:00:00 2001 From: ken Date: Tue, 16 Mar 2021 22:23:06 -0700 Subject: [PATCH 13/63] don't require both shoulders twice; causes too much lag --- inventory.asm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/inventory.asm b/inventory.asm index bbc7058..865b6d8 100644 --- a/inventory.asm +++ b/inventory.asm @@ -124,9 +124,9 @@ RTL ;ProcessBottleMenu: ;-------------------------------------------------------------------------------- ProcessBottleMenu: - LDA $F6 : AND #$30 : CMP.b #$30 : BEQ .double_shoulder_pressed - LDA $F4 : AND #$40 : BEQ .y_not_pressed ; skip if Y is not down - .double_shoulder_pressed +; LDA $F6 : AND #$30 : CMP.b #$30 : BEQ .double_shoulder_pressed +; LDA $F4 : AND #$40 : BEQ .y_not_pressed ; skip if Y is not down +; .double_shoulder_pressed LDA $7EF34F ; check bottle state BEQ .no_bottles ; skip if we have no bottles PHX @@ -139,9 +139,9 @@ ProcessBottleMenu: .no_bottles LDA #$00 ; pretend like the controller state was 0 from the overridden load RTL - .y_not_pressed - LDA $F4 : AND.b #$0C ; thing we wrote over - load controller state -RTL +; .y_not_pressed +; LDA $F4 : AND.b #$0C ; thing we wrote over - load controller state +;RTL ;-------------------------------------------------------------------------------- ;-------------------------------------------------------------------------------- From cd7260c5f425fd2d225a703f28d70a77205965eb Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Wed, 24 Mar 2021 07:31:38 -0400 Subject: [PATCH 14/63] refactor bookofmudora unnecessary stack operations --- bookofmudora.asm | 2 -- 1 file changed, 2 deletions(-) diff --git a/bookofmudora.asm b/bookofmudora.asm index 3030d34..e26c7fa 100644 --- a/bookofmudora.asm +++ b/bookofmudora.asm @@ -15,9 +15,7 @@ DrawLibraryItemGFX: RTL ;-------------------------------------------------------------------------------- SetLibraryItem: - PHA LDY $0E80, X ; Retrieve stored item type - PLA JSL.l ItemSet_Library ; contains thing we wrote over RTL ;-------------------------------------------------------------------------------- From f6f28d89a94ac9937148e274a8a44033d1a7a5f9 Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Wed, 24 Mar 2021 07:37:32 -0400 Subject: [PATCH 15/63] refactor bugfixes reverse some labels for compactness and readability --- bugfixes.asm | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/bugfixes.asm b/bugfixes.asm index 4b55a67..5e7a6be 100644 --- a/bugfixes.asm +++ b/bugfixes.asm @@ -32,7 +32,7 @@ RTL ;-------------------------------------------------------------------------------- ;0 = Become (Perma)bunny DecideIfBunny: - LDA $7EF357 : BEQ + : RTL : + + LDA $7EF357 : BNE .done LDA $7EF3CA : AND.b #$40 PHA : LDA.l InvertedMode : BNE .inverted .normal @@ -47,8 +47,8 @@ RTL DecideIfBunnyByScreenIndex: ; If indoors we don't have a screen index. Return non-bunny to make mirror-based ; superbunny work - LDA $1B : BEQ + : RTL : + - LDA $7EF357 : BEQ + : RTL : + + LDA $1B : BNE .done + LDA $7EF357 : BNE .done LDA $8A : AND.b #$40 : PHA LDA.l InvertedMode : BNE .inverted .normal @@ -114,12 +114,13 @@ RTS FixFrogSmith: LDA.l $7EF3CA : BNE .darkWorld LDA.l $7EF3CC : CMP.b #$07 : BNE .done - LDA.b #$08 : STA.l $7EF3CC ; make frog into smith in light world + LDA.b #$08 : ; make frog into smith in light world BRA .loadgfx .darkWorld LDA.l $7EF3CC : CMP.b #$08 : BNE .done - LDA.b #$07 : STA.l $7EF3CC ; make smith into frog in dark world + LDA.b #$07 ; make smith into frog in dark world .loadgfx + STA.l $7EF3CC JSL Tagalong_LoadGfx .done RTS @@ -137,12 +138,11 @@ RTL ; Fix crystal not spawning when using somaria vs boss TryToSpawnCrystalUntilSuccess: STX $02D8 ; what we overwrote - JSL AddAncillaLong : BCC .spawned ; a clear carry flag indicates success - .failed - RTL - .spawned + JSL AddAncillaLong : BCS .failed ; a clear carry flag indicates success +.spawned STZ $AE ; the "trying to spawn crystal" flag STZ $AF ; the "trying to spawn pendant" flag +.failed RTL ;-------------------------------------------------------------------------------- @@ -173,22 +173,22 @@ CMP.w #$030E : BEQ .new ; opening dungeon map CMP.w #$070E : BEQ .new ; opening overworld map .original - - lda [$00] - sta $7ec300, x - sta $7ec500, x - inc $00 : inc $00 - inx #2 - dey - bpl - + LDA [$00] + STA $7EC300, X + STA $7EC500, X + INC $00 : INC $00 + INX #2 + DEY + BPL - RTL .new - - lda [$00] - sta $7ec500, x - inc $00 : inc $00 - inx #2 - dey - bpl - + LDA [$00] + STA $7EC500, X + INC $00 : INC $00 + INX #2 + DEY + BPL - RTL ;-------------------------------------------------------------------------------- From ffd1db722bb68206f8c045196332b7f04f751daa Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Wed, 24 Mar 2021 07:39:20 -0400 Subject: [PATCH 16/63] refactor catfish use JML instead of JSL : RTL --- catfish.asm | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/catfish.asm b/catfish.asm index 908a31f..4754600 100644 --- a/catfish.asm +++ b/catfish.asm @@ -4,8 +4,7 @@ !HEART_REDRAW = "$7F5000" LoadCatfishItemGFX: LDA.l $1DE185 ; location randomizer writes catfish item to - JSL.l PrepDynamicTile -RTL + JML PrepDynamicTile ;-------------------------------------------------------------------------------- DrawThrownItem: LDA $8A : CMP.b #$81 : BNE .catfish @@ -19,8 +18,7 @@ DrawThrownItem: LDA.l $1DE185 ; location randomizer writes catfish item to .draw - JSL.l DrawDynamicTile -RTL + JML DrawDynamicTile ;-------------------------------------------------------------------------------- MarkThrownItem: JSL Link_ReceiveItem ; thing we wrote over @@ -28,12 +26,9 @@ MarkThrownItem: LDA $8A : CMP.b #$81 : BNE .catfish .zora - JSL.l ItemSet_ZoraKing - BRA .done - + JML ItemSet_ZoraKing + .catfish - JSL.l ItemSet_Catfish - - .done -RTL + JML ItemSet_Catfish + ;-------------------------------------------------------------------------------- \ No newline at end of file From 97e3a995e027d8908286301855c8fb28600a95cc Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Wed, 24 Mar 2021 07:42:34 -0400 Subject: [PATCH 17/63] refactor clock JSL : RTL to JML SEC not necessary if we branch on BEQ, since BEQ implies a set carry made carry_bit a sublabel --- clock.asm | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/clock.asm b/clock.asm index c0eebd1..4e853d1 100644 --- a/clock.asm +++ b/clock.asm @@ -66,8 +66,7 @@ endmacro Clock_Test: JSL.l Clock_Init - JSL.l Clock_IsSupported -RTL + JML.l Clock_IsSupported ;-------------------------------------------------------------------------------- ; Clock_Init @@ -112,11 +111,10 @@ Clock_IsSupported: PHA : PHX LDX #$00; - - LDA $002800 : AND.b #$0F : CMP #$0F : BEQ + ; check for clock chip ready signal - CPX.b #$0E : !BLT ++ : CLC : BRA .done : ++ ; if we've read 14 bytes with no success, unset carry and exit - INX - BRA - : + - SEC ; found a clock chip + LDA $002800 : AND.b #$0F : CMP #$0F : BEQ .done ; check for clock chip ready signal + CPX.b #$0E : BCC ++ : CLC : BRA .done ; if we've read 14 bytes with no success, unset carry and exit + ++ INX + BRA - .done PLX : PLA RTL @@ -197,9 +195,9 @@ Multiply_A16Y8: CLC ADC $4216 LDY $4217 - BCC carry_bit + BCC .carry_bit INY - carry_bit: +.carry_bit: XBA REP #$20 ; set 16-bit accumulator RTL From a28726d20ec8ae094ca50dab55ec2911d0f08775 Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Wed, 24 Mar 2021 07:46:53 -0400 Subject: [PATCH 18/63] refactor compasses reverse some branching for compactness move SEP #$20 to macro --- compasses.asm | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/compasses.asm b/compasses.asm index 89ee265..af65625 100644 --- a/compasses.asm +++ b/compasses.asm @@ -8,16 +8,17 @@ macro DrawConstantNumber(digit1,digit2) LDA.w #$2490+ : STA $7EC79A LDA.w #$2490+ : STA $7EC79C + SEP #$20 endmacro ;-------------------------------------------------------------------------------- DrawDungeonCompassCounts: LDX $1B : BNE + : RTL : + ; Skip if outdoors - LDX $040C : CPX.b #$FF : BNE + : RTL : + ; Skip if not in a dungeon + LDX $040C : CPX.b #$FF : BEQ .done ; Skip if not in a dungeon CMP.w #$0002 : BEQ ++ ; if CompassMode==2, we don't check for the compass LDA $7EF364 : AND.l .item_masks, X ; Load compass values to A, mask with dungeon item masks - BNE + : RTL : + ; skip if we don't have compass + BEQ .done ; skip if we don't have compass ++ JMP (CompassCountDungeonHandlers, X) : .return_spot @@ -48,79 +49,66 @@ CompassCountDungeonHandlers: ; pointers to functions that handle dungeon-specifi CompassCount_Escape: %DrawConstantNumber(0,8) - SEP #$20 LDA $7EF434 : LSR #4 JMP DrawDungeonCompassCounts_return_spot CompassCount_Eastern: %DrawConstantNumber(0,6) - SEP #$20 LDA $7EF436 : AND.b #$07 JMP DrawDungeonCompassCounts_return_spot CompassCount_Desert: %DrawConstantNumber(0,6) - SEP #$20 LDA $7EF435 : LSR #5 JMP DrawDungeonCompassCounts_return_spot CompassCount_Agah: %DrawConstantNumber(0,2) - SEP #$20 LDA $7EF435 : AND.b #$02 JMP DrawDungeonCompassCounts_return_spot CompassCount_Swamp: %DrawConstantNumber(1,0) - SEP #$20 LDA $7EF439 : AND.b #$0F JMP DrawDungeonCompassCounts_return_spot CompassCount_PoD: %DrawConstantNumber(1,4) - SEP #$20 LDA $7EF434 : AND.b #$0F JMP DrawDungeonCompassCounts_return_spot CompassCount_Mire: %DrawConstantNumber(0,8) - SEP #$20 LDA $7EF438 : AND.b #$0F JMP DrawDungeonCompassCounts_return_spot CompassCount_Skull: %DrawConstantNumber(0,8) - SEP #$20 LDA $7EF437 : LSR #4 JMP DrawDungeonCompassCounts_return_spot CompassCount_Ice: %DrawConstantNumber(0,8) - SEP #$20 LDA $7EF438 : LSR #4 JMP DrawDungeonCompassCounts_return_spot CompassCount_Hera: %DrawConstantNumber(0,6) - SEP #$20 LDA $7EF435 : AND.b #$1C : LSR #2 JMP DrawDungeonCompassCounts_return_spot CompassCount_Thieves: %DrawConstantNumber(0,8) - SEP #$20 LDA $7EF437 : AND.b #$0F JMP DrawDungeonCompassCounts_return_spot CompassCount_Trock: %DrawConstantNumber(1,2) - SEP #$20 LDA $7EF439 : LSR #4 JMP DrawDungeonCompassCounts_return_spot CompassCount_Gt: %DrawConstantNumber(2,7) - SEP #$20 LDA $7EF436 : LSR #3 JMP DrawDungeonCompassCounts_return_spot From 8b9ea182d877768b9ecbfb4b638dbbdcc572ed69 Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Wed, 24 Mar 2021 07:55:51 -0400 Subject: [PATCH 19/63] refactor darkworldspawn reversed some labels moved nomirror because 0 is already loaded INC from 7 to 8 ORA instead of multiple branchings SBC without SEC when carry is guaranteed --- darkworldspawn.asm | 50 ++++++++++++++++++++-------------------------- 1 file changed, 22 insertions(+), 28 deletions(-) diff --git a/darkworldspawn.asm b/darkworldspawn.asm index e38e652..43a55ae 100644 --- a/darkworldspawn.asm +++ b/darkworldspawn.asm @@ -4,8 +4,7 @@ DarkWorldSaveFix: LDA.b #$70 : PHA : PLB ; thing we wrote over - data bank change JSL.l MasterSwordFollowerClear - JSL.l StatSaveCounter -RTL + JML.l StatSaveCounter ;-------------------------------------------------------------------------------- DoWorldFix: LDA InvertedMode : BEQ + @@ -14,12 +13,12 @@ DoWorldFix: LDA.l Bugfix_MirrorlessSQToLW : BEQ .skip_mirror_check LDA $7EF353 : BEQ .noMirror ; check if we have the mirror .skip_mirror_check ; alt entrance point - LDA $7EF3C5 : CMP.b #$03 : !BLT .aga1Alive ; check if agahnim 1 is alive - BRA .done - .noMirror + LDA $7EF3C5 : CMP.b #$03 : BCS .done ; check if agahnim 1 is alive .aga1Alive - LDA #$00 : STA $7EF3CA ; set flag to light world - LDA $7EF3CC : CMP #$07 : BNE + : LDA.b #$08 : STA $7EF3CC : + ; convert frog to dwarf + LDA #$00 + .noMirror + STA $7EF3CA ; set flag to light world + LDA $7EF3CC : CMP #$07 : BNE .done : INC : STA $7EF3CC ; convert frog to dwarf .done RTL ;-------------------------------------------------------------------------------- @@ -29,8 +28,7 @@ SetDeathWorldChecked: + LDA $1B : BEQ .outdoors LDA $040C : CMP #$FF : BNE .dungeon - LDA $A0 : BNE ++ - LDA $A1 : BNE ++ + LDA $A0 : ORA $A1 : BNE ++ LDA GanonPyramidRespawn : BNE .pyramid ; if flag is set, force respawn at pyramid on death to ganon ++ .outdoors @@ -42,7 +40,7 @@ JMP DoWorldFix_skip_mirror_check .pyramid LDA #$40 : STA $7EF3CA ; set flag to dark world - LDA $7EF3CC : CMP #$08 : BNE + : LDA.b #$07 : STA $7EF3CC : + ; convert dwarf to frog + LDA $7EF3CC : CMP #$08 : BNE .done : DEC : STA $7EF3CC : + ; convert dwarf to frog .done RTL ;================================================================================ @@ -50,15 +48,13 @@ DoWorldFix_Inverted: LDA.l Bugfix_MirrorlessSQToLW : BEQ .skip_mirror_check LDA $7EF353 : BEQ .noMirror ; check if we have the mirror .skip_mirror_check ; alt entrance point - LDA $7EF3C5 : CMP.b #$03 : !BLT .aga1Alive ; check if agahnim 1 is alive - BRA .done + LDA $7EF3C5 : CMP.b #$03 : BCS .done ; check if agahnim 1 is alive .noMirror .aga1Alive LDA #$40 : STA $7EF3CA ; set flag to dark world LDA $7EF3CC - CMP #$07 : BEQ .clear ; clear frog - CMP #$08 : BEQ .clear ; clear dwarf - consider flute implications - BRA .done + CMP #$07 : BNE .done ; clear frog + CMP #$08 : BNE .done ; clear dwarf - consider flute implications .clear LDA.b #$00 : STA $7EF3CC ; clear follower .done @@ -67,8 +63,7 @@ RTL SetDeathWorldChecked_Inverted: LDA $1B : BEQ .outdoors LDA $040C : CMP #$FF : BNE .dungeon - LDA $A0 : BNE ++ - LDA $A1 : BNE ++ + LDA $A0 : ORA $A1 : BNE ++ LDA GanonPyramidRespawn : BNE .castle ; if flag is set, force respawn at pyramid on death to ganon ++ .outdoors @@ -95,16 +90,15 @@ RTL ;-------------------------------------------------------------------------------- MasterSwordFollowerClear: LDA $7EF3CC - CMP #$0E : BEQ .clear ; clear master sword follower -RTL - .clear + CMP #$0E : BNE .exit ; clear master sword follower LDA.b #$00 : STA $7EF3CC ; clear follower -RTL +.exit + RTL ;-------------------------------------------------------------------------------- FixAgahnimFollowers: LDA.b #$00 : STA $7EF3CC ; clear follower - JSL PrepDungeonExit ; thing we wrote over -RTL + JML PrepDungeonExit ; thing we wrote over + ;-------------------------------------------------------------------------------- macro SetMinimum(base,filler,compare) LDA.l : !SUB.l : !BLT ?done @@ -112,7 +106,7 @@ macro SetMinimum(base,filler,compare) ?done: endmacro RefreshRainAmmo: - LDA $7EF3C5 : CMP.b #$01 : BEQ + : RTL : + ; check if we're in rain state + LDA $7EF3C5 : CMP.b #$01 : BNE .done ; check if we're in rain state .rain LDA $7EF3C8 + CMP.b #$03 : BNE + ; Uncle @@ -137,14 +131,14 @@ RTL !INFINITE_BOMBS = "$7F50C9" !INFINITE_MAGIC = "$7F50CA" SetEscapeAssist: - LDA $7EF3C5 : CMP.b #$01 : BNE .notrain ; check if we're in rain state + LDA $7EF3C5 : CMP.b #$01 : BNE .no_train ; check if we're in rain state .rain LDA.l EscapeAssist BIT.b #$04 : BEQ + : STA !INFINITE_MAGIC : + BIT.b #$02 : BEQ + : STA !INFINITE_BOMBS : + BIT.b #$01 : BEQ + : STA !INFINITE_ARROWS : + BRA ++ - .notrain + .no_train ; choo choo LDA.l EscapeAssist : BIT.b #$04 : BEQ + : LDA.b #$00 : STA !INFINITE_MAGIC : + LDA.l EscapeAssist : BIT.b #$02 : BEQ + : LDA.b #$00 : STA !INFINITE_BOMBS : + LDA.l EscapeAssist : BIT.b #$01 : BEQ + : LDA.b #$00 : STA !INFINITE_ARROWS : + @@ -153,8 +147,8 @@ RTL ;-------------------------------------------------------------------------------- SetSilverBowMode: LDA SilverArrowsUseRestriction : BEQ + ; fix bow type for restricted arrow mode - LDA $7EF340 : CMP.b #$3 : !BLT + - !SUB.b #$02 : STA $7EF340 + LDA $7EF340 : CMP.b #$3 : BCC + + SBC.b #$02 : STA $7EF340 + RTL ;================================================================================ From a5580621ef903dd96162a20141d2a51f8eec1179 Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Wed, 24 Mar 2021 08:10:35 -0400 Subject: [PATCH 20/63] refactor dialog PEI is a great opcode and should be used more! change AND mask : CMP mask : BNE to just AND mask : BEQ merge SEP and REPs across branches change LDA : AND to BIT --- dialog.asm | 140 ++++++++++++++++++++++++----------------------------- 1 file changed, 63 insertions(+), 77 deletions(-) diff --git a/dialog.asm b/dialog.asm index 720f7b1..5e1a835 100644 --- a/dialog.asm +++ b/dialog.asm @@ -82,14 +82,13 @@ macro LoadDialogAddress(address) PHB : PHK : PLB SEP #$20 ; set 8-bit accumulator REP #$10 ; set 16-bit index registers - LDA $00 : PHA - LDA $01 : PHA + PEI ($00) LDA $02 : PHA STZ $1CF0 : STZ $1CF1 ; reset decompression buffer LDA.b #$01 : STA $7F5035 ; set flag %CopyDialog(

) PLA : STA $02 - PLA : STA $01 + REP #$20 PLA : STA $00 PLB PLP @@ -132,53 +131,52 @@ FreeDungeonItemNotice: PHB : PHK : PLB SEP #$20 ; set 8-bit accumulator REP #$10 ; set 16-bit index registers - LDA $00 : PHA - LDA $01 : PHA + PEI ($00) LDA $02 : PHA ;-------------------------------- LDA.l FreeItemText : BNE + : JMP .skip : + LDA #$00 : STA $7F5010 ; initialize scratch - LDA.l FreeItemText : AND.b #$01 : CMP.b #$01 : BNE + ; show message for general small key + LDA.l FreeItemText : AND.b #$01 : BEQ + ; show message for general small key LDA !ITEM_TEMPORARY : CMP.b #$24 : BNE + ; general small key %CopyDialog(Notice_SmallKeyOf) LDA !OFFSET_RETURN : DEC #2 : STA !OFFSET_POINTER %CopyDialog(Notice_Self) JMP .done - + : LDA.l FreeItemText : AND.b #$02 : CMP.b #$02 : BNE + ; show message for general compass + + : LDA.l FreeItemText : AND.b #$02 : BEQ + ; show message for general compass LDA !ITEM_TEMPORARY : CMP.b #$25 : BNE + ; general compass %CopyDialog(Notice_CompassOf) LDA !OFFSET_RETURN : DEC #2 : STA !OFFSET_POINTER %CopyDialog(Notice_Self) JMP .done - + : LDA.l FreeItemText : AND.b #$04 : CMP.b #$04 : BNE + ; show message for general map + + : LDA.l FreeItemText : AND.b #$04 : BEQ + ; show message for general map LDA !ITEM_TEMPORARY : CMP.b #$33 : BNE + ; general map %CopyDialog(Notice_MapOf) LDA !OFFSET_RETURN : DEC #2 : STA !OFFSET_POINTER %CopyDialog(Notice_Self) JMP .done - + : LDA.l FreeItemText : AND.b #$08 : CMP.b #$08 : BNE + ; show message for general big key + + : LDA.l FreeItemText : AND.b #$08 : BEQ + ; show message for general big key LDA !ITEM_TEMPORARY : CMP.b #$32 : BNE + ; general big key %CopyDialog(Notice_BigKeyOf) LDA !OFFSET_RETURN : DEC #2 : STA !OFFSET_POINTER %CopyDialog(Notice_Self) JMP .done + - LDA.l FreeItemText : AND.b #$04 : CMP.b #$04 : BNE + ; show message for dungeon map + LDA.l FreeItemText : AND.b #$04 : BEQ + ; show message for dungeon map LDA !ITEM_TEMPORARY : AND.b #$F0 ; looking at high bits only CMP.b #$70 : BNE + ; map of... %CopyDialog(Notice_MapOf) JMP .dungeon - + : LDA.l FreeItemText : AND.b #$02 : CMP.b #$02 : BNE + ; show message for dungeon compass + + : LDA.l FreeItemText : AND.b #$02 : BEQ + ; show message for dungeon compass LDA !ITEM_TEMPORARY : AND.b #$F0 : CMP.b #$80 : BNE + ; compass of... %CopyDialog(Notice_CompassOf) JMP .dungeon - + : LDA.l FreeItemText : AND.b #$08 : CMP.b #$08 : BNE + ; show message for dungeon big key + + : LDA.l FreeItemText : AND.b #$08 : BEQ + ; show message for dungeon big key LDA !ITEM_TEMPORARY : AND.b #$F0 : CMP.b #$90 : BNE + ; big key of... %CopyDialog(Notice_BigKeyOf) BRA .dungeon - + : LDA.l FreeItemText : AND.b #$01 : CMP.b #$01 : BNE + ; show message for dungeon small key + + : LDA.l FreeItemText : AND.b #$01 : BEQ + ; show message for dungeon small key LDA !ITEM_TEMPORARY : AND.b #$F0 : CMP.b #$A0 : BNE + ; small key of... LDA !ITEM_TEMPORARY : CMP.b #$AF : BNE ++ : JMP .skip : ++ %CopyDialog(Notice_SmallKeyOf) @@ -235,27 +233,19 @@ FreeDungeonItemNotice: STZ $1CF0 : STZ $1CF1 ; reset decompression buffer LDA.b #$01 : STA $7F5035 ; set alternate dialog flag - LDA.b #$01 : STA $7F509F + STA $7F509F ;-------------------------------- - PLA : STA $02 - PLA : STA $01 - PLA : STA $00 - PLB - PLP - PLY : PLX : PLA - ;JSL.l Main_ShowTextMessage_Alt -RTL - .skip - ;-------------------------------- PLA : STA $02 - PLA : STA $01 + REP #$20 PLA : STA $00 PLB PLP PLY : PLX : PLA + ;JSL.l Main_ShowTextMessage_Alt ; .skip can be here so long as this line remains commented out RTL + ;-------------------------------------------------------------------------------- DialogResetSelectionIndex: JSL.l Attract_DecompressStoryGfx ; what we wrote over @@ -264,11 +254,9 @@ RTL ;-------------------------------------------------------------------------------- DialogItemReceive: BCS .noMessage ; if doubling the item value overflowed it must be a rando item - CPY #$98 : !BLT + ;if the item is $4C or greater it must be a rando item - .noMessage - LDA.w #$FFFF - BRA .done - + + LDA.w #$FFFF + CPY #$98 : BCS .done ;if the item is $4C or greater it must be a rando item + LDA.w Ancilla_ReceiveItem_item_messages, Y .done CMP.w #$FFFF @@ -289,12 +277,13 @@ RTL RTL ;-------------------------------------------------------------------------------- DialogGanon1: - JSL.l CheckGanonVulnerability : BCS + - REP #$20 : LDA.w #$018C : STA $1CF0 : SEP #$20 - BRA ++ - + - REP #$20 : LDA.w #$016D : STA $1CF0 : SEP #$20 - ++ + JSL.l CheckGanonVulnerability + REP #$20 + LDA.w #$018C + BCC + + LDA.w #$016D ++ STA $1CF0 + SEP #$20 JSL.l Sprite_ShowMessageMinimal_Alt RTL ;-------------------------------------------------------------------------------- @@ -307,28 +296,30 @@ RTL ; s = silver arrow bow ; p = 2nd progressive bow DialogGanon2: - JSL.l CheckGanonVulnerability : BCS + - REP #$20 : LDA.w #$018D : STA $1CF0 : SEP #$20 - BRA ++ + JSL.l CheckGanonVulnerability + + REP #$20 + BCS + + LDA.w #$018D : BRA ++ + - LDA.l $7EF38E : AND #$80 : BNE + ; branch if bow - REP #$20 : LDA.w #$0192 : STA $1CF0 : SEP #$20 ; no bow - BRA ++ + LDA.l $7EF38E + + BIT.w #$0080 : BNE + ; branch if bow + LDA.w #$0192 : BRA ++ + - LDA.l $7EF38E : AND #$40 : BEQ + ; branch if no silvers - REP #$20 : LDA.w #$0195 : STA $1CF0 : SEP #$20 ;has silvers - BRA ++ + BIT.w #$0040 : BEQ + ; branch if no silvers + LDA.w #$0195 : BRA ++ + - LDA.l $7EF38E : AND #$20 : BNE + ; branch if p bow - REP #$20 : LDA.w #$0194 : STA $1CF0 : SEP #$20 ; bow, no-silvers, no-p-bow - BRA ++ + BIT.w #$0020 : BNE + ; branch if p bow + LDA.w #$0194 : BRA ++ + - LDA.l $7EF38E : AND #$80 : BEQ + ; branch if no bow - REP #$20 : LDA.w #$0193 : STA $1CF0 : SEP #$20 ; bow, no-silvers, p-bow - BRA ++ + BIT.w #$0080 : BEQ + ; branch if no bow + LDA.w #$0193 : BRA ++ + - REP #$20 : LDA.w #$016E : STA $1CF0 : SEP #$20 ; both bow and no bow. impossible. + LDA.w #$016E ++ + STA $1CF0 + SEP #$20 JSL.l Sprite_ShowMessageMinimal_Alt RTL ;-------------------------------------------------------------------------------- @@ -336,21 +327,20 @@ DialogEtherTablet: PHA LDA $0202 : CMP.b #$0F : BEQ + ; Show normal text if book is not equipped - - PLA : JSL Sprite_ShowMessageUnconditional ; Wacky Hylian Text -RTL + PLA : JML Sprite_ShowMessageUnconditional ; Wacky Hylian Text + BIT $F4 : BVC - ; Show normal text if Y is not pressed LDA.l AllowHammerTablets : BEQ ++ LDA $7EF34B : BEQ .yesText : BRA .noText ++ - LDA $7EF359 : CMP.b #$FF : BEQ .yesText : CMP.b #$02 : !BGE .noText + LDA $7EF359 : CMP.b #$FF : BEQ .yesText : CMP.b #$02 : BCS .noText ;++ .yesText PLA - LDA.b #$0c + LDA.b #$0C LDY.b #$01 - JSL Sprite_ShowMessageUnconditional ; Text From MSPedestalText (tables.asm) -RTL + JML Sprite_ShowMessageUnconditional ; Text From MSPedestalText (tables.asm) + .noText PLA RTL @@ -359,8 +349,7 @@ DialogBombosTablet: PHA LDA $0202 : CMP.b #$0F : BEQ + ; Show normal text if book is not equipped - - PLA : JSL Sprite_ShowMessageUnconditional ; Wacky Hylian Text -RTL + PLA : JML Sprite_ShowMessageUnconditional ; Wacky Hylian Text + BIT $F4 : BVC - ; Show normal text if Y is not pressed LDA.l AllowHammerTablets : BEQ ++ @@ -372,8 +361,8 @@ RTL PLA LDA.b #$0D LDY.b #$01 - JSL Sprite_ShowMessageUnconditional ; Text From MSPedestalText (tables.asm) -RTL + JML Sprite_ShowMessageUnconditional ; Text From MSPedestalText (tables.asm) + .noText PLA RTL @@ -382,19 +371,17 @@ DialogSahasrahla: LDA.l $7EF374 : AND #$04 : BEQ + ;Check if player has green pendant LDA.b #$2F LDY.b #$00 - JSL.l Sprite_ShowMessageUnconditional + JML Sprite_ShowMessageUnconditional + RTL ;-------------------------------------------------------------------------------- DialogBombShopGuy: - LDA.l $7EF37A : AND #$05 : CMP #$05 : BEQ + ;Check if player has crystals 5 & 6 - LDA.b #$15 - LDY.b #$01 - JSL.l Sprite_ShowMessageUnconditional - RTL + LDY.b #$15 + LDA.l $7EF37A : AND #$05 : CMP #$05 : BNE + ;Check if player has crystals 5 & 6 + INY ; from 15 to 16 + - LDA.b #$16 - LDY.b #$01 + TYA + LDY.b #$01 JSL.l Sprite_ShowMessageUnconditional RTL ;-------------------------------------------------------------------------------- @@ -405,23 +392,22 @@ Sprite_ShowMessageMinimal_Alt: STZ $11 PHX : PHY - LDA.b $00 : PHA - LDA.b $01 : PHA + PEA ($00) LDA.b $02 : PHA LDA.b #$1C : STA.b $02 REP #$30 LDA.w $1CF0 : ASL : TAX - LDA.l $7f71c0, X + LDA.l $7F71C0, X STA.b $00 SEP #$30 LDY.b #$00 - LDA [$00], Y : CMP.b #$fe : BNE + - INY : LDA [$00], Y : CMP.b #$6e : BNE + + LDA [$00], Y : CMP.b #$FE : BNE + + INY : LDA [$00], Y : CMP.b #$6E : BNE + INY : LDA [$00], Y : : BNE + - INY : LDA [$00], Y : CMP.b #$fe : BNE + - INY : LDA [$00], Y : CMP.b #$6b : BNE + + INY : LDA [$00], Y : CMP.b #$FE : BNE + + INY : LDA [$00], Y : CMP.b #$6B : BNE + INY : LDA [$00], Y : CMP.b #$04 : BNE + STZ $1CE8 JMP .end From 9ce7b9f9d24f323f0ad8b854e41648b9f6294f16 Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Wed, 24 Mar 2021 08:11:32 -0400 Subject: [PATCH 21/63] Update dungeondrops.asm JML --- dungeondrops.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dungeondrops.asm b/dungeondrops.asm index ac40e11..c33e1cc 100644 --- a/dungeondrops.asm +++ b/dungeondrops.asm @@ -3,7 +3,7 @@ ;-------------------------------------------------------------------------------- DropSafeDungeon: LDA $040C : CMP #$08 : BEQ + - LDA $01C6FC, X : JSL Sprite_SpawnFallingItem + LDA $01C6FC, X : JML Sprite_SpawnFallingItem + RTL ;-------------------------------------------------------------------------------- \ No newline at end of file From d883b9a637a1e163ee7a75c0c53c2620a422279d Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Wed, 24 Mar 2021 08:13:00 -0400 Subject: [PATCH 22/63] Update enemy_adjustments.asm reverse branching --- enemy_adjustments.asm | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/enemy_adjustments.asm b/enemy_adjustments.asm index a0206f2..f6205ce 100644 --- a/enemy_adjustments.asm +++ b/enemy_adjustments.asm @@ -4,18 +4,10 @@ ;-------------------------------------------------------------------------------- NewBatInit: ;check if map id == 240 or 241 - LDA $A0 : CMP #$F0 : BNE + ;oldman cave1 - BRA .light_world - + - CMP #$F1 : BNE + ;oldman cave2 - BRA .light_world - + - CMP #$B0 : BNE + ;agahnim statue keese - BRA .light_world - + - CMP #$D0 : BNE + ;agahnim darkmaze - BRA .light_world - + + LDA $A0 : CMP #$F0 : BEQ .light_world ;oldman cave1 + CMP #$F1 : BEQ .light_world ;oldman cave2 + CMP #$B0 : BEQ .light_world ;agahnim statue keese + CMP #$D0 : BEQ .light_world ;agahnim darkmaze CPY #$00 : BEQ .light_world LDA.b #$85 : STA $0CD2, X From 5273112d9d80a26ab4993a3d275f4eb6fdee783f Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Wed, 24 Mar 2021 08:13:41 -0400 Subject: [PATCH 23/63] Update enemy_adjustments.asm this first since it can easily short circuit --- enemy_adjustments.asm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/enemy_adjustments.asm b/enemy_adjustments.asm index f6205ce..ec0411f 100644 --- a/enemy_adjustments.asm +++ b/enemy_adjustments.asm @@ -3,13 +3,14 @@ ; make sure bats always load LW stats ;-------------------------------------------------------------------------------- NewBatInit: + CPY #$00 : BEQ .light_world ;check if map id == 240 or 241 LDA $A0 : CMP #$F0 : BEQ .light_world ;oldman cave1 CMP #$F1 : BEQ .light_world ;oldman cave2 CMP #$B0 : BEQ .light_world ;agahnim statue keese CMP #$D0 : BEQ .light_world ;agahnim darkmaze - CPY #$00 : BEQ .light_world + LDA.b #$85 : STA $0CD2, X LDA.b #$04 : STA $0E50, X RTL From f4a336db9e5308f8dae43f40f22b8cbe3e29bf5f Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Wed, 24 Mar 2021 08:17:52 -0400 Subject: [PATCH 24/63] Update entrances.asm labels BIT instead of AND --- entrances.asm | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/entrances.asm b/entrances.asm index 2b2f171..a76ae17 100644 --- a/entrances.asm +++ b/entrances.asm @@ -4,9 +4,7 @@ ;-------------------------------------------------------------------------------- LockAgahnimDoors: LDA.l AgahnimDoorStyle : AND.w #$00FF - BNE + - ;#$0 = Never Locked - LDA.w #$0000 : RTL + BEQ .exit ; don't need to load 0, because we'd have it if we reached here + : CMP.w #$0001 : BNE + LDA $7EF3C5 : AND.w #$000F : CMP.w #$0002 : !BGE .unlock ; if we rescued zelda, skip JSR.w LockAgahnimDoorsCore : RTL @@ -37,7 +35,7 @@ LockAgahnimDoors: .unlock LDA.w #$0000 ; fallback to never locked - +.exit RTL ;-------------------------------------------------------------------------------- LockAgahnimDoorsCore: @@ -204,14 +202,14 @@ RTL AnimatedEntranceFix: ;when an entrance animation tries to start PHA LDA.l InvertedMode : BEQ + ;If we are in inverted mode - LDA $8A : AND.b #$40 : BNE + ;and in the light world - PLA + PLA + BIT $8A : BVS ++ ; and in the light world STZ $04C6 ; skip it. LDA #$00 RTL + PLA - STA $02E4 ;what we wrote over +++ STA $02E4 ;what we wrote over STA $0FC1 ;what we wrote over STA $0710 ;what we wrote over RTL From 33dbe3003c27f5652489d48ed759a9368dfcace1 Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Wed, 24 Mar 2021 08:20:08 -0400 Subject: [PATCH 25/63] Update events.asm just JMLs here --- events.asm | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/events.asm b/events.asm index 15912b7..1ba18b0 100644 --- a/events.asm +++ b/events.asm @@ -11,8 +11,7 @@ OnPrepFileSelect: RTL + JSL.l LoadAlphabetTilemap - JSL.l LoadFullItemTiles -RTL + JML.l LoadFullItemTiles ;-------------------------------------------------------------------------------- OnDrawHud: JSL.l DrawChallengeTimer ; this has to come before NewDrawHud because the timer overwrites the compass counter @@ -77,15 +76,14 @@ RTL ;-------------------------------------------------------------------------------- OnAga2Defeated: JSL.l Dungeon_SaveRoomData_justKeys ; thing we wrote over, make sure this is first - JSL.l IncrementAgahnim2Sword -RTL + JML.l IncrementAgahnim2Sword ;-------------------------------------------------------------------------------- !RNG_ITEM_LOCK_IN = "$7F5090" OnFileLoad: REP #$10 ; set 16 bit index registers JSL.l EnableForceBlank ; what we wrote over - LDA.b #$07 : STA $210c ; Restore screen 3 to normal tile area + LDA.b #$07 : STA $210C ; Restore screen 3 to normal tile area LDA !FRESH_FILE_MARKER : BNE + JSL.l OnNewFile @@ -161,8 +159,8 @@ RTL ;-------------------------------------------------------------------------------- OnLinkDamaged: JSL.l FlipperKill - JSL.l OHKOTimer -RTL + JML.l OHKOTimer + ;-------------------------------------------------------------------------------- OnEnterWater: JSL.l RegisterWaterEntryScreen @@ -177,8 +175,8 @@ OnLinkDamagedFromPit: RTL ;-------------------------------------------------------------------------------- OnLinkDamagedFromPitOutdoors: - JSL.l OHKOTimer ; make sure this is last -RTL + JML.l OHKOTimer ; make sure this is last + ;-------------------------------------------------------------------------------- !RNG_ITEM_LOCK_IN = "$7F5090" OnOWTransition: @@ -201,16 +199,16 @@ OnLoadDuckMap: RTL + LDA.b #$00 : STA !DARK_DUCK_TEMP - JSL OverworldMap_DarkWorldTilemap -RTL + JML OverworldMap_DarkWorldTilemap + ;-------------------------------------------------------------------------------- PreItemGet: LDA.b #$01 : STA !ITEM_BUSY ; mark item as busy RTL ;-------------------------------------------------------------------------------- PostItemGet: - JSL.l MaybeWriteSRAMTrace -RTL + JML.l MaybeWriteSRAMTrace + ;-------------------------------------------------------------------------------- PostItemAnimation: LDA.b #$00 : STA !ITEM_BUSY ; mark item as finished From 372b0ba59904068910f5575182eb3badee25e3c4 Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Wed, 24 Mar 2021 08:21:44 -0400 Subject: [PATCH 26/63] Update fairyfixes.asm JML dont push yet if the branch just pulls --- fairyfixes.asm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/fairyfixes.asm b/fairyfixes.asm index c62ea3a..5364376 100644 --- a/fairyfixes.asm +++ b/fairyfixes.asm @@ -27,8 +27,7 @@ RTL FairyPond_Init: LDA.l Restrict_Ponds : BNE + LDA.b #$48 - JSL.l Sprite_ShowMessageFromPlayerContact - RTL + JML.l Sprite_ShowMessageFromPlayerContact + PHY : JSL.l Sprite_CheckDamageToPlayerSameLayerLong : BCC + LDA $7EF35C : CMP.b #$02 : BNE ++ : LDA.b #$1C : PHA : BRA .emptyBottle : ++ @@ -56,8 +55,8 @@ RTL ;-------------------------------------------------------------------------------- HappinessPond_Check: LDA $A0 : CMP.b #$15 ;what we wrote over - PHP BNE .done + PHP LDA.b #$72 JSL Sprite_SpawnDynamically @@ -83,6 +82,6 @@ HappinessPond_Check: STZ $0DD0, X ; self terminate - .done PLP + .done RTL From 6472553213f0ad6d233f10633b986295b855e9cd Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Wed, 24 Mar 2021 08:24:44 -0400 Subject: [PATCH 27/63] Update fileselect.asm reverse --- fileselect.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fileselect.asm b/fileselect.asm index 3d9f551..6605b22 100644 --- a/fileselect.asm +++ b/fileselect.asm @@ -113,7 +113,7 @@ JMP DrawItem DrawPlayerFile: - LDA $1A : AND.w #$0001 : BEQ + : BRA .normal : + + LDA $1A : AND.w #$0001 : BNE .normal JSR DrawPlayerFileShared INC $0710 ; Suppress animated tile updates for this frame From 8321a5ef599e1cfc973c90f7c66856fe5652432c Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Thu, 25 Mar 2021 04:53:35 -0400 Subject: [PATCH 28/63] zora jml --- fileselect.asm | 6 +++--- zoraking.asm | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/fileselect.asm b/fileselect.asm index 6605b22..a494226 100644 --- a/fileselect.asm +++ b/fileselect.asm @@ -633,15 +633,15 @@ AltBufferTable: STA $1104 ;file 2 top row STA $1144 ;file 2 bottom row STA $1184 ;gap row top - STA $11c4 ;gap row bottom + STA $11C4 ;gap row bottom STA $1204 ;file 3 top row STA $1244 ;file 3 bottom row STA $1284 ;extra gap row top - STA $12c4 ;extra gap row bottom + STA $12C4 ;extra gap row bottom STA $1304 ;extra gap row top STA $1344 ;extra gap row bottom STA $1384 ;extra gap row top - STA $13c4 ;extra gap row bottom + STA $13C4 ;extra gap row bottom ; Set last packet marker LDA.w #$00FF : STA $1402 diff --git a/zoraking.asm b/zoraking.asm index 91d8437..9ac1a1c 100644 --- a/zoraking.asm +++ b/zoraking.asm @@ -3,8 +3,7 @@ ;-------------------------------------------------------------------------------- LoadZoraKingItemGFX: LDA.l $1DE1C3 ; location randomizer writes zora item to - JSL.l PrepDynamicTile -RTL + JML.l PrepDynamicTile ;-------------------------------------------------------------------------------- JumpToSplashItemTarget: LDA $0D90, X From 3c891b526fbc2ae16751004b12403e235b20bf4b Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Thu, 25 Mar 2021 05:07:46 -0400 Subject: [PATCH 29/63] Update zelda.asm BEQ necessarily means set carry --- zelda.asm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/zelda.asm b/zelda.asm index f03a4ba..d80ae0a 100644 --- a/zelda.asm +++ b/zelda.asm @@ -5,10 +5,8 @@ SpawnZelda: LDA.l $7EF3CC : CMP #$08 : BEQ + ; don't spawn if dwarf is present CMP #$07 : BEQ + ; don't spawn if frog is present CMP #$0C : BEQ + ; don't spawn if purple chest is present - CLC : RTL - + - SEC -RTL + CLC + + RTL ;-------------------------------------------------------------------------------- EndRainState: LDA $7EF3C5 : CMP.b #$02 : !BGE + ; skip if past escape already From 1dca518150396959971ab4b2a1a917c53f4e1c15 Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Thu, 25 Mar 2021 05:10:39 -0400 Subject: [PATCH 30/63] Update halfmagicbat.asm JML --- halfmagicbat.asm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/halfmagicbat.asm b/halfmagicbat.asm index deb4cb6..56ba087 100644 --- a/halfmagicbat.asm +++ b/halfmagicbat.asm @@ -7,8 +7,7 @@ GetMagicBatItem: CMP.b #$FF : BEQ .normalLogic TAY STZ $02E9 ; 0 = Receiving item from an NPC or message - JSL.l Link_ReceiveItem -RTL + JML.l Link_ReceiveItem .normalLogic LDA HalfMagic STA $7EF37B From f95351183c9cf39559cb4f9f716bff1a3944e089 Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Thu, 25 Mar 2021 05:17:03 -0400 Subject: [PATCH 31/63] SEC BEQ IMPLIES SET CARRY --- heartpieces.asm | 33 +++++++++++---------------------- icepalacegraphics.asm | 2 +- 2 files changed, 12 insertions(+), 23 deletions(-) diff --git a/heartpieces.asm b/heartpieces.asm index 5c20ebd..6a4c3fe 100644 --- a/heartpieces.asm +++ b/heartpieces.asm @@ -379,30 +379,19 @@ CheckIfBossRoom: ;-------------------------------------------------------------------------------- REP #$20 ; set 16-bit accumulator LDA $A0 ; these are all decimal because i got them that way - CMP.w #200 : BNE + - SEC : JMP .done - + CMP.w #51 : BNE + - SEC : JMP .done - + CMP.w #7 : BNE + - SEC : JMP .done - + CMP.w #90 : BNE + - SEC : JMP .done - + CMP.w #6 : BNE + - SEC : JMP .done - + CMP.w #41 : BNE + - SEC : JMP .done - + CMP.w #172 : BNE + - SEC : JMP .done - + CMP.w #222 : BNE + - SEC : JMP .done - + CMP.w #144 : BNE + - SEC : JMP .done - + CMP.w #164 : BNE + - SEC : JMP .done - + + CMP.w #200 : BEQ .done + CMP.w #51 : BEQ .done + CMP.w #7 : BEQ .done + CMP.w #90 : BEQ .done + CMP.w #6 : BEQ .done + CMP.w #41 : BEQ .done + CMP.w #172 : BEQ .done + CMP.w #222 : BEQ .done + CMP.w #144 : BEQ .done + CMP.w #164 : BEQ .done CLC .done - SEP #$20 ; set 8-bit accumulator ++ SEP #$20 ; set 8-bit accumulator RTL ;-------------------------------------------------------------------------------- ;#200 - Eastern Palace - Armos Knights diff --git a/icepalacegraphics.asm b/icepalacegraphics.asm index 8d2677f..22d5903 100644 --- a/icepalacegraphics.asm +++ b/icepalacegraphics.asm @@ -9,7 +9,7 @@ ShouldOverrideFileLoad: .no CLC : RTS .yes - SEC : RTS + RTS BgGraphicsLoading: ; Instructions overwritten From 36a21a7190168e82612499a8eaea22d541563515 Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Fri, 26 Mar 2021 04:51:58 -0400 Subject: [PATCH 32/63] unkillaable enemies --- hooks.asm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hooks.asm b/hooks.asm index f084147..6891ac9 100755 --- a/hooks.asm +++ b/hooks.asm @@ -2548,3 +2548,8 @@ CheckIfReading: CPX #$04 RTS ;================================================================================ +org $0DB4CA : db $40, $40 ; fire bar statis +org $0DB4A9 : db $50, $50, $6E, $6E ; roller statis +org $0DB4B2 : db $40, $40, $40, $40 ; cannon statis +org $0DB4C3 : db $C0 ; anti fairy statis +org $0DB516 : db $40 ; chain chomp statis \ No newline at end of file From 97031959617b09e4eab8ed642f3c99f40abc4205 Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Sat, 3 Apr 2021 00:30:14 -0400 Subject: [PATCH 33/63] is this better? --- compasses.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compasses.asm b/compasses.asm index af65625..5c1acb5 100644 --- a/compasses.asm +++ b/compasses.asm @@ -64,7 +64,7 @@ CompassCount_Desert: CompassCount_Agah: %DrawConstantNumber(0,2) - LDA $7EF435 : AND.b #$02 + LDA $7EF435 : AND.b #$03 JMP DrawDungeonCompassCounts_return_spot CompassCount_Swamp: From 5def08afc0acfa5afca86830b89d85e288a31704 Mon Sep 17 00:00:00 2001 From: Thomas Prescott Date: Sun, 4 Apr 2021 21:24:37 -0500 Subject: [PATCH 34/63] remove quickswap enforcement --- quickswap.asm | 6 ------ 1 file changed, 6 deletions(-) diff --git a/quickswap.asm b/quickswap.asm index da04ddb..2755be0 100644 --- a/quickswap.asm +++ b/quickswap.asm @@ -11,12 +11,6 @@ QuickSwap: LDA.l QuickSwapFlag : BEQ .done LDA.w $0202 : BEQ .done ; Skip everything if we don't have any items - ;TODO add romtype and race rom checks here - LDA.l TournamentSeed : BEQ + - LDA.l GameType : AND.b #$02 : BNE + - BRA .done - + - PHX XBA ; restore the stashed value CMP.b #$30 : BNE + From ead4cf5ca83d855bbc88d4212448569dda69e84b Mon Sep 17 00:00:00 2001 From: Thomas Prescott Date: Sun, 4 Apr 2021 21:33:33 -0500 Subject: [PATCH 35/63] new firebar layer fix from Zarby --- LTTP_RND_GeneralBugfixes.asm | 1 + build_linux.sh | 5 +++++ firebarlayer.asm | 8 ++++++++ hooks.asm | 10 ++++++++++ 4 files changed, 24 insertions(+) create mode 100755 build_linux.sh create mode 100644 firebarlayer.asm diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index f3f4480..37e7b04 100644 --- a/LTTP_RND_GeneralBugfixes.asm +++ b/LTTP_RND_GeneralBugfixes.asm @@ -142,6 +142,7 @@ incsrc doorframefixes.asm incsrc music.asm incsrc roomloading.asm incsrc icepalacegraphics.asm +incsrc firebarlayer.asm warnpc $A18000 org $1C8000 ; text tables for translation diff --git a/build_linux.sh b/build_linux.sh new file mode 100755 index 0000000..1b6c338 --- /dev/null +++ b/build_linux.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +rm ../working.sfc +cp ../alttp.sfc ../working.sfc +asar LTTP_RND_GeneralBugfixes.asm ../working.sfc diff --git a/firebarlayer.asm b/firebarlayer.asm new file mode 100644 index 0000000..f7118b2 --- /dev/null +++ b/firebarlayer.asm @@ -0,0 +1,8 @@ +NewFireBarDamage: +{ + LDA $00EE : CMP $0F20, X : BNE .NotSameLayer + JSL Sprite_AttemptDamageToPlayerPlusRecoilLong + RTL + .NotSameLayer + RTL +} \ No newline at end of file diff --git a/hooks.asm b/hooks.asm index 582a31d..cbdc64a 100755 --- a/hooks.asm +++ b/hooks.asm @@ -2522,3 +2522,13 @@ CheckIfReading: CPX #$04 RTS ;================================================================================ + +;-------------------------------------------------------------------------------- +; Keep Firebar Damage on Same Layer +;-------------------------------------------------------------------------------- +org $06F425 +Sprite_AttemptDamageToPlayerPlusRecoilLong: + +org $1ED1B6 +JSL NewFireBarDamage +;================================================================================ From 70933b01f831bd01e998fa31cb589eb49ecfc3f2 Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Mon, 5 Apr 2021 12:48:32 -0400 Subject: [PATCH 36/63] WOW --- bugfixes.asm | 2 +- darkworldspawn.asm | 3 ++- dialog.asm | 11 +++++++---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/bugfixes.asm b/bugfixes.asm index 5e7a6be..1ca6cb6 100644 --- a/bugfixes.asm +++ b/bugfixes.asm @@ -114,7 +114,7 @@ RTS FixFrogSmith: LDA.l $7EF3CA : BNE .darkWorld LDA.l $7EF3CC : CMP.b #$07 : BNE .done - LDA.b #$08 : ; make frog into smith in light world + LDA.b #$08 ; make frog into smith in light world BRA .loadgfx .darkWorld LDA.l $7EF3CC : CMP.b #$08 : BNE .done diff --git a/darkworldspawn.asm b/darkworldspawn.asm index 43a55ae..e86344f 100644 --- a/darkworldspawn.asm +++ b/darkworldspawn.asm @@ -106,7 +106,8 @@ macro SetMinimum(base,filler,compare) ?done: endmacro RefreshRainAmmo: - LDA $7EF3C5 : CMP.b #$01 : BNE .done ; check if we're in rain state + LDA $7EF3C5 : CMP.b #$01 : BEQ .rain ; check if we're in rain state + RTL .rain LDA $7EF3C8 + CMP.b #$03 : BNE + ; Uncle diff --git a/dialog.asm b/dialog.asm index 5e1a835..cc724fc 100644 --- a/dialog.asm +++ b/dialog.asm @@ -253,11 +253,14 @@ DialogResetSelectionIndex: RTL ;-------------------------------------------------------------------------------- DialogItemReceive: - BCS .noMessage ; if doubling the item value overflowed it must be a rando item + BCS .nomessage ; if doubling the item value overflowed it must be a rando item + CPY #$98 : BCC ++ ;if the item is $4C or greater it must be a rando item +.nomessage LDA.w #$FFFF - CPY #$98 : BCS .done ;if the item is $4C or greater it must be a rando item - LDA.w Ancilla_ReceiveItem_item_messages, Y + BRA .done + +++ LDA.w Ancilla_ReceiveItem_item_messages, Y .done CMP.w #$FFFF RTL @@ -392,7 +395,7 @@ Sprite_ShowMessageMinimal_Alt: STZ $11 PHX : PHY - PEA ($00) + PEI ($00) LDA.b $02 : PHA LDA.b #$1C : STA.b $02 From ed9c6681e83332e69c4e9ab39f29cc25a8bd6116 Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Tue, 6 Apr 2021 02:00:25 -0400 Subject: [PATCH 37/63] new goals make goals a jump table add light speed add crystals and bosses add crystals only move XY preservation to CountBits and utilize stack instead of Y for temp storage --- goalitem.asm | 194 +++++++++++++++++++++++++++++++++++------- hooks.asm | 13 ++- pendantcrystalhud.asm | 2 +- tables.asm | 3 + utilities.asm | 8 +- 5 files changed, 180 insertions(+), 40 deletions(-) diff --git a/goalitem.asm b/goalitem.asm index 9b5f0df..b1e8e6e 100644 --- a/goalitem.asm +++ b/goalitem.asm @@ -22,33 +22,79 @@ RTL ;Carry clear = ganon invincible ;Carry set = ganon vulnerable CheckGanonVulnerability: - LDA InvincibleGanon : BEQ .success - ;#$00 = Off - + : CMP #$01 : BEQ .fail - ;#$01 = On - + : CMP #$02 : BNE + - ;#$02 = Require All Dungeons - LDA $7EF374 : AND.b #$07 : CMP #$07 : BNE .fail ; require all pendants - LDA $7EF37A : AND.b #$7F : CMP #$7F : BNE .fail ; require all crystals - LDA $7EF3C5 : CMP.b #$03 : !BLT .fail ; require post-aga world state - LDA $7EF2DB : AND.b #$20 : CMP #$20 : BNE .fail ; require aga2 defeated (pyramid hole open) - BRA .success - + : CMP #$04 : BNE + - ;#$04 = Require Crystals - JSL CheckEnoughCrystalsForGanon : !BLT .fail ; require specified number of crystals - BRA .success - + : CMP #$03 : BNE + - ;#$03 = Require Crystals and Aga 2 - JSL CheckEnoughCrystalsForGanon : !BLT .fail ; require specified number of crystals - LDA $7EF2DB : AND.b #$20 : CMP #$20 : BNE .fail ; require aga2 defeated (pyramid hole open) - BRA .success - + : CMP #$05 : BNE + - ;#$05 = Require Goal Items - LDA.l !GOAL_COUNTER : CMP GoalItemRequirement : !BLT .fail ; require specified number of goal items - BRA .success - + -.fail : CLC : RTL -.success : SEC : RTL + PHX + LDA.l InvincibleGanon + ASL + TAX + + ; Carry + ; 0 - invulnerable + ; 1 - vulnerable + JSR (.goals, X) + + PLX + RTL + + +.goals + dw .vulnerable + dw .invulnerable + dw .all_dungeons + dw .crystals_and_aga + dw .crystals + dw .goal_item + dw .light_speed + dw .crystals_and_bosses + dw .bosses_only + +; 00 = always vulnerable +.vulnerable +.success + SEC + RTS + +; 01 = always invulnerable +.invulnerable +.fail + CLC + RTS + +; 02 = All dungeons +.all_dungeons + LDA.l $7EF374 : AND.b #$07 : CMP.b #$07 : BNE .fail ; require all pendants + LDA.l $7EF37A : AND.b #$7F : CMP.b #$7F : BNE .fail ; require all crystals + LDA.l $7EF3C5 : CMP.b #$03 : BCC .fail ; require post-aga world state + LDA.l $7EF2DB : AND.b #$20 : CMP.b #$20 : BNE .fail ; require aga2 defeated (pyramid hole open) + BRA .success + +; 03 = crystals and aga 2 +.crystals_and_aga + LDA.l $7EF2DDB : AND.b #$20 : BEQ .fail ; check aga2 first then bleed in + +; 04 = crystals only +.crystals + JSL CheckEnoughCrystalsForGanon + RTS + +; 05 = require goal item +.goal_item + LDA.l !GOAL_COUNTER : CMP GoalItemRequirement + RTS + +; 06 = light speed +.light_speed + BRA .fail + +; 07 = Crystals and bosses +.crystals_and_bosses + JSL CheckEnoughCrystalsForGanon ; check crystals first then bleed in to next + BCC .fail + +; 08 = Crystal bosses but no crystals +.bosses_only + ;LDA.l $7EF2DDB : AND.b #$20 : BEQ .fail ; check aga2 + JMP CheckForCrystalBossesDefeated + ;-------------------------------------------------------------------------------- GetRequiredCrystalsForTower: BEQ + : JSL.l BreakTowerSeal_ExecuteSparkles : + ; thing we wrote over @@ -63,23 +109,105 @@ GetRequiredCrystalsInX: RTL + - TXA : - : CMP.l NumberOfCrystalsRequiredForTower : !BLT + : !SUB.l NumberOfCrystalsRequiredForTower : BRA - : + + TXA - INC : CMP.l NumberOfCrystalsRequiredForTower : BNE + +- CMP.l NumberOfCrystalsRequiredForTower : BCC + + SBC.l NumberOfCrystalsRequiredForTower ; carry guaranteed set + BRA - + + + INC : CMP.l NumberOfCrystalsRequiredForTower : BNE + LDA.b #$08 + : DEC : TAX RTL ;-------------------------------------------------------------------------------- CheckEnoughCrystalsForGanon: - PHX : PHY LDA $7EF37A : JSL CountBits ; the comparison is against 1 less - PLY : PLX CMP.l NumberOfCrystalsRequiredForGanon RTL ;-------------------------------------------------------------------------------- CheckEnoughCrystalsForTower: - PHX : PHY LDA $7EF37A : JSL CountBits ; the comparison is against 1 less - PLY : PLX CMP.l NumberOfCrystalsRequiredForTower RTL + +;--------------------------------------------------------------------------------------------------- +CheckAgaForPed: + LDA.l InvincibleGanon + CMP.b #$06 : BNE .vanilla + +.light_speed + LDA.l $7EF300 ; check ped flag + AND.b #$40 + BEQ .force_blue_ball + +.vanilla ; run vanilla check for phase + LDA.w $0E30, X + CMP.b #$02 + RTL + +.force_blue_ball + LDA.b #$01 : STA.w $0DA0, Y + LDA.b #$20 : STA.w $0DF0, Y + CLC ; skip the RNG check + RTL + +;--------------------------------------------------------------------------------------------------- + +KillGanon: + STA.l $7EF3C5 ; vanilla game state stuff we overwrote + + LDA.l InvincibleGanon + CMP.b #$06 : BNE .exit + +.light_speed + LDA.l $7EF2DB : ORA.b #$20 : STA.l $7EF2DB ; pyramid hole + LDA.b #$08 : STA.l $7EF001 ; kill ganon + LDA.b #$02 : STA.l $7EF357 ; pearl but invisible in menu + +.exit + RTL + +;--------------------------------------------------------------------------------------------------- + +CheckForCrystalBossesDefeated: + PHB : PHX : PHY + + LDA.b #CrystalPendantFlags_2>>16 + PHA : PLB + + REP #$30 + + ; count of number of bosses killed + STZ.b $00 + + LDY.w #10 + +.next_check + LDA.w CrystalPendantFlags_2-2,Y + BIT.w #$0040 + BEQ ++ + + TYA + ASL + TAX + + LDA.l DrawHUDDungeonItems_boss_room_ids-4,X + TAX + LDA.l $7EF000,X + + AND.w #$0800 + BEQ ++ + + INC.b $00 + +++ DEY + BPL .next_check + + SEP #$30 + PLY : PLX : PLB + + LDA.b $00 : CMP.l NumberOfCrystalsRequiredForGanon + + + RTS + diff --git a/hooks.asm b/hooks.asm index 91cf308..e15ac09 100755 --- a/hooks.asm +++ b/hooks.asm @@ -429,10 +429,17 @@ JSL.l OnPrepFileSelect ;-------------------------------------------------------------------------------- ;================================================================================ -; Agahnim 0bb +; Light speed ;-------------------------------------------------------------------------------- -;org $1ED6EF ; <- F56EF - sprite_agahnim.asm : 636 (JSL GetRandomInt : AND.b #$01 : BNE BRANCH_GAMMA) -;NOP #18 +; Spam blue balls if ped not pulled +org $1ED6E8 +JSL CheckAgaForPed : NOP + + +; kill ganon when aga dies in light speed +org $00F970 +JSL KillGanon + ;-------------------------------------------------------------------------------- ;================================================================================ diff --git a/pendantcrystalhud.asm b/pendantcrystalhud.asm index 8b67f11..ceaaacd 100644 --- a/pendantcrystalhud.asm +++ b/pendantcrystalhud.asm @@ -440,7 +440,7 @@ DrawHUDDungeonItems: .next_boss_kill LDX.w .boss_room_ids,Y LDA.l $7EF000,X - AND.w #$0400 + AND.w #$0800 BEQ ..skip_boss_kill LDA.w #$2826 diff --git a/tables.asm b/tables.asm index 6d4712b..89325a7 100644 --- a/tables.asm +++ b/tables.asm @@ -153,6 +153,9 @@ db #$00 ; #$03 = Require "NumberOfCrystalsRequiredForGanon" Crystals and Aga2 ; #$04 = Require "NumberOfCrystalsRequiredForGanon" Crystals ; #$05 = Require "GoalItemRequirement" Goal Items +; #$06 = Light Speed +; #$07 = Require All Crystals and Crystal Bosses +; #$08 = Require All Crystal Bosses only ;-------------------------------------------------------------------------------- org $30803F ; PC 0x18003F HammerableGanon: diff --git a/utilities.asm b/utilities.asm index 269760f..a9209f3 100644 --- a/utilities.asm +++ b/utilities.asm @@ -627,15 +627,17 @@ RTL ; caller is responsible for setting 8-bit mode and preserving X and Y ;-------------------------------------------------------------------------------- CountBits: + PHX TAX ; Save a copy of value LSR #4 ; Shift down hi nybble, Leave <3> in C - TAY ; And save <7:4> in Y + PHA ; And save <7:4> in Stack TXA ; Recover value AND.b #$07 ; Put out <2:0> in X TAX ; And save in X LDA.l NybbleBitCounts, X ; Fetch count for <2:0> - TYX ; get <7:4> - ADC.l NybbleBitCounts, X ; Add count for Y & C + PLX ; get <7:4> + ADC.l NybbleBitCounts, X ; Add count for S & C + PLX RTL ; Look up table of bit counts in the values $00-$0F From 05af915fe2f14962c7eb67cadd546c1029bf6c21 Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Tue, 6 Apr 2021 11:14:16 -0400 Subject: [PATCH 38/63] synack request --- dialog.asm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/dialog.asm b/dialog.asm index cc724fc..28962ba 100644 --- a/dialog.asm +++ b/dialog.asm @@ -387,6 +387,21 @@ DialogBombShopGuy: LDY.b #$01 JSL.l Sprite_ShowMessageUnconditional RTL + +;--------------------------------------------------------------------------------------------------- +AgahnimAsksAboutPed: + LDA.l InvincibleGanon + CMP.b #$06 : BNE .vanilla + + LDA.l $7EF300 ; check ped flag + AND.b #$40 + BNE .vanilla + + LDA.b #$8C ; message 018C for no ped + STA.w $1CF0 + +.vanilla + JML $05FA8E ; Sprite_ShowMessageMinimal ;-------------------------------------------------------------------------------- Main_ShowTextMessage_Alt: ; Are we in text mode? If so then end the routine. From e6aee5c3752b76c541e51fcf5906286e303da835 Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Wed, 7 Apr 2021 04:58:02 -0400 Subject: [PATCH 39/63] oops? --- hooks.asm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/hooks.asm b/hooks.asm index e15ac09..4830fd3 100755 --- a/hooks.asm +++ b/hooks.asm @@ -431,6 +431,11 @@ JSL.l OnPrepFileSelect ;================================================================================ ; Light speed ;-------------------------------------------------------------------------------- + +; Message +org $1ED4FF +JSL AgahnimAsksAboutPed + ; Spam blue balls if ped not pulled org $1ED6E8 JSL CheckAgaForPed : NOP @@ -440,6 +445,8 @@ JSL CheckAgaForPed : NOP org $00F970 JSL KillGanon + + ;-------------------------------------------------------------------------------- ;================================================================================ From fc29db2b46e1f19d04a3c63add113dde4462390c Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Sun, 11 Apr 2021 10:18:07 -0400 Subject: [PATCH 40/63] reserve for v32 --- tables.asm | 952 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 951 insertions(+), 1 deletion(-) diff --git a/tables.asm b/tables.asm index 89325a7..6543d4e 100644 --- a/tables.asm +++ b/tables.asm @@ -1691,5 +1691,955 @@ dw $0000 ;-------------------------------------------------------------------------------- ;-------------------------------------------------------------------------------- -; 0x185A00 - 187FFF (unused) +; 0x185A00 - 186BFF (room headers) ;-------------------------------------------------------------------------------- +; BG2PROP +; PALETTE +; BLKSET +; SPRSET +; BGMOVE +; EFFECT1 +; EFFECT2 +; PLANES1 +; PLANES2 +; WARP +; STAIRS1 +; STAIRS2 +; STAIRS3 +; STAIRS4 +;-------------------------------------------------------------------------------- +org $305A00 : RoomHeader_0000: ; pc 0x185A00 +db $41, $21, $13, $22, $07, $3D, $00, $00, $00, $10, $C0, $00, $00, $04 + +org $305A0E : RoomHeader_0001: ; pc 0x185A0E +db $C0, $00, $00, $04, $00, $00, $00, $00, $00, $00, $72, $00, $50, $52 + +org $305A1C : RoomHeader_0002: ; pc 0x185A1C +db $C0, $1D, $04, $06, $00, $14, $00, $00, $00, $00, $11, $00, $18, $0D + +org $305A2A : RoomHeader_0003: ; pc 0x185A2A +db $C0, $07, $06, $19, $00, $00, $00, $00, $0C, $02, $12, $00, $00, $00 + +org $305A38 : RoomHeader_0004: ; pc 0x185A38 +db $00, $18, $0D, $26, $00, $26, $14, $00, $00, $00, $B5, $00, $08, $08 + +org $305A46 : RoomHeader_0005: ; pc 0x185A46 +db $00, $08, $08, $14, $00, $25, $00, $20, $06, $05, $0C, $00, $25, $00 + +org $305A54 : RoomHeader_0006: ; pc 0x185A54 +db $00, $08, $08, $14, $00, $25, $00, $20, $06, $05, $0C, $00, $25, $00 + +org $305A62 : RoomHeader_0007: ; pc 0x185A62 +db $20, $06, $05, $0C, $00, $25, $00, $00, $00, $17, $17, $C0, $07, $06 + +org $305A70 : RoomHeader_0008: ; pc 0x185A70 +db $C0, $07, $06, $07, $00, $00, $00, $00, $0F, $07, $19, $00, $27, $00 + +org $305A7E : RoomHeader_0009: ; pc 0x185A7E +db $00, $0F, $07, $19, $00, $27, $00, $00, $00, $4B, $4A, $4A, $00, $0F + +org $305A8C : RoomHeader_000A: ; pc 0x185A8C +db $00, $0F, $07, $19, $00, $27, $00, $00, $00, $09, $3A, $01, $0F, $07 + +org $305A9A : RoomHeader_000B: ; pc 0x185A9A +db $01, $0F, $07, $19, $00, $03, $00, $00, $00, $6A, $1B, $C0, $28, $0E + +org $305AA8 : RoomHeader_000C: ; pc 0x185AA8 +db $C0, $28, $0E, $13, $00, $00, $00, $00, $00, $00, $6B, $8C, $8C, $40 + +org $305AB6 : RoomHeader_000D: ; pc 0x185AB6 +db $40, $1B, $0E, $18, $05, $38, $00, $00, $13, $0B, $1C, $00, $08, $00 + +org $305AC4 : RoomHeader_000E: ; pc 0x185AC4 +db $00, $13, $0B, $1C, $00, $08, $00, $00, $00, $00, $1E, $00, $21, $13 + +org $305AD2 : RoomHeader_000F: ; pc 0x185AD2 +db $00, $21, $13, $22, $00, $00, $00, $00, $01, $01, $01, $00, $00, $00 + +org $305AE0 : RoomHeader_0010: ; pc 0x185AE0 +db $00, $21, $13, $22, $00, $00, $00, $00, $01, $01, $01, $00, $00, $00 + +org $305AEE : RoomHeader_0011: ; pc 0x185AEE +db $00, $01, $01, $01, $00, $00, $00, $08, $00, $00, $02, $C0, $1D, $04 + +org $305AFC : RoomHeader_0012: ; pc 0x185AFC +db $C0, $1D, $04, $06, $00, $00, $00, $00, $18, $0D, $26, $00, $00, $00 + +org $305B0A : RoomHeader_0013: ; pc 0x185B0A +db $00, $18, $0D, $26, $00, $00, $00, $00, $18, $0D, $1E, $00, $00, $00 + +org $305B18 : RoomHeader_0014: ; pc 0x185B18 +db $20, $18, $0D, $26, $00, $00, $00, $C0, $18, $0D, $26, $00, $00, $00 + +org $305B26 : RoomHeader_0015: ; pc 0x185B26 +db $C0, $18, $0D, $26, $00, $00, $00, $00, $00, $00, $B6, $90, $08, $08 + +org $305B34 : RoomHeader_0016: ; pc 0x185B34 +db $90, $08, $08, $11, $03, $00, $00, $00, $00, $00, $66, $20, $06, $05 + +org $305B42 : RoomHeader_0017: ; pc 0x185B42 +db $20, $06, $05, $19, $00, $35, $00, $00, $00, $27, $07, $27, $01, $0F + +org $305B50 : RoomHeader_0018: ; pc 0x185B50 +db $00, $07, $06, $07, $00, $00, $00, $00, $22, $12, $07, $00, $00, $00 + +org $305B5E : RoomHeader_0019: ; pc 0x185B5E +db $01, $0F, $07, $19, $00, $00, $00, $00, $0F, $07, $19, $00, $16, $00 + +org $305B6C : RoomHeader_001A: ; pc 0x185B6C +db $00, $0F, $07, $19, $00, $16, $00, $00, $00, $00, $6A, $6A, $68, $0F + +org $305B7A : RoomHeader_001B: ; pc 0x185B7A +db $68, $0F, $07, $08, $00, $03, $1C, $00, $00, $00, $0B, $00, $1A, $0E + +org $305B88 : RoomHeader_001C: ; pc 0x185B88 +db $00, $1A, $0E, $09, $00, $04, $3F, $00, $00, $00, $8C, $00, $1B, $0E + +org $305B96 : RoomHeader_001D: ; pc 0x185B96 +db $00, $1B, $0E, $18, $00, $00, $00, $00, $00, $00, $4C, $20, $13, $0B + +org $305BA4 : RoomHeader_001E: ; pc 0x185BA4 +db $20, $13, $0B, $1C, $00, $17, $00, $00, $00, $3E, $0E, $00, $13, $0B + +org $305BB2 : RoomHeader_001F: ; pc 0x185BB2 +db $00, $13, $0B, $29, $00, $17, $00, $00, $00, $00, $3F, $20, $0C, $02 + +org $305BC0 : RoomHeader_0020: ; pc 0x185BC0 +db $20, $0C, $02, $12, $00, $15, $25, $01, $01, $01, $01, $00, $00, $00 + +org $305BCE : RoomHeader_0021: ; pc 0x185BCE +db $01, $01, $01, $01, $00, $00, $00, $00, $18, $0D, $26, $00, $01, $00 + +org $305BDC : RoomHeader_0022: ; pc 0x185BDC +db $01, $01, $01, $01, $00, $00, $00, $00, $18, $0D, $26, $00, $01, $00 + +org $305BEA : RoomHeader_0023: ; pc 0x185BEA +db $00, $18, $0D, $26, $00, $00, $00, $00, $18, $0D, $1E, $00, $00, $00 + +org $305BF8 : RoomHeader_0024: ; pc 0x185BF8 +db $00, $18, $0D, $26, $00, $01, $00, $00, $0A, $08, $11, $00, $16, $00 + +org $305C06 : RoomHeader_0025: ; pc 0x185C06 +db $00, $0A, $08, $11, $00, $16, $00, $00, $00, $00, $76, $76, $76, $20 + +org $305C14 : RoomHeader_0026: ; pc 0x185C14 +db $00, $0A, $08, $11, $00, $16, $00, $00, $00, $00, $76, $76, $76, $20 + +org $305C22 : RoomHeader_0027: ; pc 0x185C22 +db $20, $06, $05, $19, $00, $36, $00, $00, $00, $31, $17, $31, $80, $0A + +org $305C30 : RoomHeader_0028: ; pc 0x185C30 +db $80, $0A, $08, $11, $00, $32, $1B, $00, $00, $00, $38, $CC, $0E, $09 + +org $305C3E : RoomHeader_0029: ; pc 0x185C3E +db $CC, $0E, $09, $1A, $02, $25, $00, $00, $0F, $07, $19, $00, $00, $00 + +org $305C4C : RoomHeader_002A: ; pc 0x185C4C +db $00, $0F, $07, $19, $00, $00, $00, $C0, $0F, $07, $2B, $00, $16, $00 + +org $305C5A : RoomHeader_002B: ; pc 0x185C5A +db $C0, $0F, $07, $2B, $00, $16, $00, $00, $00, $00, $3B, $00, $13, $0B + +org $305C68 : RoomHeader_002C: ; pc 0x185C68 +db $00, $07, $06, $07, $00, $00, $00, $00, $22, $12, $07, $00, $00, $00 + +org $305C76 : RoomHeader_002D: ; pc 0x185C76 +db $00, $13, $0B, $1C, $00, $2A, $00, $C0, $07, $06, $19, $00, $00, $00 + +org $305C84 : RoomHeader_002E: ; pc 0x185C84 +db $00, $13, $0B, $1C, $00, $2A, $00, $C0, $07, $06, $19, $00, $00, $00 + +org $305C92 : RoomHeader_002F: ; pc 0x185C92 +db $C0, $07, $06, $19, $00, $00, $00, $00, $0C, $02, $12, $00, $00, $00 + +org $305CA0 : RoomHeader_0030: ; pc 0x185CA0 +db $00, $0C, $02, $12, $00, $00, $00, $00, $00, $00, $40, $20, $06, $05 + +org $305CAE : RoomHeader_0031: ; pc 0x185CAE +db $20, $06, $05, $19, $00, $37, $04, $22, $00, $77, $27, $77, $01, $01 + +org $305CBC : RoomHeader_0032: ; pc 0x185CBC +db $01, $01, $01, $01, $00, $00, $00, $00, $00, $00, $42, $00, $04, $05 + +org $305CCA : RoomHeader_0033: ; pc 0x185CCA +db $00, $04, $05, $0B, $00, $15, $25, $80, $0A, $08, $11, $00, $00, $00 + +org $305CD8 : RoomHeader_0034: ; pc 0x185CD8 +db $80, $0A, $08, $11, $00, $00, $00, $00, $00, $00, $54, $80, $0A, $08 + +org $305CE6 : RoomHeader_0035: ; pc 0x185CE6 +db $80, $0A, $08, $11, $00, $00, $19, $80, $0A, $08, $11, $00, $00, $00 + +org $305CF4 : RoomHeader_0036: ; pc 0x185CF4 +db $80, $0A, $08, $11, $00, $00, $00, $80, $0A, $08, $11, $00, $00, $00 + +org $305D02 : RoomHeader_0037: ; pc 0x185D02 +db $80, $0A, $08, $11, $00, $00, $19, $80, $0A, $08, $11, $00, $00, $00 + +org $305D10 : RoomHeader_0038: ; pc 0x185D10 +db $80, $0A, $08, $11, $00, $00, $00, $00, $00, $00, $28, $20, $0D, $09 + +org $305D1E : RoomHeader_0039: ; pc 0x185D1E +db $20, $0D, $09, $13, $00, $00, $00, $00, $00, $29, $20, $0F, $07, $19 + +org $305D2C : RoomHeader_003A: ; pc 0x185D2C +db $20, $0F, $07, $19, $00, $00, $00, $00, $00, $0A, $0A, $00, $0F, $07 + +org $305D3A : RoomHeader_003B: ; pc 0x185D3A +db $00, $0F, $07, $08, $00, $00, $00, $00, $00, $00, $2B, $00, $07, $06 + +org $305D48 : RoomHeader_003C: ; pc 0x185D48 +db $00, $07, $06, $13, $00, $00, $00, $20, $1A, $0E, $0C, $00, $33, $00 + +org $305D56 : RoomHeader_003D: ; pc 0x185D56 +db $20, $1A, $0E, $0C, $00, $33, $00, $00, $00, $96, $96, $CC, $13, $0B + +org $305D64 : RoomHeader_003E: ; pc 0x185D64 +db $CC, $13, $0B, $29, $02, $02, $00, $00, $00, $00, $1E, $00, $13, $0B + +org $305D72 : RoomHeader_003F: ; pc 0x185D72 +db $00, $13, $0B, $29, $00, $27, $14, $00, $00, $00, $1F, $5F, $C0, $00 + +org $305D80 : RoomHeader_0040: ; pc 0x185D80 +db $C0, $00, $02, $27, $00, $00, $00, $00, $00, $00, $30, $B0, $01, $00 + +org $305D8E : RoomHeader_0041: ; pc 0x185D8E +db $01, $00, $00, $02, $00, $13, $00, $00, $00, $00, $42, $01, $01, $01 + +org $305D9C : RoomHeader_0042: ; pc 0x185D9C +db $01, $01, $01, $01, $00, $00, $00, $00, $00, $00, $41, $32, $68, $04 + +org $305DAA : RoomHeader_0043: ; pc 0x185DAA +db $68, $04, $05, $0A, $00, $00, $1D, $00, $17, $0A, $1B, $00, $01, $00 + +org $305DB8 : RoomHeader_0044: ; pc 0x185DB8 +db $00, $17, $0A, $1B, $00, $01, $00, $60, $17, $0A, $1B, $00, $01, $00 + +org $305DC6 : RoomHeader_0045: ; pc 0x185DC6 +db $60, $17, $0A, $1B, $00, $01, $00, $00, $00, $00, $BC, $00, $0A, $08 + +org $305DD4 : RoomHeader_0046: ; pc 0x185DD4 +db $00, $0A, $08, $11, $00, $3C, $00, $00, $0D, $09, $13, $00, $33, $34 + +org $305DE2 : RoomHeader_0047: ; pc 0x185DE2 +db $00, $0D, $09, $13, $00, $33, $34, $00, $0F, $07, $19, $00, $17, $00 + +org $305DF0 : RoomHeader_0048: ; pc 0x185DF0 +db $00, $0D, $09, $13, $00, $33, $34, $00, $0F, $07, $19, $00, $17, $00 + +org $305DFE : RoomHeader_0049: ; pc 0x185DFE +db $00, $0D, $09, $13, $00, $33, $34, $00, $0F, $07, $19, $00, $17, $00 + +org $305E0C : RoomHeader_004A: ; pc 0x185E0C +db $00, $0F, $07, $19, $00, $17, $00, $00, $00, $00, $09, $09, $00, $0F + +org $305E1A : RoomHeader_004B: ; pc 0x185E1A +db $00, $0F, $07, $08, $00, $01, $00, $00, $00, $09, $00, $1A, $0E, $0C + +org $305E28 : RoomHeader_004C: ; pc 0x185E28 +db $00, $1A, $0E, $0C, $00, $00, $00, $00, $00, $00, $1D, $20, $1A, $0E + +org $305E36 : RoomHeader_004D: ; pc 0x185E36 +db $20, $1A, $0E, $0C, $00, $32, $3F, $00, $00, $A6, $A6, $00, $13, $0B + +org $305E44 : RoomHeader_004E: ; pc 0x185E44 +db $00, $13, $0B, $29, $00, $17, $00, $00, $00, $00, $6E, $00, $13, $0B + +org $305E52 : RoomHeader_004F: ; pc 0x185E52 +db $00, $13, $0B, $1C, $00, $00, $00, $00, $00, $BE, $C0, $00, $00, $04 + +org $305E60 : RoomHeader_0050: ; pc 0x185E60 +db $C0, $00, $00, $04, $00, $00, $00, $00, $00, $00, $00, $00, $01, $01 + +org $305E6E : RoomHeader_0051: ; pc 0x185E6E +db $C0, $00, $00, $03, $00, $00, $00, $00, $00, $00, $61, $C0, $00, $00 + +org $305E7C : RoomHeader_0052: ; pc 0x185E7C +db $C0, $00, $00, $04, $00, $00, $00, $00, $00, $00, $00, $00, $01, $01 + +org $305E8A : RoomHeader_0053: ; pc 0x185E8A +db $C0, $04, $05, $0A, $00, $03, $00, $00, $00, $00, $63, $20, $0A, $08 + +org $305E98 : RoomHeader_0054: ; pc 0x185E98 +db $20, $0A, $08, $11, $00, $00, $00, $00, $00, $34, $34, $01, $01, $10 + +org $305EA6 : RoomHeader_0055: ; pc 0x185EA6 +db $01, $01, $10, $0D, $00, $00, $00, $00, $0D, $09, $13, $00, $23, $00 + +org $305EB4 : RoomHeader_0056: ; pc 0x185EB4 +db $00, $0D, $09, $13, $00, $23, $00, $00, $0D, $09, $13, $00, $16, $00 + +org $305EC2 : RoomHeader_0057: ; pc 0x185EC2 +db $00, $0D, $09, $13, $00, $16, $00, $00, $0D, $09, $13, $00, $21, $28 + +org $305ED0 : RoomHeader_0058: ; pc 0x185ED0 +db $00, $0D, $09, $13, $00, $21, $28, $C0, $0D, $09, $13, $00, $00, $00 + +org $305EDE : RoomHeader_0059: ; pc 0x185EDE +db $C0, $0D, $09, $13, $00, $00, $00, $00, $10, $07, $15, $00, $25, $00 + +org $305EEC : RoomHeader_005A: ; pc 0x185EEC +db $00, $10, $07, $15, $00, $25, $00, $C0, $1B, $0E, $0A, $00, $17, $00 + +org $305EFA : RoomHeader_005B: ; pc 0x185EFA +db $C0, $1B, $0E, $0A, $00, $17, $00, $00, $1B, $0E, $0A, $00, $00, $00 + +org $305F08 : RoomHeader_005C: ; pc 0x185F08 +db $00, $1B, $0E, $0A, $00, $00, $00, $00, $00, $00, $5D, $00, $24, $0E + +org $305F16 : RoomHeader_005D: ; pc 0x185F16 +db $00, $24, $0E, $23, $00, $09, $00, $00, $00, $00, $5C, $20, $13, $0B + +org $305F24 : RoomHeader_005E: ; pc 0x185F24 +db $20, $13, $0B, $1C, $00, $00, $00, $00, $00, $7E, $7E, $00, $13, $0B + +org $305F32 : RoomHeader_005F: ; pc 0x185F32 +db $00, $13, $0B, $1C, $00, $27, $00, $00, $00, $00, $3F, $7F, $C0, $00 + +org $305F40 : RoomHeader_0060: ; pc 0x185F40 +db $C0, $00, $00, $04, $00, $00, $00, $C0, $00, $00, $04, $00, $00, $00 + +org $305F4E : RoomHeader_0061: ; pc 0x185F4E +db $C0, $00, $00, $04, $00, $00, $00, $08, $00, $00, $51, $00, $09, $05 + +org $305F5C : RoomHeader_0062: ; pc 0x185F5C +db $C0, $00, $00, $04, $00, $00, $00, $C0, $00, $00, $04, $00, $00, $00 + +org $305F6A : RoomHeader_0063: ; pc 0x185F6A +db $00, $09, $05, $0A, $00, $0D, $00, $00, $00, $00, $53, $E0, $23, $0A + +org $305F78 : RoomHeader_0064: ; pc 0x185F78 +db $E0, $23, $0A, $21, $00, $17, $00, $00, $00, $00, $AB, $E0, $23, $0A + +org $305F86 : RoomHeader_0065: ; pc 0x185F86 +db $E0, $23, $0A, $21, $00, $00, $00, $00, $00, $AC, $C0, $0A, $08, $11 + +org $305F94 : RoomHeader_0066: ; pc 0x185F94 +db $C0, $0A, $08, $11, $00, $3C, $00, $00, $00, $00, $16, $00, $0D, $09 + +org $305FA2 : RoomHeader_0067: ; pc 0x185FA2 +db $00, $0D, $09, $13, $00, $22, $00, $00, $0D, $09, $13, $00, $00, $00 + +org $305FB0 : RoomHeader_0068: ; pc 0x185FB0 +db $00, $0D, $09, $13, $00, $00, $00, $01, $0F, $07, $19, $00, $00, $00 + +org $305FBE : RoomHeader_0069: ; pc 0x185FBE +db $01, $0F, $07, $19, $00, $00, $00, $00, $00, $00, $1A, $1A, $00, $1B + +org $305FCC : RoomHeader_006A: ; pc 0x185FCC +db $01, $0F, $07, $19, $00, $00, $00, $00, $00, $00, $1A, $1A, $00, $1B + +org $305FDA : RoomHeader_006B: ; pc 0x185FDA +db $00, $1B, $0E, $0A, $00, $08, $0B, $00, $00, $00, $0C, $00, $24, $0E + +org $305FE8 : RoomHeader_006C: ; pc 0x185FE8 +db $00, $24, $0E, $23, $00, $03, $3F, $00, $00, $00, $A5, $00, $24, $0E + +org $305FF6 : RoomHeader_006D: ; pc 0x185FF6 +db $00, $24, $0E, $23, $00, $05, $00, $00, $13, $0B, $1C, $00, $02, $00 + +org $306004 : RoomHeader_006E: ; pc 0x186004 +db $00, $13, $0B, $1C, $00, $02, $00, $00, $00, $00, $4E, $00, $01, $01 + +org $306012 : RoomHeader_006F: ; pc 0x186012 +db $00, $01, $01, $04, $00, $00, $00, $08, $00, $00, $71, $80, $C0, $01 + +org $306020 : RoomHeader_0070: ; pc 0x186020 +db $00, $01, $01, $04, $00, $00, $00, $08, $00, $00, $71, $80, $C0, $01 + +org $30602E : RoomHeader_0071: ; pc 0x18602E +db $C0, $01, $01, $04, $00, $08, $00, $00, $00, $00, $70, $C0, $01, $01 + +org $30603C : RoomHeader_0072: ; pc 0x18603C +db $C0, $01, $01, $04, $00, $00, $00, $08, $00, $00, $01, $00, $09, $05 + +org $30604A : RoomHeader_0073: ; pc 0x18604A +db $00, $09, $05, $0A, $00, $17, $00, $00, $09, $05, $0A, $00, $27, $00 + +org $306058 : RoomHeader_0074: ; pc 0x186058 +db $00, $09, $05, $0A, $00, $27, $00, $00, $09, $05, $0A, $00, $01, $00 + +org $306066 : RoomHeader_0075: ; pc 0x186066 +db $00, $09, $05, $0A, $00, $01, $00, $80, $0A, $08, $11, $00, $00, $18 + +org $306074 : RoomHeader_0076: ; pc 0x186074 +db $80, $0A, $08, $11, $00, $00, $18, $00, $00, $00, $26, $26, $26, $C0 + +org $306082 : RoomHeader_0077: ; pc 0x186082 +db $C0, $06, $05, $19, $00, $00, $00, $00, $00, $A7, $31, $87, $87, $00 + +org $306090 : RoomHeader_0078: ; pc 0x186090 +db $00, $28, $0E, $13, $00, $03, $39, $00, $00, $9D, $00, $28, $0E, $13 + +org $30609E : RoomHeader_0079: ; pc 0x18609E +db $00, $28, $0E, $13, $00, $03, $39, $00, $00, $9D, $00, $28, $0E, $13 + +org $3060AC : RoomHeader_007A: ; pc 0x1860AC +db $00, $28, $0E, $13, $00, $03, $39, $00, $00, $9D, $00, $28, $0E, $13 + +org $3060BA : RoomHeader_007B: ; pc 0x1860BA +db $00, $28, $0E, $13, $00, $03, $39, $00, $00, $9D, $00, $28, $0E, $13 + +org $3060C8 : RoomHeader_007C: ; pc 0x1860C8 +db $00, $28, $0E, $13, $00, $20, $00, $00, $28, $0E, $13, $00, $04, $3C + +org $3060D6 : RoomHeader_007D: ; pc 0x1860D6 +db $00, $28, $0E, $13, $00, $04, $3C, $00, $00, $9B, $20, $13, $0B, $1C + +org $3060E4 : RoomHeader_007E: ; pc 0x1860E4 +db $20, $13, $0B, $1C, $00, $2B, $17, $00, $00, $9E, $5E, $00, $13, $0B + +org $3060F2 : RoomHeader_007F: ; pc 0x1860F2 +db $00, $13, $0B, $1C, $00, $00, $00, $00, $00, $00, $5F, $60, $01, $01 + +org $306100 : RoomHeader_0080: ; pc 0x186100 +db $60, $01, $01, $04, $00, $00, $00, $00, $00, $00, $70, $C0, $01, $01 + +org $30610E : RoomHeader_0081: ; pc 0x18610E +db $C0, $01, $01, $04, $00, $00, $00, $00, $09, $05, $0A, $00, $0D, $00 + +org $30611C : RoomHeader_0082: ; pc 0x18611C +db $C0, $01, $01, $04, $00, $00, $00, $00, $09, $05, $0A, $00, $0D, $00 + +org $30612A : RoomHeader_0083: ; pc 0x18612A +db $00, $09, $05, $0A, $00, $0D, $00, $00, $09, $05, $0A, $00, $00, $00 + +org $306138 : RoomHeader_0084: ; pc 0x186138 +db $00, $09, $05, $0A, $00, $00, $00, $00, $09, $05, $0A, $00, $02, $00 + +org $306146 : RoomHeader_0085: ; pc 0x186146 +db $00, $09, $05, $0A, $00, $02, $00, $00, $06, $05, $19, $00, $3E, $01 + +org $306154 : RoomHeader_0086: ; pc 0x186154 +db $00, $06, $05, $19, $00, $3E, $01, $28, $00, $00, $77, $77, $00, $0B + +org $306162 : RoomHeader_0087: ; pc 0x186162 +db $00, $06, $05, $19, $00, $3E, $01, $28, $00, $00, $77, $77, $00, $0B + +org $306170 : RoomHeader_0088: ; pc 0x186170 +db $00, $0B, $05, $08, $00, $00, $00, $02, $00, $A9, $00, $28, $0E, $13 + +org $30617E : RoomHeader_0089: ; pc 0x18617E +db $00, $0B, $05, $08, $00, $00, $00, $02, $00, $A9, $00, $28, $0E, $13 + +org $30618C : RoomHeader_008A: ; pc 0x18618C +db $00, $28, $0E, $13, $00, $3A, $0C, $20, $28, $0E, $13, $00, $16, $00 + +org $30619A : RoomHeader_008B: ; pc 0x18619A +db $00, $28, $0E, $13, $00, $3A, $0C, $20, $28, $0E, $13, $00, $16, $00 + +org $3061A8 : RoomHeader_008C: ; pc 0x1861A8 +db $20, $28, $0E, $13, $00, $16, $00, $28, $00, $1C, $0C, $0C, $1C, $00 + +org $3061B6 : RoomHeader_008D: ; pc 0x1861B6 +db $00, $28, $0E, $13, $00, $33, $29, $00, $13, $0B, $1C, $00, $00, $00 + +org $3061C4 : RoomHeader_008E: ; pc 0x1861C4 +db $00, $13, $0B, $1C, $00, $00, $00, $00, $00, $00, $AE, $80, $12, $0C + +org $3061D2 : RoomHeader_008F: ; pc 0x1861D2 +db $80, $12, $0C, $16, $00, $25, $00, $00, $11, $0C, $1C, $00, $00, $00 + +org $3061E0 : RoomHeader_0090: ; pc 0x1861E0 +db $80, $12, $0C, $16, $00, $25, $00, $00, $11, $0C, $1C, $00, $00, $00 + +org $3061EE : RoomHeader_0091: ; pc 0x1861EE +db $00, $11, $0C, $1C, $00, $00, $00, $00, $00, $00, $A0, $01, $11, $0C + +org $3061FC : RoomHeader_0092: ; pc 0x1861FC +db $01, $11, $0C, $1C, $00, $00, $00, $01, $11, $0C, $1C, $00, $16, $00 + +org $30620A : RoomHeader_0093: ; pc 0x18620A +db $01, $11, $0C, $1C, $00, $16, $00, $08, $00, $00, $A2, $00, $25, $0E + +org $306218 : RoomHeader_0094: ; pc 0x186218 +db $00, $25, $0E, $24, $00, $00, $00, $00, $25, $0E, $24, $00, $33, $00 + +org $306226 : RoomHeader_0095: ; pc 0x186226 +db $00, $25, $0E, $24, $00, $00, $00, $00, $25, $0E, $24, $00, $33, $00 + +org $306234 : RoomHeader_0096: ; pc 0x186234 +db $00, $25, $0E, $24, $00, $33, $00, $00, $00, $00, $3D, $68, $11, $0C + +org $306242 : RoomHeader_0097: ; pc 0x186242 +db $68, $11, $0C, $1D, $00, $1C, $00, $00, $00, $D1, $D1, $00, $11, $0C + +org $306250 : RoomHeader_0098: ; pc 0x186250 +db $00, $11, $0C, $1C, $00, $00, $00, $00, $00, $00, $D2, $01, $0B, $05 + +org $30625E : RoomHeader_0099: ; pc 0x18625E +db $01, $0B, $05, $08, $00, $00, $00, $00, $00, $00, $DA, $00, $28, $0E + +org $30626C : RoomHeader_009A: ; pc 0x18626C +db $00, $28, $0E, $13, $00, $00, $00, $00, $00, $7D, $00, $28, $0E, $13 + +org $30627A : RoomHeader_009B: ; pc 0x18627A +db $00, $28, $0E, $13, $00, $00, $00, $00, $00, $7D, $00, $28, $0E, $13 + +org $306288 : RoomHeader_009C: ; pc 0x186288 +db $00, $28, $0E, $13, $06, $00, $00, $00, $28, $0E, $13, $06, $00, $3B + +org $306296 : RoomHeader_009D: ; pc 0x186296 +db $00, $28, $0E, $13, $06, $00, $3B, $00, $00, $7B, $20, $13, $0B, $1C + +org $3062A4 : RoomHeader_009E: ; pc 0x1862A4 +db $20, $13, $0B, $1C, $00, $00, $00, $00, $00, $BE, $BE, $00, $13, $0B + +org $3062B2 : RoomHeader_009F: ; pc 0x1862B2 +db $00, $13, $0B, $1C, $00, $17, $00, $00, $12, $0C, $1D, $00, $00, $00 + +org $3062C0 : RoomHeader_00A0: ; pc 0x1862C0 +db $00, $12, $0C, $1D, $00, $00, $00, $00, $00, $00, $91, $00, $11, $0C + +org $3062CE : RoomHeader_00A1: ; pc 0x1862CE +db $00, $11, $0C, $1D, $00, $00, $00, $C0, $11, $0C, $1D, $00, $00, $00 + +org $3062DC : RoomHeader_00A2: ; pc 0x1862DC +db $C0, $11, $0C, $1D, $00, $00, $00, $00, $00, $00, $93, $60, $19, $0D + +org $3062EA : RoomHeader_00A3: ; pc 0x1862EA +db $00, $11, $0C, $1D, $00, $00, $00, $C0, $11, $0C, $1D, $00, $00, $00 + +org $3062F8 : RoomHeader_00A4: ; pc 0x1862F8 +db $60, $19, $0D, $17, $04, $25, $00, $00, $25, $0E, $24, $00, $07, $00 + +org $306306 : RoomHeader_00A5: ; pc 0x186306 +db $00, $25, $0E, $24, $00, $07, $00, $00, $00, $00, $6C, $00, $25, $0E + +org $306314 : RoomHeader_00A6: ; pc 0x186314 +db $00, $25, $0E, $24, $00, $00, $00, $00, $00, $00, $4D, $00, $06, $05 + +org $306322 : RoomHeader_00A7: ; pc 0x186322 +db $00, $06, $05, $19, $00, $00, $00, $00, $00, $17, $C0, $0B, $05, $08 + +org $306330 : RoomHeader_00A8: ; pc 0x186330 +db $C0, $0B, $05, $08, $00, $03, $00, $C0, $0B, $05, $08, $00, $17, $00 + +org $30633E : RoomHeader_00A9: ; pc 0x18633E +db $C0, $0B, $05, $08, $00, $17, $00, $00, $00, $89, $C0, $0B, $05, $08 + +org $30634C : RoomHeader_00AA: ; pc 0x18634C +db $C0, $0B, $05, $08, $00, $17, $00, $00, $17, $0A, $1B, $00, $00, $00 + +org $30635A : RoomHeader_00AB: ; pc 0x18635A +db $00, $17, $0A, $1B, $00, $00, $00, $00, $00, $00, $64, $E0, $17, $0A + +org $306368 : RoomHeader_00AC: ; pc 0x186368 +db $E0, $17, $0A, $20, $00, $25, $00, $00, $13, $0B, $1C, $00, $27, $00 + +org $306376 : RoomHeader_00AD: ; pc 0x186376 +db $00, $13, $0B, $1C, $00, $27, $00, $00, $00, $00, $8E, $00, $13, $0B + +org $306384 : RoomHeader_00AE: ; pc 0x186384 +db $00, $13, $0B, $1C, $00, $27, $00, $00, $00, $00, $8E, $00, $13, $0B + +org $306392 : RoomHeader_00AF: ; pc 0x186392 +db $00, $13, $0B, $1C, $00, $00, $00, $00, $26, $02, $21, $00, $05, $02 + +org $3063A0 : RoomHeader_00B0: ; pc 0x1863A0 +db $00, $26, $02, $21, $00, $05, $02, $08, $00, $00, $40, $C0, $00, $11 + +org $3063AE : RoomHeader_00B1: ; pc 0x1863AE +db $00, $11, $0C, $1D, $00, $00, $00, $02, $00, $B2, $C0, $11, $0C, $1D + +org $3063BC : RoomHeader_00B2: ; pc 0x1863BC +db $C0, $11, $0C, $1D, $00, $03, $0E, $C0, $11, $0C, $1D, $00, $27, $00 + +org $3063CA : RoomHeader_00B3: ; pc 0x1863CA +db $C0, $11, $0C, $1D, $00, $27, $00, $00, $19, $0D, $17, $00, $00, $00 + +org $3063D8 : RoomHeader_00B4: ; pc 0x1863D8 +db $00, $19, $0D, $17, $00, $00, $00, $00, $00, $00, $C4, $01, $18, $0D + +org $3063E6 : RoomHeader_00B5: ; pc 0x1863E6 +db $01, $18, $0D, $25, $00, $17, $00, $00, $00, $00, $04, $00, $18, $0D + +org $3063F4 : RoomHeader_00B6: ; pc 0x1863F4 +db $00, $18, $0D, $1E, $00, $04, $3C, $00, $00, $00, $15, $00, $0B, $05 + +org $306402 : RoomHeader_00B7: ; pc 0x186402 +db $00, $18, $0D, $1E, $00, $00, $00, $20, $18, $0D, $26, $00, $00, $00 + +org $306410 : RoomHeader_00B8: ; pc 0x186410 +db $00, $0B, $05, $08, $00, $27, $00, $C0, $0B, $05, $08, $00, $00, $00 + +org $30641E : RoomHeader_00B9: ; pc 0x18641E +db $C0, $0B, $05, $08, $00, $00, $00, $01, $0B, $05, $08, $00, $17, $00 + +org $30642C : RoomHeader_00BA: ; pc 0x18642C +db $01, $0B, $05, $08, $00, $17, $00, $40, $17, $0A, $1B, $00, $00, $00 + +org $30643A : RoomHeader_00BB: ; pc 0x18643A +db $40, $17, $0A, $1B, $00, $00, $00, $00, $17, $0A, $1B, $00, $17, $00 + +org $306448 : RoomHeader_00BC: ; pc 0x186448 +db $00, $17, $0A, $1B, $00, $17, $00, $00, $00, $00, $45, $00, $13, $0B + +org $306456 : RoomHeader_00BD: ; pc 0x186456 +db $00, $13, $0B, $29, $00, $16, $00, $00, $00, $4F, $9E, $00, $13, $0B + +org $306464 : RoomHeader_00BE: ; pc 0x186464 +db $00, $13, $0B, $29, $00, $16, $00, $00, $00, $4F, $9E, $00, $13, $0B + +org $306472 : RoomHeader_00BF: ; pc 0x186472 +db $00, $13, $0B, $29, $00, $00, $00, $01, $00, $02, $27, $00, $02, $0F + +org $306480 : RoomHeader_00C0: ; pc 0x186480 +db $01, $00, $02, $27, $00, $02, $0F, $00, $00, $00, $B0, $D0, $00, $11 + +org $30648E : RoomHeader_00C1: ; pc 0x18648E +db $00, $11, $0C, $1D, $00, $33, $00, $C0, $11, $0C, $1D, $00, $27, $00 + +org $30649C : RoomHeader_00C2: ; pc 0x18649C +db $C0, $11, $0C, $1D, $00, $27, $00, $C0, $11, $0C, $1D, $00, $00, $00 + +org $3064AA : RoomHeader_00C3: ; pc 0x1864AA +db $C0, $11, $0C, $1D, $00, $00, $00, $00, $18, $0D, $25, $00, $00, $00 + +org $3064B8 : RoomHeader_00C4: ; pc 0x1864B8 +db $00, $18, $0D, $25, $00, $00, $00, $00, $00, $00, $B4, $00, $18, $0D + +org $3064C6 : RoomHeader_00C5: ; pc 0x1864C6 +db $00, $18, $0D, $25, $00, $00, $00, $00, $18, $0D, $1E, $00, $33, $00 + +org $3064D4 : RoomHeader_00C6: ; pc 0x1864D4 +db $00, $18, $0D, $1E, $00, $00, $00, $20, $18, $0D, $26, $00, $00, $00 + +org $3064E2 : RoomHeader_00C7: ; pc 0x1864E2 +db $00, $18, $0D, $1E, $00, $33, $00, $00, $0B, $05, $09, $00, $15, $25 + +org $3064F0 : RoomHeader_00C8: ; pc 0x1864F0 +db $00, $0B, $05, $09, $00, $15, $25, $00, $0B, $05, $08, $00, $17, $00 + +org $3064FE : RoomHeader_00C9: ; pc 0x1864FE +db $00, $0B, $05, $08, $00, $17, $00, $C0, $17, $0A, $1B, $00, $00, $00 + +org $30650C : RoomHeader_00CA: ; pc 0x18650C +db $C0, $17, $0A, $1B, $00, $00, $00, $20, $13, $0B, $29, $00, $14, $00 + +org $30651A : RoomHeader_00CB: ; pc 0x18651A +db $C0, $17, $0A, $1B, $00, $00, $00, $20, $13, $0B, $29, $00, $14, $00 + +org $306528 : RoomHeader_00CC: ; pc 0x186528 +db $C0, $17, $0A, $1B, $00, $00, $00, $20, $13, $0B, $29, $00, $14, $00 + +org $306536 : RoomHeader_00CD: ; pc 0x186536 +db $20, $13, $0B, $29, $00, $14, $00, $00, $00, $DE, $01, $00, $02, $21 + +org $306544 : RoomHeader_00CE: ; pc 0x186544 +db $20, $13, $0B, $29, $00, $14, $00, $00, $00, $DE, $01, $00, $02, $21 + +org $306552 : RoomHeader_00CF: ; pc 0x186552 +db $01, $00, $02, $21, $00, $0F, $00, $00, $00, $00, $C0, $E0, $00, $11 + +org $306560 : RoomHeader_00D0: ; pc 0x186560 +db $01, $00, $02, $21, $00, $0F, $00, $00, $00, $00, $C0, $E0, $00, $11 + +org $30656E : RoomHeader_00D1: ; pc 0x18656E +db $00, $11, $0C, $1D, $00, $00, $00, $00, $00, $B1, $97, $00, $11, $0C + +org $30657C : RoomHeader_00D2: ; pc 0x18657C +db $00, $11, $0C, $1D, $00, $0A, $00, $00, $00, $00, $98, $00, $0B, $05 + +org $30658A : RoomHeader_00D3: ; pc 0x18658A +db $00, $0B, $05, $08, $00, $06, $00, $00, $0B, $05, $08, $00, $17, $00 + +org $306598 : RoomHeader_00D4: ; pc 0x186598 +db $00, $0B, $05, $08, $00, $06, $00, $00, $0B, $05, $08, $00, $17, $00 + +org $3065A6 : RoomHeader_00D5: ; pc 0x1865A6 +db $00, $18, $0D, $25, $00, $00, $00, $00, $18, $0D, $1E, $00, $33, $00 + +org $3065B4 : RoomHeader_00D6: ; pc 0x1865B4 +db $00, $18, $0D, $1E, $00, $00, $00, $20, $18, $0D, $26, $00, $00, $00 + +org $3065C2 : RoomHeader_00D7: ; pc 0x1865C2 +db $00, $0B, $05, $08, $00, $06, $00, $00, $0B, $05, $08, $00, $17, $00 + +org $3065D0 : RoomHeader_00D8: ; pc 0x1865D0 +db $00, $0B, $05, $08, $00, $06, $00, $00, $0B, $05, $08, $00, $17, $00 + +org $3065DE : RoomHeader_00D9: ; pc 0x1865DE +db $00, $0B, $05, $08, $00, $17, $00, $00, $0B, $05, $08, $00, $17, $00 + +org $3065EC : RoomHeader_00DA: ; pc 0x1865EC +db $00, $0B, $05, $08, $00, $17, $00, $00, $00, $00, $99, $E0, $14, $0B + +org $3065FA : RoomHeader_00DB: ; pc 0x1865FA +db $C0, $17, $0A, $1B, $00, $00, $00, $20, $13, $0B, $29, $00, $14, $00 + +org $306608 : RoomHeader_00DC: ; pc 0x186608 +db $C0, $17, $0A, $1B, $00, $00, $00, $20, $13, $0B, $29, $00, $14, $00 + +org $306616 : RoomHeader_00DD: ; pc 0x186616 +db $E0, $14, $0B, $16, $00, $25, $00, $C0, $20, $06, $13, $00, $00, $00 + +org $306624 : RoomHeader_00DE: ; pc 0x186624 +db $E0, $14, $0B, $16, $00, $25, $00, $C0, $20, $06, $13, $00, $00, $00 + +org $306632 : RoomHeader_00DF: ; pc 0x186632 +db $C0, $20, $06, $13, $00, $00, $00, $00, $00, $00, $EF, $00, $26, $02 + +org $306640 : RoomHeader_00E0: ; pc 0x186640 +db $00, $26, $02, $21, $00, $01, $2A, $00, $00, $00, $D0, $C0, $07, $06 + +org $30664E : RoomHeader_00E1: ; pc 0x18664E +db $C0, $07, $06, $28, $00, $00, $00, $00, $20, $06, $13, $00, $00, $00 + +org $30665C : RoomHeader_00E2: ; pc 0x18665C +db $00, $20, $06, $13, $00, $00, $00, $C0, $20, $06, $09, $00, $00, $00 + +org $30666A : RoomHeader_00E3: ; pc 0x18666A +db $C0, $20, $06, $09, $00, $00, $00, $01, $07, $14, $01, $00, $00, $00 + +org $306678 : RoomHeader_00E4: ; pc 0x186678 +db $01, $07, $14, $01, $00, $00, $00, $01, $07, $06, $01, $00, $00, $00 + +org $306686 : RoomHeader_00E5: ; pc 0x186686 +db $01, $07, $14, $01, $00, $00, $00, $01, $07, $06, $01, $00, $00, $00 + +org $306694 : RoomHeader_00E6: ; pc 0x186694 +db $01, $07, $06, $01, $00, $00, $00, $20, $07, $06, $13, $00, $00, $00 + +org $3066A2 : RoomHeader_00E7: ; pc 0x1866A2 +db $01, $07, $06, $01, $00, $00, $00, $20, $07, $06, $13, $00, $00, $00 + +org $3066B0 : RoomHeader_00E8: ; pc 0x1866B0 +db $20, $07, $06, $13, $00, $00, $00, $00, $00, $F8, $F8, $F8, $F8, $F8 + +org $3066BE : RoomHeader_00E9: ; pc 0x1866BE +db $20, $20, $06, $13, $00, $00, $00, $00, $00, $FA, $FA, $20, $07, $06 + +org $3066CC : RoomHeader_00EA: ; pc 0x1866CC +db $20, $20, $06, $13, $00, $00, $00, $00, $00, $FA, $FA, $20, $07, $06 + +org $3066DA : RoomHeader_00EB: ; pc 0x1866DA +db $20, $07, $06, $19, $00, $00, $00, $00, $00, $FB, $FB, $20, $20, $06 + +org $3066E8 : RoomHeader_00EC: ; pc 0x1866E8 +db $20, $20, $06, $13, $00, $00, $00, $00, $00, $FD, $FD, $FD, $20, $20 + +org $3066F6 : RoomHeader_00ED: ; pc 0x1866F6 +db $20, $20, $06, $13, $00, $00, $00, $00, $00, $FD, $FD, $FD, $20, $20 + +org $306704 : RoomHeader_00EE: ; pc 0x186704 +db $20, $20, $06, $13, $00, $00, $00, $00, $00, $FE, $20, $20, $06, $13 + +org $306712 : RoomHeader_00EF: ; pc 0x186712 +db $20, $20, $06, $13, $00, $02, $00, $08, $00, $FF, $DF, $FF, $00, $02 + +org $306720 : RoomHeader_00F0: ; pc 0x186720 +db $01, $07, $06, $01, $00, $00, $00, $20, $07, $06, $13, $00, $00, $00 + +org $30672E : RoomHeader_00F1: ; pc 0x18672E +db $01, $07, $06, $01, $00, $00, $00, $20, $07, $06, $13, $00, $00, $00 + +org $30673C : RoomHeader_00F2: ; pc 0x18673C +db $00, $02, $03, $05, $00, $00, $02, $03, $0F, $00, $00, $00, $00, $07 + +org $30674A : RoomHeader_00F3: ; pc 0x18674A +db $00, $02, $03, $05, $00, $00, $02, $03, $0F, $00, $00, $00, $00, $07 + +org $306758 : RoomHeader_00F4: ; pc 0x186758 +db $00, $02, $03, $0F, $00, $00, $00, $00, $07, $06, $13, $00, $00, $00 + +org $306766 : RoomHeader_00F5: ; pc 0x186766 +db $00, $02, $03, $0F, $00, $00, $00, $00, $07, $06, $13, $00, $00, $00 + +org $306774 : RoomHeader_00F6: ; pc 0x186774 +db $00, $07, $06, $13, $00, $00, $00, $00, $00, $00, $E8, $E8, $E8, $E8 + +org $306782 : RoomHeader_00F7: ; pc 0x186782 +db $00, $07, $06, $13, $00, $00, $00, $00, $00, $00, $E8, $E8, $E8, $E8 + +org $306790 : RoomHeader_00F8: ; pc 0x186790 +db $00, $07, $06, $13, $00, $00, $00, $00, $00, $00, $E8, $E8, $E8, $E8 + +org $30679E : RoomHeader_00F9: ; pc 0x18679E +db $00, $20, $06, $13, $00, $00, $00, $C0, $20, $06, $13, $00, $00, $00 + +org $3067AC : RoomHeader_00FA: ; pc 0x1867AC +db $C0, $20, $06, $13, $00, $00, $00, $00, $00, $00, $EA, $00, $07, $06 + +org $3067BA : RoomHeader_00FB: ; pc 0x1867BA +db $00, $07, $06, $19, $00, $00, $00, $00, $00, $00, $EB, $00, $20, $06 + +org $3067C8 : RoomHeader_00FC: ; pc 0x1867C8 +db $00, $20, $06, $13, $00, $00, $00, $00, $00, $00, $ED, $ED, $00, $07 + +org $3067D6 : RoomHeader_00FD: ; pc 0x1867D6 +db $00, $20, $06, $13, $00, $00, $00, $00, $00, $00, $ED, $ED, $00, $07 + +org $3067E4 : RoomHeader_00FE: ; pc 0x1867E4 +db $00, $20, $06, $13, $00, $00, $00, $C0, $20, $06, $13, $00, $00, $00 + +org $3067F2 : RoomHeader_00FF: ; pc 0x1867F2 +db $00, $07, $06, $05, $00, $00, $00, $00, $00, $00, $EF, $00, $05, $03 + +org $306800 : RoomHeader_0100: ; pc 0x186800 +db $00, $05, $03, $28, $00, $00, $00, $00, $1F, $03, $05, $00, $00, $00 + +org $30680E : RoomHeader_0101: ; pc 0x18680E +db $00, $02, $03, $0F, $00, $00, $00, $00, $15, $03, $0D, $00, $00, $00 + +org $30681C : RoomHeader_0102: ; pc 0x18681C +db $00, $15, $03, $0D, $00, $00, $00, $00, $05, $03, $0F, $00, $00, $00 + +org $30682A : RoomHeader_0103: ; pc 0x18682A +db $00, $05, $03, $0F, $00, $00, $00, $01, $15, $03, $0D, $00, $00, $00 + +org $306838 : RoomHeader_0104: ; pc 0x186838 +db $01, $15, $03, $0D, $00, $00, $00, $00, $1C, $0F, $10, $00, $00, $00 + +org $306846 : RoomHeader_0105: ; pc 0x186846 +db $00, $1C, $0F, $10, $00, $00, $00, $00, $1F, $03, $0F, $00, $00, $00 + +org $306854 : RoomHeader_0106: ; pc 0x186854 +db $00, $1F, $03, $0F, $00, $00, $00, $00, $02, $03, $01, $00, $00, $00 + +org $306862 : RoomHeader_0107: ; pc 0x186862 +db $00, $02, $03, $01, $00, $00, $00, $00, $02, $03, $0E, $00, $00, $00 + +org $306870 : RoomHeader_0108: ; pc 0x186870 +db $00, $02, $03, $0E, $00, $00, $00, $01, $05, $03, $05, $00, $00, $00 + +org $30687E : RoomHeader_0109: ; pc 0x18687E +db $01, $05, $03, $05, $00, $00, $00, $01, $07, $06, $10, $00, $00, $00 + +org $30688C : RoomHeader_010A: ; pc 0x18688C +db $01, $07, $06, $10, $00, $00, $00, $80, $0A, $08, $08, $00, $00, $1A + +org $30689A : RoomHeader_010B: ; pc 0x18689A +db $80, $0A, $08, $08, $00, $00, $1A, $00, $27, $06, $08, $00, $03, $00 + +org $3068A8 : RoomHeader_010C: ; pc 0x1868A8 +db $00, $27, $06, $08, $00, $03, $00, $00, $0A, $08, $11, $00, $00, $00 + +org $3068B6 : RoomHeader_010D: ; pc 0x1868B6 +db $00, $0A, $08, $11, $00, $00, $00, $00, $07, $14, $05, $00, $00, $00 + +org $3068C4 : RoomHeader_010E: ; pc 0x1868C4 +db $00, $07, $14, $05, $00, $00, $00, $00, $1E, $11, $05, $00, $00, $00 + +org $3068D2 : RoomHeader_010F: ; pc 0x1868D2 +db $00, $1F, $03, $05, $00, $00, $00, $00, $02, $03, $0F, $00, $00, $00 + +org $3068E0 : RoomHeader_0110: ; pc 0x1868E0 +db $00, $1F, $03, $05, $00, $00, $00, $00, $02, $03, $0F, $00, $00, $00 + +org $3068EE : RoomHeader_0111: ; pc 0x1868EE +db $00, $1E, $11, $05, $00, $00, $00, $00, $07, $14, $05, $00, $00, $00 + +org $3068FC : RoomHeader_0112: ; pc 0x1868FC +db $00, $07, $14, $05, $00, $00, $00, $00, $03, $10, $08, $00, $00, $00 + +org $30690A : RoomHeader_0113: ; pc 0x18690A +db $00, $03, $10, $08, $00, $00, $00, $00, $07, $06, $07, $00, $00, $00 + +org $306918 : RoomHeader_0114: ; pc 0x186918 +db $00, $07, $06, $07, $00, $00, $00, $00, $22, $12, $07, $00, $00, $00 + +org $306926 : RoomHeader_0115: ; pc 0x186926 +db $00, $07, $06, $07, $00, $00, $00, $00, $22, $12, $07, $00, $00, $00 + +org $306934 : RoomHeader_0116: ; pc 0x186934 +db $00, $22, $12, $07, $00, $00, $00, $00, $20, $14, $05, $00, $00, $00 + +org $306942 : RoomHeader_0117: ; pc 0x186942 +db $00, $20, $14, $05, $00, $00, $00, $E0, $23, $0A, $0F, $00, $00, $00 + +org $306950 : RoomHeader_0118: ; pc 0x186950 +db $00, $05, $03, $0F, $00, $00, $00, $01, $15, $03, $0D, $00, $00, $00 + +org $30695E : RoomHeader_0119: ; pc 0x18695E +db $E0, $23, $0A, $0F, $00, $00, $00, $00, $00, $00, $1D, $00, $1C, $0F + +org $30696C : RoomHeader_011A: ; pc 0x18696C +db $00, $1C, $0F, $05, $00, $00, $00, $C0, $07, $06, $08, $00, $00, $00 + +org $30697A : RoomHeader_011B: ; pc 0x18697A +db $C0, $07, $06, $08, $00, $00, $00, $00, $23, $0A, $0F, $00, $00, $00 + +org $306988 : RoomHeader_011C: ; pc 0x186988 +db $00, $1F, $03, $05, $00, $00, $00, $00, $02, $03, $0F, $00, $00, $00 + +org $306996 : RoomHeader_011D: ; pc 0x186996 +db $00, $23, $0A, $0F, $00, $00, $00, $00, $00, $00, $19, $00, $20, $06 + +org $3069A4 : RoomHeader_011E: ; pc 0x1869A4 +db $00, $20, $06, $2A, $00, $00, $00, $00, $05, $03, $05, $00, $00, $00 + +org $3069B2 : RoomHeader_011F: ; pc 0x1869B2 +db $00, $05, $03, $05, $00, $00, $00, $00, $13, $06, $13, $00, $00, $00 + +org $3069C0 : RoomHeader_0120: ; pc 0x1869C0 +db $00, $13, $06, $13, $00, $00, $00, $00, $07, $06, $28, $00, $03, $00 + +org $3069CE : RoomHeader_0121: ; pc 0x1869CE +db $00, $1E, $11, $05, $00, $00, $00, $00, $07, $14, $05, $00, $00, $00 + +org $3069DC : RoomHeader_0122: ; pc 0x1869DC +db $00, $1E, $11, $05, $00, $00, $00, $00, $07, $14, $05, $00, $00, $00 + +org $3069EA : RoomHeader_0123: ; pc 0x1869EA +db $00, $07, $06, $28, $00, $03, $00, $00, $07, $06, $28, $00, $00, $00 + +org $3069F8 : RoomHeader_0124: ; pc 0x1869F8 +db $00, $07, $06, $28, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $FF, $FF + +org $306A06 : RoomHeader_0125: ; pc 0x186A06 +db $00, $07, $06, $28, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $FF, $FF + +org $306A14 : RoomHeader_0126: ; pc 0x186A14 +db $00, $07, $06, $28, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $FF, $FF + +org $306A22 : RoomHeader_0127: ; pc 0x186A22 +db $00, $20, $06, $2A, $00, $00, $00, $00, $05, $03, $05, $00, $00, $00 + +org $306A30 : RoomHeader_0128: ; pc 0x186A30 +db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF + +org $306A3E : RoomHeader_0129: ; pc 0x186A3E +db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF + +org $306A4C : RoomHeader_012A: ; pc 0x186A4C +db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF + +org $306A5A : RoomHeader_012B: ; pc 0x186A5A +db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF + +org $306A68 : RoomHeader_012C: ; pc 0x186A68 +db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF + +org $306A76 : RoomHeader_012D: ; pc 0x186A76 +db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF + +org $306A84 : RoomHeader_012E: ; pc 0x186A84 +db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF + +;-------------------------------------------------------------------------------- +; 0x186C00 - 187FFF (unused) +;-------------------------------------------------------------------------------- + + + + + + + + + + + + + + + + + + + + + + + From e9584597c4f596c9a7edace844ca9cabe3a6a1d5 Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Mon, 12 Apr 2021 22:45:19 -0400 Subject: [PATCH 41/63] new credits --- creditscharmapbighi.txt | 42 +++ creditscharmapbiglo.txt | 42 +++ creditscharmapsmall.txt | 27 ++ stats/creditsnew.asm | 691 ++++++++++++++++++++++++++++++++++++++++ stats/main.asm | 2 +- tables.asm | 606 +++++++++++++++++------------------ 6 files changed, 1106 insertions(+), 304 deletions(-) create mode 100644 creditscharmapbighi.txt create mode 100644 creditscharmapbiglo.txt create mode 100644 creditscharmapsmall.txt create mode 100644 stats/creditsnew.asm diff --git a/creditscharmapbighi.txt b/creditscharmapbighi.txt new file mode 100644 index 0000000..e7f81bc --- /dev/null +++ b/creditscharmapbighi.txt @@ -0,0 +1,42 @@ + =9F +0=53 +1=54 +2=55 +3=56 +4=57 +5=58 +6=59 +7=5A +8=5B +9=5C +A=5D +B=5E +C=5F +D=60 +E=61 +F=62 +G=63 +H=64 +I=65 +J=66 +K=67 +L=68 +M=69 +N=6A +O=6B +P=6C +Q=6D +R=6E +S=6F +T=70 +U=71 +V=72 +W=73 +X=74 +Y=75 +Z=76 +'=77 +.=A0 +/=A2 +:=A3 +_=A6 \ No newline at end of file diff --git a/creditscharmapbiglo.txt b/creditscharmapbiglo.txt new file mode 100644 index 0000000..6e70494 --- /dev/null +++ b/creditscharmapbiglo.txt @@ -0,0 +1,42 @@ + =9F +0=79 +1=7A +2=7B +3=7C +4=7D +5=7E +6=7F +7=80 +8=81 +9=82 +A=83 +B=84 +C=85 +D=86 +E=87 +F=88 +G=89 +H=8A +I=8B +J=8C +K=8D +L=8E +M=8F +N=90 +O=91 +P=92 +Q=93 +R=94 +S=95 +T=96 +U=97 +V=98 +W=99 +X=9A +Y=9B +Z=9C +'=9d +.=C0 +/=C2 +:=C3 +_=C6 \ No newline at end of file diff --git a/creditscharmapsmall.txt b/creditscharmapsmall.txt new file mode 100644 index 0000000..e86db3d --- /dev/null +++ b/creditscharmapsmall.txt @@ -0,0 +1,27 @@ + =9F +A=38 +B=39 +C=3A +D=3B +E=3C +F=3D +G=3E +H=3F +I=40 +J=41 +K=42 +L=43 +M=44 +N=45 +O=46 +P=47 +Q=48 +R=49 +S=4A +T=4B +U=4C +V=4D +W=4E +X=4F +Y=50 +Z=51 \ No newline at end of file diff --git a/stats/creditsnew.asm b/stats/creditsnew.asm new file mode 100644 index 0000000..be29006 --- /dev/null +++ b/stats/creditsnew.asm @@ -0,0 +1,691 @@ +YourSpriteCredits: +db 2 +db 55 +db " " + +;=================================================================================================== + +CreditsLineTable: + fillword CreditsLineBlank : fill 800 + +;=================================================================================================== + +!CLINE = -1 + +;--------------------------------------------------------------------------------------------------- + +macro smallcredits(space, text) + !CLINE #= !CLINE+1 + table "creditscharmapsmall.txt" + + ?line: + db + db 2*(?end-?text)-1 + ?text: + db "" + ?end: + + pushpc + org CreditsLineTable+!CLINE+!CLINE : dw ?line + pullpc + +endmacro + +;--------------------------------------------------------------------------------------------------- + +macro bigcredits(space, text) + !CLINE #= !CLINE+1 + table "creditscharmapbighi.txt" + + ?line_top: + db + db 2*(?endA-?textA)-1 + ?textA: + db "" + ?endA: + + pushpc + org CreditsLineTable+!CLINE+!CLINE : dw ?line_top + pullpc + + + table "creditscharmapbiglo.txt" + ?line_bottom: + db + db 2*(?endB-?textB)-1 + ?textB: + db "" + ?endB: + + + !CLINE #= !CLINE+1 + pushpc + org CreditsLineTable+!CLINE+!CLINE : dw ?line_bottom + pullpc + +endmacro + +;--------------------------------------------------------------------------------------------------- + +macro preline() + !CLINE #= !CLINE+1 + pushpc + org CreditsLineTable+!CLINE+!CLINE : dw CreditsPreLine + pullpc +endmacro + +macro blankline() + !CLINE #= !CLINE+1 + pushpc + org CreditsLineTable+!CLINE+!CLINE : dw CreditsLineBlank + pullpc +endmacro + +macro addarbline(l) + !CLINE #= !CLINE+1 + pushpc + org CreditsLineTable+!CLINE+!CLINE : dw + pullpc +endmacro + +;=================================================================================================== + +CreditsPreLine: + db $00, $01, $9F + +CreditsLineBlank: + db $FF + +;--------------------------------------------------------------------------------------------------- + +%preline() +%smallcredits(6, "ORIGINAL GAME STAFF") + +%blankline() + +%preline() +%smallcredits(7, "EXECUTIVE PRODUCER") + +%blankline() + +%bigcredits(8, "HIROSHI YAMAUCHI") + +%blankline() +%blankline() + +%preline() + +%smallcredits(12, "PRODUCER") + +%blankline() + +%bigcredits(8, "SHIGERU MIYAMOTO") + +%blankline() +%blankline() + +%smallcredits(12, "DIRECTOR") + +%blankline() + +%bigcredits(9, "TAKASHI TEZUKA") + +%blankline() +%blankline() + +%smallcredits(9, "SCRIPT WRITER") + +%blankline() + +%bigcredits(9, "KENSUKE TANABE") + +%blankline() +%blankline() + +%preline() +%smallcredits(6, "ASSISTANT DIRECTORS") + +%blankline() +%blankline() + +%bigcredits(7, "YASUHISA YAMAMURA") + +%blankline() + +%bigcredits(9, "YOICHI YAMADA") + +%blankline() +%blankline() + +%smallcredits(3, "SCREEN GRAPHICS DESIGNERS") + + +%preline() +%preline() +%smallcredits(8, "OBJECT DESIGNERS") + +%blankline() + +%bigcredits(8, "SOICHIRO TOMITA") + +%blankline() + +%bigcredits(9, "TAKAYA IMAMURA") + +%blankline() +%blankline() + +%preline() +%smallcredits(5, "BACK GROUND DESIGNERS") + +%blankline() +%blankline() + +%bigcredits(8, "MASANAO ARIMOTO") + +%blankline() + +%bigcredits(7, "TSUYOSHI WATANABE") + +%blankline() +%blankline() + +%smallcredits(8, "PROGRAM DIRECTOR") + +%blankline() + +%bigcredits(8, "TOSHIHIKO NAKAGO") + +%blankline() +%blankline() + +%smallcredits(8, "MAIN PROGRAMMER") + +%blankline() + +%bigcredits(8, "YASUNARI SOEJIMA") + +%blankline() +%blankline() + +%smallcredits(7, "OBJECT PROGRAMMER") + +%blankline() + +%bigcredits(9, "KAZUAKI MORITA") + +%blankline() +%blankline() + +%preline() + +%smallcredits(10, "PROGRAMMERS") + +%blankline() + +%bigcredits(8, "TATSUO NISHIYAMA") + +%blankline() + +%bigcredits(8, "YUICHI YAMAMOTO") + +%blankline() + +%bigcredits(8, "YOSHIHIRO NOMOTO") + +%blankline() + +%bigcredits(11, "EIJI NOTO") + +%blankline() + +%bigcredits(8, "SATORU TAKAHATA") + +%blankline() + +%bigcredits(9, "TOSHIO IWAWAKI") + +%blankline() + +%bigcredits(6, "SHIGEHIRO KASAMATSU") + +%blankline() + +%bigcredits(8, "YASUNARI NISHIDA") + +%blankline() +%blankline() + +%smallcredits(9, "SOUND COMPOSER") + +%blankline() + +%bigcredits(11, "KOJI KONDO") + +%blankline() +%blankline() + +%smallcredits(10, "COORDINATORS") + +%blankline() + +%bigcredits(11, "KEIZO KATO") + +%blankline() + +%bigcredits(9, "TAKAO SHIMIZU") + +%blankline() +%blankline() + +%preline() +%smallcredits(8, "PRINTED ART WORK") + +%blankline() + +%bigcredits(9, "YOICHI KOTABE") + +%blankline() + +%bigcredits(10, "HIDEKI FUJII") + +%blankline() + +%bigcredits(8, "YOSHIAKI KOIZUMI") + +%blankline() + +%bigcredits(9, "YASUHIRO SAKAI") + +%blankline() + +%bigcredits(8, "TOMOAKI KUROUME") + +%blankline() +%blankline() + +%smallcredits(7, "SPECIAL THANKS TO") + +%blankline() + +%bigcredits(9, "NOBUO OKAJIMA") + +%blankline() + +%bigcredits(7, "YASUNORI TAKETANI") + +%blankline() + +%bigcredits(10, "KIYOSHI KODA") + +%blankline() + +%bigcredits(7, "TAKAMITSU KUZUHARA") + +%blankline() + +%bigcredits(9, "HIRONOBU KAKUI") + +%blankline() + +%bigcredits(7, "SHIGEKI YAMASHIRO") + +%blankline() + +%preline() +%preline() +%preline() +%preline() +%preline() + +%smallcredits(4, "RANDOMIZER CONTRIBUTORS") + +%blankline() +%blankline() + +%preline() +%preline() +%smallcredits(8, "ITEM RANDOMIZER") + +%blankline() + +%bigcredits(2, "KATDEVSGAMES VEETORP") + +%blankline() + +%bigcredits(2, "CHRISTOSOWEN DESSYREQT") + +%blankline() + +%bigcredits(2, "SMALLHACKER SYNACK") + +%blankline() +%blankline() + +%smallcredits(6, "ENTRANCE RANDOMIZER") + +%blankline() + +%bigcredits(2, "AMAZINGAMPHAROS LLCOOLDAVE") + +%blankline() + +%bigcredits(9, "KEVINCATHCART") + +%blankline() +%blankline() + +%preline() +%smallcredits(8, "ENEMY RANDOMIZER") + +%blankline() + +%bigcredits(2, "ZARBY89 SOSUKE3") + +%blankline() + +%bigcredits(10, "ENDEROFGAMES") + +%blankline() +%blankline() + +%smallcredits(8, "DOOR RANDOMIZER") + +%blankline() + +%bigcredits(2, "AERINON COMPILING") + +%blankline() +%blankline() + +%smallcredits(6, "FESTIVE RANDOMIZER") + +%blankline() + +%bigcredits(2, "KAN TOTAL") + +%blankline() + +%bigcredits(2, "CATOBAT DINSAPHIR") + +%blankline() +%blankline() + +%smallcredits(7, "SPRITE DEVELOPMENT") + +%blankline() +%blankline() + +%bigcredits(2, "MIKETRETHEWEY IBAZLY") + +%blankline() +%bigcredits(2, "FISH_WAFFLE64 KRELBEL") + +%blankline() + +%bigcredits(2, "TWROXAS ARTHEAU") + +%blankline() + +%bigcredits(2, "GLAN TARTHORON") + +%blankline() + +%smallcredits(9, "YOUR SPRITE BY") + +%addarbline(YourSpriteCredits) + +%blankline() +%blankline() + +%smallcredits(10, "MSU1 SUPPORT") + +%blankline() + +%bigcredits(2, "QWERTYMODO") + +%blankline() +%blankline() + +%smallcredits(7, "PALETTE SHUFFLER") + +%blankline() + +%bigcredits(9, "NELSON AKA SWR") + +%blankline() +%blankline() + +%smallcredits(9, "SPECIAL THANKS") + +%blankline() +%blankline() + +%bigcredits(2, "SUPERSKUJ EVILASH25") + +%blankline() + +%bigcredits(2, "MYRAMONG JOSHRTA") + +%blankline() + +%bigcredits(2, "WALKINGEYE MATHONNAPKINS") + +%blankline() + +%bigcredits(9, "SAKURATSUBASA") + +%blankline() + +%bigcredits(13, "AND...") + +%blankline() + +%bigcredits(1, "THE ALTTP RANDOMIZER COMMUNITY") + +%blankline() +%blankline() + +%smallcredits(7, "COMMUNITY DISCORD") + +%blankline() +%blankline() + +%bigcredits(3, "HTTPS://ALTTPR.COM/DISCORD") + +%blankline() + +%preline() +%preline() +%preline() +%preline() +%preline() +%preline() +%preline() +%preline() +%preline() +%preline() +%preline() +%preline() +%preline() +%preline() +%preline() +%preline() +%preline() +%preline() +%preline() +%preline() +%preline() +%preline() +%preline() +%preline() +%preline() + +;=================================================================================================== + +print "Line number: !CLINE | Expected: 302" + +;=================================================================================================== + +%smallcredits(6, "THE IMPORTANT STUFF") + +%blankline() +%blankline() + +%preline() +%smallcredits(11, "TIME FOUND") + +%blankline() +%blankline() + +%bigcredits(2, "FIRST SWORD") + +%blankline() + +%bigcredits(2, "PEGASUS BOOTS") + +%blankline() + +%bigcredits(2, "FLUTE") + +%blankline() + +%bigcredits(2, "MIRROR") + +%blankline() +%blankline() + +%preline() +%smallcredits(11, "BOSS KILLS") + +%blankline() +%blankline() + +%bigcredits(2, "SWORDLESS /13") + +%blankline() + +%bigcredits(2, "FIGHTER'S SWORD /13") + +%blankline() + +%bigcredits(2, "MASTER SWORD /13") + +%blankline() + +%bigcredits(2, "TEMPERED SWORD /13") + +%blankline() + +%bigcredits(2, "GOLD SWORD /13") + +%blankline() +%blankline() + +%smallcredits(11, "GAME STATS") + +%blankline() +%blankline() + +%bigcredits(2, "GT BIG KEY /22") + +%blankline() + +%bigcredits(2, "BONKS") + +%blankline() + +%bigcredits(2, "SAVE AND QUITS") + +%blankline() + +%bigcredits(2, "DEATHS") + +%blankline() + +%bigcredits(2, "FAERIE REVIVALS") + +%blankline() + +%bigcredits(2, "TOTAL MENU TIME") + +%blankline() + +%bigcredits(2, "TOTAL LAG TIME") + +%blankline() +%blankline() + + +%blankline() +%blankline() + + +%blankline() +%blankline() + + +%blankline() +%blankline() + + +%blankline() + +%preline() +%preline() +%preline() +%preline() +%preline() +%bigcredits(2, "COLLECTION RATE /216") + +%blankline() + +%bigcredits(2, "TOTAL TIME") + +%blankline() + +%preline() +%preline() +%preline() +%preline() +%preline() +%preline() + +;--------------------------------------------------------------------------------------------------- + +!FIRST_SWORD_X = 19 +!FIRST_SWORD_Y = 310 +!PEGASUS_BOOTS_X = 19 +!PEGASUS_BOOTS_Y = 313 +!FLUTE_X = 19 +!FLUTE_Y = 316 +!MIRROR_X = 19 +!MIRROR_Y = 319 +!SWORDLESS_X = 23 +!SWORDLESS_Y = 327 +!FIGHTERS_SWORD_X = 23 +!FIGHTERS_SWORD_Y = 330 +!MASTER_SWORD_X = 23 +!MASTER_SWORD_Y = 333 +!TEMPERED_SWORD_X = 23 +!TEMPERED_SWORD_Y = 336 +!GOLD_SWORD_X = 23 +!GOLD_SWORD_Y = 339 +!GT_BIG_KEY_X = 23 +!GT_BIG_KEY_Y = 346 +!BONKS_X = 26 +!BONKS_Y = 349 +!SAVE_AND_QUITS_X = 26 +!SAVE_AND_QUITS_Y = 352 +!DEATHS_X = 26 +!DEATHS_Y = 355 +!FAERIE_REVIVALS_X = 26 +!FAERIE_REVIVALS_Y = 358 +!TOTAL_MENU_TIME_X = 19 +!TOTAL_MENU_TIME_Y = 361 +!TOTAL_LAG_TIME_X = 19 +!TOTAL_LAG_TIME_Y = 364 +!COLLECTION_RATE_X = 22 +!COLLECTION_RATE_Y = 380 +!TOTAL_TIME_X = 19 +!TOTAL_TIME_Y = 383 \ No newline at end of file diff --git a/stats/main.asm b/stats/main.asm index 1131840..0a666ad 100755 --- a/stats/main.asm +++ b/stats/main.asm @@ -6,7 +6,7 @@ lorom !BGE = "BCS" org $238000 -incsrc stats/credits.asm +incsrc stats/creditsnew.asm FontGfx: incbin stats/font.gb diff --git a/tables.asm b/tables.asm index 6543d4e..93204e8 100644 --- a/tables.asm +++ b/tables.asm @@ -1708,913 +1708,913 @@ dw $0000 ; STAIRS3 ; STAIRS4 ;-------------------------------------------------------------------------------- -org $305A00 : RoomHeader_0000: ; pc 0x185A00 +org $30DA00 : RoomHeader_0000: ; pc 0x185A00 db $41, $21, $13, $22, $07, $3D, $00, $00, $00, $10, $C0, $00, $00, $04 -org $305A0E : RoomHeader_0001: ; pc 0x185A0E +org $30DA0E : RoomHeader_0001: ; pc 0x185A0E db $C0, $00, $00, $04, $00, $00, $00, $00, $00, $00, $72, $00, $50, $52 -org $305A1C : RoomHeader_0002: ; pc 0x185A1C +org $30DA1C : RoomHeader_0002: ; pc 0x185A1C db $C0, $1D, $04, $06, $00, $14, $00, $00, $00, $00, $11, $00, $18, $0D -org $305A2A : RoomHeader_0003: ; pc 0x185A2A +org $30DA2A : RoomHeader_0003: ; pc 0x185A2A db $C0, $07, $06, $19, $00, $00, $00, $00, $0C, $02, $12, $00, $00, $00 -org $305A38 : RoomHeader_0004: ; pc 0x185A38 +org $30DA38 : RoomHeader_0004: ; pc 0x185A38 db $00, $18, $0D, $26, $00, $26, $14, $00, $00, $00, $B5, $00, $08, $08 -org $305A46 : RoomHeader_0005: ; pc 0x185A46 +org $30DA46 : RoomHeader_0005: ; pc 0x185A46 db $00, $08, $08, $14, $00, $25, $00, $20, $06, $05, $0C, $00, $25, $00 -org $305A54 : RoomHeader_0006: ; pc 0x185A54 +org $30DA54 : RoomHeader_0006: ; pc 0x185A54 db $00, $08, $08, $14, $00, $25, $00, $20, $06, $05, $0C, $00, $25, $00 -org $305A62 : RoomHeader_0007: ; pc 0x185A62 +org $30DA62 : RoomHeader_0007: ; pc 0x185A62 db $20, $06, $05, $0C, $00, $25, $00, $00, $00, $17, $17, $C0, $07, $06 -org $305A70 : RoomHeader_0008: ; pc 0x185A70 +org $30DA70 : RoomHeader_0008: ; pc 0x185A70 db $C0, $07, $06, $07, $00, $00, $00, $00, $0F, $07, $19, $00, $27, $00 -org $305A7E : RoomHeader_0009: ; pc 0x185A7E +org $30DA7E : RoomHeader_0009: ; pc 0x185A7E db $00, $0F, $07, $19, $00, $27, $00, $00, $00, $4B, $4A, $4A, $00, $0F -org $305A8C : RoomHeader_000A: ; pc 0x185A8C +org $30DA8C : RoomHeader_000A: ; pc 0x185A8C db $00, $0F, $07, $19, $00, $27, $00, $00, $00, $09, $3A, $01, $0F, $07 -org $305A9A : RoomHeader_000B: ; pc 0x185A9A +org $30DA9A : RoomHeader_000B: ; pc 0x185A9A db $01, $0F, $07, $19, $00, $03, $00, $00, $00, $6A, $1B, $C0, $28, $0E -org $305AA8 : RoomHeader_000C: ; pc 0x185AA8 +org $30DAA8 : RoomHeader_000C: ; pc 0x185AA8 db $C0, $28, $0E, $13, $00, $00, $00, $00, $00, $00, $6B, $8C, $8C, $40 -org $305AB6 : RoomHeader_000D: ; pc 0x185AB6 +org $30DAB6 : RoomHeader_000D: ; pc 0x185AB6 db $40, $1B, $0E, $18, $05, $38, $00, $00, $13, $0B, $1C, $00, $08, $00 -org $305AC4 : RoomHeader_000E: ; pc 0x185AC4 +org $30DAC4 : RoomHeader_000E: ; pc 0x185AC4 db $00, $13, $0B, $1C, $00, $08, $00, $00, $00, $00, $1E, $00, $21, $13 -org $305AD2 : RoomHeader_000F: ; pc 0x185AD2 +org $30DAD2 : RoomHeader_000F: ; pc 0x185AD2 db $00, $21, $13, $22, $00, $00, $00, $00, $01, $01, $01, $00, $00, $00 -org $305AE0 : RoomHeader_0010: ; pc 0x185AE0 +org $30DAE0 : RoomHeader_0010: ; pc 0x185AE0 db $00, $21, $13, $22, $00, $00, $00, $00, $01, $01, $01, $00, $00, $00 -org $305AEE : RoomHeader_0011: ; pc 0x185AEE +org $30DAEE : RoomHeader_0011: ; pc 0x185AEE db $00, $01, $01, $01, $00, $00, $00, $08, $00, $00, $02, $C0, $1D, $04 -org $305AFC : RoomHeader_0012: ; pc 0x185AFC +org $30DAFC : RoomHeader_0012: ; pc 0x185AFC db $C0, $1D, $04, $06, $00, $00, $00, $00, $18, $0D, $26, $00, $00, $00 -org $305B0A : RoomHeader_0013: ; pc 0x185B0A +org $30DB0A : RoomHeader_0013: ; pc 0x185B0A db $00, $18, $0D, $26, $00, $00, $00, $00, $18, $0D, $1E, $00, $00, $00 -org $305B18 : RoomHeader_0014: ; pc 0x185B18 +org $30DB18 : RoomHeader_0014: ; pc 0x185B18 db $20, $18, $0D, $26, $00, $00, $00, $C0, $18, $0D, $26, $00, $00, $00 -org $305B26 : RoomHeader_0015: ; pc 0x185B26 +org $30DB26 : RoomHeader_0015: ; pc 0x185B26 db $C0, $18, $0D, $26, $00, $00, $00, $00, $00, $00, $B6, $90, $08, $08 -org $305B34 : RoomHeader_0016: ; pc 0x185B34 +org $30DB34 : RoomHeader_0016: ; pc 0x185B34 db $90, $08, $08, $11, $03, $00, $00, $00, $00, $00, $66, $20, $06, $05 -org $305B42 : RoomHeader_0017: ; pc 0x185B42 +org $30DB42 : RoomHeader_0017: ; pc 0x185B42 db $20, $06, $05, $19, $00, $35, $00, $00, $00, $27, $07, $27, $01, $0F -org $305B50 : RoomHeader_0018: ; pc 0x185B50 +org $30DB50 : RoomHeader_0018: ; pc 0x185B50 db $00, $07, $06, $07, $00, $00, $00, $00, $22, $12, $07, $00, $00, $00 -org $305B5E : RoomHeader_0019: ; pc 0x185B5E +org $30DB5E : RoomHeader_0019: ; pc 0x185B5E db $01, $0F, $07, $19, $00, $00, $00, $00, $0F, $07, $19, $00, $16, $00 -org $305B6C : RoomHeader_001A: ; pc 0x185B6C +org $30DB6C : RoomHeader_001A: ; pc 0x185B6C db $00, $0F, $07, $19, $00, $16, $00, $00, $00, $00, $6A, $6A, $68, $0F -org $305B7A : RoomHeader_001B: ; pc 0x185B7A +org $30DB7A : RoomHeader_001B: ; pc 0x185B7A db $68, $0F, $07, $08, $00, $03, $1C, $00, $00, $00, $0B, $00, $1A, $0E -org $305B88 : RoomHeader_001C: ; pc 0x185B88 +org $30DB88 : RoomHeader_001C: ; pc 0x185B88 db $00, $1A, $0E, $09, $00, $04, $3F, $00, $00, $00, $8C, $00, $1B, $0E -org $305B96 : RoomHeader_001D: ; pc 0x185B96 +org $30DB96 : RoomHeader_001D: ; pc 0x185B96 db $00, $1B, $0E, $18, $00, $00, $00, $00, $00, $00, $4C, $20, $13, $0B -org $305BA4 : RoomHeader_001E: ; pc 0x185BA4 +org $30DBA4 : RoomHeader_001E: ; pc 0x185BA4 db $20, $13, $0B, $1C, $00, $17, $00, $00, $00, $3E, $0E, $00, $13, $0B -org $305BB2 : RoomHeader_001F: ; pc 0x185BB2 +org $30DBB2 : RoomHeader_001F: ; pc 0x185BB2 db $00, $13, $0B, $29, $00, $17, $00, $00, $00, $00, $3F, $20, $0C, $02 -org $305BC0 : RoomHeader_0020: ; pc 0x185BC0 +org $30DBC0 : RoomHeader_0020: ; pc 0x185BC0 db $20, $0C, $02, $12, $00, $15, $25, $01, $01, $01, $01, $00, $00, $00 -org $305BCE : RoomHeader_0021: ; pc 0x185BCE +org $30DBCE : RoomHeader_0021: ; pc 0x185BCE db $01, $01, $01, $01, $00, $00, $00, $00, $18, $0D, $26, $00, $01, $00 -org $305BDC : RoomHeader_0022: ; pc 0x185BDC +org $30DBDC : RoomHeader_0022: ; pc 0x185BDC db $01, $01, $01, $01, $00, $00, $00, $00, $18, $0D, $26, $00, $01, $00 -org $305BEA : RoomHeader_0023: ; pc 0x185BEA +org $30DBEA : RoomHeader_0023: ; pc 0x185BEA db $00, $18, $0D, $26, $00, $00, $00, $00, $18, $0D, $1E, $00, $00, $00 -org $305BF8 : RoomHeader_0024: ; pc 0x185BF8 +org $30DBF8 : RoomHeader_0024: ; pc 0x185BF8 db $00, $18, $0D, $26, $00, $01, $00, $00, $0A, $08, $11, $00, $16, $00 -org $305C06 : RoomHeader_0025: ; pc 0x185C06 +org $30DC06 : RoomHeader_0025: ; pc 0x185C06 db $00, $0A, $08, $11, $00, $16, $00, $00, $00, $00, $76, $76, $76, $20 -org $305C14 : RoomHeader_0026: ; pc 0x185C14 +org $30DC14 : RoomHeader_0026: ; pc 0x185C14 db $00, $0A, $08, $11, $00, $16, $00, $00, $00, $00, $76, $76, $76, $20 -org $305C22 : RoomHeader_0027: ; pc 0x185C22 +org $30DC22 : RoomHeader_0027: ; pc 0x185C22 db $20, $06, $05, $19, $00, $36, $00, $00, $00, $31, $17, $31, $80, $0A -org $305C30 : RoomHeader_0028: ; pc 0x185C30 +org $30DC30 : RoomHeader_0028: ; pc 0x185C30 db $80, $0A, $08, $11, $00, $32, $1B, $00, $00, $00, $38, $CC, $0E, $09 -org $305C3E : RoomHeader_0029: ; pc 0x185C3E +org $30DC3E : RoomHeader_0029: ; pc 0x185C3E db $CC, $0E, $09, $1A, $02, $25, $00, $00, $0F, $07, $19, $00, $00, $00 -org $305C4C : RoomHeader_002A: ; pc 0x185C4C +org $30DC4C : RoomHeader_002A: ; pc 0x185C4C db $00, $0F, $07, $19, $00, $00, $00, $C0, $0F, $07, $2B, $00, $16, $00 -org $305C5A : RoomHeader_002B: ; pc 0x185C5A +org $30DC5A : RoomHeader_002B: ; pc 0x185C5A db $C0, $0F, $07, $2B, $00, $16, $00, $00, $00, $00, $3B, $00, $13, $0B -org $305C68 : RoomHeader_002C: ; pc 0x185C68 +org $30DC68 : RoomHeader_002C: ; pc 0x185C68 db $00, $07, $06, $07, $00, $00, $00, $00, $22, $12, $07, $00, $00, $00 -org $305C76 : RoomHeader_002D: ; pc 0x185C76 +org $30DC76 : RoomHeader_002D: ; pc 0x185C76 db $00, $13, $0B, $1C, $00, $2A, $00, $C0, $07, $06, $19, $00, $00, $00 -org $305C84 : RoomHeader_002E: ; pc 0x185C84 +org $30DC84 : RoomHeader_002E: ; pc 0x185C84 db $00, $13, $0B, $1C, $00, $2A, $00, $C0, $07, $06, $19, $00, $00, $00 -org $305C92 : RoomHeader_002F: ; pc 0x185C92 +org $30DC92 : RoomHeader_002F: ; pc 0x185C92 db $C0, $07, $06, $19, $00, $00, $00, $00, $0C, $02, $12, $00, $00, $00 -org $305CA0 : RoomHeader_0030: ; pc 0x185CA0 +org $30DCA0 : RoomHeader_0030: ; pc 0x185CA0 db $00, $0C, $02, $12, $00, $00, $00, $00, $00, $00, $40, $20, $06, $05 -org $305CAE : RoomHeader_0031: ; pc 0x185CAE +org $30DCAE : RoomHeader_0031: ; pc 0x185CAE db $20, $06, $05, $19, $00, $37, $04, $22, $00, $77, $27, $77, $01, $01 -org $305CBC : RoomHeader_0032: ; pc 0x185CBC +org $30DCBC : RoomHeader_0032: ; pc 0x185CBC db $01, $01, $01, $01, $00, $00, $00, $00, $00, $00, $42, $00, $04, $05 -org $305CCA : RoomHeader_0033: ; pc 0x185CCA +org $30DCCA : RoomHeader_0033: ; pc 0x185CCA db $00, $04, $05, $0B, $00, $15, $25, $80, $0A, $08, $11, $00, $00, $00 -org $305CD8 : RoomHeader_0034: ; pc 0x185CD8 +org $30DCD8 : RoomHeader_0034: ; pc 0x185CD8 db $80, $0A, $08, $11, $00, $00, $00, $00, $00, $00, $54, $80, $0A, $08 -org $305CE6 : RoomHeader_0035: ; pc 0x185CE6 +org $30DCE6 : RoomHeader_0035: ; pc 0x185CE6 db $80, $0A, $08, $11, $00, $00, $19, $80, $0A, $08, $11, $00, $00, $00 -org $305CF4 : RoomHeader_0036: ; pc 0x185CF4 +org $30DCF4 : RoomHeader_0036: ; pc 0x185CF4 db $80, $0A, $08, $11, $00, $00, $00, $80, $0A, $08, $11, $00, $00, $00 -org $305D02 : RoomHeader_0037: ; pc 0x185D02 +org $30DD02 : RoomHeader_0037: ; pc 0x185D02 db $80, $0A, $08, $11, $00, $00, $19, $80, $0A, $08, $11, $00, $00, $00 -org $305D10 : RoomHeader_0038: ; pc 0x185D10 +org $30DD10 : RoomHeader_0038: ; pc 0x185D10 db $80, $0A, $08, $11, $00, $00, $00, $00, $00, $00, $28, $20, $0D, $09 -org $305D1E : RoomHeader_0039: ; pc 0x185D1E +org $30DD1E : RoomHeader_0039: ; pc 0x185D1E db $20, $0D, $09, $13, $00, $00, $00, $00, $00, $29, $20, $0F, $07, $19 -org $305D2C : RoomHeader_003A: ; pc 0x185D2C +org $30DD2C : RoomHeader_003A: ; pc 0x185D2C db $20, $0F, $07, $19, $00, $00, $00, $00, $00, $0A, $0A, $00, $0F, $07 -org $305D3A : RoomHeader_003B: ; pc 0x185D3A +org $30DD3A : RoomHeader_003B: ; pc 0x185D3A db $00, $0F, $07, $08, $00, $00, $00, $00, $00, $00, $2B, $00, $07, $06 -org $305D48 : RoomHeader_003C: ; pc 0x185D48 +org $30DD48 : RoomHeader_003C: ; pc 0x185D48 db $00, $07, $06, $13, $00, $00, $00, $20, $1A, $0E, $0C, $00, $33, $00 -org $305D56 : RoomHeader_003D: ; pc 0x185D56 +org $30DD56 : RoomHeader_003D: ; pc 0x185D56 db $20, $1A, $0E, $0C, $00, $33, $00, $00, $00, $96, $96, $CC, $13, $0B -org $305D64 : RoomHeader_003E: ; pc 0x185D64 +org $30DD64 : RoomHeader_003E: ; pc 0x185D64 db $CC, $13, $0B, $29, $02, $02, $00, $00, $00, $00, $1E, $00, $13, $0B -org $305D72 : RoomHeader_003F: ; pc 0x185D72 +org $30DD72 : RoomHeader_003F: ; pc 0x185D72 db $00, $13, $0B, $29, $00, $27, $14, $00, $00, $00, $1F, $5F, $C0, $00 -org $305D80 : RoomHeader_0040: ; pc 0x185D80 +org $30DD80 : RoomHeader_0040: ; pc 0x185D80 db $C0, $00, $02, $27, $00, $00, $00, $00, $00, $00, $30, $B0, $01, $00 -org $305D8E : RoomHeader_0041: ; pc 0x185D8E +org $30DD8E : RoomHeader_0041: ; pc 0x185D8E db $01, $00, $00, $02, $00, $13, $00, $00, $00, $00, $42, $01, $01, $01 -org $305D9C : RoomHeader_0042: ; pc 0x185D9C +org $30DD9C : RoomHeader_0042: ; pc 0x185D9C db $01, $01, $01, $01, $00, $00, $00, $00, $00, $00, $41, $32, $68, $04 -org $305DAA : RoomHeader_0043: ; pc 0x185DAA +org $30DDAA : RoomHeader_0043: ; pc 0x185DAA db $68, $04, $05, $0A, $00, $00, $1D, $00, $17, $0A, $1B, $00, $01, $00 -org $305DB8 : RoomHeader_0044: ; pc 0x185DB8 +org $30DDB8 : RoomHeader_0044: ; pc 0x185DB8 db $00, $17, $0A, $1B, $00, $01, $00, $60, $17, $0A, $1B, $00, $01, $00 -org $305DC6 : RoomHeader_0045: ; pc 0x185DC6 +org $30DDC6 : RoomHeader_0045: ; pc 0x185DC6 db $60, $17, $0A, $1B, $00, $01, $00, $00, $00, $00, $BC, $00, $0A, $08 -org $305DD4 : RoomHeader_0046: ; pc 0x185DD4 +org $30DDD4 : RoomHeader_0046: ; pc 0x185DD4 db $00, $0A, $08, $11, $00, $3C, $00, $00, $0D, $09, $13, $00, $33, $34 -org $305DE2 : RoomHeader_0047: ; pc 0x185DE2 +org $30DDE2 : RoomHeader_0047: ; pc 0x185DE2 db $00, $0D, $09, $13, $00, $33, $34, $00, $0F, $07, $19, $00, $17, $00 -org $305DF0 : RoomHeader_0048: ; pc 0x185DF0 +org $30DDF0 : RoomHeader_0048: ; pc 0x185DF0 db $00, $0D, $09, $13, $00, $33, $34, $00, $0F, $07, $19, $00, $17, $00 -org $305DFE : RoomHeader_0049: ; pc 0x185DFE +org $30DDFE : RoomHeader_0049: ; pc 0x185DFE db $00, $0D, $09, $13, $00, $33, $34, $00, $0F, $07, $19, $00, $17, $00 -org $305E0C : RoomHeader_004A: ; pc 0x185E0C +org $30DE0C : RoomHeader_004A: ; pc 0x185E0C db $00, $0F, $07, $19, $00, $17, $00, $00, $00, $00, $09, $09, $00, $0F -org $305E1A : RoomHeader_004B: ; pc 0x185E1A +org $30DE1A : RoomHeader_004B: ; pc 0x185E1A db $00, $0F, $07, $08, $00, $01, $00, $00, $00, $09, $00, $1A, $0E, $0C -org $305E28 : RoomHeader_004C: ; pc 0x185E28 +org $30DE28 : RoomHeader_004C: ; pc 0x185E28 db $00, $1A, $0E, $0C, $00, $00, $00, $00, $00, $00, $1D, $20, $1A, $0E -org $305E36 : RoomHeader_004D: ; pc 0x185E36 +org $30DE36 : RoomHeader_004D: ; pc 0x185E36 db $20, $1A, $0E, $0C, $00, $32, $3F, $00, $00, $A6, $A6, $00, $13, $0B -org $305E44 : RoomHeader_004E: ; pc 0x185E44 +org $30DE44 : RoomHeader_004E: ; pc 0x185E44 db $00, $13, $0B, $29, $00, $17, $00, $00, $00, $00, $6E, $00, $13, $0B -org $305E52 : RoomHeader_004F: ; pc 0x185E52 +org $30DE52 : RoomHeader_004F: ; pc 0x185E52 db $00, $13, $0B, $1C, $00, $00, $00, $00, $00, $BE, $C0, $00, $00, $04 -org $305E60 : RoomHeader_0050: ; pc 0x185E60 +org $30DE60 : RoomHeader_0050: ; pc 0x185E60 db $C0, $00, $00, $04, $00, $00, $00, $00, $00, $00, $00, $00, $01, $01 -org $305E6E : RoomHeader_0051: ; pc 0x185E6E +org $30DE6E : RoomHeader_0051: ; pc 0x185E6E db $C0, $00, $00, $03, $00, $00, $00, $00, $00, $00, $61, $C0, $00, $00 -org $305E7C : RoomHeader_0052: ; pc 0x185E7C +org $30DE7C : RoomHeader_0052: ; pc 0x185E7C db $C0, $00, $00, $04, $00, $00, $00, $00, $00, $00, $00, $00, $01, $01 -org $305E8A : RoomHeader_0053: ; pc 0x185E8A +org $30DE8A : RoomHeader_0053: ; pc 0x185E8A db $C0, $04, $05, $0A, $00, $03, $00, $00, $00, $00, $63, $20, $0A, $08 -org $305E98 : RoomHeader_0054: ; pc 0x185E98 +org $30DE98 : RoomHeader_0054: ; pc 0x185E98 db $20, $0A, $08, $11, $00, $00, $00, $00, $00, $34, $34, $01, $01, $10 -org $305EA6 : RoomHeader_0055: ; pc 0x185EA6 +org $30DEA6 : RoomHeader_0055: ; pc 0x185EA6 db $01, $01, $10, $0D, $00, $00, $00, $00, $0D, $09, $13, $00, $23, $00 -org $305EB4 : RoomHeader_0056: ; pc 0x185EB4 +org $30DEB4 : RoomHeader_0056: ; pc 0x185EB4 db $00, $0D, $09, $13, $00, $23, $00, $00, $0D, $09, $13, $00, $16, $00 -org $305EC2 : RoomHeader_0057: ; pc 0x185EC2 +org $30DEC2 : RoomHeader_0057: ; pc 0x185EC2 db $00, $0D, $09, $13, $00, $16, $00, $00, $0D, $09, $13, $00, $21, $28 -org $305ED0 : RoomHeader_0058: ; pc 0x185ED0 +org $30DED0 : RoomHeader_0058: ; pc 0x185ED0 db $00, $0D, $09, $13, $00, $21, $28, $C0, $0D, $09, $13, $00, $00, $00 -org $305EDE : RoomHeader_0059: ; pc 0x185EDE +org $30DEDE : RoomHeader_0059: ; pc 0x185EDE db $C0, $0D, $09, $13, $00, $00, $00, $00, $10, $07, $15, $00, $25, $00 -org $305EEC : RoomHeader_005A: ; pc 0x185EEC +org $30DEEC : RoomHeader_005A: ; pc 0x185EEC db $00, $10, $07, $15, $00, $25, $00, $C0, $1B, $0E, $0A, $00, $17, $00 -org $305EFA : RoomHeader_005B: ; pc 0x185EFA +org $30DEFA : RoomHeader_005B: ; pc 0x185EFA db $C0, $1B, $0E, $0A, $00, $17, $00, $00, $1B, $0E, $0A, $00, $00, $00 -org $305F08 : RoomHeader_005C: ; pc 0x185F08 +org $30DF08 : RoomHeader_005C: ; pc 0x185F08 db $00, $1B, $0E, $0A, $00, $00, $00, $00, $00, $00, $5D, $00, $24, $0E -org $305F16 : RoomHeader_005D: ; pc 0x185F16 +org $30DF16 : RoomHeader_005D: ; pc 0x185F16 db $00, $24, $0E, $23, $00, $09, $00, $00, $00, $00, $5C, $20, $13, $0B -org $305F24 : RoomHeader_005E: ; pc 0x185F24 +org $30DF24 : RoomHeader_005E: ; pc 0x185F24 db $20, $13, $0B, $1C, $00, $00, $00, $00, $00, $7E, $7E, $00, $13, $0B -org $305F32 : RoomHeader_005F: ; pc 0x185F32 +org $30DF32 : RoomHeader_005F: ; pc 0x185F32 db $00, $13, $0B, $1C, $00, $27, $00, $00, $00, $00, $3F, $7F, $C0, $00 -org $305F40 : RoomHeader_0060: ; pc 0x185F40 +org $30DF40 : RoomHeader_0060: ; pc 0x185F40 db $C0, $00, $00, $04, $00, $00, $00, $C0, $00, $00, $04, $00, $00, $00 -org $305F4E : RoomHeader_0061: ; pc 0x185F4E +org $30DF4E : RoomHeader_0061: ; pc 0x185F4E db $C0, $00, $00, $04, $00, $00, $00, $08, $00, $00, $51, $00, $09, $05 -org $305F5C : RoomHeader_0062: ; pc 0x185F5C +org $30DF5C : RoomHeader_0062: ; pc 0x185F5C db $C0, $00, $00, $04, $00, $00, $00, $C0, $00, $00, $04, $00, $00, $00 -org $305F6A : RoomHeader_0063: ; pc 0x185F6A +org $30DF6A : RoomHeader_0063: ; pc 0x185F6A db $00, $09, $05, $0A, $00, $0D, $00, $00, $00, $00, $53, $E0, $23, $0A -org $305F78 : RoomHeader_0064: ; pc 0x185F78 +org $30DF78 : RoomHeader_0064: ; pc 0x185F78 db $E0, $23, $0A, $21, $00, $17, $00, $00, $00, $00, $AB, $E0, $23, $0A -org $305F86 : RoomHeader_0065: ; pc 0x185F86 +org $30DF86 : RoomHeader_0065: ; pc 0x185F86 db $E0, $23, $0A, $21, $00, $00, $00, $00, $00, $AC, $C0, $0A, $08, $11 -org $305F94 : RoomHeader_0066: ; pc 0x185F94 +org $30DF94 : RoomHeader_0066: ; pc 0x185F94 db $C0, $0A, $08, $11, $00, $3C, $00, $00, $00, $00, $16, $00, $0D, $09 -org $305FA2 : RoomHeader_0067: ; pc 0x185FA2 +org $30DFA2 : RoomHeader_0067: ; pc 0x185FA2 db $00, $0D, $09, $13, $00, $22, $00, $00, $0D, $09, $13, $00, $00, $00 -org $305FB0 : RoomHeader_0068: ; pc 0x185FB0 +org $30DFB0 : RoomHeader_0068: ; pc 0x185FB0 db $00, $0D, $09, $13, $00, $00, $00, $01, $0F, $07, $19, $00, $00, $00 -org $305FBE : RoomHeader_0069: ; pc 0x185FBE +org $30DFBE : RoomHeader_0069: ; pc 0x185FBE db $01, $0F, $07, $19, $00, $00, $00, $00, $00, $00, $1A, $1A, $00, $1B -org $305FCC : RoomHeader_006A: ; pc 0x185FCC +org $30DFCC : RoomHeader_006A: ; pc 0x185FCC db $01, $0F, $07, $19, $00, $00, $00, $00, $00, $00, $1A, $1A, $00, $1B -org $305FDA : RoomHeader_006B: ; pc 0x185FDA +org $30DFDA : RoomHeader_006B: ; pc 0x185FDA db $00, $1B, $0E, $0A, $00, $08, $0B, $00, $00, $00, $0C, $00, $24, $0E -org $305FE8 : RoomHeader_006C: ; pc 0x185FE8 +org $30DFE8 : RoomHeader_006C: ; pc 0x185FE8 db $00, $24, $0E, $23, $00, $03, $3F, $00, $00, $00, $A5, $00, $24, $0E -org $305FF6 : RoomHeader_006D: ; pc 0x185FF6 +org $30DFF6 : RoomHeader_006D: ; pc 0x185FF6 db $00, $24, $0E, $23, $00, $05, $00, $00, $13, $0B, $1C, $00, $02, $00 -org $306004 : RoomHeader_006E: ; pc 0x186004 +org $30E004 : RoomHeader_006E: ; pc 0x186004 db $00, $13, $0B, $1C, $00, $02, $00, $00, $00, $00, $4E, $00, $01, $01 -org $306012 : RoomHeader_006F: ; pc 0x186012 +org $30E012 : RoomHeader_006F: ; pc 0x186012 db $00, $01, $01, $04, $00, $00, $00, $08, $00, $00, $71, $80, $C0, $01 -org $306020 : RoomHeader_0070: ; pc 0x186020 +org $30E020 : RoomHeader_0070: ; pc 0x186020 db $00, $01, $01, $04, $00, $00, $00, $08, $00, $00, $71, $80, $C0, $01 -org $30602E : RoomHeader_0071: ; pc 0x18602E +org $30E02E : RoomHeader_0071: ; pc 0x18602E db $C0, $01, $01, $04, $00, $08, $00, $00, $00, $00, $70, $C0, $01, $01 -org $30603C : RoomHeader_0072: ; pc 0x18603C +org $30E03C : RoomHeader_0072: ; pc 0x18603C db $C0, $01, $01, $04, $00, $00, $00, $08, $00, $00, $01, $00, $09, $05 -org $30604A : RoomHeader_0073: ; pc 0x18604A +org $30E04A : RoomHeader_0073: ; pc 0x18604A db $00, $09, $05, $0A, $00, $17, $00, $00, $09, $05, $0A, $00, $27, $00 -org $306058 : RoomHeader_0074: ; pc 0x186058 +org $30E058 : RoomHeader_0074: ; pc 0x186058 db $00, $09, $05, $0A, $00, $27, $00, $00, $09, $05, $0A, $00, $01, $00 -org $306066 : RoomHeader_0075: ; pc 0x186066 +org $30E066 : RoomHeader_0075: ; pc 0x186066 db $00, $09, $05, $0A, $00, $01, $00, $80, $0A, $08, $11, $00, $00, $18 -org $306074 : RoomHeader_0076: ; pc 0x186074 +org $30E074 : RoomHeader_0076: ; pc 0x186074 db $80, $0A, $08, $11, $00, $00, $18, $00, $00, $00, $26, $26, $26, $C0 -org $306082 : RoomHeader_0077: ; pc 0x186082 +org $30E082 : RoomHeader_0077: ; pc 0x186082 db $C0, $06, $05, $19, $00, $00, $00, $00, $00, $A7, $31, $87, $87, $00 -org $306090 : RoomHeader_0078: ; pc 0x186090 +org $30E090 : RoomHeader_0078: ; pc 0x186090 db $00, $28, $0E, $13, $00, $03, $39, $00, $00, $9D, $00, $28, $0E, $13 -org $30609E : RoomHeader_0079: ; pc 0x18609E +org $30E09E : RoomHeader_0079: ; pc 0x18609E db $00, $28, $0E, $13, $00, $03, $39, $00, $00, $9D, $00, $28, $0E, $13 -org $3060AC : RoomHeader_007A: ; pc 0x1860AC +org $30E0AC : RoomHeader_007A: ; pc 0x1860AC db $00, $28, $0E, $13, $00, $03, $39, $00, $00, $9D, $00, $28, $0E, $13 -org $3060BA : RoomHeader_007B: ; pc 0x1860BA +org $30E0BA : RoomHeader_007B: ; pc 0x1860BA db $00, $28, $0E, $13, $00, $03, $39, $00, $00, $9D, $00, $28, $0E, $13 -org $3060C8 : RoomHeader_007C: ; pc 0x1860C8 +org $30E0C8 : RoomHeader_007C: ; pc 0x1860C8 db $00, $28, $0E, $13, $00, $20, $00, $00, $28, $0E, $13, $00, $04, $3C -org $3060D6 : RoomHeader_007D: ; pc 0x1860D6 +org $30E0D6 : RoomHeader_007D: ; pc 0x1860D6 db $00, $28, $0E, $13, $00, $04, $3C, $00, $00, $9B, $20, $13, $0B, $1C -org $3060E4 : RoomHeader_007E: ; pc 0x1860E4 +org $30E0E4 : RoomHeader_007E: ; pc 0x1860E4 db $20, $13, $0B, $1C, $00, $2B, $17, $00, $00, $9E, $5E, $00, $13, $0B -org $3060F2 : RoomHeader_007F: ; pc 0x1860F2 +org $30E0F2 : RoomHeader_007F: ; pc 0x1860F2 db $00, $13, $0B, $1C, $00, $00, $00, $00, $00, $00, $5F, $60, $01, $01 -org $306100 : RoomHeader_0080: ; pc 0x186100 +org $30E100 : RoomHeader_0080: ; pc 0x186100 db $60, $01, $01, $04, $00, $00, $00, $00, $00, $00, $70, $C0, $01, $01 -org $30610E : RoomHeader_0081: ; pc 0x18610E +org $30E10E : RoomHeader_0081: ; pc 0x18610E db $C0, $01, $01, $04, $00, $00, $00, $00, $09, $05, $0A, $00, $0D, $00 -org $30611C : RoomHeader_0082: ; pc 0x18611C +org $30E11C : RoomHeader_0082: ; pc 0x18611C db $C0, $01, $01, $04, $00, $00, $00, $00, $09, $05, $0A, $00, $0D, $00 -org $30612A : RoomHeader_0083: ; pc 0x18612A +org $30E12A : RoomHeader_0083: ; pc 0x18612A db $00, $09, $05, $0A, $00, $0D, $00, $00, $09, $05, $0A, $00, $00, $00 -org $306138 : RoomHeader_0084: ; pc 0x186138 +org $30E138 : RoomHeader_0084: ; pc 0x186138 db $00, $09, $05, $0A, $00, $00, $00, $00, $09, $05, $0A, $00, $02, $00 -org $306146 : RoomHeader_0085: ; pc 0x186146 +org $30E146 : RoomHeader_0085: ; pc 0x186146 db $00, $09, $05, $0A, $00, $02, $00, $00, $06, $05, $19, $00, $3E, $01 -org $306154 : RoomHeader_0086: ; pc 0x186154 +org $30E154 : RoomHeader_0086: ; pc 0x186154 db $00, $06, $05, $19, $00, $3E, $01, $28, $00, $00, $77, $77, $00, $0B -org $306162 : RoomHeader_0087: ; pc 0x186162 +org $30E162 : RoomHeader_0087: ; pc 0x186162 db $00, $06, $05, $19, $00, $3E, $01, $28, $00, $00, $77, $77, $00, $0B -org $306170 : RoomHeader_0088: ; pc 0x186170 +org $30E170 : RoomHeader_0088: ; pc 0x186170 db $00, $0B, $05, $08, $00, $00, $00, $02, $00, $A9, $00, $28, $0E, $13 -org $30617E : RoomHeader_0089: ; pc 0x18617E +org $30E17E : RoomHeader_0089: ; pc 0x18617E db $00, $0B, $05, $08, $00, $00, $00, $02, $00, $A9, $00, $28, $0E, $13 -org $30618C : RoomHeader_008A: ; pc 0x18618C +org $30E18C : RoomHeader_008A: ; pc 0x18618C db $00, $28, $0E, $13, $00, $3A, $0C, $20, $28, $0E, $13, $00, $16, $00 -org $30619A : RoomHeader_008B: ; pc 0x18619A +org $30E19A : RoomHeader_008B: ; pc 0x18619A db $00, $28, $0E, $13, $00, $3A, $0C, $20, $28, $0E, $13, $00, $16, $00 -org $3061A8 : RoomHeader_008C: ; pc 0x1861A8 +org $30E1A8 : RoomHeader_008C: ; pc 0x1861A8 db $20, $28, $0E, $13, $00, $16, $00, $28, $00, $1C, $0C, $0C, $1C, $00 -org $3061B6 : RoomHeader_008D: ; pc 0x1861B6 +org $30E1B6 : RoomHeader_008D: ; pc 0x1861B6 db $00, $28, $0E, $13, $00, $33, $29, $00, $13, $0B, $1C, $00, $00, $00 -org $3061C4 : RoomHeader_008E: ; pc 0x1861C4 +org $30E1C4 : RoomHeader_008E: ; pc 0x1861C4 db $00, $13, $0B, $1C, $00, $00, $00, $00, $00, $00, $AE, $80, $12, $0C -org $3061D2 : RoomHeader_008F: ; pc 0x1861D2 +org $30E1D2 : RoomHeader_008F: ; pc 0x1861D2 db $80, $12, $0C, $16, $00, $25, $00, $00, $11, $0C, $1C, $00, $00, $00 -org $3061E0 : RoomHeader_0090: ; pc 0x1861E0 +org $30E1E0 : RoomHeader_0090: ; pc 0x1861E0 db $80, $12, $0C, $16, $00, $25, $00, $00, $11, $0C, $1C, $00, $00, $00 -org $3061EE : RoomHeader_0091: ; pc 0x1861EE +org $30E1EE : RoomHeader_0091: ; pc 0x1861EE db $00, $11, $0C, $1C, $00, $00, $00, $00, $00, $00, $A0, $01, $11, $0C -org $3061FC : RoomHeader_0092: ; pc 0x1861FC +org $30E1FC : RoomHeader_0092: ; pc 0x1861FC db $01, $11, $0C, $1C, $00, $00, $00, $01, $11, $0C, $1C, $00, $16, $00 -org $30620A : RoomHeader_0093: ; pc 0x18620A +org $30E20A : RoomHeader_0093: ; pc 0x18620A db $01, $11, $0C, $1C, $00, $16, $00, $08, $00, $00, $A2, $00, $25, $0E -org $306218 : RoomHeader_0094: ; pc 0x186218 +org $30E218 : RoomHeader_0094: ; pc 0x186218 db $00, $25, $0E, $24, $00, $00, $00, $00, $25, $0E, $24, $00, $33, $00 -org $306226 : RoomHeader_0095: ; pc 0x186226 +org $30E226 : RoomHeader_0095: ; pc 0x186226 db $00, $25, $0E, $24, $00, $00, $00, $00, $25, $0E, $24, $00, $33, $00 -org $306234 : RoomHeader_0096: ; pc 0x186234 +org $30E234 : RoomHeader_0096: ; pc 0x186234 db $00, $25, $0E, $24, $00, $33, $00, $00, $00, $00, $3D, $68, $11, $0C -org $306242 : RoomHeader_0097: ; pc 0x186242 +org $30E242 : RoomHeader_0097: ; pc 0x186242 db $68, $11, $0C, $1D, $00, $1C, $00, $00, $00, $D1, $D1, $00, $11, $0C -org $306250 : RoomHeader_0098: ; pc 0x186250 +org $30E250 : RoomHeader_0098: ; pc 0x186250 db $00, $11, $0C, $1C, $00, $00, $00, $00, $00, $00, $D2, $01, $0B, $05 -org $30625E : RoomHeader_0099: ; pc 0x18625E +org $30E25E : RoomHeader_0099: ; pc 0x18625E db $01, $0B, $05, $08, $00, $00, $00, $00, $00, $00, $DA, $00, $28, $0E -org $30626C : RoomHeader_009A: ; pc 0x18626C +org $30E26C : RoomHeader_009A: ; pc 0x18626C db $00, $28, $0E, $13, $00, $00, $00, $00, $00, $7D, $00, $28, $0E, $13 -org $30627A : RoomHeader_009B: ; pc 0x18627A +org $30E27A : RoomHeader_009B: ; pc 0x18627A db $00, $28, $0E, $13, $00, $00, $00, $00, $00, $7D, $00, $28, $0E, $13 -org $306288 : RoomHeader_009C: ; pc 0x186288 +org $30E288 : RoomHeader_009C: ; pc 0x186288 db $00, $28, $0E, $13, $06, $00, $00, $00, $28, $0E, $13, $06, $00, $3B -org $306296 : RoomHeader_009D: ; pc 0x186296 +org $30E296 : RoomHeader_009D: ; pc 0x186296 db $00, $28, $0E, $13, $06, $00, $3B, $00, $00, $7B, $20, $13, $0B, $1C -org $3062A4 : RoomHeader_009E: ; pc 0x1862A4 +org $30E2A4 : RoomHeader_009E: ; pc 0x1862A4 db $20, $13, $0B, $1C, $00, $00, $00, $00, $00, $BE, $BE, $00, $13, $0B -org $3062B2 : RoomHeader_009F: ; pc 0x1862B2 +org $30E2B2 : RoomHeader_009F: ; pc 0x1862B2 db $00, $13, $0B, $1C, $00, $17, $00, $00, $12, $0C, $1D, $00, $00, $00 -org $3062C0 : RoomHeader_00A0: ; pc 0x1862C0 +org $30E2C0 : RoomHeader_00A0: ; pc 0x1862C0 db $00, $12, $0C, $1D, $00, $00, $00, $00, $00, $00, $91, $00, $11, $0C -org $3062CE : RoomHeader_00A1: ; pc 0x1862CE +org $30E2CE : RoomHeader_00A1: ; pc 0x1862CE db $00, $11, $0C, $1D, $00, $00, $00, $C0, $11, $0C, $1D, $00, $00, $00 -org $3062DC : RoomHeader_00A2: ; pc 0x1862DC +org $30E2DC : RoomHeader_00A2: ; pc 0x1862DC db $C0, $11, $0C, $1D, $00, $00, $00, $00, $00, $00, $93, $60, $19, $0D -org $3062EA : RoomHeader_00A3: ; pc 0x1862EA +org $30E2EA : RoomHeader_00A3: ; pc 0x1862EA db $00, $11, $0C, $1D, $00, $00, $00, $C0, $11, $0C, $1D, $00, $00, $00 -org $3062F8 : RoomHeader_00A4: ; pc 0x1862F8 +org $30E2F8 : RoomHeader_00A4: ; pc 0x1862F8 db $60, $19, $0D, $17, $04, $25, $00, $00, $25, $0E, $24, $00, $07, $00 -org $306306 : RoomHeader_00A5: ; pc 0x186306 +org $30E306 : RoomHeader_00A5: ; pc 0x186306 db $00, $25, $0E, $24, $00, $07, $00, $00, $00, $00, $6C, $00, $25, $0E -org $306314 : RoomHeader_00A6: ; pc 0x186314 +org $30E314 : RoomHeader_00A6: ; pc 0x186314 db $00, $25, $0E, $24, $00, $00, $00, $00, $00, $00, $4D, $00, $06, $05 -org $306322 : RoomHeader_00A7: ; pc 0x186322 +org $30E322 : RoomHeader_00A7: ; pc 0x186322 db $00, $06, $05, $19, $00, $00, $00, $00, $00, $17, $C0, $0B, $05, $08 -org $306330 : RoomHeader_00A8: ; pc 0x186330 +org $30E330 : RoomHeader_00A8: ; pc 0x186330 db $C0, $0B, $05, $08, $00, $03, $00, $C0, $0B, $05, $08, $00, $17, $00 -org $30633E : RoomHeader_00A9: ; pc 0x18633E +org $30E33E : RoomHeader_00A9: ; pc 0x18633E db $C0, $0B, $05, $08, $00, $17, $00, $00, $00, $89, $C0, $0B, $05, $08 -org $30634C : RoomHeader_00AA: ; pc 0x18634C +org $30E34C : RoomHeader_00AA: ; pc 0x18634C db $C0, $0B, $05, $08, $00, $17, $00, $00, $17, $0A, $1B, $00, $00, $00 -org $30635A : RoomHeader_00AB: ; pc 0x18635A +org $30E35A : RoomHeader_00AB: ; pc 0x18635A db $00, $17, $0A, $1B, $00, $00, $00, $00, $00, $00, $64, $E0, $17, $0A -org $306368 : RoomHeader_00AC: ; pc 0x186368 +org $30E368 : RoomHeader_00AC: ; pc 0x186368 db $E0, $17, $0A, $20, $00, $25, $00, $00, $13, $0B, $1C, $00, $27, $00 -org $306376 : RoomHeader_00AD: ; pc 0x186376 +org $30E376 : RoomHeader_00AD: ; pc 0x186376 db $00, $13, $0B, $1C, $00, $27, $00, $00, $00, $00, $8E, $00, $13, $0B -org $306384 : RoomHeader_00AE: ; pc 0x186384 +org $30E384 : RoomHeader_00AE: ; pc 0x186384 db $00, $13, $0B, $1C, $00, $27, $00, $00, $00, $00, $8E, $00, $13, $0B -org $306392 : RoomHeader_00AF: ; pc 0x186392 +org $30E392 : RoomHeader_00AF: ; pc 0x186392 db $00, $13, $0B, $1C, $00, $00, $00, $00, $26, $02, $21, $00, $05, $02 -org $3063A0 : RoomHeader_00B0: ; pc 0x1863A0 +org $30E3A0 : RoomHeader_00B0: ; pc 0x1863A0 db $00, $26, $02, $21, $00, $05, $02, $08, $00, $00, $40, $C0, $00, $11 -org $3063AE : RoomHeader_00B1: ; pc 0x1863AE +org $30E3AE : RoomHeader_00B1: ; pc 0x1863AE db $00, $11, $0C, $1D, $00, $00, $00, $02, $00, $B2, $C0, $11, $0C, $1D -org $3063BC : RoomHeader_00B2: ; pc 0x1863BC +org $30E3BC : RoomHeader_00B2: ; pc 0x1863BC db $C0, $11, $0C, $1D, $00, $03, $0E, $C0, $11, $0C, $1D, $00, $27, $00 -org $3063CA : RoomHeader_00B3: ; pc 0x1863CA +org $30E3CA : RoomHeader_00B3: ; pc 0x1863CA db $C0, $11, $0C, $1D, $00, $27, $00, $00, $19, $0D, $17, $00, $00, $00 -org $3063D8 : RoomHeader_00B4: ; pc 0x1863D8 +org $30E3D8 : RoomHeader_00B4: ; pc 0x1863D8 db $00, $19, $0D, $17, $00, $00, $00, $00, $00, $00, $C4, $01, $18, $0D -org $3063E6 : RoomHeader_00B5: ; pc 0x1863E6 +org $30E3E6 : RoomHeader_00B5: ; pc 0x1863E6 db $01, $18, $0D, $25, $00, $17, $00, $00, $00, $00, $04, $00, $18, $0D -org $3063F4 : RoomHeader_00B6: ; pc 0x1863F4 +org $30E3F4 : RoomHeader_00B6: ; pc 0x1863F4 db $00, $18, $0D, $1E, $00, $04, $3C, $00, $00, $00, $15, $00, $0B, $05 -org $306402 : RoomHeader_00B7: ; pc 0x186402 +org $30E402 : RoomHeader_00B7: ; pc 0x186402 db $00, $18, $0D, $1E, $00, $00, $00, $20, $18, $0D, $26, $00, $00, $00 -org $306410 : RoomHeader_00B8: ; pc 0x186410 +org $30E410 : RoomHeader_00B8: ; pc 0x186410 db $00, $0B, $05, $08, $00, $27, $00, $C0, $0B, $05, $08, $00, $00, $00 -org $30641E : RoomHeader_00B9: ; pc 0x18641E +org $30E41E : RoomHeader_00B9: ; pc 0x18641E db $C0, $0B, $05, $08, $00, $00, $00, $01, $0B, $05, $08, $00, $17, $00 -org $30642C : RoomHeader_00BA: ; pc 0x18642C +org $30E42C : RoomHeader_00BA: ; pc 0x18642C db $01, $0B, $05, $08, $00, $17, $00, $40, $17, $0A, $1B, $00, $00, $00 -org $30643A : RoomHeader_00BB: ; pc 0x18643A +org $30E43A : RoomHeader_00BB: ; pc 0x18643A db $40, $17, $0A, $1B, $00, $00, $00, $00, $17, $0A, $1B, $00, $17, $00 -org $306448 : RoomHeader_00BC: ; pc 0x186448 +org $30E448 : RoomHeader_00BC: ; pc 0x186448 db $00, $17, $0A, $1B, $00, $17, $00, $00, $00, $00, $45, $00, $13, $0B -org $306456 : RoomHeader_00BD: ; pc 0x186456 +org $30E456 : RoomHeader_00BD: ; pc 0x186456 db $00, $13, $0B, $29, $00, $16, $00, $00, $00, $4F, $9E, $00, $13, $0B -org $306464 : RoomHeader_00BE: ; pc 0x186464 +org $30E464 : RoomHeader_00BE: ; pc 0x186464 db $00, $13, $0B, $29, $00, $16, $00, $00, $00, $4F, $9E, $00, $13, $0B -org $306472 : RoomHeader_00BF: ; pc 0x186472 +org $30E472 : RoomHeader_00BF: ; pc 0x186472 db $00, $13, $0B, $29, $00, $00, $00, $01, $00, $02, $27, $00, $02, $0F -org $306480 : RoomHeader_00C0: ; pc 0x186480 +org $30E480 : RoomHeader_00C0: ; pc 0x186480 db $01, $00, $02, $27, $00, $02, $0F, $00, $00, $00, $B0, $D0, $00, $11 -org $30648E : RoomHeader_00C1: ; pc 0x18648E +org $30E48E : RoomHeader_00C1: ; pc 0x18648E db $00, $11, $0C, $1D, $00, $33, $00, $C0, $11, $0C, $1D, $00, $27, $00 -org $30649C : RoomHeader_00C2: ; pc 0x18649C +org $30E49C : RoomHeader_00C2: ; pc 0x18649C db $C0, $11, $0C, $1D, $00, $27, $00, $C0, $11, $0C, $1D, $00, $00, $00 -org $3064AA : RoomHeader_00C3: ; pc 0x1864AA +org $30E4AA : RoomHeader_00C3: ; pc 0x1864AA db $C0, $11, $0C, $1D, $00, $00, $00, $00, $18, $0D, $25, $00, $00, $00 -org $3064B8 : RoomHeader_00C4: ; pc 0x1864B8 +org $30E4B8 : RoomHeader_00C4: ; pc 0x1864B8 db $00, $18, $0D, $25, $00, $00, $00, $00, $00, $00, $B4, $00, $18, $0D -org $3064C6 : RoomHeader_00C5: ; pc 0x1864C6 +org $30E4C6 : RoomHeader_00C5: ; pc 0x1864C6 db $00, $18, $0D, $25, $00, $00, $00, $00, $18, $0D, $1E, $00, $33, $00 -org $3064D4 : RoomHeader_00C6: ; pc 0x1864D4 +org $30E4D4 : RoomHeader_00C6: ; pc 0x1864D4 db $00, $18, $0D, $1E, $00, $00, $00, $20, $18, $0D, $26, $00, $00, $00 -org $3064E2 : RoomHeader_00C7: ; pc 0x1864E2 +org $30E4E2 : RoomHeader_00C7: ; pc 0x1864E2 db $00, $18, $0D, $1E, $00, $33, $00, $00, $0B, $05, $09, $00, $15, $25 -org $3064F0 : RoomHeader_00C8: ; pc 0x1864F0 +org $30E4F0 : RoomHeader_00C8: ; pc 0x1864F0 db $00, $0B, $05, $09, $00, $15, $25, $00, $0B, $05, $08, $00, $17, $00 -org $3064FE : RoomHeader_00C9: ; pc 0x1864FE +org $30E4FE : RoomHeader_00C9: ; pc 0x1864FE db $00, $0B, $05, $08, $00, $17, $00, $C0, $17, $0A, $1B, $00, $00, $00 -org $30650C : RoomHeader_00CA: ; pc 0x18650C +org $30E50C : RoomHeader_00CA: ; pc 0x18650C db $C0, $17, $0A, $1B, $00, $00, $00, $20, $13, $0B, $29, $00, $14, $00 -org $30651A : RoomHeader_00CB: ; pc 0x18651A +org $30E51A : RoomHeader_00CB: ; pc 0x18651A db $C0, $17, $0A, $1B, $00, $00, $00, $20, $13, $0B, $29, $00, $14, $00 -org $306528 : RoomHeader_00CC: ; pc 0x186528 +org $30E528 : RoomHeader_00CC: ; pc 0x186528 db $C0, $17, $0A, $1B, $00, $00, $00, $20, $13, $0B, $29, $00, $14, $00 -org $306536 : RoomHeader_00CD: ; pc 0x186536 +org $30E536 : RoomHeader_00CD: ; pc 0x186536 db $20, $13, $0B, $29, $00, $14, $00, $00, $00, $DE, $01, $00, $02, $21 -org $306544 : RoomHeader_00CE: ; pc 0x186544 +org $30E544 : RoomHeader_00CE: ; pc 0x186544 db $20, $13, $0B, $29, $00, $14, $00, $00, $00, $DE, $01, $00, $02, $21 -org $306552 : RoomHeader_00CF: ; pc 0x186552 +org $30E552 : RoomHeader_00CF: ; pc 0x186552 db $01, $00, $02, $21, $00, $0F, $00, $00, $00, $00, $C0, $E0, $00, $11 -org $306560 : RoomHeader_00D0: ; pc 0x186560 +org $30E560 : RoomHeader_00D0: ; pc 0x186560 db $01, $00, $02, $21, $00, $0F, $00, $00, $00, $00, $C0, $E0, $00, $11 -org $30656E : RoomHeader_00D1: ; pc 0x18656E +org $30E56E : RoomHeader_00D1: ; pc 0x18656E db $00, $11, $0C, $1D, $00, $00, $00, $00, $00, $B1, $97, $00, $11, $0C -org $30657C : RoomHeader_00D2: ; pc 0x18657C +org $30E57C : RoomHeader_00D2: ; pc 0x18657C db $00, $11, $0C, $1D, $00, $0A, $00, $00, $00, $00, $98, $00, $0B, $05 -org $30658A : RoomHeader_00D3: ; pc 0x18658A +org $30E58A : RoomHeader_00D3: ; pc 0x18658A db $00, $0B, $05, $08, $00, $06, $00, $00, $0B, $05, $08, $00, $17, $00 -org $306598 : RoomHeader_00D4: ; pc 0x186598 +org $30E598 : RoomHeader_00D4: ; pc 0x186598 db $00, $0B, $05, $08, $00, $06, $00, $00, $0B, $05, $08, $00, $17, $00 -org $3065A6 : RoomHeader_00D5: ; pc 0x1865A6 +org $30E5A6 : RoomHeader_00D5: ; pc 0x1865A6 db $00, $18, $0D, $25, $00, $00, $00, $00, $18, $0D, $1E, $00, $33, $00 -org $3065B4 : RoomHeader_00D6: ; pc 0x1865B4 +org $30E5B4 : RoomHeader_00D6: ; pc 0x1865B4 db $00, $18, $0D, $1E, $00, $00, $00, $20, $18, $0D, $26, $00, $00, $00 -org $3065C2 : RoomHeader_00D7: ; pc 0x1865C2 +org $30E5C2 : RoomHeader_00D7: ; pc 0x1865C2 db $00, $0B, $05, $08, $00, $06, $00, $00, $0B, $05, $08, $00, $17, $00 -org $3065D0 : RoomHeader_00D8: ; pc 0x1865D0 +org $30E5D0 : RoomHeader_00D8: ; pc 0x1865D0 db $00, $0B, $05, $08, $00, $06, $00, $00, $0B, $05, $08, $00, $17, $00 -org $3065DE : RoomHeader_00D9: ; pc 0x1865DE +org $30E5DE : RoomHeader_00D9: ; pc 0x1865DE db $00, $0B, $05, $08, $00, $17, $00, $00, $0B, $05, $08, $00, $17, $00 -org $3065EC : RoomHeader_00DA: ; pc 0x1865EC +org $30E5EC : RoomHeader_00DA: ; pc 0x1865EC db $00, $0B, $05, $08, $00, $17, $00, $00, $00, $00, $99, $E0, $14, $0B -org $3065FA : RoomHeader_00DB: ; pc 0x1865FA +org $30E5FA : RoomHeader_00DB: ; pc 0x1865FA db $C0, $17, $0A, $1B, $00, $00, $00, $20, $13, $0B, $29, $00, $14, $00 -org $306608 : RoomHeader_00DC: ; pc 0x186608 +org $30E608 : RoomHeader_00DC: ; pc 0x186608 db $C0, $17, $0A, $1B, $00, $00, $00, $20, $13, $0B, $29, $00, $14, $00 -org $306616 : RoomHeader_00DD: ; pc 0x186616 +org $30E616 : RoomHeader_00DD: ; pc 0x186616 db $E0, $14, $0B, $16, $00, $25, $00, $C0, $20, $06, $13, $00, $00, $00 -org $306624 : RoomHeader_00DE: ; pc 0x186624 +org $30E624 : RoomHeader_00DE: ; pc 0x186624 db $E0, $14, $0B, $16, $00, $25, $00, $C0, $20, $06, $13, $00, $00, $00 -org $306632 : RoomHeader_00DF: ; pc 0x186632 +org $30E632 : RoomHeader_00DF: ; pc 0x186632 db $C0, $20, $06, $13, $00, $00, $00, $00, $00, $00, $EF, $00, $26, $02 -org $306640 : RoomHeader_00E0: ; pc 0x186640 +org $30E640 : RoomHeader_00E0: ; pc 0x186640 db $00, $26, $02, $21, $00, $01, $2A, $00, $00, $00, $D0, $C0, $07, $06 -org $30664E : RoomHeader_00E1: ; pc 0x18664E +org $30E64E : RoomHeader_00E1: ; pc 0x18664E db $C0, $07, $06, $28, $00, $00, $00, $00, $20, $06, $13, $00, $00, $00 -org $30665C : RoomHeader_00E2: ; pc 0x18665C +org $30E65C : RoomHeader_00E2: ; pc 0x18665C db $00, $20, $06, $13, $00, $00, $00, $C0, $20, $06, $09, $00, $00, $00 -org $30666A : RoomHeader_00E3: ; pc 0x18666A +org $30E66A : RoomHeader_00E3: ; pc 0x18666A db $C0, $20, $06, $09, $00, $00, $00, $01, $07, $14, $01, $00, $00, $00 -org $306678 : RoomHeader_00E4: ; pc 0x186678 +org $30E678 : RoomHeader_00E4: ; pc 0x186678 db $01, $07, $14, $01, $00, $00, $00, $01, $07, $06, $01, $00, $00, $00 -org $306686 : RoomHeader_00E5: ; pc 0x186686 +org $30E686 : RoomHeader_00E5: ; pc 0x186686 db $01, $07, $14, $01, $00, $00, $00, $01, $07, $06, $01, $00, $00, $00 -org $306694 : RoomHeader_00E6: ; pc 0x186694 +org $30E694 : RoomHeader_00E6: ; pc 0x186694 db $01, $07, $06, $01, $00, $00, $00, $20, $07, $06, $13, $00, $00, $00 -org $3066A2 : RoomHeader_00E7: ; pc 0x1866A2 +org $30E6A2 : RoomHeader_00E7: ; pc 0x1866A2 db $01, $07, $06, $01, $00, $00, $00, $20, $07, $06, $13, $00, $00, $00 -org $3066B0 : RoomHeader_00E8: ; pc 0x1866B0 +org $30E6B0 : RoomHeader_00E8: ; pc 0x1866B0 db $20, $07, $06, $13, $00, $00, $00, $00, $00, $F8, $F8, $F8, $F8, $F8 -org $3066BE : RoomHeader_00E9: ; pc 0x1866BE +org $30E6BE : RoomHeader_00E9: ; pc 0x1866BE db $20, $20, $06, $13, $00, $00, $00, $00, $00, $FA, $FA, $20, $07, $06 -org $3066CC : RoomHeader_00EA: ; pc 0x1866CC +org $30E6CC : RoomHeader_00EA: ; pc 0x1866CC db $20, $20, $06, $13, $00, $00, $00, $00, $00, $FA, $FA, $20, $07, $06 -org $3066DA : RoomHeader_00EB: ; pc 0x1866DA +org $30E6DA : RoomHeader_00EB: ; pc 0x1866DA db $20, $07, $06, $19, $00, $00, $00, $00, $00, $FB, $FB, $20, $20, $06 -org $3066E8 : RoomHeader_00EC: ; pc 0x1866E8 +org $30E6E8 : RoomHeader_00EC: ; pc 0x1866E8 db $20, $20, $06, $13, $00, $00, $00, $00, $00, $FD, $FD, $FD, $20, $20 -org $3066F6 : RoomHeader_00ED: ; pc 0x1866F6 +org $30E6F6 : RoomHeader_00ED: ; pc 0x1866F6 db $20, $20, $06, $13, $00, $00, $00, $00, $00, $FD, $FD, $FD, $20, $20 -org $306704 : RoomHeader_00EE: ; pc 0x186704 +org $30E704 : RoomHeader_00EE: ; pc 0x186704 db $20, $20, $06, $13, $00, $00, $00, $00, $00, $FE, $20, $20, $06, $13 -org $306712 : RoomHeader_00EF: ; pc 0x186712 +org $30E712 : RoomHeader_00EF: ; pc 0x186712 db $20, $20, $06, $13, $00, $02, $00, $08, $00, $FF, $DF, $FF, $00, $02 -org $306720 : RoomHeader_00F0: ; pc 0x186720 +org $30E720 : RoomHeader_00F0: ; pc 0x186720 db $01, $07, $06, $01, $00, $00, $00, $20, $07, $06, $13, $00, $00, $00 -org $30672E : RoomHeader_00F1: ; pc 0x18672E +org $30E72E : RoomHeader_00F1: ; pc 0x18672E db $01, $07, $06, $01, $00, $00, $00, $20, $07, $06, $13, $00, $00, $00 -org $30673C : RoomHeader_00F2: ; pc 0x18673C +org $30E73C : RoomHeader_00F2: ; pc 0x18673C db $00, $02, $03, $05, $00, $00, $02, $03, $0F, $00, $00, $00, $00, $07 -org $30674A : RoomHeader_00F3: ; pc 0x18674A +org $30E74A : RoomHeader_00F3: ; pc 0x18674A db $00, $02, $03, $05, $00, $00, $02, $03, $0F, $00, $00, $00, $00, $07 -org $306758 : RoomHeader_00F4: ; pc 0x186758 +org $30E758 : RoomHeader_00F4: ; pc 0x186758 db $00, $02, $03, $0F, $00, $00, $00, $00, $07, $06, $13, $00, $00, $00 -org $306766 : RoomHeader_00F5: ; pc 0x186766 +org $30E766 : RoomHeader_00F5: ; pc 0x186766 db $00, $02, $03, $0F, $00, $00, $00, $00, $07, $06, $13, $00, $00, $00 -org $306774 : RoomHeader_00F6: ; pc 0x186774 +org $30E774 : RoomHeader_00F6: ; pc 0x186774 db $00, $07, $06, $13, $00, $00, $00, $00, $00, $00, $E8, $E8, $E8, $E8 -org $306782 : RoomHeader_00F7: ; pc 0x186782 +org $30E782 : RoomHeader_00F7: ; pc 0x186782 db $00, $07, $06, $13, $00, $00, $00, $00, $00, $00, $E8, $E8, $E8, $E8 -org $306790 : RoomHeader_00F8: ; pc 0x186790 +org $30E790 : RoomHeader_00F8: ; pc 0x186790 db $00, $07, $06, $13, $00, $00, $00, $00, $00, $00, $E8, $E8, $E8, $E8 -org $30679E : RoomHeader_00F9: ; pc 0x18679E +org $30E79E : RoomHeader_00F9: ; pc 0x18679E db $00, $20, $06, $13, $00, $00, $00, $C0, $20, $06, $13, $00, $00, $00 -org $3067AC : RoomHeader_00FA: ; pc 0x1867AC +org $30E7AC : RoomHeader_00FA: ; pc 0x1867AC db $C0, $20, $06, $13, $00, $00, $00, $00, $00, $00, $EA, $00, $07, $06 -org $3067BA : RoomHeader_00FB: ; pc 0x1867BA +org $30E7BA : RoomHeader_00FB: ; pc 0x1867BA db $00, $07, $06, $19, $00, $00, $00, $00, $00, $00, $EB, $00, $20, $06 -org $3067C8 : RoomHeader_00FC: ; pc 0x1867C8 +org $30E7C8 : RoomHeader_00FC: ; pc 0x1867C8 db $00, $20, $06, $13, $00, $00, $00, $00, $00, $00, $ED, $ED, $00, $07 -org $3067D6 : RoomHeader_00FD: ; pc 0x1867D6 +org $30E7D6 : RoomHeader_00FD: ; pc 0x1867D6 db $00, $20, $06, $13, $00, $00, $00, $00, $00, $00, $ED, $ED, $00, $07 -org $3067E4 : RoomHeader_00FE: ; pc 0x1867E4 +org $30E7E4 : RoomHeader_00FE: ; pc 0x1867E4 db $00, $20, $06, $13, $00, $00, $00, $C0, $20, $06, $13, $00, $00, $00 -org $3067F2 : RoomHeader_00FF: ; pc 0x1867F2 +org $30E7F2 : RoomHeader_00FF: ; pc 0x1867F2 db $00, $07, $06, $05, $00, $00, $00, $00, $00, $00, $EF, $00, $05, $03 -org $306800 : RoomHeader_0100: ; pc 0x186800 +org $30E800 : RoomHeader_0100: ; pc 0x186800 db $00, $05, $03, $28, $00, $00, $00, $00, $1F, $03, $05, $00, $00, $00 -org $30680E : RoomHeader_0101: ; pc 0x18680E +org $30E80E : RoomHeader_0101: ; pc 0x18680E db $00, $02, $03, $0F, $00, $00, $00, $00, $15, $03, $0D, $00, $00, $00 -org $30681C : RoomHeader_0102: ; pc 0x18681C +org $30E81C : RoomHeader_0102: ; pc 0x18681C db $00, $15, $03, $0D, $00, $00, $00, $00, $05, $03, $0F, $00, $00, $00 -org $30682A : RoomHeader_0103: ; pc 0x18682A +org $30E82A : RoomHeader_0103: ; pc 0x18682A db $00, $05, $03, $0F, $00, $00, $00, $01, $15, $03, $0D, $00, $00, $00 -org $306838 : RoomHeader_0104: ; pc 0x186838 +org $30E838 : RoomHeader_0104: ; pc 0x186838 db $01, $15, $03, $0D, $00, $00, $00, $00, $1C, $0F, $10, $00, $00, $00 -org $306846 : RoomHeader_0105: ; pc 0x186846 +org $30E846 : RoomHeader_0105: ; pc 0x186846 db $00, $1C, $0F, $10, $00, $00, $00, $00, $1F, $03, $0F, $00, $00, $00 -org $306854 : RoomHeader_0106: ; pc 0x186854 +org $30E854 : RoomHeader_0106: ; pc 0x186854 db $00, $1F, $03, $0F, $00, $00, $00, $00, $02, $03, $01, $00, $00, $00 -org $306862 : RoomHeader_0107: ; pc 0x186862 +org $30E862 : RoomHeader_0107: ; pc 0x186862 db $00, $02, $03, $01, $00, $00, $00, $00, $02, $03, $0E, $00, $00, $00 -org $306870 : RoomHeader_0108: ; pc 0x186870 +org $30E870 : RoomHeader_0108: ; pc 0x186870 db $00, $02, $03, $0E, $00, $00, $00, $01, $05, $03, $05, $00, $00, $00 -org $30687E : RoomHeader_0109: ; pc 0x18687E +org $30E87E : RoomHeader_0109: ; pc 0x18687E db $01, $05, $03, $05, $00, $00, $00, $01, $07, $06, $10, $00, $00, $00 -org $30688C : RoomHeader_010A: ; pc 0x18688C +org $30E88C : RoomHeader_010A: ; pc 0x18688C db $01, $07, $06, $10, $00, $00, $00, $80, $0A, $08, $08, $00, $00, $1A -org $30689A : RoomHeader_010B: ; pc 0x18689A +org $30E89A : RoomHeader_010B: ; pc 0x18689A db $80, $0A, $08, $08, $00, $00, $1A, $00, $27, $06, $08, $00, $03, $00 -org $3068A8 : RoomHeader_010C: ; pc 0x1868A8 +org $30E8A8 : RoomHeader_010C: ; pc 0x1868A8 db $00, $27, $06, $08, $00, $03, $00, $00, $0A, $08, $11, $00, $00, $00 -org $3068B6 : RoomHeader_010D: ; pc 0x1868B6 +org $30E8B6 : RoomHeader_010D: ; pc 0x1868B6 db $00, $0A, $08, $11, $00, $00, $00, $00, $07, $14, $05, $00, $00, $00 -org $3068C4 : RoomHeader_010E: ; pc 0x1868C4 +org $30E8C4 : RoomHeader_010E: ; pc 0x1868C4 db $00, $07, $14, $05, $00, $00, $00, $00, $1E, $11, $05, $00, $00, $00 -org $3068D2 : RoomHeader_010F: ; pc 0x1868D2 +org $30E8D2 : RoomHeader_010F: ; pc 0x1868D2 db $00, $1F, $03, $05, $00, $00, $00, $00, $02, $03, $0F, $00, $00, $00 -org $3068E0 : RoomHeader_0110: ; pc 0x1868E0 +org $30E8E0 : RoomHeader_0110: ; pc 0x1868E0 db $00, $1F, $03, $05, $00, $00, $00, $00, $02, $03, $0F, $00, $00, $00 -org $3068EE : RoomHeader_0111: ; pc 0x1868EE +org $30E8EE : RoomHeader_0111: ; pc 0x1868EE db $00, $1E, $11, $05, $00, $00, $00, $00, $07, $14, $05, $00, $00, $00 -org $3068FC : RoomHeader_0112: ; pc 0x1868FC +org $30E8FC : RoomHeader_0112: ; pc 0x1868FC db $00, $07, $14, $05, $00, $00, $00, $00, $03, $10, $08, $00, $00, $00 -org $30690A : RoomHeader_0113: ; pc 0x18690A +org $30E90A : RoomHeader_0113: ; pc 0x18690A db $00, $03, $10, $08, $00, $00, $00, $00, $07, $06, $07, $00, $00, $00 -org $306918 : RoomHeader_0114: ; pc 0x186918 +org $30E918 : RoomHeader_0114: ; pc 0x186918 db $00, $07, $06, $07, $00, $00, $00, $00, $22, $12, $07, $00, $00, $00 -org $306926 : RoomHeader_0115: ; pc 0x186926 +org $30E926 : RoomHeader_0115: ; pc 0x186926 db $00, $07, $06, $07, $00, $00, $00, $00, $22, $12, $07, $00, $00, $00 -org $306934 : RoomHeader_0116: ; pc 0x186934 +org $30E934 : RoomHeader_0116: ; pc 0x186934 db $00, $22, $12, $07, $00, $00, $00, $00, $20, $14, $05, $00, $00, $00 -org $306942 : RoomHeader_0117: ; pc 0x186942 +org $30E942 : RoomHeader_0117: ; pc 0x186942 db $00, $20, $14, $05, $00, $00, $00, $E0, $23, $0A, $0F, $00, $00, $00 -org $306950 : RoomHeader_0118: ; pc 0x186950 +org $30E950 : RoomHeader_0118: ; pc 0x186950 db $00, $05, $03, $0F, $00, $00, $00, $01, $15, $03, $0D, $00, $00, $00 -org $30695E : RoomHeader_0119: ; pc 0x18695E +org $30E95E : RoomHeader_0119: ; pc 0x18695E db $E0, $23, $0A, $0F, $00, $00, $00, $00, $00, $00, $1D, $00, $1C, $0F -org $30696C : RoomHeader_011A: ; pc 0x18696C +org $30E96C : RoomHeader_011A: ; pc 0x18696C db $00, $1C, $0F, $05, $00, $00, $00, $C0, $07, $06, $08, $00, $00, $00 -org $30697A : RoomHeader_011B: ; pc 0x18697A +org $30E97A : RoomHeader_011B: ; pc 0x18697A db $C0, $07, $06, $08, $00, $00, $00, $00, $23, $0A, $0F, $00, $00, $00 -org $306988 : RoomHeader_011C: ; pc 0x186988 +org $30E988 : RoomHeader_011C: ; pc 0x186988 db $00, $1F, $03, $05, $00, $00, $00, $00, $02, $03, $0F, $00, $00, $00 -org $306996 : RoomHeader_011D: ; pc 0x186996 +org $30E996 : RoomHeader_011D: ; pc 0x186996 db $00, $23, $0A, $0F, $00, $00, $00, $00, $00, $00, $19, $00, $20, $06 -org $3069A4 : RoomHeader_011E: ; pc 0x1869A4 +org $30E9A4 : RoomHeader_011E: ; pc 0x1869A4 db $00, $20, $06, $2A, $00, $00, $00, $00, $05, $03, $05, $00, $00, $00 -org $3069B2 : RoomHeader_011F: ; pc 0x1869B2 +org $30E9B2 : RoomHeader_011F: ; pc 0x1869B2 db $00, $05, $03, $05, $00, $00, $00, $00, $13, $06, $13, $00, $00, $00 -org $3069C0 : RoomHeader_0120: ; pc 0x1869C0 +org $30E9C0 : RoomHeader_0120: ; pc 0x1869C0 db $00, $13, $06, $13, $00, $00, $00, $00, $07, $06, $28, $00, $03, $00 -org $3069CE : RoomHeader_0121: ; pc 0x1869CE +org $30E9CE : RoomHeader_0121: ; pc 0x1869CE db $00, $1E, $11, $05, $00, $00, $00, $00, $07, $14, $05, $00, $00, $00 -org $3069DC : RoomHeader_0122: ; pc 0x1869DC +org $30E9DC : RoomHeader_0122: ; pc 0x1869DC db $00, $1E, $11, $05, $00, $00, $00, $00, $07, $14, $05, $00, $00, $00 -org $3069EA : RoomHeader_0123: ; pc 0x1869EA +org $30E9EA : RoomHeader_0123: ; pc 0x1869EA db $00, $07, $06, $28, $00, $03, $00, $00, $07, $06, $28, $00, $00, $00 -org $3069F8 : RoomHeader_0124: ; pc 0x1869F8 +org $30E9F8 : RoomHeader_0124: ; pc 0x1869F8 db $00, $07, $06, $28, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $FF, $FF -org $306A06 : RoomHeader_0125: ; pc 0x186A06 +org $30EA06 : RoomHeader_0125: ; pc 0x186A06 db $00, $07, $06, $28, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $FF, $FF -org $306A14 : RoomHeader_0126: ; pc 0x186A14 +org $30EA14 : RoomHeader_0126: ; pc 0x186A14 db $00, $07, $06, $28, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $FF, $FF -org $306A22 : RoomHeader_0127: ; pc 0x186A22 +org $30EA22 : RoomHeader_0127: ; pc 0x186A22 db $00, $20, $06, $2A, $00, $00, $00, $00, $05, $03, $05, $00, $00, $00 -org $306A30 : RoomHeader_0128: ; pc 0x186A30 +org $30EA30 : RoomHeader_0128: ; pc 0x186A30 db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF -org $306A3E : RoomHeader_0129: ; pc 0x186A3E +org $30EA3E : RoomHeader_0129: ; pc 0x186A3E db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF -org $306A4C : RoomHeader_012A: ; pc 0x186A4C +org $30EA4C : RoomHeader_012A: ; pc 0x186A4C db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF -org $306A5A : RoomHeader_012B: ; pc 0x186A5A +org $30EA5A : RoomHeader_012B: ; pc 0x186A5A db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF -org $306A68 : RoomHeader_012C: ; pc 0x186A68 +org $30EA68 : RoomHeader_012C: ; pc 0x186A68 db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF -org $306A76 : RoomHeader_012D: ; pc 0x186A76 +org $30EA76 : RoomHeader_012D: ; pc 0x186A76 db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF -org $306A84 : RoomHeader_012E: ; pc 0x186A84 +org $30EA84 : RoomHeader_012E: ; pc 0x186A84 db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ;-------------------------------------------------------------------------------- From c9340e5aa893dbf6ce99c0c97ad07cae098c0140 Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Mon, 12 Apr 2021 22:48:21 -0400 Subject: [PATCH 42/63] Update creditsnew.asm --- stats/creditsnew.asm | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/stats/creditsnew.asm b/stats/creditsnew.asm index be29006..362ef08 100644 --- a/stats/creditsnew.asm +++ b/stats/creditsnew.asm @@ -1,7 +1,15 @@ -YourSpriteCredits: +;=================================================================================================== +; LEAVE THIS HERE FOR PHP WRITES +;=================================================================================================== +YourSpriteCreditsHi: db 2 db 55 -db " " +db " " ; $238002 + +YourSpriteCreditsLo: +db 2 +db 55 +db " " ; $238020 ;=================================================================================================== @@ -336,7 +344,8 @@ CreditsLineBlank: %preline() %preline() %preline() -%preline() + +;--------------------------------------------------------------------------------------------------- %smallcredits(4, "RANDOMIZER CONTRIBUTORS") @@ -433,7 +442,8 @@ CreditsLineBlank: %smallcredits(9, "YOUR SPRITE BY") -%addarbline(YourSpriteCredits) +%addarbline(YourSpriteCreditsHi) +%addarbline(YourSpriteCreditsLo) %blankline() %blankline() From 44445b51cef895ed8684c23b36ec77bab01cde7f Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Tue, 13 Apr 2021 00:00:34 -0400 Subject: [PATCH 43/63] autospacing --- stats/creditsnew.asm | 238 +++++++++++++++++++++---------------------- 1 file changed, 118 insertions(+), 120 deletions(-) diff --git a/stats/creditsnew.asm b/stats/creditsnew.asm index 362ef08..0bbb20a 100644 --- a/stats/creditsnew.asm +++ b/stats/creditsnew.asm @@ -22,12 +22,12 @@ CreditsLineTable: ;--------------------------------------------------------------------------------------------------- -macro smallcredits(space, text) +macro smallcredits(text) !CLINE #= !CLINE+1 table "creditscharmapsmall.txt" ?line: - db + db (32-(?end-?text))/2 db 2*(?end-?text)-1 ?text: db "" @@ -41,16 +41,16 @@ endmacro ;--------------------------------------------------------------------------------------------------- -macro bigcredits(space, text) +macro bigcredits(text) !CLINE #= !CLINE+1 table "creditscharmapbighi.txt" ?line_top: - db - db 2*(?endA-?textA)-1 - ?textA: + db (32-(?end-?text))/2 + db 2*(?end-?text)-1 + ?text: db "" - ?endA: + ?end: pushpc org CreditsLineTable+!CLINE+!CLINE : dw ?line_top @@ -59,11 +59,9 @@ macro bigcredits(space, text) table "creditscharmapbiglo.txt" ?line_bottom: - db - db 2*(?endB-?textB)-1 - ?textB: + db (32-(?end-?text))/2 + db 2*(?end-?text)-1 db "" - ?endB: !CLINE #= !CLINE+1 @@ -107,236 +105,236 @@ CreditsLineBlank: ;--------------------------------------------------------------------------------------------------- %preline() -%smallcredits(6, "ORIGINAL GAME STAFF") +%smallcredits("ORIGINAL GAME STAFF") %blankline() %preline() -%smallcredits(7, "EXECUTIVE PRODUCER") +%smallcredits("EXECUTIVE PRODUCER") %blankline() -%bigcredits(8, "HIROSHI YAMAUCHI") +%bigcredits("HIROSHI YAMAUCHI") %blankline() %blankline() %preline() -%smallcredits(12, "PRODUCER") +%smallcredits("PRODUCER") %blankline() -%bigcredits(8, "SHIGERU MIYAMOTO") +%bigcredits("SHIGERU MIYAMOTO") %blankline() %blankline() -%smallcredits(12, "DIRECTOR") +%smallcredits("DIRECTOR") %blankline() -%bigcredits(9, "TAKASHI TEZUKA") +%bigcredits("TAKASHI TEZUKA") %blankline() %blankline() -%smallcredits(9, "SCRIPT WRITER") +%smallcredits("SCRIPT WRITER") %blankline() -%bigcredits(9, "KENSUKE TANABE") +%bigcredits("KENSUKE TANABE") %blankline() %blankline() %preline() -%smallcredits(6, "ASSISTANT DIRECTORS") +%smallcredits("ASSISTANT DIRECTORS") %blankline() %blankline() -%bigcredits(7, "YASUHISA YAMAMURA") +%bigcredits("YASUHISA YAMAMURA") %blankline() -%bigcredits(9, "YOICHI YAMADA") +%bigcredits("YOICHI YAMADA") %blankline() %blankline() -%smallcredits(3, "SCREEN GRAPHICS DESIGNERS") +%smallcredits("SCREEN GRAPHICS DESIGNERS") %preline() %preline() -%smallcredits(8, "OBJECT DESIGNERS") +%smallcredits("OBJECT DESIGNERS") %blankline() -%bigcredits(8, "SOICHIRO TOMITA") +%bigcredits("SOICHIRO TOMITA") %blankline() -%bigcredits(9, "TAKAYA IMAMURA") +%bigcredits("TAKAYA IMAMURA") %blankline() %blankline() %preline() -%smallcredits(5, "BACK GROUND DESIGNERS") +%smallcredits("BACK GROUND DESIGNERS") %blankline() %blankline() -%bigcredits(8, "MASANAO ARIMOTO") +%bigcredits("MASANAO ARIMOTO") %blankline() -%bigcredits(7, "TSUYOSHI WATANABE") +%bigcredits("TSUYOSHI WATANABE") %blankline() %blankline() -%smallcredits(8, "PROGRAM DIRECTOR") +%smallcredits("PROGRAM DIRECTOR") %blankline() -%bigcredits(8, "TOSHIHIKO NAKAGO") +%bigcredits("TOSHIHIKO NAKAGO") %blankline() %blankline() -%smallcredits(8, "MAIN PROGRAMMER") +%smallcredits("MAIN PROGRAMMER") %blankline() -%bigcredits(8, "YASUNARI SOEJIMA") +%bigcredits("YASUNARI SOEJIMA") %blankline() %blankline() -%smallcredits(7, "OBJECT PROGRAMMER") +%smallcredits("OBJECT PROGRAMMER") %blankline() -%bigcredits(9, "KAZUAKI MORITA") +%bigcredits("KAZUAKI MORITA") %blankline() %blankline() %preline() -%smallcredits(10, "PROGRAMMERS") +%smallcredits("PROGRAMMERS") %blankline() -%bigcredits(8, "TATSUO NISHIYAMA") +%bigcredits("TATSUO NISHIYAMA") %blankline() -%bigcredits(8, "YUICHI YAMAMOTO") +%bigcredits("YUICHI YAMAMOTO") %blankline() -%bigcredits(8, "YOSHIHIRO NOMOTO") +%bigcredits("YOSHIHIRO NOMOTO") %blankline() -%bigcredits(11, "EIJI NOTO") +%bigcredits("EIJI NOTO") %blankline() -%bigcredits(8, "SATORU TAKAHATA") +%bigcredits("SATORU TAKAHATA") %blankline() -%bigcredits(9, "TOSHIO IWAWAKI") +%bigcredits("TOSHIO IWAWAKI") %blankline() -%bigcredits(6, "SHIGEHIRO KASAMATSU") +%bigcredits("SHIGEHIRO KASAMATSU") %blankline() -%bigcredits(8, "YASUNARI NISHIDA") +%bigcredits("YASUNARI NISHIDA") %blankline() %blankline() -%smallcredits(9, "SOUND COMPOSER") +%smallcredits("SOUND COMPOSER") %blankline() -%bigcredits(11, "KOJI KONDO") +%bigcredits("KOJI KONDO") %blankline() %blankline() -%smallcredits(10, "COORDINATORS") +%smallcredits("COORDINATORS") %blankline() -%bigcredits(11, "KEIZO KATO") +%bigcredits("KEIZO KATO") %blankline() -%bigcredits(9, "TAKAO SHIMIZU") +%bigcredits("TAKAO SHIMIZU") %blankline() %blankline() %preline() -%smallcredits(8, "PRINTED ART WORK") +%smallcredits("PRINTED ART WORK") %blankline() -%bigcredits(9, "YOICHI KOTABE") +%bigcredits("YOICHI KOTABE") %blankline() -%bigcredits(10, "HIDEKI FUJII") +%bigcredits("HIDEKI FUJII") %blankline() -%bigcredits(8, "YOSHIAKI KOIZUMI") +%bigcredits("YOSHIAKI KOIZUMI") %blankline() -%bigcredits(9, "YASUHIRO SAKAI") +%bigcredits("YASUHIRO SAKAI") %blankline() -%bigcredits(8, "TOMOAKI KUROUME") +%bigcredits("TOMOAKI KUROUME") %blankline() %blankline() -%smallcredits(7, "SPECIAL THANKS TO") +%smallcredits("SPECIAL THANKS TO") %blankline() -%bigcredits(9, "NOBUO OKAJIMA") +%bigcredits("NOBUO OKAJIMA") %blankline() -%bigcredits(7, "YASUNORI TAKETANI") +%bigcredits("YASUNORI TAKETANI") %blankline() -%bigcredits(10, "KIYOSHI KODA") +%bigcredits("KIYOSHI KODA") %blankline() -%bigcredits(7, "TAKAMITSU KUZUHARA") +%bigcredits("TAKAMITSU KUZUHARA") %blankline() -%bigcredits(9, "HIRONOBU KAKUI") +%bigcredits("HIRONOBU KAKUI") %blankline() -%bigcredits(7, "SHIGEKI YAMASHIRO") +%bigcredits("SHIGEKI YAMASHIRO") %blankline() @@ -347,100 +345,100 @@ CreditsLineBlank: ;--------------------------------------------------------------------------------------------------- -%smallcredits(4, "RANDOMIZER CONTRIBUTORS") +%smallcredits("RANDOMIZER CONTRIBUTORS") %blankline() %blankline() %preline() %preline() -%smallcredits(8, "ITEM RANDOMIZER") +%smallcredits("ITEM RANDOMIZER") %blankline() -%bigcredits(2, "KATDEVSGAMES VEETORP") +%bigcredits("KATDEVSGAMES VEETORP") %blankline() -%bigcredits(2, "CHRISTOSOWEN DESSYREQT") +%bigcredits("CHRISTOSOWEN DESSYREQT") %blankline() -%bigcredits(2, "SMALLHACKER SYNACK") +%bigcredits("SMALLHACKER SYNACK") %blankline() %blankline() -%smallcredits(6, "ENTRANCE RANDOMIZER") +%smallcredits("ENTRANCE RANDOMIZER") %blankline() -%bigcredits(2, "AMAZINGAMPHAROS LLCOOLDAVE") +%bigcredits("AMAZINGAMPHAROS LLCOOLDAVE") %blankline() -%bigcredits(9, "KEVINCATHCART") +%bigcredits("KEVINCATHCART") %blankline() %blankline() %preline() -%smallcredits(8, "ENEMY RANDOMIZER") +%smallcredits("ENEMY RANDOMIZER") %blankline() -%bigcredits(2, "ZARBY89 SOSUKE3") +%bigcredits("ZARBY89 SOSUKE3") %blankline() -%bigcredits(10, "ENDEROFGAMES") +%bigcredits("ENDEROFGAMES") %blankline() %blankline() -%smallcredits(8, "DOOR RANDOMIZER") +%smallcredits("DOOR RANDOMIZER") %blankline() -%bigcredits(2, "AERINON COMPILING") +%bigcredits("AERINON COMPILING") %blankline() %blankline() -%smallcredits(6, "FESTIVE RANDOMIZER") +%smallcredits("FESTIVE RANDOMIZER") %blankline() -%bigcredits(2, "KAN TOTAL") +%bigcredits("KAN TOTAL") %blankline() -%bigcredits(2, "CATOBAT DINSAPHIR") +%bigcredits("CATOBAT DINSAPHIR") %blankline() %blankline() -%smallcredits(7, "SPRITE DEVELOPMENT") +%smallcredits("SPRITE DEVELOPMENT") %blankline() %blankline() -%bigcredits(2, "MIKETRETHEWEY IBAZLY") +%bigcredits("MIKETRETHEWEY IBAZLY") %blankline() -%bigcredits(2, "FISH_WAFFLE64 KRELBEL") +%bigcredits("FISH_WAFFLE64 KRELBEL") %blankline() -%bigcredits(2, "TWROXAS ARTHEAU") +%bigcredits("TWROXAS ARTHEAU") %blankline() -%bigcredits(2, "GLAN TARTHORON") +%bigcredits("GLAN TARTHORON") %blankline() -%smallcredits(9, "YOUR SPRITE BY") +%smallcredits("YOUR SPRITE BY") %addarbline(YourSpriteCreditsHi) %addarbline(YourSpriteCreditsLo) @@ -448,60 +446,60 @@ CreditsLineBlank: %blankline() %blankline() -%smallcredits(10, "MSU1 SUPPORT") +%smallcredits("MSU1 SUPPORT") %blankline() -%bigcredits(2, "QWERTYMODO") +%bigcredits("QWERTYMODO") %blankline() %blankline() -%smallcredits(7, "PALETTE SHUFFLER") +%smallcredits("PALETTE SHUFFLER") %blankline() -%bigcredits(9, "NELSON AKA SWR") +%bigcredits("NELSON AKA SWR") %blankline() %blankline() -%smallcredits(9, "SPECIAL THANKS") +%smallcredits("SPECIAL THANKS") %blankline() %blankline() -%bigcredits(2, "SUPERSKUJ EVILASH25") +%bigcredits("SUPERSKUJ EVILASH25") %blankline() -%bigcredits(2, "MYRAMONG JOSHRTA") +%bigcredits("MYRAMONG JOSHRTA") %blankline() -%bigcredits(2, "WALKINGEYE MATHONNAPKINS") +%bigcredits("WALKINGEYE MATHONNAPKINS") %blankline() -%bigcredits(9, "SAKURATSUBASA") +%bigcredits("SAKURATSUBASA") %blankline() -%bigcredits(13, "AND...") +%bigcredits("AND...") %blankline() -%bigcredits(1, "THE ALTTP RANDOMIZER COMMUNITY") +%bigcredits("THE ALTTP RANDOMIZER COMMUNITY") %blankline() %blankline() -%smallcredits(7, "COMMUNITY DISCORD") +%smallcredits("COMMUNITY DISCORD") %blankline() %blankline() -%bigcredits(3, "HTTPS://ALTTPR.COM/DISCORD") +%bigcredits("HTTPS://ALTTPR.COM/DISCORD") %blankline() @@ -537,91 +535,91 @@ print "Line number: !CLINE | Expected: 302" ;=================================================================================================== -%smallcredits(6, "THE IMPORTANT STUFF") +%smallcredits("THE IMPORTANT STUFF") %blankline() %blankline() %preline() -%smallcredits(11, "TIME FOUND") +%smallcredits("TIME FOUND") %blankline() %blankline() -%bigcredits(2, "FIRST SWORD") +%bigcredits("FIRST SWORD") %blankline() -%bigcredits(2, "PEGASUS BOOTS") +%bigcredits("PEGASUS BOOTS") %blankline() -%bigcredits(2, "FLUTE") +%bigcredits("FLUTE") %blankline() -%bigcredits(2, "MIRROR") +%bigcredits("MIRROR") %blankline() %blankline() %preline() -%smallcredits(11, "BOSS KILLS") +%smallcredits("BOSS KILLS") %blankline() %blankline() -%bigcredits(2, "SWORDLESS /13") +%bigcredits("SWORDLESS /13") %blankline() -%bigcredits(2, "FIGHTER'S SWORD /13") +%bigcredits("FIGHTER'S SWORD /13") %blankline() -%bigcredits(2, "MASTER SWORD /13") +%bigcredits("MASTER SWORD /13") %blankline() -%bigcredits(2, "TEMPERED SWORD /13") +%bigcredits("TEMPERED SWORD /13") %blankline() -%bigcredits(2, "GOLD SWORD /13") +%bigcredits("GOLD SWORD /13") %blankline() %blankline() -%smallcredits(11, "GAME STATS") +%smallcredits("GAME STATS") %blankline() %blankline() -%bigcredits(2, "GT BIG KEY /22") +%bigcredits("GT BIG KEY /22") %blankline() -%bigcredits(2, "BONKS") +%bigcredits("BONKS") %blankline() -%bigcredits(2, "SAVE AND QUITS") +%bigcredits("SAVE AND QUITS") %blankline() -%bigcredits(2, "DEATHS") +%bigcredits("DEATHS") %blankline() -%bigcredits(2, "FAERIE REVIVALS") +%bigcredits("FAERIE REVIVALS") %blankline() -%bigcredits(2, "TOTAL MENU TIME") +%bigcredits("TOTAL MENU TIME") %blankline() -%bigcredits(2, "TOTAL LAG TIME") +%bigcredits("TOTAL LAG TIME") %blankline() %blankline() @@ -646,11 +644,11 @@ print "Line number: !CLINE | Expected: 302" %preline() %preline() %preline() -%bigcredits(2, "COLLECTION RATE /216") +%bigcredits("COLLECTION RATE /216") %blankline() -%bigcredits(2, "TOTAL TIME") +%bigcredits("TOTAL TIME") %blankline() From 975dd10db5ecacb470288fc4d451023ca18e6ca9 Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Tue, 13 Apr 2021 19:24:19 -0400 Subject: [PATCH 44/63] remove padding --- stats/creditsnew.asm | 52 ++++++++++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 21 deletions(-) diff --git a/stats/creditsnew.asm b/stats/creditsnew.asm index 0bbb20a..72a2f1d 100644 --- a/stats/creditsnew.asm +++ b/stats/creditsnew.asm @@ -41,12 +41,12 @@ endmacro ;--------------------------------------------------------------------------------------------------- -macro bigcredits(text) +macro addbigcredits(text, padding) !CLINE #= !CLINE+1 table "creditscharmapbighi.txt" ?line_top: - db (32-(?end-?text))/2 + db db 2*(?end-?text)-1 ?text: db "" @@ -59,7 +59,7 @@ macro bigcredits(text) table "creditscharmapbiglo.txt" ?line_bottom: - db (32-(?end-?text))/2 + db db 2*(?end-?text)-1 db "" @@ -71,6 +71,16 @@ macro bigcredits(text) endmacro +macro bigcredits(text) + addbigcredits("", (32-(?end-?text))/2) +endmacro + +;--------------------------------------------------------------------------------------------------- + +macro bigcreditsleft(text) + addbigcredits("", 2) +endmacro + ;--------------------------------------------------------------------------------------------------- macro preline() @@ -546,19 +556,19 @@ print "Line number: !CLINE | Expected: 302" %blankline() %blankline() -%bigcredits("FIRST SWORD") +%bigcreditsleft("FIRST SWORD") %blankline() -%bigcredits("PEGASUS BOOTS") +%bigcreditsleft("PEGASUS BOOTS") %blankline() -%bigcredits("FLUTE") +%bigcreditsleft("FLUTE") %blankline() -%bigcredits("MIRROR") +%bigcreditsleft("MIRROR") %blankline() %blankline() @@ -569,23 +579,23 @@ print "Line number: !CLINE | Expected: 302" %blankline() %blankline() -%bigcredits("SWORDLESS /13") +%bigcreditsleft("SWORDLESS /13") %blankline() -%bigcredits("FIGHTER'S SWORD /13") +%bigcreditsleft("FIGHTER'S SWORD /13") %blankline() -%bigcredits("MASTER SWORD /13") +%bigcreditsleft("MASTER SWORD /13") %blankline() -%bigcredits("TEMPERED SWORD /13") +%bigcreditsleft("TEMPERED SWORD /13") %blankline() -%bigcredits("GOLD SWORD /13") +%bigcreditsleft("GOLD SWORD /13") %blankline() %blankline() @@ -595,31 +605,31 @@ print "Line number: !CLINE | Expected: 302" %blankline() %blankline() -%bigcredits("GT BIG KEY /22") +%bigcreditsleft("GT BIG KEY /22") %blankline() -%bigcredits("BONKS") +%bigcreditsleft("BONKS") %blankline() -%bigcredits("SAVE AND QUITS") +%bigcreditsleft("SAVE AND QUITS") %blankline() -%bigcredits("DEATHS") +%bigcreditsleft("DEATHS") %blankline() -%bigcredits("FAERIE REVIVALS") +%bigcreditsleft("FAERIE REVIVALS") %blankline() -%bigcredits("TOTAL MENU TIME") +%bigcreditsleft("TOTAL MENU TIME") %blankline() -%bigcredits("TOTAL LAG TIME") +%bigcreditsleft("TOTAL LAG TIME") %blankline() %blankline() @@ -644,11 +654,11 @@ print "Line number: !CLINE | Expected: 302" %preline() %preline() %preline() -%bigcredits("COLLECTION RATE /216") +%bigcreditsleft("COLLECTION RATE /216") %blankline() -%bigcredits("TOTAL TIME") +%bigcreditsleft("TOTAL TIME") %blankline() From 12decaab452b252f296fda1e61d091fb329d14bd Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Tue, 13 Apr 2021 19:26:24 -0400 Subject: [PATCH 45/63] ah that wouldn't work --- stats/creditsnew.asm | 39 ++++++++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/stats/creditsnew.asm b/stats/creditsnew.asm index 72a2f1d..726e6b0 100644 --- a/stats/creditsnew.asm +++ b/stats/creditsnew.asm @@ -40,13 +40,12 @@ macro smallcredits(text) endmacro ;--------------------------------------------------------------------------------------------------- - -macro addbigcredits(text, padding) +macro bigcredits(text) !CLINE #= !CLINE+1 table "creditscharmapbighi.txt" ?line_top: - db + db (32-(?end-?text))/2 db 2*(?end-?text)-1 ?text: db "" @@ -59,7 +58,7 @@ macro addbigcredits(text, padding) table "creditscharmapbiglo.txt" ?line_bottom: - db + db (32-(?end-?text))/2 db 2*(?end-?text)-1 db "" @@ -71,14 +70,36 @@ macro addbigcredits(text, padding) endmacro -macro bigcredits(text) - addbigcredits("", (32-(?end-?text))/2) -endmacro - ;--------------------------------------------------------------------------------------------------- macro bigcreditsleft(text) - addbigcredits("", 2) + !CLINE #= !CLINE+1 + table "creditscharmapbighi.txt" + + ?line_top: + db 2 + db 2*(?end-?text)-1 + ?text: + db "" + ?end: + + pushpc + org CreditsLineTable+!CLINE+!CLINE : dw ?line_top + pullpc + + + table "creditscharmapbiglo.txt" + ?line_bottom: + db 2 + db 2*(?end-?text)-1 + db "" + + + !CLINE #= !CLINE+1 + pushpc + org CreditsLineTable+!CLINE+!CLINE : dw ?line_bottom + pullpc + endmacro ;--------------------------------------------------------------------------------------------------- From c179bfcb648b6462fc0e4c06e69f3d5ac545e00d Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Thu, 15 Apr 2021 02:19:16 -0400 Subject: [PATCH 46/63] credits update add color (thanks synack) add warning and errors for misalignment --- ...small.txt => creditscharmapsmall_green.txt | 0 creditscharmapsmall_red.txt | 27 +++ creditscharmapsmall_yellow.txt | 27 +++ stats/creditsnew.asm | 196 ++++++++++-------- 4 files changed, 158 insertions(+), 92 deletions(-) rename creditscharmapsmall.txt => creditscharmapsmall_green.txt (100%) create mode 100644 creditscharmapsmall_red.txt create mode 100644 creditscharmapsmall_yellow.txt diff --git a/creditscharmapsmall.txt b/creditscharmapsmall_green.txt similarity index 100% rename from creditscharmapsmall.txt rename to creditscharmapsmall_green.txt diff --git a/creditscharmapsmall_red.txt b/creditscharmapsmall_red.txt new file mode 100644 index 0000000..72c3092 --- /dev/null +++ b/creditscharmapsmall_red.txt @@ -0,0 +1,27 @@ + =9F +A=00 +B=01 +C=02 +D=03 +E=04 +F=05 +G=06 +H=07 +I=08 +J=09 +K=0A +L=0B +M=0C +N=0D +O=0E +P=0F +Q=10 +R=11 +S=12 +T=13 +U=14 +V=15 +W=16 +X=17 +Y=18 +Z=19 \ No newline at end of file diff --git a/creditscharmapsmall_yellow.txt b/creditscharmapsmall_yellow.txt new file mode 100644 index 0000000..ee3714d --- /dev/null +++ b/creditscharmapsmall_yellow.txt @@ -0,0 +1,27 @@ + =9F +A=1A +B=1B +C=1C +D=1D +E=1E +F=1F +G=20 +H=21 +I=22 +J=23 +K=24 +L=25 +M=26 +N=27 +O=28 +P=29 +Q=2A +R=2B +S=2C +T=2D +U=2E +V=2F +W=30 +X=31 +Y=32 +Z=33 \ No newline at end of file diff --git a/stats/creditsnew.asm b/stats/creditsnew.asm index 726e6b0..79fb5ed 100644 --- a/stats/creditsnew.asm +++ b/stats/creditsnew.asm @@ -22,9 +22,9 @@ CreditsLineTable: ;--------------------------------------------------------------------------------------------------- -macro smallcredits(text) +macro smallcredits(text, color) !CLINE #= !CLINE+1 - table "creditscharmapsmall.txt" + table "creditscharmapsmall_.txt" ?line: db (32-(?end-?text))/2 @@ -104,10 +104,10 @@ endmacro ;--------------------------------------------------------------------------------------------------- -macro preline() +macro emptyline() !CLINE #= !CLINE+1 pushpc - org CreditsLineTable+!CLINE+!CLINE : dw CreditsPreLine + org CreditsLineTable+!CLINE+!CLINE : dw CreditsEmptyLine pullpc endmacro @@ -127,7 +127,7 @@ endmacro ;=================================================================================================== -CreditsPreLine: +CreditsEmptyLine: db $00, $01, $9F CreditsLineBlank: @@ -135,13 +135,13 @@ CreditsLineBlank: ;--------------------------------------------------------------------------------------------------- -%preline() -%smallcredits("ORIGINAL GAME STAFF") +%emptyline() +%smallcredits("ORIGINAL GAME STAFF", "yellow") %blankline() -%preline() -%smallcredits("EXECUTIVE PRODUCER") +%emptyline() +%smallcredits("EXECUTIVE PRODUCER", "green") %blankline() @@ -150,9 +150,9 @@ CreditsLineBlank: %blankline() %blankline() -%preline() +%emptyline() -%smallcredits("PRODUCER") +%smallcredits("PRODUCER", "yellow") %blankline() @@ -161,7 +161,7 @@ CreditsLineBlank: %blankline() %blankline() -%smallcredits("DIRECTOR") +%smallcredits("DIRECTOR", "red") %blankline() @@ -170,7 +170,7 @@ CreditsLineBlank: %blankline() %blankline() -%smallcredits("SCRIPT WRITER") +%smallcredits("SCRIPT WRITER", "green") %blankline() @@ -179,8 +179,8 @@ CreditsLineBlank: %blankline() %blankline() -%preline() -%smallcredits("ASSISTANT DIRECTORS") +%emptyline() +%smallcredits("ASSISTANT DIRECTORS", "yellow") %blankline() %blankline() @@ -194,12 +194,12 @@ CreditsLineBlank: %blankline() %blankline() -%smallcredits("SCREEN GRAPHICS DESIGNERS") +%smallcredits("SCREEN GRAPHICS DESIGNERS", "green") -%preline() -%preline() -%smallcredits("OBJECT DESIGNERS") +%emptyline() +%emptyline() +%smallcredits("OBJECT DESIGNERS", "yellow") %blankline() @@ -212,8 +212,8 @@ CreditsLineBlank: %blankline() %blankline() -%preline() -%smallcredits("BACK GROUND DESIGNERS") +%emptyline() +%smallcredits("BACK GROUND DESIGNERS", "yellow") %blankline() %blankline() @@ -227,7 +227,7 @@ CreditsLineBlank: %blankline() %blankline() -%smallcredits("PROGRAM DIRECTOR") +%smallcredits("PROGRAM DIRECTOR", "red") %blankline() @@ -236,7 +236,7 @@ CreditsLineBlank: %blankline() %blankline() -%smallcredits("MAIN PROGRAMMER") +%smallcredits("MAIN PROGRAMMER", "yellow") %blankline() @@ -245,7 +245,7 @@ CreditsLineBlank: %blankline() %blankline() -%smallcredits("OBJECT PROGRAMMER") +%smallcredits("OBJECT PROGRAMMER", "green") %blankline() @@ -254,9 +254,9 @@ CreditsLineBlank: %blankline() %blankline() -%preline() +%emptyline() -%smallcredits("PROGRAMMERS") +%smallcredits("PROGRAMMERS", "yellow") %blankline() @@ -293,7 +293,7 @@ CreditsLineBlank: %blankline() %blankline() -%smallcredits("SOUND COMPOSER") +%smallcredits("SOUND COMPOSER", "red") %blankline() @@ -302,7 +302,7 @@ CreditsLineBlank: %blankline() %blankline() -%smallcredits("COORDINATORS") +%smallcredits("COORDINATORS", "green") %blankline() @@ -315,8 +315,8 @@ CreditsLineBlank: %blankline() %blankline() -%preline() -%smallcredits("PRINTED ART WORK") +%emptyline() +%smallcredits("PRINTED ART WORK", "yellow") %blankline() @@ -341,7 +341,7 @@ CreditsLineBlank: %blankline() %blankline() -%smallcredits("SPECIAL THANKS TO") +%smallcredits("SPECIAL THANKS TO", "red") %blankline() @@ -369,21 +369,21 @@ CreditsLineBlank: %blankline() -%preline() -%preline() -%preline() -%preline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() ;--------------------------------------------------------------------------------------------------- -%smallcredits("RANDOMIZER CONTRIBUTORS") +%smallcredits("RANDOMIZER CONTRIBUTORS", "red") %blankline() %blankline() -%preline() -%preline() -%smallcredits("ITEM RANDOMIZER") +%emptyline() +%emptyline() +%smallcredits("ITEM RANDOMIZER", "yellow") %blankline() @@ -400,7 +400,7 @@ CreditsLineBlank: %blankline() %blankline() -%smallcredits("ENTRANCE RANDOMIZER") +%smallcredits("ENTRANCE RANDOMIZER", "green") %blankline() @@ -413,8 +413,8 @@ CreditsLineBlank: %blankline() %blankline() -%preline() -%smallcredits("ENEMY RANDOMIZER") +%emptyline() +%smallcredits("ENEMY RANDOMIZER", "yellow") %blankline() @@ -427,7 +427,7 @@ CreditsLineBlank: %blankline() %blankline() -%smallcredits("DOOR RANDOMIZER") +%smallcredits("DOOR RANDOMIZER", "green") %blankline() @@ -436,7 +436,7 @@ CreditsLineBlank: %blankline() %blankline() -%smallcredits("FESTIVE RANDOMIZER") +%smallcredits("FESTIVE RANDOMIZER", "yellow") %blankline() @@ -449,7 +449,7 @@ CreditsLineBlank: %blankline() %blankline() -%smallcredits("SPRITE DEVELOPMENT") +%smallcredits("SPRITE DEVELOPMENT", "green") %blankline() %blankline() @@ -469,7 +469,7 @@ CreditsLineBlank: %blankline() -%smallcredits("YOUR SPRITE BY") +%smallcredits("YOUR SPRITE BY", "yellow") %addarbline(YourSpriteCreditsHi) %addarbline(YourSpriteCreditsLo) @@ -477,7 +477,7 @@ CreditsLineBlank: %blankline() %blankline() -%smallcredits("MSU1 SUPPORT") +%smallcredits("MSU1 SUPPORT", "green") %blankline() @@ -486,7 +486,7 @@ CreditsLineBlank: %blankline() %blankline() -%smallcredits("PALETTE SHUFFLER") +%smallcredits("PALETTE SHUFFLER", "YELLOW") %blankline() @@ -495,7 +495,7 @@ CreditsLineBlank: %blankline() %blankline() -%smallcredits("SPECIAL THANKS") +%smallcredits("SPECIAL THANKS", "red") %blankline() %blankline() @@ -525,7 +525,7 @@ CreditsLineBlank: %blankline() %blankline() -%smallcredits("COMMUNITY DISCORD") +%smallcredits("COMMUNITY DISCORD", "green") %blankline() %blankline() @@ -534,45 +534,57 @@ CreditsLineBlank: %blankline() -%preline() -%preline() -%preline() -%preline() -%preline() -%preline() -%preline() -%preline() -%preline() -%preline() -%preline() -%preline() -%preline() -%preline() -%preline() -%preline() -%preline() -%preline() -%preline() -%preline() -%preline() -%preline() -%preline() -%preline() -%preline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() ;=================================================================================================== print "Line number: !CLINE | Expected: 302" +if !CLINE > 302 + error "Too many credits lines. !CLINE > 302" + +elseif !CLINE < 302 + warn "Too few credits lines. !CLINE < 302; Adding additional empties for alignment." + +endif + + +; Set line always to line up with stats +!CLINE #= 302 + ;=================================================================================================== -%smallcredits("THE IMPORTANT STUFF") +%smallcredits("THE IMPORTANT STUFF", "yellow") %blankline() %blankline() -%preline() -%smallcredits("TIME FOUND") +%emptyline() +%smallcredits("TIME FOUND", "green") %blankline() %blankline() @@ -594,8 +606,8 @@ print "Line number: !CLINE | Expected: 302" %blankline() %blankline() -%preline() -%smallcredits("BOSS KILLS") +%emptyline() +%smallcredits("BOSS KILLS", "yellow") %blankline() %blankline() @@ -621,7 +633,7 @@ print "Line number: !CLINE | Expected: 302" %blankline() %blankline() -%smallcredits("GAME STATS") +%smallcredits("GAME STATS", "red") %blankline() %blankline() @@ -670,11 +682,11 @@ print "Line number: !CLINE | Expected: 302" %blankline() -%preline() -%preline() -%preline() -%preline() -%preline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() %bigcreditsleft("COLLECTION RATE /216") %blankline() @@ -683,12 +695,12 @@ print "Line number: !CLINE | Expected: 302" %blankline() -%preline() -%preline() -%preline() -%preline() -%preline() -%preline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() ;--------------------------------------------------------------------------------------------------- From bc91aac5509b5004d633ef6dbda242a8e04ae994 Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Fri, 16 Apr 2021 01:41:24 -0400 Subject: [PATCH 47/63] provide unchanging address for memeforce --- LTTP_RND_GeneralBugfixes.asm | 2 +- newitems.asm | 2 + newitems2.asm | 825 ----------------------------------- 3 files changed, 3 insertions(+), 826 deletions(-) delete mode 100644 newitems2.asm diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index f3f4480..320c417 100644 --- a/LTTP_RND_GeneralBugfixes.asm +++ b/LTTP_RND_GeneralBugfixes.asm @@ -96,6 +96,7 @@ incsrc sharedplayerpalettefix.asm ;org $208000 ; bank #$20 org $A08000 ; bank #$A0 +incsrc newitems.asm ; LEAVE THIS AS FIRST incsrc itemdowngrade.asm incsrc bugfixes.asm incsrc darkworldspawn.asm @@ -124,7 +125,6 @@ incsrc catfish.asm incsrc flute.asm incsrc dungeondrops.asm incsrc halfmagicbat.asm -incsrc newitems.asm incsrc mantle.asm incsrc swordswap.asm incsrc stats.asm diff --git a/newitems.asm b/newitems.asm index cc8ded7..5289795 100755 --- a/newitems.asm +++ b/newitems.asm @@ -529,6 +529,8 @@ AddReceivedItemExpanded: ;-------------------------------------------------------------------------------- ;DATA AddReceivedItemExpanded { +; This is a temporary measure for Fish to have consistent addresses +org $A08800 .y_offsets db -5, -5, -5, -5, -5, -4, -4, -5 diff --git a/newitems2.asm b/newitems2.asm deleted file mode 100644 index 4bfaa77..0000000 --- a/newitems2.asm +++ /dev/null @@ -1,825 +0,0 @@ -;=============================================================================== -; Complete fucking revamp of how item get works -;=============================================================================== - -Ancilla_ReceiveItem_rupee_anim_tiles: - db $24, $25, $26 - -Ancilla_ReceiveItem_rupee_anim_timers: - db 9, 5, 5 - -Ancilla_ReceiveItem_oam_props: - db $05, $01, $04 - -Ancilla_ReceiveItem_hp_messages: - dw -1, $0155, $0156, $0157 - - - - - - -AddReceiveItem: - - - - - - - -.routine - fillword $0000 : fill $FF*2 - -.y_offsets - fillbyte $00 : fill $FF - -.x_offsets - fillbyte $00 : fill $FF - -.gfx_offsets - fillword $0000 : fill $FF*2 - -.wideness - fillbyte $00 : fill $FF - -.pal - fillbyte $00 : fill $FF - -.sram_addr - fillword $0000 : fill $FF*2 - -.sram_write - fillbyte $00 : fill $FF - -.message - fillbyte $00 : fill $FF - -.sound - fillbyte $00 : fill $FF - -; Pal defines: -!r = 1 ; red -!b = 2 ; blue -!g = 4 ; green -!e = 5 ; sword/shield - -!t = $00 ; not wide -!w = $80 ; wide - -; song storage -; top 2 bits = which address to write -; 00 $00 Song -; 01 $40 SFX1 -; 10 $80 SFX2 -; 11 $C0 SFX3 -; bottom 6 bits = data to write - -!sfxsong = $00<<6 -!sfx1 = $01<<6 -!sfx2 = $02<<6 -!sfx3 = $03<<6 - -!dodododo = $0F|!sfx3 -!badgesong = $13|!sfxsong -!hpsfx = $2D|!sfx3 -!hcsfx = $0D|!sfx3 - -!itemx = -1 -macro ritem(name, routine, y_off, x_off, gfx_off, oam_props, sram_addr, sram_write, message, sfx) - !itemx #= !itemx+1 - !get_ #= !itemx - - #g: - pushpc - ; routine points to either a general handler - ; or a specific routine for this item or class of items - org AddReceiveItem_routine+!itemx*2 : dw - - ; gfx dictates an offset into uncompressed 4bpp graphics data - org AddReceiveItem_gfx_offsets+!itemx*2 : dw - - - ;org AddReceiveItem_routine+!itemx*2 : dw - ;org AddReceiveItem_y_offsets+!itemx : db - ;org AddReceiveItem_x_offsets+!itemx : db - ;org AddReceiveItem_gfx_offsets+!itemx*2 : dw - ;org AddReceiveItem_wideness+!itemx : db - ;org AddReceiveItem_pal+!itemx : db

- - ; SRAM address is an - org AddReceiveItem_sram_addr+!itemx*2 : dw - org AddReceiveItem_sram_write+!itemx : db - ;org AddReceiveItem_message+!itemx : db - ;org AddReceiveItem_sound+!itemx : db - pullpc -endmacro - -;=============================================================================== -; Vanilla Items -%ritem("fighter_sword", .directWrite,\ ; name, routine - -5, 4, $0420, !THIN|!e,\ ; OAM y/x offset, GFX char offset, props - $F359, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("master_sword", .directWrite,\ ; name, routine - -5, 4, $09C0, !THIN|!e,\ ; OAM y/x offset, GFX char offset, props - $F359, 2,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("tempered_sword", .directWrite,\ ; name, routine - -5, 4, $09C0, !THIN|!e,\ ; OAM y/x offset, GFX char offset, props - $F359, 3,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("butter_sword", .directWrite,\ ; name, routine - -5, 4, $09C0, !THIN|!e,\ ; OAM y/x offset, GFX char offset, props - $F359, 4,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("fighter_shield", .fighterShield,\ ; name, routine - -5, 4, $11E0, !THIN|!e,\ ; OAM y/x offset, GFX char offset, props - $F35A, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("red_shield", .directWrite,\ ; name, routine - -4, 0, $0140, !WIDE|!e,\ ; OAM y/x offset, GFX char offset, props - $F35A, 2,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("mirror_shield", .directWrite,\ ; name, routine - -4, 0, $1480, !WIDE|!e,\ ; OAM y/x offset, GFX char offset, props - $F35A, 3,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("fire_rod", .directWrite,\ ; name, routine - -5, 4, $0480, !THIN|!r,\ ; OAM y/x offset, GFX char offset, props - $F345, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - - -; $08 -%ritem("ice_rod", .directWrite,\ ; name, routine - -5, 4, $0480, !THIN|!b,\ ; OAM y/x offset, GFX char offset, props - $F346, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("hammer", .directWrite,\ ; name, routine - -4, 4, $04A0, !THIN|!r,\ ; OAM y/x offset, GFX char offset, props - $F34B, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("hookshot", .directWrite,\ ; name, routine - -4, 4, $0460, !THIN|!r,\ ; OAM y/x offset, GFX char offset, props - $F342, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("bow", .directWrite,\ ; name, routine - -4, 4, $0400, !THIN|!r,\ ; OAM y/x offset, GFX char offset, props - $F340, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("boomerang", .directWrite,\ ; name, routine - -2, 5, $05E0, !THIN|!b,\ ; OAM y/x offset, GFX char offset, props - $F341, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("powder", .directWrite,\ ; name, routine - -4, 0, $04C0, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props - $F344, 2,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("bee", .bottles,\ ; name, routine - -4, 0, $11A0, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props - $F35C, 7,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("bombos", .directWrite,\ ; name, routine - -4, 4, $0C40, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props - $F347, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - - -; $10 -%ritem("ether", .directWrite,\ ; name, routine - -4, 0, $0C00, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props - $F348, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("quake", .directWrite,\ ; name, routine - -4, 0, $0C80, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props - $F349, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("lamp", .directWrite,\ ; name, routine - -4, 0, $08C0, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props - $F34A, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("shovel", .directWrite,\ ; name, routine - -4, 4, $09E0, !THIN|!r,\ ; OAM y/x offset, GFX char offset, props - $F34C, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("flute", .directWrite,\ ; name, routine - -4, 0, $1440, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props - $F34C, 3,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("somaria", .directWrite,\ ; name, routine - -4, 4, $0440, !THIN|!r,\ ; OAM y/x offset, GFX char offset, props - $F350, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("bottle", .newBottle,\ ; name, routine - -4, 0, $0CC0, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props - $F35C, 0,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("hp", .hp,\ ; name, routine - -4, 0, $1400, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props - $F36B, 0,\ ; SRAM address, SRAM value - $FFFF,!hpsfx) ; Message, Sound - - - -; $18 -%ritem("byrna", .directWrite,\ ; name, routine - -4, 4, $0440, !THIN|!b,\ ; OAM y/x offset, GFX char offset, props - $F351, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("cape", .directWrite,\ ; name, routine - -4, 0, $0900, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props - $F352, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("mirror", .directWrite,\ ; name, routine - -4, 0, $0840, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props - $F353, 2,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("glove", .directWrite,\ ; name, routine - -4, 0, $0540, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props - $F354, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("mitts", .directWrite,\ ; name, routine - -4, 0, $0540, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props - $F354, 2,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("book", .directWrite,\ ; name, routine - -4, 0, $0580, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props - $F34E, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("flippers", .flippers,\ ; name, routine - -4, 0, $0800, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props - $F356, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("pearl", .directWrite,\ ; name, routine - -4, 0, $0980, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props - $F357, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - - -; $20 -%ritem("crystal", .palaceItem,\ ; name, routine - -4, 0, $10A0, !WIDE|6,\ ; OAM y/x offset, GFX char offset, props - $F37A, 0,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("net", .directWrite,\ ; name, routine - -4, 0, $1060, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props - $F34D, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("blue_mail", .blueMail,\ ; name, routine - -4, 0, $0100, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props - $F35B, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("red_mail", .directWrite,\ ; name, routine - -5, 0, $0100, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props - $F35B, 2,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("key", .addKey,\ ; name, routine - -4, 4, $05C0, !THIN|!b,\ ; OAM y/x offset, GFX char offset, props - $F36F, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("compass", .palaceItem,\ ; name, routine - -4, 0, $0940, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props - $F364, 0,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("4hp", .4hp,\ ; name, routine - -4, 0, $00C0, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props - $F36C, 0,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("bomb", .addBombs,\ ; name, routine - -4, 0, $0880, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props - $F375, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - - -; $28 -%ritem("3_bombs", .addBombs,\ ; name, routine - -4, 0, $0040, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props - $F375, 3,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("mushroom", .mushroom,\ ; name, routine - -4, 0, $0D40, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props - $F344, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("red_boomerang", .directWrite,\ ; name, routine - -2, 5, $05E0, !THIN|!r,\ ; OAM y/x offset, GFX char offset, props - $F341, 2,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("red_cauldron", .bottles,\ ; name, routine - -4, 0, $0000, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props - $F35C, 3,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("green_cauldron", .bottles,\ ; name, routine - -4, 0, $0000, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props - $F35C, 4,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("blue_cauldron", .bottles,\ ; name, routine - -4, 0, $0000, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props - $F35C, 5,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("red_cauldron2", .bottles,\ ; name, routine - -4, 0, $0000, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props - $F36D, 0,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("green_cauldron2", .bottles,\ ; name, routine - -4, 0, $0000, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props - $F36E, 0,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - - -; $30 -%ritem("blue_cauldron2", .bottles,\ ; name, routine - -4, 0, $0000, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props - $F36E, 0,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("10_bombs", .addBombs,\ ; name, routine - -4, 0, $0500, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props - $F375, 10,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("big_key", .palaceItem,\ ; name, routine - -4, 0, $0DC0, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props - $F366, 0,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("map", .palaceItem,\ ; name, routine - -4, 0, $0D80, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props - $F368, 0,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("1_rupee", .addRupees,\ ; name, routine - -2, 4, $1000, !THIN|!g,\ ; OAM y/x offset, GFX char offset, props - $F360, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("5_rupees", .addRupees,\ ; name, routine - -2, 4, $1000, !THIN|!b,\ ; OAM y/x offset, GFX char offset, props - $F360, 5,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("20_rupees", .addRupees,\ ; name, routine - -2, 4, $1000, !THIN|!r,\ ; OAM y/x offset, GFX char offset, props - $F360, 20,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("green_pendant", .palaceItem,\ ; name, routine - -4, 0, $1880, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props - $F374, 0,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - - -; $38 -%ritem("blue_pendant", .palaceItem,\ ; name, routine - -4, 0, $1880, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props - $F374, 0,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("red_pendant", .palaceItem,\ ; name, routine - -4, 0, $1880, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props - $F374, 0,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("tossed_bow", .directWrite,\ ; name, routine - -4, 0, $1120, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props - $F340, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("silvers", .directWrite,\ ; name, routine - -4, 0, $10E0, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props - $F340, 3,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("good_bee", .bottles,\ ; name, routine - -4, 0, $11A0, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props - $F35C, 7,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("fairy", .bottles,\ ; name, routine - -4, 0, $1160, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props - $F35C, 6,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("boss_hc", .hc,\ ; name, routine - -4, 0, $00C0, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props - $F36C, 0,\ ; SRAM address, SRAM value - $FFFF,!hcsfx) ; Message, Sound - - -%ritem("sanc_hc", .4hp,\ ; name, routine - -4, 0, $00C0, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props - $F36C, 0,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - - -; $40 -%ritem("100_rupees", .addRupees,\ ; name, routine - -4, 0, $1520, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props - $F360, 100,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("50_rupees", .addRupees,\ ; name, routine - -4, 0, $1560, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props - $F360, 50,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("heart", .addHeart,\ ; name, routine - -2, 4, $14C0, !THIN|!r,\ ; OAM y/x offset, GFX char offset, props - $F372, 8,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("arrow", .addArrows,\ ; name, routine - -2, 4, $1500, !THIN|!b,\ ; OAM y/x offset, GFX char offset, props - $F376, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("10_arrows", .addArrows,\ ; name, routine - -4, 0, $0080, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props - $F376, 10,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("small_magic", .addMagic,\ ; name, routine - -2, 4, $14E0, !THIN|!g,\ ; OAM y/x offset, GFX char offset, props - $F373, 16,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("300_rupees", .add300Rupees,\ ; name, routine - -4, 0, $15A0, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props - $F360, 0,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("20_rupees_green", .addRupees,\ ; name, routine - -4, 0, $1800, !WIDE|!g,\ ; OAM y/x offset, GFX char offset, props - $F360, 20,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - - -; $48 -%ritem("gold_bee", .bottles,\ ; name, routine - -4, 0, $11A0, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props - $F35C, 8,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("tossed_fighter_sword", .directWrite,\ ; name, routine - -5, 4, $0420, !THIN|!e,\ ; OAM y/x offset, GFX char offset, props - $F359, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("active_flute", .directWrite,\ ; name, routine - -4, 0, $1440, !WIDE|!b,\ ; OAM y/x offset, GFX char offset, props - $F34C, 3,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("boots", .boots,\ ; name, routine - -4, 0, $1840, !WIDE|!r,\ ; OAM y/x offset, GFX char offset, props - $F355, 1,\ ; SRAM address, SRAM value - $FFFF,!dodododo) ; Message, Sound - - -%ritem("Bomb_50" -%ritem("Arrow_70" -%ritem("Half_Magic" -%ritem("Quarter_Magic" - -; $50 -%ritem("Safe_MS" -%ritem("Bomb_plus5" -%ritem("Bomb_plus10" -%ritem("Arrow_plus5" -%ritem("Arrow_plus10" -%ritem("PRGM_1" -%ritem("PRGM_2" -%ritem("PRGM_3" - -; $58 -%ritem("Upgrade_Silvers" -%ritem("Rupoor" -%ritem("NULL" -%ritem("Clock_red" -%ritem("Clock_blue" -%ritem("Clock_green" -%ritem("Prog_Sword" -%ritem("Prog_Shield" - -; $60 -%ritem("Prog_Mail" -%ritem("Prog_Glove" -%ritem("RNG_Single" -%ritem("RNG_Multi" -%ritem("Prog_Bow" -%ritem("Prog_Bow" -%ritem( -%ritem( - -; $68 -%ritem( -%ritem( -%ritem("Goal_Trifoce" -%ritem("Goal_Multi_Star" -%ritem("Goal_Multi_Triforce" -%ritem("Server_F0" -%ritem("Server_F1" -%ritem("Server_F2" - -; $70 -%ritem(" -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( - -; $78 -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( - -; $80 -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( - -; $88 -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( - -; $90 -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( - -; $98 -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( - -; $A0 -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( - -; $A8 -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( - -; $B0 -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( - -; $B8 -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( - -; $C0 -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( - -; $C8 -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( - -; $D0 -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( - -; $D8 -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( - -; $E0 -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( - -; $E8 -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( - -; $F0 -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( - -; $F8 -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem( -%ritem("Server_async" -%ritem("NULL_2" - - - - - -org $08C3AE -Ancilla_ReceiveItem: - - From 6a34b5cbc4a94336b0981f9b13d3539fa2c515c5 Mon Sep 17 00:00:00 2001 From: cassidy Date: Wed, 21 Apr 2021 13:34:10 -0400 Subject: [PATCH 48/63] Flash toggle rough draft --- LTTP_RND_GeneralBugfixes.asm | 2 +- accessability.asm | 36 ------------ accessibility.asm | 108 +++++++++++++++++++++++++++++++++++ hooks.asm | 17 ++++-- tables.asm | 6 +- 5 files changed, 127 insertions(+), 42 deletions(-) delete mode 100644 accessability.asm create mode 100644 accessibility.asm diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index e7df23e..1806295 100644 --- a/LTTP_RND_GeneralBugfixes.asm +++ b/LTTP_RND_GeneralBugfixes.asm @@ -134,7 +134,7 @@ incsrc msu.asm incsrc dialog.asm incsrc entrances.asm incsrc clock.asm -incsrc accessability.asm +incsrc accessibility.asm incsrc heartbeep.asm incsrc capacityupgrades.asm incsrc timer.asm diff --git a/accessability.asm b/accessability.asm deleted file mode 100644 index 46dba25..0000000 --- a/accessability.asm +++ /dev/null @@ -1,36 +0,0 @@ -;================================================================================ -; Accessability Fixes -;================================================================================ -FlipGreenPendant: - LDA $0C : CMP #$38 : BNE + ; check if we have green pendant - ORA #$40 : STA $0C ; flip it - + - - LDA $0D : STA $0802, X ; stuff we wrote over "Set CHR, palette, and priority of the sprite" - LDA $0C : STA $0803, X -RTL -;================================================================================ -!EPILEPSY_TIMER = "$7F5041" -SetEtherFlicker: - LDA.l Seizure_Safety : BNE + - LDA $031D : CMP.b #$0B : RTL - + - LDA !EPILEPSY_TIMER : INC : STA !EPILEPSY_TIMER - - LDA.l Seizure_Safety : CMP !EPILEPSY_TIMER : BNE +++ - LDA.b #$00 : STA !EPILEPSY_TIMER : BRA ++ - +++ - LSR : CMP !EPILEPSY_TIMER : !BLT ++ - SEP #$02 : RTL - ++ - REP #$02 - + -RTL -;================================================================================ -SetAttractMaidenFlicker: - LDA.l Seizure_Safety : BNE + - JSL.l Filter_MajorWhitenMain : LDA $5F : RTL - + - LDA #$00 -RTL -;================================================================================ \ No newline at end of file diff --git a/accessibility.asm b/accessibility.asm new file mode 100644 index 0000000..9c7a4c7 --- /dev/null +++ b/accessibility.asm @@ -0,0 +1,108 @@ +;================================================================================ +; Accessability Fixes +;================================================================================ +FlipGreenPendant: + LDA $0C : CMP #$38 : BNE + ; check if we have green pendant + ORA #$40 : STA $0C ; flip it + + + + LDA $0D : STA $0802, X ; stuff we wrote over "Set CHR, palette, and priority of the sprite" + LDA $0C : STA $0803, X +RTL +;================================================================================ +!EPILEPSY_TIMER = "$7F5041" +SetEtherFlicker: + LDA.l Seizure_Safety : BNE + + LDA $031D : CMP.b #$0B : RTL + + + LDA !EPILEPSY_TIMER : INC : STA !EPILEPSY_TIMER + + LDA.l Seizure_Safety : CMP !EPILEPSY_TIMER : BNE +++ + LDA.b #$00 : STA !EPILEPSY_TIMER : BRA ++ + +++ + LSR : CMP !EPILEPSY_TIMER : !BLT ++ + SEP #$02 : RTL + ++ + REP #$02 + + +RTL +;================================================================================ +ConditionalLightning: + CMP.b #$05 : BEQ ++ + CMP.b #$2C : BEQ ++ + CMP.b #$5A : BEQ ++ + LDA.l DisableFlashing : BNE ++ + LDA.b #$32 : STA.w $9A + RTL + ++ + LDA.b #$72 + STA $9A + +RTL +;================================================================================ +ConditionalWhitenColor: + PHA + STA $00 + AND.w #$001F : ADC.w #$000E + CMP.w #$001F : BCC + + LDA.w #$001F + + + STA $02 + LDA $00 : AND.w #$03E0 : ADC.w #$01C0 + CMP.w #$03E0 : BCC + + LDA.w #$03E0 + + + STA $04 + LDA $00 : AND.w #$7C00 : ADC.w #$3800 + CMP.w #$7C00 : BCC + + LDA.w #$7C00 + + + ORA $02 : ORA $04 + PHA + LDA.l DisableFlashing : BNE + + PLA : PLY : PLY + RTL + + + PLA : PLA : LDY $0000 + +RTL +;================================================================================ +DDMConditionalLightning: + LDA.l DisableFlashing + REP #$20 + BNE + + LDA.w $0000 + LDX.b #$02 + JML $07FA7F + + + LDA.b $00 + - + LDA $F4EB, Y : LDA $7EC560, X + LDA $F4F9, Y : LDA $7EC570, X + LDA $F507, Y : LDA $7EC590, X + LDA $F515, Y : LDA $7EC5E0, X + LDA $F523, Y : LDA $7EC5F0, X + INY #2 + INX #2 : CPX.b #$10 : BNE - + + LDX.b #$02 + JML $07FAAC + +;================================================================================ +ConditionalGTFlash: + LDA.l DisableFlashing : BNE + + REP #$20 + BNE + + LDA $0000 + - + LDA $F9C1, Y : STA $7EC5D0, X + INY #2 + INX #2 : CPX.b #$10 : BNE - + RTL + + + LDA $00 + -- + LDA $F9C1, Y : LDA $7EC5D0, X + INY #2 + INX #2 : CPX.b #$10 : BNE -- +RTL diff --git a/hooks.asm b/hooks.asm index 2e26c7d..9c72e80 100755 --- a/hooks.asm +++ b/hooks.asm @@ -731,7 +731,7 @@ dw $0000, $0002, $0004, $0032, $0004, $0006, $0030 ;-------------------------------------------------------------------------------- ;================================================================================ -; Accessability +; Accessibility ;-------------------------------------------------------------------------------- ;org $0AC574 ; <- 54574 - Bank0A.asm : 1797 (LDA $0D : STA $0802, X) ;JSL FlipGreenPendant @@ -740,10 +740,19 @@ dw $0000, $0002, $0004, $0032, $0004, $0006, $0030 org $08AAE1 ; <- 42AE1 - ancilla_ether_spell.asm : 28 (LDA $031D : CMP.b #$0B) JSL.l SetEtherFlicker : NOP ;-------------------------------------------------------------------------------- -org $0CF37B ; <- 6737B - Bank0C.asm : 5055 (JSL Filter_MajorWhitenMain) -JSL.l SetAttractMaidenFlicker : NOP #2 +org $02A3F4 ; <- 123F4 - Bank02.asm : 6222 (LDA.b #$72 : BRA .setBrightness) +BRA + : NOP #2 +org $02A3FD ; <- 123FD - Bank02.asm : 6233 (LDA.b #$32 : STA $9a) ++ : JSL.l ConditionalLightning ;-------------------------------------------------------------------------------- - +org $02FEAB ; <- 17EAB - Bank0E.asm : 3826 (REP #$20 : LDX.b #$00) +JSL.l ConditionalWhitenColor : RTS +;-------------------------------------------------------------------------------- +org $07FA7B ; <- 3FA7B - Bank0E.asm : 4735 (REP #$20 : LDX.b #$02) +JML DDMConditionalLightning +;-------------------------------------------------------------------------------- +org $07FACB ; <- 3FACB - Bank0E.asm : 4773 (REP #$20 : LDA #$F531, Y) +JSL.l ConditionalGTFlash : BRA + : NOP #11 : + ;================================================================================ ; Ice Floor Toggle ;-------------------------------------------------------------------------------- diff --git a/tables.asm b/tables.asm index 93204e8..4403f6b 100644 --- a/tables.asm +++ b/tables.asm @@ -916,7 +916,11 @@ db #$00 RainDeathRefillArrows_Mantle: db #$00 ;================================================================================ -; 0x18018E - 0x18018F (unused) +org $30818E ; PC 0x18018E +DisableFlashing: +db $00 ; $00 = Flashing enabled (default) $01 = Flashing disabled +;================================================================================ +; 0x18018F (unused) ;================================================================================ org $308190 ; PC 0x180190 - 0x180192 TimerStyle: From 452a2db03d8667291157d5fe833cf59b0391a5bf Mon Sep 17 00:00:00 2001 From: cassidy Date: Thu, 22 Apr 2021 17:05:04 -0400 Subject: [PATCH 49/63] Aga 2 flashing --- accessibility.asm | 17 +++++++++++++++++ hooks.asm | 3 +++ 2 files changed, 20 insertions(+) diff --git a/accessibility.asm b/accessibility.asm index 9c7a4c7..992a662 100644 --- a/accessibility.asm +++ b/accessibility.asm @@ -106,3 +106,20 @@ ConditionalGTFlash: INY #2 INX #2 : CPX.b #$10 : BNE -- RTL +;================================================================================ +ConditionalRedFlash: + REP #$20 + LDA.l DisableFlashing : BEQ + + LDA $00,X + LDA.w #$1D59 : LDA $7EC5DA + LDA.w #$25FF : LDA $7EC5DC + LDA.w #$0000 + RTL + + + + LDA $00 + LDA.w #$1D59 : STA $7EC5DA + LDA.w #$25FF : STA $7EC5DC + LDA.w #$001A + +RTL diff --git a/hooks.asm b/hooks.asm index 9c72e80..bc29af5 100755 --- a/hooks.asm +++ b/hooks.asm @@ -753,6 +753,9 @@ JML DDMConditionalLightning ;-------------------------------------------------------------------------------- org $07FACB ; <- 3FACB - Bank0E.asm : 4773 (REP #$20 : LDA #$F531, Y) JSL.l ConditionalGTFlash : BRA + : NOP #11 : + +;-------------------------------------------------------------------------------- +org $0AFF48 ; <- 57F48 - Bank0A.asm : 4935 (REP #$20 : LDA $7EC3DA) +JSL.l ConditionalRedFlash : BRA + : NOP #13 : + ;================================================================================ ; Ice Floor Toggle ;-------------------------------------------------------------------------------- From 74cb39f666aab9aa00f4c9fb9d31cae99c6579ec Mon Sep 17 00:00:00 2001 From: cassidy Date: Fri, 23 Apr 2021 13:59:49 -0400 Subject: [PATCH 50/63] Refactor whitening bg --- LTTP_RND_GeneralBugfixes.asm | 3 ++ accessibility.asm | 102 ++++++++++++++++++++++++----------- hooks.asm | 14 +++-- 3 files changed, 83 insertions(+), 36 deletions(-) diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index 1806295..b47f391 100644 --- a/LTTP_RND_GeneralBugfixes.asm +++ b/LTTP_RND_GeneralBugfixes.asm @@ -465,6 +465,9 @@ LoadGearPalettes_bunny: org $02FD95 ; 17D95 - Bank0E.asm: 3742 Note: Different bank LoadGearPalettes_variable: +org $02FEAB +Filter_Majorly_Whiten_Color: + org $05A51D Sprite_SpawnFallingItem: diff --git a/accessibility.asm b/accessibility.asm index 992a662..229edc4 100644 --- a/accessibility.asm +++ b/accessibility.asm @@ -40,32 +40,70 @@ ConditionalLightning: RTL ;================================================================================ -ConditionalWhitenColor: - PHA - STA $00 - AND.w #$001F : ADC.w #$000E - CMP.w #$001F : BCC + - LDA.w #$001F - + - STA $02 - LDA $00 : AND.w #$03E0 : ADC.w #$01C0 - CMP.w #$03E0 : BCC + - LDA.w #$03E0 - + - STA $04 - LDA $00 : AND.w #$7C00 : ADC.w #$3800 - CMP.w #$7C00 : BCC + - LDA.w #$7C00 - + - ORA $02 : ORA $04 - PHA - LDA.l DisableFlashing : BNE + - PLA : PLY : PLY +ConditionalWhitenBg: + REP #$20 + LDX.b #$00 + LDA DisableFlashing : BNE + + LDA $00,X + JSR WhitenLoopReal RTL - + - PLA : PLA : LDY $0000 - -RTL + + + LDA $00 + JSR WhitenLoopDummy + RTL + +;================================================================================ +WhitenLoopReal: + - + LDA $7EC340, X : JSL Filter_Majorly_Whiten_Color : STA $7EC540, X + LDA $7EC350, X : JSL Filter_Majorly_Whiten_Color : STA $7EC550, X + LDA $7EC360, X : JSL Filter_Majorly_Whiten_Color : STA $7EC560, X + LDA $7EC370, X : JSL Filter_Majorly_Whiten_Color : STA $7EC570, X + LDA $7EC380, X : JSL Filter_Majorly_Whiten_Color : STA $7EC580, X + LDA $7EC390, X : JSL Filter_Majorly_Whiten_Color : STA $7EC590, X + LDA $7EC3A0, X : JSL Filter_Majorly_Whiten_Color : STA $7EC5A0, X + LDA $7EC3B0, X : JSL Filter_Majorly_Whiten_Color : STA $7EC5B0, X + LDA $7EC3C0, X : JSL Filter_Majorly_Whiten_Color : STA $7EC5C0, X + LDA $7EC3D0, X : JSL Filter_Majorly_Whiten_Color : STA $7EC5D0, X + LDA $7EC3E0, X : JSL Filter_Majorly_Whiten_Color : STA $7EC5E0, X + LDA $7EC3F0, X : JSL Filter_Majorly_Whiten_Color : STA $7EC5F0, X + INX #2 : CPX.b #$10 : BEQ + + JMP - + + + REP #$10 + LDA $7EC540 : TAY + LDA $7EC300 : BNE + + TAY + + + TYA : STA $7EC500 + SEP #$30 +RTS +;================================================================================ +WhitenLoopDummy: + - + LDA $7EC340, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC540, X + LDA $7EC350, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC550, X + LDA $7EC360, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC560, X + LDA $7EC370, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC570, X + LDA $7EC380, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC580, X + LDA $7EC390, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC590, X + LDA $7EC3A0, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC5A0, X + LDA $7EC3B0, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC5B0, X + LDA $7EC3C0, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC5C0, X + LDA $7EC3D0, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC5D0, X + LDA $7EC3E0, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC5E0, X + LDA $7EC3F0, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC5F0, X + INX #2 : CPX.b #$10 : BEQ + + JMP - + + + REP #$10 + LDA $7EC540 : TAY + LDA $7EC300 : BNE + + TAY + + + TYA : STA $7EC500 + SEP #$30 +RTS ;================================================================================ DDMConditionalLightning: LDA.l DisableFlashing @@ -109,17 +147,17 @@ RTL ;================================================================================ ConditionalRedFlash: REP #$20 - LDA.l DisableFlashing : BEQ + + LDA.l DisableFlashing : BNE + LDA $00,X - LDA.w #$1D59 : LDA $7EC5DA - LDA.w #$25FF : LDA $7EC5DC - LDA.w #$0000 + LDA.w #$1D59 : STA $7EC5DA + LDA.w #$25FF : STA $7EC5DC + LDA.w #$001A RTL + LDA $00 - LDA.w #$1D59 : STA $7EC5DA - LDA.w #$25FF : STA $7EC5DC - LDA.w #$001A + LDA.w #$1D59 : LDA $7EC5DA + LDA.w #$25FF : LDA $7EC5DC + LDA.w #$0000 RTL diff --git a/hooks.asm b/hooks.asm index bc29af5..0e55755 100755 --- a/hooks.asm +++ b/hooks.asm @@ -741,12 +741,18 @@ org $08AAE1 ; <- 42AE1 - ancilla_ether_spell.asm : 28 (LDA $031D : CMP.b #$0B) JSL.l SetEtherFlicker : NOP ;-------------------------------------------------------------------------------- org $02A3F4 ; <- 123F4 - Bank02.asm : 6222 (LDA.b #$72 : BRA .setBrightness) -BRA + : NOP #2 +BRA + : NOP #2 : + org $02A3FD ; <- 123FD - Bank02.asm : 6233 (LDA.b #$32 : STA $9a) -+ : JSL.l ConditionalLightning +JSL.l ConditionalLightning ;-------------------------------------------------------------------------------- -org $02FEAB ; <- 17EAB - Bank0E.asm : 3826 (REP #$20 : LDX.b #$00) -JSL.l ConditionalWhitenColor : RTS +org $1DE9CD ; <- EE9CD - Bank1D.asm : 568 (JSL Filter_Majorly_Whiten_Bg) +JSL.l ConditionalWhitenBg +;-------------------------------------------------------------------------------- +org $08AAED ; <- 42AED - ancilla_ether_spell.asm : 35 (JSL Filter_Majorly_Whiten_Bg) +JSL.l ConditionalWhitenBg +;-------------------------------------------------------------------------------- +org $02FEE6 ; <- 17EE6 - Bank0E.asm : 3907 (RTS) +RTL ; the whiten color routine is only JSL-ed to ;-------------------------------------------------------------------------------- org $07FA7B ; <- 3FA7B - Bank0E.asm : 4735 (REP #$20 : LDX.b #$02) JML DDMConditionalLightning From edfecad1b2737aa423bb8eae750902585c381bec Mon Sep 17 00:00:00 2001 From: cassidy Date: Sat, 24 Apr 2021 02:20:07 -0400 Subject: [PATCH 51/63] Remove extra branch --- accessibility.asm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/accessibility.asm b/accessibility.asm index 229edc4..62c024e 100644 --- a/accessibility.asm +++ b/accessibility.asm @@ -128,7 +128,7 @@ DDMConditionalLightning: ;================================================================================ ConditionalGTFlash: - LDA.l DisableFlashing : BNE + + LDA.l DisableFlashing REP #$20 BNE + LDA $0000 @@ -139,10 +139,10 @@ ConditionalGTFlash: RTL + LDA $00 - -- + - LDA $F9C1, Y : LDA $7EC5D0, X INY #2 - INX #2 : CPX.b #$10 : BNE -- + INX #2 : CPX.b #$10 : BNE - RTL ;================================================================================ ConditionalRedFlash: From fe708fd20fa8de45c0962c713802879e45a41127 Mon Sep 17 00:00:00 2001 From: cassidy Date: Sun, 25 Apr 2021 16:09:42 -0400 Subject: [PATCH 52/63] Restore invisible floors when flashing is disabled Replace Seizure_Safety with FlashingDisabled --- accessibility.asm | 89 ++++++++++++++++++++++++++++++++++++++--------- tables.asm | 10 ++---- 2 files changed, 75 insertions(+), 24 deletions(-) diff --git a/accessibility.asm b/accessibility.asm index 62c024e..2fa39f3 100644 --- a/accessibility.asm +++ b/accessibility.asm @@ -10,21 +10,34 @@ FlipGreenPendant: LDA $0C : STA $0803, X RTL ;================================================================================ -!EPILEPSY_TIMER = "$7F5041" +!WHITEN_TIMER = "$7F5041" SetEtherFlicker: - LDA.l Seizure_Safety : BNE + - LDA $031D : CMP.b #$0B : RTL - + - LDA !EPILEPSY_TIMER : INC : STA !EPILEPSY_TIMER - - LDA.l Seizure_Safety : CMP !EPILEPSY_TIMER : BNE +++ - LDA.b #$00 : STA !EPILEPSY_TIMER : BRA ++ + LDA DisableFlashing : BNE + + ;LDA $00,X + LDA !WHITEN_TIMER : INC : STA !WHITEN_TIMER + + LDA.b #$FF : CMP !WHITEN_TIMER : BNE +++ + LDA.b #$00 : STA !WHITEN_TIMER : BRA ++ +++ - LSR : CMP !EPILEPSY_TIMER : !BLT ++ - SEP #$02 : RTL + LSR : CMP !WHITEN_TIMER : !BLT ++ + LDA $031D : CMP.b #$0B + RTL ++ - REP #$02 + LDA $031D : CMP.b #$0B + RTL + + ;LDA $00 + LDA !WHITEN_TIMER : INC : STA !WHITEN_TIMER + + LDA.b #$FF : CMP !WHITEN_TIMER : BNE +++ + LDA.b #$00 : STA !WHITEN_TIMER : BRA ++ + +++ + LSR : CMP !WHITEN_TIMER : !BLT ++ + LDA $031D : SEP #$02 + RTL + ++ + LDA $031D : REP #$02 + RTL ;================================================================================ ConditionalLightning: @@ -41,9 +54,9 @@ ConditionalLightning: RTL ;================================================================================ ConditionalWhitenBg: - REP #$20 LDX.b #$00 - LDA DisableFlashing : BNE + + LDA.l DisableFlashing + REP #$20 : BNE + LDA $00,X JSR WhitenLoopReal RTL @@ -66,10 +79,31 @@ WhitenLoopReal: LDA $7EC3C0, X : JSL Filter_Majorly_Whiten_Color : STA $7EC5C0, X LDA $7EC3D0, X : JSL Filter_Majorly_Whiten_Color : STA $7EC5D0, X LDA $7EC3E0, X : JSL Filter_Majorly_Whiten_Color : STA $7EC5E0, X - LDA $7EC3F0, X : JSL Filter_Majorly_Whiten_Color : STA $7EC5F0, X INX #2 : CPX.b #$10 : BEQ + JMP - + + LDA $7EC3F0 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F0 + LDA $7EC3F2 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F2 + LDA $7EC3F4 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F4 + LDA $10 : CMP.w #$07 : BNE + + LDA $048E + CMP.w #$3C : BEQ ++ ; hookshot cave + CMP.w #$9D : BEQ ++ ; gt right + CMP.w #$9C : BEQ ++ ; gt big room + CMP.w #$A5 : BEQ ++ ; wizzrobes 1 + + + LDA $7EC3F6 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F6 + LDA $7EC3F8 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F8 + BRA +++ + ++ + LDA $7EC3F6 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F6 + LDA $7EC3F8 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F8 + BRA +++ + +++ + + LDA $7EC3FA : JSL Filter_Majorly_Whiten_Color : STA $7EC5FA + LDA $7EC3FC : JSL Filter_Majorly_Whiten_Color : STA $7EC5FC + LDA $7EC3FE : JSL Filter_Majorly_Whiten_Color : STA $7EC5FE REP #$10 LDA $7EC540 : TAY LDA $7EC300 : BNE + @@ -92,10 +126,31 @@ WhitenLoopDummy: LDA $7EC3C0, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC5C0, X LDA $7EC3D0, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC5D0, X LDA $7EC3E0, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC5E0, X - LDA $7EC3F0, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC5F0, X INX #2 : CPX.b #$10 : BEQ + JMP - + + + LDA $7EC3F0 : JSL Filter_Majorly_Whiten_Color : LDA $7EC5F0 + LDA $7EC3F2 : JSL Filter_Majorly_Whiten_Color : LDA $7EC5F2 + LDA $7EC3F4 : JSL Filter_Majorly_Whiten_Color : LDA $7EC5F4 + LDA $10 : CMP.w #$07 : BNE + ; only light invisifloor if we're in dungeon submodule + LDA $048E + CMP.w #$3C : BEQ ++ ; hookshot cave + CMP.w #$9D : BEQ ++ ; gt right + CMP.w #$9C : BEQ ++ ; gt big room + CMP.w #$A5 : BEQ ++ ; wizzrobes 1 + + + LDA $7EC3F6 : JSL Filter_Majorly_Whiten_Color : LDA $7EC5F6 + LDA $7EC3F8 : JSL Filter_Majorly_Whiten_Color : LDA $7EC5F8 + BRA +++ + ++ + LDA $7EC3F6 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F6 + LDA $7EC3F8 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F8 + BRA +++ + +++ + LDA $7EC3FA : JSL Filter_Majorly_Whiten_Color : LDA $7EC5FA + LDA $7EC3FC : JSL Filter_Majorly_Whiten_Color : LDA $7EC5FC + LDA $7EC3FE : JSL Filter_Majorly_Whiten_Color : LDA $7EC5FE REP #$10 LDA $7EC540 : TAY LDA $7EC300 : BNE + @@ -146,8 +201,8 @@ ConditionalGTFlash: RTL ;================================================================================ ConditionalRedFlash: - REP #$20 - LDA.l DisableFlashing : BNE + + LDA.l DisableFlashing + REP #$20 : BNE + LDA $00,X LDA.w #$1D59 : STA $7EC5DA LDA.w #$25FF : STA $7EC5DC diff --git a/tables.asm b/tables.asm index 4403f6b..4775e81 100644 --- a/tables.asm +++ b/tables.asm @@ -873,8 +873,8 @@ Restrict_Ponds: db #$01 ; #$00 = Original Behavior - #$01 - Restrict to Bottles (Default) ;================================================================================ org $30817F ; PC 0x18017F -Seizure_Safety: -db #$00 ; #$00 = Off (Default) - #$xx = Limit Certain Effects +DisableFlashing: +db #$00 ; #$00 = Flashing Enabled (Default) - #$01 = Flashing Disabled ;================================================================================ ;---- --hb ;h - Hookshot @@ -916,11 +916,7 @@ db #$00 RainDeathRefillArrows_Mantle: db #$00 ;================================================================================ -org $30818E ; PC 0x18018E -DisableFlashing: -db $00 ; $00 = Flashing enabled (default) $01 = Flashing disabled -;================================================================================ -; 0x18018F (unused) +; 0x18018E - 0x18018F (unused) ;================================================================================ org $308190 ; PC 0x180190 - 0x180192 TimerStyle: From 7b4e3f5c95e07078996565b4bd49b78506046c30 Mon Sep 17 00:00:00 2001 From: cassidy Date: Sun, 25 Apr 2021 16:38:28 -0400 Subject: [PATCH 53/63] Uncomment padding instructions --- accessibility.asm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/accessibility.asm b/accessibility.asm index 2fa39f3..b1903a7 100644 --- a/accessibility.asm +++ b/accessibility.asm @@ -13,7 +13,7 @@ RTL !WHITEN_TIMER = "$7F5041" SetEtherFlicker: LDA DisableFlashing : BNE + - ;LDA $00,X + LDA $00,X LDA !WHITEN_TIMER : INC : STA !WHITEN_TIMER LDA.b #$FF : CMP !WHITEN_TIMER : BNE +++ @@ -26,7 +26,7 @@ SetEtherFlicker: LDA $031D : CMP.b #$0B RTL + - ;LDA $00 + LDA $00 LDA !WHITEN_TIMER : INC : STA !WHITEN_TIMER LDA.b #$FF : CMP !WHITEN_TIMER : BNE +++ From ca7eaf3385c2ca745809d44ca361cbfbf748e59e Mon Sep 17 00:00:00 2001 From: cassidy Date: Sun, 25 Apr 2021 21:13:23 -0400 Subject: [PATCH 54/63] Change how Ether flashing is handled Removed SetEtherFlicker and hooked into new restore palette code instead --- accessibility.asm | 96 ++++++++++++++++++++++++++++++++--------------- hooks.asm | 4 +- 2 files changed, 68 insertions(+), 32 deletions(-) diff --git a/accessibility.asm b/accessibility.asm index b1903a7..2852a24 100644 --- a/accessibility.asm +++ b/accessibility.asm @@ -10,36 +10,6 @@ FlipGreenPendant: LDA $0C : STA $0803, X RTL ;================================================================================ -!WHITEN_TIMER = "$7F5041" -SetEtherFlicker: - LDA DisableFlashing : BNE + - LDA $00,X - LDA !WHITEN_TIMER : INC : STA !WHITEN_TIMER - - LDA.b #$FF : CMP !WHITEN_TIMER : BNE +++ - LDA.b #$00 : STA !WHITEN_TIMER : BRA ++ - +++ - LSR : CMP !WHITEN_TIMER : !BLT ++ - LDA $031D : CMP.b #$0B - RTL - ++ - LDA $031D : CMP.b #$0B - RTL - + - LDA $00 - LDA !WHITEN_TIMER : INC : STA !WHITEN_TIMER - - LDA.b #$FF : CMP !WHITEN_TIMER : BNE +++ - LDA.b #$00 : STA !WHITEN_TIMER : BRA ++ - +++ - LSR : CMP !WHITEN_TIMER : !BLT ++ - LDA $031D : SEP #$02 - RTL - ++ - LDA $031D : REP #$02 - -RTL -;================================================================================ ConditionalLightning: CMP.b #$05 : BEQ ++ CMP.b #$2C : BEQ ++ @@ -160,6 +130,72 @@ WhitenLoopDummy: SEP #$30 RTS ;================================================================================ +RestoreBgEther: + LDX.b #$00 + LDA.l DisableFlashing : REP #$20 : BNE + + - + LDA $00,X + LDA $7EC340, X : STA $7EC540, X + LDA $7EC350, X : STA $7EC550, X + LDA $7EC360, X : STA $7EC560, X + LDA $7EC370, X : STA $7EC570, X + LDA $7EC380, X : STA $7EC580, X + LDA $7EC390, X : STA $7EC590, X + LDA $7EC3A0, X : STA $7EC5A0, X + LDA $7EC3B0, X : STA $7EC5B0, X + LDA $7EC3C0, X : STA $7EC5C0, X + LDA $7EC3D0, X : STA $7EC5D0, X + LDA $7EC3E0, X : STA $7EC5E0, X + LDA $7EC3F0, X : STA $7EC5F0, X + INX #2 : CPX.b #$10 : BNE - + BRA ++ + + + - + LDA $00 + LDA $7EC340, X : LDA $7EC540, X + LDA $7EC350, X : LDA $7EC550, X + LDA $7EC360, X : LDA $7EC560, X + LDA $7EC370, X : LDA $7EC570, X + LDA $7EC380, X : LDA $7EC580, X + LDA $7EC390, X : LDA $7EC590, X + LDA $7EC3A0, X : LDA $7EC5A0, X + LDA $7EC3B0, X : LDA $7EC5B0, X + LDA $7EC3C0, X : LDA $7EC5C0, X + LDA $7EC3D0, X : LDA $7EC5D0, X + LDA $7EC3E0, X : LDA $7EC5E0, X + LDA $7EC3F0, X : LDA $7EC5F0, X + INX #2 : CPX.b #$10 : BNE - + BRA ++ + ++ + LDA $7EC540 : STA $7EC500 + + SEP #$30 + LDA $1B : BNE ++ + REP #$10 + LDX.w #$4020 : STX $9C + LDX.w #$8040 : STX $9D + LDX.w #$4F33 + LDY.w #$894F + LDA $8A : BEQ ++ + CMP.b #$40 : BEQ ++ + CMP.b #$5B : BEQ + + LDX.w #$4C26 + LDY.w #$8C4C + CMP.b #$03 : BEQ + + CMP.b #$05 : BEQ + + CMP.b #$07 : BEQ + + LDX.w #$4A26 + LDY.w #$874A + CMP.b #$43 : BEQ + + CMP.b #$45 : BEQ + + CMP.b #$47 : BNE ++ + + + STX $9C + STY $9D + ++ + SEP #$10 +RTL +;================================================================================ DDMConditionalLightning: LDA.l DisableFlashing REP #$20 diff --git a/hooks.asm b/hooks.asm index 0e55755..83737d6 100755 --- a/hooks.asm +++ b/hooks.asm @@ -737,8 +737,8 @@ dw $0000, $0002, $0004, $0032, $0004, $0006, $0030 ;JSL FlipGreenPendant ;NOP #6 ;-------------------------------------------------------------------------------- -org $08AAE1 ; <- 42AE1 - ancilla_ether_spell.asm : 28 (LDA $031D : CMP.b #$0B) -JSL.l SetEtherFlicker : NOP +org $08AAF9 ; -< 42AF9 - ancilla_ether_spell.asm : 46 (JSL Palette_Restore_BG_From_Flash) +JSL.l RestoreBgEther ;-------------------------------------------------------------------------------- org $02A3F4 ; <- 123F4 - Bank02.asm : 6222 (LDA.b #$72 : BRA .setBrightness) BRA + : NOP #2 : + From 8881aa66b10d652fffe739377bfa9e5ffd510292 Mon Sep 17 00:00:00 2001 From: cassidy Date: Sun, 25 Apr 2021 22:34:09 -0400 Subject: [PATCH 55/63] Save space with a jump to vanilla routine --- accessibility.asm | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/accessibility.asm b/accessibility.asm index 2852a24..ee2095f 100644 --- a/accessibility.asm +++ b/accessibility.asm @@ -167,34 +167,8 @@ RestoreBgEther: INX #2 : CPX.b #$10 : BNE - BRA ++ ++ - LDA $7EC540 : STA $7EC500 + JML $02FF51 - SEP #$30 - LDA $1B : BNE ++ - REP #$10 - LDX.w #$4020 : STX $9C - LDX.w #$8040 : STX $9D - LDX.w #$4F33 - LDY.w #$894F - LDA $8A : BEQ ++ - CMP.b #$40 : BEQ ++ - CMP.b #$5B : BEQ + - LDX.w #$4C26 - LDY.w #$8C4C - CMP.b #$03 : BEQ + - CMP.b #$05 : BEQ + - CMP.b #$07 : BEQ + - LDX.w #$4A26 - LDY.w #$874A - CMP.b #$43 : BEQ + - CMP.b #$45 : BEQ + - CMP.b #$47 : BNE ++ - + - STX $9C - STY $9D - ++ - SEP #$10 -RTL ;================================================================================ DDMConditionalLightning: LDA.l DisableFlashing From 1efb19b88d87cf60b3f464555fa92348aeafed65 Mon Sep 17 00:00:00 2001 From: Thomas Prescott Date: Mon, 26 Apr 2021 00:32:56 -0500 Subject: [PATCH 56/63] update credits --- stats/creditsnew.asm | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/stats/creditsnew.asm b/stats/creditsnew.asm index 79fb5ed..1795d6a 100644 --- a/stats/creditsnew.asm +++ b/stats/creditsnew.asm @@ -138,9 +138,9 @@ CreditsLineBlank: %emptyline() %smallcredits("ORIGINAL GAME STAFF", "yellow") +%blankline() %blankline() -%emptyline() %smallcredits("EXECUTIVE PRODUCER", "green") %blankline() @@ -150,8 +150,6 @@ CreditsLineBlank: %blankline() %blankline() -%emptyline() - %smallcredits("PRODUCER", "yellow") %blankline() @@ -179,10 +177,8 @@ CreditsLineBlank: %blankline() %blankline() -%emptyline() %smallcredits("ASSISTANT DIRECTORS", "yellow") -%blankline() %blankline() %bigcredits("YASUHISA YAMAMURA") @@ -196,9 +192,9 @@ CreditsLineBlank: %smallcredits("SCREEN GRAPHICS DESIGNERS", "green") +%emptyline() +%emptyline() -%emptyline() -%emptyline() %smallcredits("OBJECT DESIGNERS", "yellow") %blankline() @@ -212,10 +208,8 @@ CreditsLineBlank: %blankline() %blankline() -%emptyline() %smallcredits("BACK GROUND DESIGNERS", "yellow") -%blankline() %blankline() %bigcredits("MASANAO ARIMOTO") @@ -254,8 +248,6 @@ CreditsLineBlank: %blankline() %blankline() -%emptyline() - %smallcredits("PROGRAMMERS", "yellow") %blankline() @@ -315,7 +307,6 @@ CreditsLineBlank: %blankline() %blankline() -%emptyline() %smallcredits("PRINTED ART WORK", "yellow") %blankline() @@ -381,8 +372,6 @@ CreditsLineBlank: %blankline() %blankline() -%emptyline() -%emptyline() %smallcredits("ITEM RANDOMIZER", "yellow") %blankline() @@ -408,12 +397,11 @@ CreditsLineBlank: %blankline() -%bigcredits("KEVINCATHCART") +%bigcredits("KEVINCATHCART CASSIDYMOEM") %blankline() %blankline() -%emptyline() %smallcredits("ENEMY RANDOMIZER", "yellow") %blankline() @@ -451,7 +439,6 @@ CreditsLineBlank: %smallcredits("SPRITE DEVELOPMENT", "green") -%blankline() %blankline() %bigcredits("MIKETRETHEWEY IBAZLY") @@ -461,14 +448,19 @@ CreditsLineBlank: %blankline() -%bigcredits("TWROXAS ARTHEAU") +%bigcredits("ACHY ARTHEAU") %blankline() -%bigcredits("GLAN TARTHORON") +%bigcredits("GLAN TWROXAS") %blankline() +%bigcredits("PLAGUEDONE TARTHORON") + +%blankline() +%blankline() + %smallcredits("YOUR SPRITE BY", "yellow") %addarbline(YourSpriteCreditsHi) @@ -486,7 +478,7 @@ CreditsLineBlank: %blankline() %blankline() -%smallcredits("PALETTE SHUFFLER", "YELLOW") +%smallcredits("PALETTE SHUFFLER", "yellow") %blankline() @@ -497,7 +489,6 @@ CreditsLineBlank: %smallcredits("SPECIAL THANKS", "red") -%blankline() %blankline() %bigcredits("SUPERSKUJ EVILASH25") @@ -512,6 +503,10 @@ CreditsLineBlank: %blankline() +%bigcredits("MICHAELK FOUTON") + +%blankline() + %bigcredits("SAKURATSUBASA") %blankline() @@ -527,7 +522,6 @@ CreditsLineBlank: %smallcredits("COMMUNITY DISCORD", "green") -%blankline() %blankline() %bigcredits("HTTPS://ALTTPR.COM/DISCORD") @@ -559,6 +553,12 @@ CreditsLineBlank: %emptyline() %emptyline() %emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() +%emptyline() ;=================================================================================================== From 08abf980eb8e4b9794857cc1cd639355c99f617f Mon Sep 17 00:00:00 2001 From: Thomas Prescott Date: Mon, 26 Apr 2021 00:34:33 -0500 Subject: [PATCH 57/63] fix --- stats/creditsnew.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stats/creditsnew.asm b/stats/creditsnew.asm index 1795d6a..17114c1 100644 --- a/stats/creditsnew.asm +++ b/stats/creditsnew.asm @@ -397,7 +397,7 @@ CreditsLineBlank: %blankline() -%bigcredits("KEVINCATHCART CASSIDYMOEM") +%bigcredits("KEVINCATHCART CASSIDYMOEN") %blankline() %blankline() From 9744f846f7da7e916ad7517d23b8ea38307e5fef Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Tue, 4 May 2021 05:17:37 -0400 Subject: [PATCH 58/63] sewers --- newitems.asm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/newitems.asm b/newitems.asm index 5289795..c8df278 100755 --- a/newitems.asm +++ b/newitems.asm @@ -837,7 +837,8 @@ org $A08800 ;0x1A - Ganon's Tower .item_masks ; these are dungeon correlations to $7EF364 - $7EF369 so it knows where to store compasses, etc - dw $8000, $4000, $2000, $1000, $0800, $0400, $0200, $0100 + ; sewers and castle get 2 bits active so that they can share their items elegantly + dw $C000, $C000, $2000, $1000, $0800, $0400, $0200, $0100 dw $0080, $0040, $0020, $0010, $0008, $0004, $0000, $0000 dw $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0000 From 03c0eb04756fe82833824dbe04435d08f07b4f78 Mon Sep 17 00:00:00 2001 From: Thomas Prescott Date: Thu, 6 May 2021 21:45:10 -0500 Subject: [PATCH 59/63] Fix msu1 in credits %smallcredits() can't have numbers, so we need to remove the 1 from MSU1 --- stats/creditsnew.asm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stats/creditsnew.asm b/stats/creditsnew.asm index 17114c1..228dae3 100644 --- a/stats/creditsnew.asm +++ b/stats/creditsnew.asm @@ -469,7 +469,7 @@ CreditsLineBlank: %blankline() %blankline() -%smallcredits("MSU1 SUPPORT", "green") +%smallcredits("MSU SUPPORT", "green") %blankline() @@ -739,4 +739,4 @@ endif !COLLECTION_RATE_X = 22 !COLLECTION_RATE_Y = 380 !TOTAL_TIME_X = 19 -!TOTAL_TIME_Y = 383 \ No newline at end of file +!TOTAL_TIME_Y = 383 From 12e30ba2db80be43adcb37ef375f671e0f27b87b Mon Sep 17 00:00:00 2001 From: cassidy Date: Sat, 8 May 2021 22:59:09 -0400 Subject: [PATCH 60/63] Remove flashing ancilla near pedestal item during cutscene --- accessibility.asm | 15 ++++++++++++++- hooks.asm | 3 +++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/accessibility.asm b/accessibility.asm index ee2095f..4ce614b 100644 --- a/accessibility.asm +++ b/accessibility.asm @@ -1,5 +1,5 @@ ;================================================================================ -; Accessability Fixes +; Accessibility Fixes ;================================================================================ FlipGreenPendant: LDA $0C : CMP #$38 : BNE + ; check if we have green pendant @@ -226,3 +226,16 @@ ConditionalRedFlash: LDA.w #$0000 RTL +;================================================================================ +ConditionalPedAncilla: + LDA.l DisableFlashing + REP #$20 : BNE + + LDA $00,X + LDA $00 : STA $04 + LDA $02 : STA $06 + RTL + + + LDA $00 + LDA $00 : LDA $04 + LDA $02 : LDA $06 +RTL diff --git a/hooks.asm b/hooks.asm index 83737d6..b6e0a21 100755 --- a/hooks.asm +++ b/hooks.asm @@ -762,6 +762,9 @@ JSL.l ConditionalGTFlash : BRA + : NOP #11 : + ;-------------------------------------------------------------------------------- org $0AFF48 ; <- 57F48 - Bank0A.asm : 4935 (REP #$20 : LDA $7EC3DA) JSL.l ConditionalRedFlash : BRA + : NOP #13 : + +;-------------------------------------------------------------------------------- +org $08C2A1 ; <- 442A3 - ancilla_sword_ceremony.asm : 54 (REP #$20) +JSL.l ConditionalPedAncilla : BRA + : NOP #4 : + ;================================================================================ ; Ice Floor Toggle ;-------------------------------------------------------------------------------- From f389a2e737dc0acad31538346ed7ae4e73c62c14 Mon Sep 17 00:00:00 2001 From: cassidy Date: Sun, 9 May 2021 02:17:09 -0400 Subject: [PATCH 61/63] DisableFlashing now disables electro palette changing Affects Ether animation and enemies that electrocute Link --- accessibility.asm | 34 +++++++++++++++++++++++++++++----- hooks.asm | 9 +++++++++ 2 files changed, 38 insertions(+), 5 deletions(-) diff --git a/accessibility.asm b/accessibility.asm index 4ce614b..2a2efad 100644 --- a/accessibility.asm +++ b/accessibility.asm @@ -20,7 +20,6 @@ ConditionalLightning: ++ LDA.b #$72 STA $9A - RTL ;================================================================================ ConditionalWhitenBg: @@ -34,7 +33,6 @@ ConditionalWhitenBg: LDA $00 JSR WhitenLoopDummy RTL - ;================================================================================ WhitenLoopReal: - @@ -168,7 +166,6 @@ RestoreBgEther: BRA ++ ++ JML $02FF51 - ;================================================================================ DDMConditionalLightning: LDA.l DisableFlashing @@ -190,7 +187,6 @@ DDMConditionalLightning: LDX.b #$02 JML $07FAAC - ;================================================================================ ConditionalGTFlash: LDA.l DisableFlashing @@ -224,7 +220,6 @@ ConditionalRedFlash: LDA.w #$1D59 : LDA $7EC5DA LDA.w #$25FF : LDA $7EC5DC LDA.w #$0000 - RTL ;================================================================================ ConditionalPedAncilla: @@ -239,3 +234,32 @@ ConditionalPedAncilla: LDA $00 : LDA $04 LDA $02 : LDA $06 RTL +;================================================================================ +ConditionalChangeGearPalette: + PHY + STA $00 + SEP #$20 + LDA.l DisableFlashing : REP #$20 : BNE + + LDA $00,X + - + LDA [$00] : STA $7EC300, X : STA $7EC500, X + INC $00 : INC $00 + INX #2 + DEY : BPL - + BRA ++ + + + LDA $00 + - + LDA [$00] : LDA $7EC300, X : LDA $7EC500, X + INC $00 : INC $00 + INX #2 + DEY : BPL - + BRA ++ + ++ + PLY ; use what was in Y register to determine which p flags to set + CPY #$000E : BEQ + + SEP #$10 + RTL + + + SEP #$30 +RTL diff --git a/hooks.asm b/hooks.asm index b6e0a21..e0884e2 100755 --- a/hooks.asm +++ b/hooks.asm @@ -765,6 +765,15 @@ JSL.l ConditionalRedFlash : BRA + : NOP #13 : + ;-------------------------------------------------------------------------------- org $08C2A1 ; <- 442A3 - ancilla_sword_ceremony.asm : 54 (REP #$20) JSL.l ConditionalPedAncilla : BRA + : NOP #4 : + +;-------------------------------------------------------------------------------- +org $02FDB1 ; <- 17DB1 - Bank0E.asm : 3760 (JSL LoadGearPalette) +JSL.l ConditionalChangeGearPalette : NOP +;-------------------------------------------------------------------------------- +org $02FDCB ; <- 17DCB - Bank0E.asm : 3775 (JSL LoadGearPalette) +JSL.l ConditionalChangeGearPalette : NOP +;-------------------------------------------------------------------------------- +org $02FDE6 ; <- 17DE6 - Bank0E.asm : 3789 (JSL LoadGearPalette) +JSL.l ConditionalChangeGearPalette : NOP ;================================================================================ ; Ice Floor Toggle ;-------------------------------------------------------------------------------- From 3e0980853653aec217c4ebec3f0f7526b34d288c Mon Sep 17 00:00:00 2001 From: cassidy Date: Sun, 9 May 2021 02:46:39 -0400 Subject: [PATCH 62/63] Save a byte setting processor flags --- accessibility.asm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/accessibility.asm b/accessibility.asm index 2a2efad..dd4bcd6 100644 --- a/accessibility.asm +++ b/accessibility.asm @@ -257,9 +257,8 @@ ConditionalChangeGearPalette: BRA ++ ++ PLY ; use what was in Y register to determine which p flags to set - CPY #$000E : BEQ + - SEP #$10 - RTL + CPY #$000E : BNE + + SEP #$20 + - SEP #$30 + SEP #$10 RTL From 01e894a0b0f1ad4638280e58796d4523b1fca460 Mon Sep 17 00:00:00 2001 From: cassidy Date: Sun, 9 May 2021 17:28:54 -0400 Subject: [PATCH 63/63] Fix S&Q bug on DDM with flashing enabled Force push to fix dummy Y register. Doesn't make a difference but feels cleaner if they're the same. --- accessibility.asm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/accessibility.asm b/accessibility.asm index dd4bcd6..3504a12 100644 --- a/accessibility.asm +++ b/accessibility.asm @@ -175,7 +175,7 @@ DDMConditionalLightning: LDX.b #$02 JML $07FA7F + - LDA.b $00 + LDA.b $00 : LDX.b #$02 : LDY #$00 - LDA $F4EB, Y : LDA $7EC560, X LDA $F4F9, Y : LDA $7EC570, X @@ -185,8 +185,7 @@ DDMConditionalLightning: INY #2 INX #2 : CPX.b #$10 : BNE - - LDX.b #$02 - JML $07FAAC +JML $07FAAC ;================================================================================ ConditionalGTFlash: LDA.l DisableFlashing