From d1d847e9ef83233f0ce143e73c168759585755fd Mon Sep 17 00:00:00 2001 From: Karkat Date: Fri, 14 Jul 2017 23:32:19 -0400 Subject: [PATCH] let's dev 7/14/17 ganon alternate invincible dialog added all crystals ganon condition changed "SEED" on title screen to "HASH" fixed bug in progressive armor limit code --- LTTP_RND_GeneralBugfixes.asm | 2 +- dialog.asm | 14 ++++++++++++-- goalitem.asm | 37 ++++++++++++++++++++++++------------ hashalphabet.asm | 25 ++++++++++++++++-------- newitems.asm | 2 +- tables.asm | 25 ++++++++++++++++++++---- 6 files changed, 77 insertions(+), 28 deletions(-) diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index c3e65eb..ebfb7de 100644 --- a/LTTP_RND_GeneralBugfixes.asm +++ b/LTTP_RND_GeneralBugfixes.asm @@ -26,7 +26,7 @@ org $3FFFFF ; <- 1FFFFF db #$00 ; expand file to 2mb org $1FFFF8 ; timestamp rom -dl #$20170707 +dl #$20170714 ;================================================================================ diff --git a/dialog.asm b/dialog.asm index f159b74..a2fffe8 100644 --- a/dialog.asm +++ b/dialog.asm @@ -221,12 +221,22 @@ DialogTriforce: RTL ;-------------------------------------------------------------------------------- DialogGanon1: - %LoadDialogAddress(GanonText1) + JSL.l CheckGanonVulnerability : BCS + + %LoadDialogAddress(GanonText1Alternate) + BRA ++ + + + %LoadDialogAddress(GanonText1) + ++ JSL.l Sprite_ShowMessageMinimal RTL ;-------------------------------------------------------------------------------- DialogGanon2: - %LoadDialogAddress(GanonText2) + JSL.l CheckGanonVulnerability : BCS + + %LoadDialogAddress(GanonText2Alternate) + BRA ++ + + + %LoadDialogAddress(GanonText2) + ++ JSL.l Sprite_ShowMessageMinimal RTL ;-------------------------------------------------------------------------------- diff --git a/goalitem.asm b/goalitem.asm index 68193bd..2ea8067 100644 --- a/goalitem.asm +++ b/goalitem.asm @@ -27,22 +27,35 @@ RTL ;-------------------------------------------------------------------------------- GoalItemGanonCheck: LDA $0E20, X : CMP.b #$D6 : BNE .success ; skip if not ganon - LDA InvincibleGanon : BNE + - ;#$00 = Off - BRA .success - + : CMP #$01 : BNE + - ;#$01 = On - RTL - + ; CMP #$02 BNE + this is a comment - ;#$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 - BRA .success + JSL.l CheckGanonVulnerability + BCS .success + .fail + LDA $0D80, X : CMP.b #17 : !BLT .success ; decmial 17 because Acmlm's chart is decimal LDA.b #$00 RTL .success LDA $44 : CMP.b #$80 ; thing we wrote over 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 + BRA .success + + ; CMP #$03 : BNE + this is a comment + ;#$03 = Require All Crystals + LDA $7EF37A : AND.b #$7F : CMP #$7F : BNE .fail ; require all crystals + BRA .success + + +.fail : CLC : RTL +.success : SEC : RTL ;-------------------------------------------------------------------------------- \ No newline at end of file diff --git a/hashalphabet.asm b/hashalphabet.asm index 50f7733..2ac526c 100644 --- a/hashalphabet.asm +++ b/hashalphabet.asm @@ -250,15 +250,24 @@ RTS !FSTILE_BRACKET_CLOSE_TOP = "$1D8B" !FSTILE_BRACKET_CLOSE_BOTTOM = "$1D9B" + +!FSTILE_A_TOP = "$1D4A" +!FSTILE_A_BOTTOM = "$1D5A" + +!FSTILE_H_TOP = "$1D61" +!FSTILE_H_BOTTOM = "$1D71" + +!FSTILE_S_TOP = "$1D6C" +!FSTILE_S_BOTTOM = "$1D7C" ;-------------------------------------------------------------------------------- FileSelect_PlayerSelectText_Top: ;db $60, $62, $00, $37 dw !FSTILE_SPACE, !FSTILE_SPACE dw !FSTILE_BRACKET_OPEN_TOP -dw !FSTILE_SPACE, $1D6C -dw !FSTILE_SPACE, $1D4E -dw !FSTILE_SPACE, $1D4E -dw !FSTILE_SPACE, $1D4D +dw !FSTILE_SPACE, !FSTILE_H_TOP +dw !FSTILE_SPACE, !FSTILE_A_TOP +dw !FSTILE_SPACE, !FSTILE_S_TOP +dw !FSTILE_SPACE, !FSTILE_H_TOP dw !FSTILE_SPACE, !FSTILE_SPACE dw !FSTILE_SPACE, $05A0, $05A1 dw !FSTILE_SPACE, $05A4, $05A5 @@ -273,10 +282,10 @@ FileSelect_PlayerSelectText_Bottom: ;db $60, $82, $00, $37 dw !FSTILE_SPACE, !FSTILE_SPACE dw !FSTILE_BRACKET_OPEN_BOTTOM -dw !FSTILE_SPACE, $1D7C -dw !FSTILE_SPACE, $1D5E -dw !FSTILE_SPACE, $1D5E -dw !FSTILE_SPACE, $1D5D +dw !FSTILE_SPACE, !FSTILE_H_BOTTOM +dw !FSTILE_SPACE, !FSTILE_A_BOTTOM +dw !FSTILE_SPACE, !FSTILE_S_BOTTOM +dw !FSTILE_SPACE, !FSTILE_H_BOTTOM dw !FSTILE_SPACE, !FSTILE_SPACE dw !FSTILE_SPACE, $05A2, $05A3 dw !FSTILE_SPACE, $05A6, $05A7 diff --git a/newitems.asm b/newitems.asm index 15425d3..4adf791 100755 --- a/newitems.asm +++ b/newitems.asm @@ -314,7 +314,7 @@ AddReceivedItemExpanded: ++ : CMP.b #$60 : BNE ++ ; Progressive Armor LDA $7EF35B : CMP.l ProgressiveArmorLimit : !BLT + LDA.l ProgressiveArmorReplacement : STA $02D8 : BRL .done - + : BNE + ; No Shield + + : CMP.b #$00 : BNE + ; No Shield LDA.b #$22 : STA $02D8 : BRA .done + ; Everything Else LDA.b #$23 : STA $02D8 : BRA .done diff --git a/tables.asm b/tables.asm index 52592cf..d6e993e 100644 --- a/tables.asm +++ b/tables.asm @@ -187,15 +187,15 @@ db #$00 ; $00 = static rng, $01 = no extra blue balls/warps ;-------------------------------------------------------------------------------- org $308090 ; PC 0x180090 ProgressiveSwordLimit: -db #$04 ; #$04 (default) +db #$04 ; #$04 - 4 Swords (default) ProgressiveSwordReplacement: db #$47 ; #$47 - 20 Rupees (default) ProgressiveShieldLimit: -db #$03 ; #$03 (default) +db #$03 ; #$03 - 3 Shields (default) ProgressiveShieldReplacement: db #$47 ; #$47 - 20 Rupees (default) ProgressiveArmorLimit: -db #$02 ; #$02 (default) +db #$02 ; #$02 - 2 Armors (default) ProgressiveArmorReplacement: db #$47 ; #$47 - 20 Rupees (default) ;-------------------------------------------------------------------------------- @@ -832,13 +832,30 @@ EtherTabletText: 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 ;-------------------------------------------------------------------------------- -; $308E00 (0x180E00) - $308EFF (0x180EFF) +; $309000 (0x181000) - $3090FF (0x1810FF) ; BombosTabletText org $309000 ; PC 0x181000 BombosTabletText: ; please deliver|this big bomb|to my fairy|friend in the|pyramid? 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 +;-------------------------------------------------------------------------------- +; $309100 (0x181100) - $3091FF (0x1811FF) +; Ganon Text 1 - Invincible Alternate (ALTTP JP Text Format) +org $309100 ; PC 0x181100 +GanonText1Alternate: +; 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 +;-------------------------------------------------------------------------------- +; $309200 (0x180700) - $3092FF (0x1812FF) +; Ganon Text 2 - Invincible Alternate (ALTTP JP Text Format) +org $309200 ; PC 0x181200 +GanonText2Alternate: +; please deliver|this big bomb|to my fairy|friend in the|pyramid? +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 +;-------------------------------------------------------------------------------- ;================================================================================ org $30A000 ; $30A000 (0x182000) - $30A07F (0x18007F) RNGSingleItemTable: