diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index 63282e3..e13d8a6 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 #$20170628 +dl #$20170701 ;================================================================================ @@ -42,6 +42,8 @@ dl #$20170628 !MAP_ZOOM = "$7EF415" !PROGRESSIVE_SHIELD = "$7EF416" ; ss-- ---- !HUD_FLAG = "$7EF416" ; --h- ---- +!FORCE_PYRAMID = "$7EF416" ; ---- p--- +!IGNORE_FAIRIES = "$7EF416" ; ---- -i-- !SHAME_CHEST = "$7EF416" ; ---s ---- !HAS_GROVE_ITEM = "$7EF416" ; ---- ---g general flags, don't waste these !HIGHEST_SWORD_LEVEL = "$7EF417" ; --- -sss @@ -195,6 +197,10 @@ incsrc itemtext.asm incsrc externalhooks.asm ;================================================================================ +org $119100 ; PC 0x89100 +incbin map_icons.gfx +warnpc $119401 +;================================================================================ org $AF8000 ; PC 0x178000 Static_RNG: ; each line below is 512 bytes of rng db $90, $2B, $80, $B7, $A2, $E1, $C9, $4F, $1C, $B9, $E6, $20, $58, $67, $65, $A6, $11, $CF, $79, $4C, $C7, $61, $D1, $D4, $D3, $9B, $78, $3B, $FB, $AA, $A3, $15, $7C, $36, $D7, $8B, $0B, $AD, $26, $B5, $3B, $69, $E3, $83, $7F, $11, $E2, $92, $80, $67, $E1, $9C, $CF, $D5, $45, $F5, $6B, $36, $B6, $7A, $1A, $39, $84, $13, $47, $EC, $D8, $AE, $57, $9E, $F4, $0B, $61, $BB, $8D, $0A, $4D, $62, $8E, $22, $E3, $72, $C5, $71, $F7, $99, $0B, $10, $B1, $13, $52, $5E, $78, $43, $74, $8F, $37, $69, $07, $9A, $25, $0E, $30, $6A, $03, $9E, $8E, $0F, $77, $92, $38, $33, $89, $5D, $33, $B3, $01, $A1, $BF, $69, $8D, $97, $27, $6C, $4C, $9B, $A8, $18, $99, $7E, $B2, $DB, $A7, $44, $27, $A8, $A5, $BC, $F5, $AA, $EE, $2E, $CA, $A1, $FE, $C1, $FE, $49, $AD, $3B, $CA, $42, $F3, $6C, $D9, $71, $19, $03, $7B, $E3, $A9, $86, $6C, $D0, $A2, $2B, $FB, $19, $D9, $DB, $47, $88, $7A, $20, $1F, $D5, $3E, $C7, $3F, $7F, $87, $D4, $90, $9C, $D1, $EB, $F9, $78, $11, $2F, $B9, $9B, $77, $01, $80, $DF, $39, $17, $23, $9B, $62, $E3, $A6, $53, $3C, $DC, $F9, $C9, $34, $CC, $3D, $47, $2F, $9E, $1C, $25, $EE, $84, $9E, $45, $B8, $24, $01, $AA, $E3, $B2, $B5, $93, $05, $A1, $08, $09, $38, $19, $D6, $F7, $A6, $2C, $F5, $1D, $4D, $E7, $3B, $2D, $1B, $BC, $86, $40, $D8, $EB, $75, $F2, $8B, $EA, $8C, $D4, $B7, $F1, $A6, $B3, $63, $6B, $82, $92, $DA, $91, $5D, $33, $FD, $66, $32, $92, $C8, $2A, $C2, $10, $83, $49, $1B, $B9, $30, $78, $AA, $D6, $02, $AA, $92, $21, $E6, $04, $00, $F0, $EE, $40, $3F, $5E, $6E, $17, $88, $A9, $A7, $70, $CE, $CA, $E2, $41, $A1, $22, $07, $24, $F7, $C8, $E0, $56, $50, $E0, $85, $F6, $62, $81, $43, $E1, $B7, $6B, $7E, $9E, $0E, $22, $2D, $F3, $56, $49, $73, $CC, $B2, $43, $1B, $59, $40, $5E, $76, $A9, $D5, $F6, $86, $30, $F2, $2E, $40, $E1, $77, $D8, $29, $F3, $B8, $3F, $C3, $84, $19, $E5, $8D, $71, $8C, $20, $A9, $74, $2B, $3B, $30, $3A, $83, $E1, $B8, $3D, $FB, $48, $EF, $7D, $45, $DB, $77, $B6, $6A, $E0, $BB, $58, $55, $B4, $C5, $6A, $A2, $36, $AE, $C2, $AD, $AF, $66, $82, $AB, $F9, $0F, $D9, $58, $95, $65, $98, $DC, $99, $47, $E2, $71, $CD, $6F, $A2, $F9, $5D, $2B, $BF, $67, $6A, $E8, $93, $38, $17, $C0, $7A, $D8, $74, $13, $2D, $94, $7B, $65, $51, $6D, $FE, $05, $FA, $1E, $B3, $3C, $CA, $04, $DE, $E7, $00, $97, $7E, $A4, $4D, $2F, $72, $A2, $4F, $8F, $A9, $3F, $66, $38, $20, $3D, $D4, $AA, $A5, $77, $AB, $F3, $C8, $BE, $36, $F0, $AF, $14, $57, $03, $39, $1F, $DB, $A9, $F0, $28, $05, $1F, $E6, $28, $B5, $D2, $76, $1A, $A4, $BA, $7C, $BF, $7F, $B0, $28, $27, $91, $D3, $34, $43, $47, $AA, $5D, $03, $77, $F4, $83, $CF, $37, $55, $08 diff --git a/darkworldspawn.asm b/darkworldspawn.asm index c8408ba..ff5f01f 100644 --- a/darkworldspawn.asm +++ b/darkworldspawn.asm @@ -17,11 +17,14 @@ RTL ;-------------------------------------------------------------------------------- DarkWorldFlagSet: PHA + + LDA !FORCE_PYRAMID : AND.b #$08 : BNE .pyramid + LDA Bugfix_PreAgaDWDungeonDeathToFakeDW : BEQ + LDA $10 : CMP #$12 : BEQ .done ; don't do anything in death mode + LDA $1B : BEQ + ; skip this unless indoors - THIS PART FIXES THE OTHER FUCKUP WITH THE PYRAMID SPAWN IN GLITCHED - LDA $A0 : CMP.b #$00 : BEQ .done ; skip if we died in ganon's room + LDA $A0 : BEQ .done ; skip if we died in ganon's room + LDA.l Bugfix_MirrorlessSQToLW : BEQ + LDA $7EF353 : BEQ .noMirror ; check if we have the mirror @@ -34,6 +37,11 @@ DarkWorldFlagSet: LDA $7EF3CC : CMP #$07 : BNE + : LDA.b #$08 : STA $7EF3CC : + ; convert frog to dwarf .done PLA +RTL + .pyramid + LDA #$40 : STA $7EF3CA ; set flag to dark world + LDA $7EF3CC : CMP #$08 : BNE + : LDA.b #$07 : STA $7EF3CC : + ; convert dwarf to frog + PLA RTL ;-------------------------------------------------------------------------------- SetDeathWorldChecked: @@ -42,7 +50,10 @@ SetDeathWorldChecked: LDA $040C : CMP #$FF : BNE .done ; unless it's a cave + LDA $7EF3C5 : CMP.b #$03 : !BGE .done; thing we originally did - skip if agahnim 1 is dead - LDA $A0 : CMP.b #$00 : BEQ .done ; skip if we died in ganon's room + LDA $A0 : BNE + ; check if we died in ganon's room + LDA !FORCE_PYRAMID : ORA.b #$08 : STA !FORCE_PYRAMID ; set pyramid flag + BRL DarkWorldFlagSet_pyramid + + LDA.b #$00 : STA $7EF3CA : STA $7E0FFF ; set the world to the light world if he's still alive LDA $7EF3CC : CMP #$07 : BNE .done : LDA.b #$08 : STA $7EF3CC ; convert frog to dwarf .done diff --git a/flipperkill.asm b/flipperkill.asm index c198600..ac782c2 100644 --- a/flipperkill.asm +++ b/flipperkill.asm @@ -7,7 +7,8 @@ FlipperKill: LDA $7EF356 : BNE .done ; skip if we have the flippers LDA $7F5001 : BEQ .done ; skip if we're not marked in danger for softlock LDA $8A : CMP $7F5098 : BEQ .done ; skip if we're on the same screen we entered the water on - JSL.l KillFairies ; take away fairies + ;JSL.l KillFairies ; take away fairies + LDA !IGNORE_FAIRIES : ORA.b #$04 : STA !IGNORE_FAIRIES LDA.b #$00 : STA $7EF36D ; kill link LDA.b #$00 : STA $7F5001 ; mark fake flipper softlock as impossible .done @@ -15,17 +16,28 @@ FlipperKill: LDA $7EF36D ; thing we wrote over RTL ;-------------------------------------------------------------------------------- -KillFairies: - LDA $7EF35C : CMP #$06 : BNE + - LDA #$02 : STA $7EF35C - + LDA $7EF35D : CMP #$06 : BNE + - LDA #$02 : STA $7EF35D - + LDA $7EF35E : CMP #$06 : BNE + - LDA #$02 : STA $7EF35E - + LDA $7EF35F : CMP #$06 : BNE + - LDA #$02 : STA $7EF35F - + +IgnoreFairyCheck: + LDX.b #$00 ; thing we wrote over + LDA !IGNORE_FAIRIES : BIT.b #$04 : BEQ .normal + + AND.b #$FB : STA !IGNORE_FAIRIES ; clear ignore fairy flag + LDA.b #$F0 ; set check to invalid entry RTL + .normal + LDA.b #$06 ; set check to fairy +RTL +;-------------------------------------------------------------------------------- +;KillFairies: +; LDA $7EF35C : CMP #$06 : BNE + +; LDA #$02 : STA $7EF35C +; + LDA $7EF35D : CMP #$06 : BNE + +; LDA #$02 : STA $7EF35D +; + LDA $7EF35E : CMP #$06 : BNE + +; LDA #$02 : STA $7EF35E +; + LDA $7EF35F : CMP #$06 : BNE + +; LDA #$02 : STA $7EF35F +; + +;RTL ;-------------------------------------------------------------------------------- FlipperReset: JSL $0998E8 ; AddTransitionSplash diff --git a/hooks.asm b/hooks.asm index 7de3fdf..944a272 100644 --- a/hooks.asm +++ b/hooks.asm @@ -280,9 +280,9 @@ dw $0000, $0002, $0004, $0032, $0004, $0006, $0030 ;================================================================================ ; Accessability ;-------------------------------------------------------------------------------- -org $0AC574 ; <- 54574 - Bank0A.asm : 1797 (LDA $0D : STA $0802, X) -JSL FlipGreenPendant -NOP #6 +;org $0AC574 ; <- 54574 - Bank0A.asm : 1797 (LDA $0D : STA $0802, X) +;JSL FlipGreenPendant +;NOP #6 ;-------------------------------------------------------------------------------- ;================================================================================ @@ -1685,6 +1685,9 @@ JSL.l OnLinkDamagedFromPit org $078F27 ; <- 38F27 JSL.l FlipperReset ;-------------------------------------------------------------------------------- +org $09F40B ; <- 4F40B - module_death.asm:222 (LDX.b #$00) +JSL.l IgnoreFairyCheck +;-------------------------------------------------------------------------------- org $078F51 ; <- 38F51 - Bank07.asm:2444 (JSR $AE54 ; $3AE54 IN ROM) JSL.l OnEnterWater : NOP ;-------------------------------------------------------------------------------- @@ -1702,6 +1705,13 @@ JSL.l OnOWTransition NOP #36 ;================================================================================ +;================================================================================ +; Add SFX to Digging Game Prize Spawn +;-------------------------------------------------------------------------------- +org $1DFDA8 ; <- EFDA9 - sprite_digging_game_guy.asm:309 (STA $7FFE00) +JSL.l SpawnShovelGamePrizeSFX +;================================================================================ + ;================================================================================ ; Heart Beep Timer ;-------------------------------------------------------------------------------- diff --git a/inventory.asm b/inventory.asm index a6aff8e..657d8bd 100644 --- a/inventory.asm +++ b/inventory.asm @@ -915,6 +915,17 @@ RTL ;RTL ;-------------------------------------------------------------------------------- +;-------------------------------------------------------------------------------- +; SpawnShovelGamePrizeSFX: +;-------------------------------------------------------------------------------- +SpawnShovelGamePrizeSFX: + STA $7FFE00 ; thing we wrote over + PHA + LDA.b #$1B : STA $012F ; play puzzle sound + PLA +RTL +;-------------------------------------------------------------------------------- + ;-------------------------------------------------------------------------------- ; SpawnShovelItem: ;-------------------------------------------------------------------------------- diff --git a/map_icons.gfx b/map_icons.gfx new file mode 100644 index 0000000..d6aec61 Binary files /dev/null and b/map_icons.gfx differ diff --git a/tables.asm b/tables.asm index 9ffab30..addf59b 100644 --- a/tables.asm +++ b/tables.asm @@ -129,7 +129,7 @@ db #$00 ; #$00 = Off (default) - #$01 = On ;-------------------------------------------------------------------------------- org $30803B ; PC 0x18003B MapMode: -db #$01 ; #$00 = Always On (default) - #$01 = Require Map Item +db #$00 ; #$00 = Always On (default) - #$01 = Require Map Item CompassMode: db #$00 ; #$00 = Off (default) - #$01 = Display Dungeon Count ;-------------------------------------------------------------------------------- @@ -331,7 +331,7 @@ dw $0100 ; #$6234 - Master Sword org $0ABEF8 ; PC 0x53EF8 MapObject_Eastern: -dw $6038 ; #$6038 - Green Pendant / Courage +dw $6238 ; #$6038 - Green Pendant / Courage org $0ABF1C ; PC 0x53F1C MapObject_Desert: