From 891bb49ce265d3882d6a2188aa4f3450b128a4e3 Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Thu, 20 Sep 2018 00:20:02 -0400 Subject: [PATCH] Inverted mountain cave starts on overworld --- entrances.asm | 26 ++++++++++++++++++++++++++ hooks.asm | 4 ++++ sandbox.asm | 3 +++ tables.asm | 9 ++++++++- 4 files changed, 41 insertions(+), 1 deletion(-) diff --git a/entrances.asm b/entrances.asm index 7abc797..79568e8 100644 --- a/entrances.asm +++ b/entrances.asm @@ -112,6 +112,32 @@ AllowStartFromSingleEntranceCave: .done PLA RTL +;-------------------------------------------------------------------------------- +AllowStartFromExit: + + LDX $1CE8 + LDA.l ShouldStartatExit, X : BNE .doStart + + LDA.l $7EF3C8 ; what we wrote over +JML.l AllowStartFromExitReturn + + .doStart + + LDA.l $028481, X ;Module_LocationMenu_starting_points + ASL : TAX + + LDA.l $02D8D2, X : STA $A0 + LDA.l $02D8D3, X : STA $A1 + + ; Go to pre-overworld mode + LDA.b #$08 : STA $10 + + STZ $11 + STZ $B0 + + STZ $04AA +RTL + ;-------------------------------------------------------------------------------- CheckHole: LDX.w #$0024 diff --git a/hooks.asm b/hooks.asm index 9411175..cd12733 100755 --- a/hooks.asm +++ b/hooks.asm @@ -240,6 +240,10 @@ JSL.l DecideIfBunnyByScreenIndex : db #$D0 ; BNE org $02D9B9 ; <- 159B9 - Bank02.asm : 11089 (LDA $7EF3C8) JSL AllowStartFromSingleEntranceCave ;-------------------------------------------------------------------------------- +org $028496 ; <- 15496 - Bank02.asm : 959 (LDA $7EF3C8 : PHA) +JML.l AllowStartFromExit +AllowStartFromExitReturn: +;-------------------------------------------------------------------------------- org $1bc2a7 ; <- DC2A7 - Bank1B.asm : 1143 (Overworld_CreatePyramidHole:) JSL.l Overworld_CreatePyramidHoleModified RTL diff --git a/sandbox.asm b/sandbox.asm index 9146213..6c02e12 100644 --- a/sandbox.asm +++ b/sandbox.asm @@ -236,6 +236,9 @@ org $02E07C+$06 : db $f2 org $02E0CB+$06+$06 : dw $0000 org $02E169+$06+$06 : dw $0000 + +org $308350 : db $00, $00, $01 ; Death mountain cave should start on overworld + ;(0x????,0x1B,0x0130,0x060a,0x0716,0x0672,0x07f8,0x0681,0x0803,0x0c,0x02,xx,xx) ; Exit table cryptic documentation: ;??|$15D8A-$15E27 - (0x4F entries, 2 bytes each) - Rooms that exit to overworld Areas ("Room" in HM) diff --git a/tables.asm b/tables.asm index d20e706..f22cbd3 100644 --- a/tables.asm +++ b/tables.asm @@ -948,7 +948,7 @@ dw $0000 : db $00 : dw $0000, $0000, $0000, $0000, $0000, $0000, $0000 : db $00, ; 0x1802A0 - 0x1802FF (unused) ;-------------------------------------------------------------------------------- ; $308300 (0x180300) - $30834F (0x18034F) -org $308300 ; PC 0x180250 +org $308300 ; PC 0x180300 ExtraHole_Map16: dw $FFFF, $FFFF, $FFFF, $FFFF, $FFFF, $FFFF, $FFFF, $FFFF dw $FFFF, $FFFF, $FFFF, $FFFF, $FFFF, $FFFF, $FFFF, $FFFF @@ -958,6 +958,13 @@ dw $FFFF, $FFFF, $FFFF, $FFFF, $FFFF, $FFFF, $FFFF, $FFFF ExtraHole_Entrance: db $00, $00, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 +;-------------------------------------------------------------------------------- +; $308350 (0x180350) - $30834F (0x18034F) +; Correspond to the three start options +; do not set for a starting location that is using a single entrance cave +org $308350 ; PC 0x180350 +ShouldStartatExit: +db $00, $00, $00 ;================================================================================ ; 0x180350 - 0x1814FF (unused) ;================================================================================