From 168b5a6132aea51ff3eb0629e2a1196a3c7cca61 Mon Sep 17 00:00:00 2001 From: sporchia Date: Mon, 30 Oct 2017 14:23:12 -0400 Subject: [PATCH] prep for full ending sequence credit control --- LTTP_RND_GeneralBugfixes.asm | 1 + endingsequence.asm | 22 ++++++++ hooks.asm | 22 ++++++-- tables.asm | 97 ++++++++++++++++++++++++++++++++---- 4 files changed, 127 insertions(+), 15 deletions(-) create mode 100644 endingsequence.asm diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index f382450..8c6feb1 100644 --- a/LTTP_RND_GeneralBugfixes.asm +++ b/LTTP_RND_GeneralBugfixes.asm @@ -137,6 +137,7 @@ incsrc init.asm org $A48000 ; code bank - PUT NEW CODE HERE incsrc openmode.asm +incsrc endingsequence.asm ;org $228000 ; contrib area org $A28000 ; contrib area diff --git a/endingsequence.asm b/endingsequence.asm new file mode 100644 index 0000000..1603305 --- /dev/null +++ b/endingsequence.asm @@ -0,0 +1,22 @@ +;================================================================================ +; Dialog Pointer Override +;-------------------------------------------------------------------------------- +EndingSequenceTableOverride: + PHY + PHX + TYX + LDA.l EndingSequenceText, X + PLX + STA $1008, X + PLY +RTL +;-------------------------------------------------------------------------------- +EndingSequenceTableLookupOverride: + PHY + PHX + TYX + LDA.l EndingSequenceText, X : AND #$00FF + PLX + PLY +RTL +;-------------------------------------------------------------------------------- diff --git a/hooks.asm b/hooks.asm index 67f2074..5ac504c 100644 --- a/hooks.asm +++ b/hooks.asm @@ -164,6 +164,18 @@ org $0EFBC6 ; <- 77BC6 - vwf.asm : 2717 (LDA.b #$1C : STA $1CE9) JSL.l ResetDialogPointer RTS ;-------------------------------------------------------------------------------- +org $0EED0B ; <- PC 0x76D0B - Bank0E.asm : 3276 (LDA $E924, Y : STA $1008, X) +JSL.l EndingSequenceTableOverride +NOP #2 +;-------------------------------------------------------------------------------- +org $0EED15 ; <- PC 0x76D15 - Bank0E.asm : 3282 (LDA $E924, Y : STA $1008, X) +JSL.l EndingSequenceTableOverride +NOP #2 +;-------------------------------------------------------------------------------- +org $0EED2A ; <- PC 0x76D2A - Bank0E.asm : 3295 (LDA $E924, Y : AND.w #$00FF) +JSL.l EndingSequenceTableLookupOverride +NOP #2 +;-------------------------------------------------------------------------------- ;================================================================================ ; Master Sword Chest Fix @@ -455,7 +467,7 @@ JSL.l RefillMagic ; Early Bottle Fix ;-------------------------------------------------------------------------------- org $09894C ; <- 4894C - ancilla_init.asm:1327 -JSL.l InitializeBottles +JSL.l InitializeBottles ;-------------------------------------------------------------------------------- ;================================================================================ @@ -1000,7 +1012,7 @@ JSL.l DrawPendantCrystalDiagram : RTS ;================================================================================ org $0DEDCC ; <- 6EDCC - equipment.asm:2043 - (LDA $040C : AND.w #$00FF : CMP.w #$00FF : BNE .inSpecificDungeon) JSL.l ShowDungeonItems : NOP #5 - + org $0DEE59 ; <- 6EE59 - equipment.asm:2126 - (LDA $040C : AND.w #$00FF : CMP.w #$00FF : BEQ .notInPalace) JSL.l ShowDungeonItems : NOP #5 @@ -1402,7 +1414,7 @@ NOP #4 ;-- Yes, I'm sure org $06B495 ; <- 33495 sprite_smithy_bros.asm : 479 (JSL Sprite_ShowMessageUnconditional) -NOP #4 +NOP #4 ;-- We'll take your sword org $06B4F3 ; <- 334F3 sprite_smithy_bros.asm : 556 (JSL Sprite_ShowMessageUnconditional) @@ -1520,7 +1532,7 @@ NOP #6 org $1ED379 ; <- F5379 - sprite_agahnim.asm:75 - JSL PrepDungeonExit JSL FixAgahnimFollowers ;================================================================================ - + ;================================================================================ ; Randomize NPC Items ;-------------------------------------------------------------------------------- @@ -1819,4 +1831,4 @@ NOP #5 org $0298AD ; <- Bank02.asm:4495 (LDA $010E : CMP.b #$43) JSL.l WalkDownIntoTavern NOP #1 -;================================================================================ \ No newline at end of file +;================================================================================ diff --git a/tables.asm b/tables.asm index 0220b28..fd98a04 100644 --- a/tables.asm +++ b/tables.asm @@ -91,7 +91,7 @@ SmithSword: db #$02 ; #$02 = Tempered Sword (default) ;org $05EBD4 ; PC 0x2EBD4 - sprite_zelda.asm:23 - (LDA $7EF359 : CMP.b #$02 : BCS .hasMasterSword) - Zelda Spawnpoint Sword Check -;db #$05 ; #$02 = Tempered Sword (default) - #$05 = All Swords +;db #$05 ; #$02 = Tempered Sword (default) - #$05 = All Swords ;-------------------------------------------------------------------------------- org $308030 ; PC 0x180030 EnableSRAMTrace: @@ -249,7 +249,7 @@ EtherTablet: db #$10 ; #$10 = Ether org $08CAA9 ; PC 0x44AA9 db #$10 ; #$10 = Ether - + org $098B81 ; PC 0x48B81 BombosTablet: db #$0F ; #$0F = Bombos @@ -720,7 +720,7 @@ org $308190 ; PC 0x180190 TimerStyle: db #$00 ; #$00 = Off (Default) - #$01 Countdown - #$02 = Stopwatch TimeoutBehavior: -db #$00 ; #$00 = DNF (Default) - #$01 = Sign Change (Requires TimerRestart == 1) - #$02 = OHKO +db #$00 ; #$00 = DNF (Default) - #$01 = Sign Change (Requires TimerRestart == 1) - #$02 = OHKO TimerRestart: db #$00 ; #$00 = Locked (Default) - #$01 = Restart ;================================================================================ @@ -861,7 +861,7 @@ db $7f, $7f ; $308E00 (0x180E00) - $308EFF (0x180EFF) ; BombShopGuyNoCrystalsText org $308E00 ; PC 0x180E00 -BombShopGuyNoCrystalsText: +BombShopGuyNoCrystalsText: ; bring me the|5th and 6th|crystals so I|can make a big|bomb! db $74, $00, $AB, $00, $BB, $00, $B2, $00, $B7, $00, $B0, $00, $FF, $00, $B6, $00, $AE, $00, $FF, $00, $BD, $00, $B1, $00, $AE, $75, $00, $A5, $00, $BD, $00, $B1, $00, $FF, $00, $AA, $00, $B7, $00, $AD, $00, $FF, $00, $A6, $00, $BD, $00, $B1, $76, $00, $AC, $00, $BB, $00, $C2, $00, $BC, $00, $BD, $00, $AA, $00, $B5, $00, $BC, $00, $FF, $00, $BC, $00, $B8, $00, $FF, $00, $B2, $7E, $73, $76, $00, $AC, $00, $AA, $00, $B7, $00, $FF, $00, $B6, $00, $AA, $00, $B4, $00, $AE, $00, $FF, $00, $AA, $00, $FF, $00, $AB, $00, $B2, $00, $B0, $73, $76, $00, $AB, $00, $B8, $00, $B6, $00, $AB, $00, $C7 db $7f, $7f @@ -869,7 +869,7 @@ db $7f, $7f ; $308F00 (0x180F00) - $308FFF (0x180FFF) ; EtherTabletText org $308F00 ; PC 0x180F00 -EtherTabletText: +EtherTabletText: ; bring me the|5th and 6th|crystals so I|can make a big|bomb! db $74, $00, $AB, $00, $BB, $00, $B2, $00, $B7, $00, $B0, $00, $FF, $00, $B6, $00, $AE, $00, $FF, $00, $BD, $00, $B1, $00, $AE, $75, $00, $A5, $00, $BD, $00, $B1, $00, $FF, $00, $AA, $00, $B7, $00, $AD, $00, $FF, $00, $A6, $00, $BD, $00, $B1, $76, $00, $AC, $00, $BB, $00, $C2, $00, $BC, $00, $BD, $00, $AA, $00, $B5, $00, $BC, $00, $FF, $00, $BC, $00, $B8, $00, $FF, $00, $B2, $7E, $73, $76, $00, $AC, $00, $AA, $00, $B7, $00, $FF, $00, $B6, $00, $AA, $00, $B4, $00, $AE, $00, $FF, $00, $AA, $00, $FF, $00, $AB, $00, $B2, $00, $B0, $73, $76, $00, $AB, $00, $B8, $00, $B6, $00, $AB, $00, $C7 db $7f, $7f @@ -890,7 +890,7 @@ GanonText1Alternate: db $74, $00, $AB, $00, $BB, $00, $B2, $00, $B7, $00, $B0, $00, $FF, $00, $B6, $00, $AE, $00, $FF, $00, $BD, $00, $B1, $00, $AE, $75, $00, $A5, $00, $BD, $00, $B1, $00, $FF, $00, $AA, $00, $B7, $00, $AD, $00, $FF, $00, $A6, $00, $BD, $00, $B1, $76, $00, $AC, $00, $BB, $00, $C2, $00, $BC, $00, $BD, $00, $AA, $00, $B5, $00, $BC, $00, $FF, $00, $BC, $00, $B8, $00, $FF, $00, $B2, $7E, $73, $76, $00, $AC, $00, $AA, $00, $B7, $00, $FF, $00, $B6, $00, $AA, $00, $B4, $00, $AE, $00, $FF, $00, $AA, $00, $FF, $00, $AB, $00, $B2, $00, $B0, $73, $76, $00, $AB, $00, $B8, $00, $B6, $00, $AB, $00, $C7 db $7f, $7f ;-------------------------------------------------------------------------------- -; $309200 (0x180700) - $3092FF (0x1812FF) +; $309200 (0x181200) - $3092FF (0x1812FF) ; Ganon Text 2 - Invincible Alternate (ALTTP JP Text Format) org $309200 ; PC 0x181200 GanonText2Alternate: @@ -898,6 +898,83 @@ GanonText2Alternate: db $74, $00, $B9, $00, $B5, $00, $AE, $00, $AA, $00, $BC, $00, $AE, $00, $FF, $00, $AD, $00, $AE, $00, $B5, $00, $B2, $00, $BF, $00, $AE, $00, $BB, $75, $00, $BD, $00, $B1, $00, $B2, $00, $BC, $00, $FF, $00, $AB, $00, $B2, $00, $B0, $00, $FF, $00, $AB, $00, $B8, $00, $B6, $00, $AB, $76, $00, $BD, $00, $B8, $00, $FF, $00, $B6, $00, $C2, $00, $FF, $00, $AF, $00, $AA, $00, $B2, $00, $BB, $00, $C2, $7E, $73, $76, $00, $AF, $00, $BB, $00, $B2, $00, $AE, $00, $B7, $00, $AD, $00, $FF, $00, $B2, $00, $B7, $00, $FF, $00, $BD, $00, $B1, $00, $AE, $73, $76, $00, $B9, $00, $C2, $00, $BB, $00, $AA, $00, $B6, $00, $B2, $00, $AD, $00, $C6 db $7f, $7f ;-------------------------------------------------------------------------------- +; $309300 (0x181300) - $3094FF (0x1814FF) +; free space +;-------------------------------------------------------------------------------- +; $309500 (0x181500) - $309FFF (0x181FFF) original 0x39C bytes +; Replacement Ending Sequence Text Data +; if you modify this table you will need to modify the pointers to it located at $0EECC0 +org $309500 ; PC 0x181500 +EndingSequenceText: +; the return of the king +db $62, $65, $00, $2B, $2D, $21, $1E, $9F, $2B, $1E, $2D, $2E, $2B, $27, $9F, $28, $1F, $9F, $2D, $21, $1E, $9F, $24, $22, $27, $20 +db $62, $E9, $00, $19, $64, $75, $6E, $71, $68, $61, $9F, $5F, $5D, $6F, $70, $68, $61 +db $63, $09, $00, $19, $8A, $9B, $94, $97, $8E, $87, $9F, $85, $83, $95, $96, $8E, $87 +; the loyal priest +db $62, $68, $00, $1F, $2D, $21, $1E, $9F, $25, $28, $32, $1A, $25, $9F, $29, $2B, $22, $1E, $2C, $2D +db $62, $EB, $00, $11, $6F, $5D, $6A, $5F, $70, $71, $5D, $6E, $75 +db $63, $0B, $00, $11, $95, $83, $90, $85, $96, $97, $83, $94, $9B +; sahasralah's homecoming +db $62, $4F, $00, $01, $34 +db $62, $65, $00, $2D, $2C, $1A, $21, $1A, $2C, $2B, $1A, $25, $1A, $21, $35, $2C, $9F, $21, $28, $26, $1E, $1C, $28, $26, $22, $27, $20 +db $62, $E9, $00, $19, $67, $5D, $67, $5D, $6E, $65, $67, $6B, $9F, $70, $6B, $73, $6A +db $63, $09, $00, $19, $8D, $83, $8D, $83, $94, $8B, $8D, $91, $9F, $96, $91, $99, $90 +; vultures rule the desert +db $62, $64, $00, $2F, $2F, $2E, $25, $2D, $2E, $2B, $1E, $2C, $9F, $2B, $2E, $25, $1E, $9F, $2D, $21, $1E, $9F, $1D, $1E, $2C, $1E, $2B, $2D +db $62, $E9, $00, $19, $60, $61, $6F, $61, $6E, $70, $9F, $6C, $5D, $68, $5D, $5F, $61 +db $63, $09, $00, $19, $86, $87, $95, $87, $94, $96, $9F, $92, $83, $8E, $83, $85, $87 +; the bully makes a friend +db $62, $64, $00, $2F, $2D, $21, $1E, $9F, $1B, $2E, $25, $25, $32, $9F, $26, $1A, $24, $1E, $2C, $9F, $1A, $9F, $1F, $2B, $22, $1E, $27, $1D +db $62, $E9, $00, $1B, $69, $6B, $71, $6A, $70, $5D, $65, $6A, $9F, $70, $6B, $73, $61, $6E +db $63, $09, $00, $1B, $8F, $91, $97, $90, $96, $83, $8B, $90, $9F, $96, $91, $99, $87, $94 +; your uncle recovers +db $62, $66, $00, $25, $32, $28, $2E, $2B, $9F, $2E, $27, $1C, $25, $1E, $9F, $2B, $1E, $1C, $28, $2F, $1E, $2B, $2C +db $62, $EB, $00, $13, $75, $6B, $71, $6E, $9F, $64, $6B, $71, $6F, $61 +db $63, $0B, $00, $13, $9B, $91, $97, $94, $9F, $8A, $91, $97, $95, $87 +; finger webs for sale +db $62, $66, $00, $27, $1F, $22, $27, $20, $1E, $2B, $9F, $30, $1E, $1B, $2C, $9F, $1F, $28, $2B, $9F, $2C, $1A, $25, $1E +db $62, $E8, $00, $1F, $76, $6B, $6E, $5D, $77, $6F, $9F, $73, $5D, $70, $61, $6E, $62, $5D, $68, $68 +db $63, $08, $00, $1F, $9C, $91, $94, $83, $9D, $95, $9F, $99, $83, $96, $87, $94, $88, $83, $8E, $8E +; the witch and assistant +db $62, $64, $00, $2D, $2D, $21, $1E, $9F, $30, $22, $2D, $1C, $21, $9F, $1A, $27, $1D, $9F, $1A, $2C, $2C, $22, $2C, $2D, $1A, $27, $2D +db $62, $EB, $00, $13, $69, $5D, $63, $65, $5F, $9F, $6F, $64, $6B, $6C +db $63, $0B, $00, $13, $8F, $83, $89, $8B, $85, $9F, $95, $8A, $91, $92 +; twin lumberjacks +db $62, $68, $00, $1F, $2D, $30, $22, $27, $9F, $25, $2E, $26, $1B, $1E, $2B, $23, $1A, $1C, $24, $2C +db $62, $E9, $00, $1B, $73, $6B, $6B, $60, $6F, $69, $61, $6A, $77, $6F, $9F, $64, $71, $70 +db $63, $09, $00, $1B, $99, $91, $91, $86, $95, $8F, $87, $90, $9D, $95, $9F, $8A, $97, $96 +; ocarina boy plays again +db $62, $64, $00, $2D, $28, $1C, $1A, $2B, $22, $27, $1A, $9F, $1B, $28, $32, $9F, $29, $25, $1A, $32, $2C, $9F, $1A, $20, $1A, $22, $27 +db $62, $E9, $00, $19, $64, $5D, $71, $6A, $70, $61, $60, $9F, $63, $6E, $6B, $72, $61 +db $63, $09, $00, $19, $8A, $83, $97, $90, $96, $87, $86, $9F, $89, $94, $91, $98, $87 +; venus. queen of faeries +db $62, $64, $00, $2D, $2F, $1E, $27, $2E, $2C, $37, $9F, $2A, $2E, $1E, $1E, $27, $9F, $28, $1F, $9F, $1F, $1A, $1E, $2B, $22, $1E, $2C +db $62, $EA, $00, $17, $73, $65, $6F, $64, $65, $6A, $63, $9F, $73, $61, $68, $68 +db $63, $0A, $00, $17, $99, $8B, $95, $8A, $8B, $90, $89, $9F, $99, $87, $8E, $8E +; the dwarven swordsmiths +db $62, $64, $00, $2D, $2D, $21, $1E, $9F, $1D, $30, $1A, $2B, $2F, $1E, $27, $9F, $2C, $30, $28, $2B, $1D, $2C, $26, $22, $2D, $21, $2C +db $62, $EC, $00, $0F, $6F, $69, $65, $70, $64, $61, $6E, $75 +db $63, $0C, $00, $0F, $95, $8F, $8B, $96, $8A, $87, $94, $9B +; the bug-catching kid +db $62, $66, $00, $27, $2D, $21, $1E, $9F, $1B, $2E, $20, $36, $1C, $1A, $2D, $1C, $21, $22, $27, $20, $9F, $24, $22, $1D +db $62, $E9, $00, $19, $67, $5D, $67, $5D, $6E, $65, $67, $6B, $9F, $70, $6B, $73, $6A +db $63, $09, $00, $19, $8D, $83, $8D, $83, $94, $8B, $8D, $91, $9F, $96, $91, $99, $90 +; the lost old man +db $62, $48, $00, $1F, $2D, $21, $1E, $9F, $25, $28, $2C, $2D, $9F, $28, $25, $1D, $9F, $26, $1A, $27 +db $62, $E9, $00, $1B, $60, $61, $5D, $70, $64, $9F, $69, $6B, $71, $6A, $70, $5D, $65, $6A +db $63, $09, $00, $1B, $86, $87, $83, $96, $8A, $9F, $8F, $91, $97, $90, $96, $83, $8B, $90 +; the forest thief +db $62, $68, $00, $1F, $2D, $21, $1E, $9F, $1F, $28, $2B, $1E, $2C, $2D, $9F, $2D, $21, $22, $1E, $1F +db $62, $EB, $00, $13, $68, $6B, $6F, $70, $9F, $73, $6B, $6B, $60, $6F +db $63, $0B, $00, $13, $8E, $91, $95, $96, $9F, $99, $91, $91, $86, $95 +; master sword +db $62, $66, $00, $27, $1A, $27, $1D, $9F, $2D, $21, $1E, $9F, $26, $1A, $2C, $2D, $1E, $2B, $9F, $2C, $30, $28, $2B, $1D +db $62, $A8, $00, $1D, $4A, $43, $3C, $3C, $47, $4A, $9F, $38, $3E, $38, $40, $45, $52, $52, $52 +db $62, $EC, $00, $0F, $62, $6B, $6E, $61, $72, $61, $6E, $78 +db $63, $0C, $00, $0F, $88, $91, $94, $87, $98, $87, $94, $9E +;-------------------------------------------------------------------------------- +; org $0EECC0 ; PC 0x76CC0 poiters for above scenes +; dw $0000, $003C, $006A, $00AC, $00EA, $012A, $015D, $019D, $01D4, $020C, $0249, $0284, $02B7, $02F1, $0329, $0359, $039C ;================================================================================ org $30A000 ; $30A000 (0x182000) - $30A07F (0x18007F) RNGSingleItemTable: @@ -955,7 +1032,7 @@ db $04 ;08:IceRod ;09:Hammer ;0A:HookShot -;0B:Bow +;0B:Bow ;0C:Boomerang (Alternate = 10 Arrows) ;0D:Powder ;0E:Bee @@ -1014,7 +1091,7 @@ db $04 ;40:100 Rupees ;41:50 Rupees -;42:Heart +;42:Heart ;43:Arrow ;44:10 Arrows ;45:Magic @@ -1229,7 +1306,7 @@ db $F2, $23, $2F, $28, $9B, $AA, $AB, $D0, $6A, $9D, $C6, $2D, $00, $FE, $E1, $3 db $A0, $4A, $B8, $4E, $74, $1F, $8E, $A9, $F5, $CD, $60, $91, $DB, $D8, $52, $E2 ;================================================================================ org $30A100 ; PC 0x182100 -EntranceDoorFrameTable: +EntranceDoorFrameTable: dw $0000, $0000, $0DE8, $0B98, $14CE, $0000, $1C50, $FFFF dw $1466, $0000, $1AB6, $0B98, $1AB6, $040E, $9C0C, $1530 dw $0A98, $0000, $0000, $0000, $0000, $0000, $0000, $0816 @@ -1239,4 +1316,4 @@ dw $041A, $0000, $091E, $09AC, $0000, $0000, $0000, $0000 dw $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0000 dw $0000, $0AA8, $07AA, $0000, $0000, $0000, $0000, $0000 dw $0000, $0000, $0000, $0000, $0000, $0000 -;=============================================================================== \ No newline at end of file +;===============================================================================