From 1c170282111005769cb71269b8fd2bba55e8da99 Mon Sep 17 00:00:00 2001 From: Karkat Date: Wed, 25 Apr 2018 23:36:35 -0400 Subject: [PATCH] let's dev 4/25/18 additional dev for inverted --- LTTP_RND_GeneralBugfixes.asm | 2 +- entrances.asm | 39 ++++++++++++++++ hooks.asm | 3 ++ sandbox.asm | 87 +++++++++--------------------------- tables.asm | 43 +++++++++++++----- 5 files changed, 95 insertions(+), 79 deletions(-) diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index 0c8e954..040122b 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 ; <- FFFF8 timestamp rom -db #$20, #$18, #$04, #$20 ; year/month/day +db #$20, #$18, #$04, #$25 ; year/month/day ;================================================================================ diff --git a/entrances.asm b/entrances.asm index b9d7505..6f7fe79 100644 --- a/entrances.asm +++ b/entrances.asm @@ -36,3 +36,42 @@ SmithDoorCheck: JMP.l Overworld_Entrance_BRANCH_RHO ;-------------------------------------------------------------------------------- +AllowStartFromSingleEntranceCave: +; 16 Bit A, 16 bit XY +; do not need to preserve A or X or Y + LDA $7EF3C8 : AND.w #$00FF ; What we wrote over + BEQ + + BRL .done + + + PHA + LDA #$0016 : STA $7EC142 ; Cache the main screen designation + LDA $02DCF3 : STA $7EC144 ; Cache BG1 V scroll + LDA $02DD91 : STA $7EC146 ; Cache BG1 H scroll + LDA $02DE2F : !ADD.w #$0010 : STA $7EC148 ; Cache Link's Y coordinate + LDA $02DECD : STA $7EC14A ; Cache Link's X coordinate + LDA $02DF6B : STA $7EC150 ; Cache Camera Y coord lower bound. + LDA $02E009 : STA $7EC152 ; Cache Camera X coord lower bound. + LDA $02DC55 : STA $7EC14E ; Cache Link VRAM Location + + ; Handle the 2 "unknown" bytes, which control what area of the backgound + ; relative to the camera gets loaded with new tile data as the player moves around + ; (because some overworld areas like Kak are too big for a single VRAM tilemap) + + LDA.l $02E06A : AND.w #$00FF + BIT.w #$0080 : BEQ + : ORA #$FF00 : + ; Sign extend + STA.l $7EC16A + + LDA.l $02E0B9 : AND.w #$00FF + BIT.w #$0080 : BEQ + : ORA #$FF00 : + ; Sign extend + STA.l $7EC16E + + LDA.w #$0000 : !SUB.l $7EC16A : STA $7EC16C + LDA.w #$0000 : !SUB.l $7EC16E : STA $7EC170 + + LDA $02DBC9 : AND.w #$00FF + STA $7EC14C ; Cache the overworld area number + STA $7EC140 ; Cache the aux overworld area number + PLA + .done +RTL +;-------------------------------------------------------------------------------- \ No newline at end of file diff --git a/hooks.asm b/hooks.asm index 917b807..a7e2599 100644 --- a/hooks.asm +++ b/hooks.asm @@ -89,6 +89,9 @@ org $07AA44 ; <- 3AA44 - Bank07.asm : 853 (LDA $7EF357 : BNE .playerHasMoonPearl NOP #6 JSL.l DecideIfBunnyByScreenIndex : db #$D0 ; BNE ;-------------------------------------------------------------------------------- +org $02D9B9 ; <- 159B9 - Bank02.asm : 11089 (LDA $7EF3C8) +JSL AllowStartFromSingleEntranceCave +;-------------------------------------------------------------------------------- ;================================================================================ ; Hash Key Display diff --git a/sandbox.asm b/sandbox.asm index 748fde6..e89314c 100644 --- a/sandbox.asm +++ b/sandbox.asm @@ -1,69 +1,24 @@ -;-------------------------------------------------------------------------------- -;Dungeon Music -;org $02D592 ; PC 0x15592 -;11 - Pendant Dungeon -;16 - Crystal Dungeon -; -;org $02D592+$08 -;Music_Eastern: -;db $11 -; -;org $02D592+$09 -;Music_Desert: -;db $16, $16, $16, $16 -; -;org $02D592+$33 -;Music_Hera: -;db $16 -;org $02907A ; 0x1107A - Bank02.asm:3089 (#$11) -;Music_Hera2: -;db $16 -;org $028B8C ; 0x10B8C - Bank02.asm:2231 (#$11) -;Music_Hera3: -;db $16 -; -;org $02D592+$26 -;Music_Darkness: -;db $11 -; -;org $02D592+$25 -;Music_Swamp: -;db $16 -; -;org $02D592+$28 -;Music_Skull: -;db $11, $11, $11, $11 -; -;org $02D592+$76 -;Music_Skul_Drop: -;db $11, $11, $11, $11 -; -;org $02D592+$34 -;Music_Thieves: -;db $11 -; -;org $02D592+$2D -;Music_Ice: -;db $16 -; -;org $02D592+$27 -;Music_Mire: -;db $11 -; -;org $02D592+$35 -;Music_TRock: -;db $11 -;org $02D592+$15 -;Music_TRock2: -;db $11 -;org $02D592+$18 -;Music_TRock3: -;db $11, $11 -; -;org $02D592+$37 -;Music_GTower: -;db $11 -;-------------------------------------------------------------------------------- +;---------------------------------- +; Start at C-Shaped house +;---------------------------------- +;org $02D8D2 : dw $11c +;org $02D8E0 : db $23, $22, $23, $23, $19, $19, $19, $19 +;org $02D918 : dw $1900 +;org $02D926 : dw $2300 +;org $02D934 : dw $233e +;org $02D942 : dw $1940 +;org $02D950 : dw $0177 +;org $02D95E : dw $017F +;org $02D96C : db $03 +;org $02D973 : db $00 +;org $02D97A : db $FF +;org $02D981 : db $00 +;org $02D988 : db $00 +;org $02D98F : db $02 +;org $02D996 : dw $0DE8 +;org $02D9A4 : dw $0054 +;org $02D9B2 : db $07 + ;org $06FA78 ; set all prize packs to bombs ;dd #$DDDDDDDD diff --git a/tables.asm b/tables.asm index 3fb0a67..3843048 100644 --- a/tables.asm +++ b/tables.asm @@ -797,7 +797,7 @@ org $308174 ; PC 0x180174 ; to the other world (As can be caused by EG, Certain underworld clips, or Entance Randomizer). ; Currently, Fake Worlds triggered by other causes like YBA's Fake Flute, are not affected. FixFakeWorld: -db #$00 ; #00 = Fix Off (Default) - #$01 = Fix On +db #$01 ; #00 = Fix Off (Default) - #$01 = Fix On ;================================================================================ org $308175 ; PC 0x180175 - 0x180179 ArrowMode: @@ -1369,17 +1369,36 @@ db $04 ;AE - Reserved ;AF - Generic Small Key ;================================================================================ -;Vortexes -org $05AF79 ; PC 0x2AF79 (sprite_warp_vortex.asm:18) (BNE) -db #$D0 ; #$D0 - Light-to-Dark (Default), #$F0 - Dark-to-Light, #$42 - Both Directions -;Mirror -org $07A943 ; PC 013A943 (Bank07.asm:6548) (BNE) -db #$D0 ; #$D0 - Dark-to-Light (Default), #$F0 - Light-to-Dark, #$42 - Both Directions -;Residual Portal -org $07A96D ; PC 013A96D (Bank07.asm:6578) (BEQ) -db #$F0 ; #$F0 - Light Side (Default), #$D0 - Dark Side, #$42 - Both Sides -org $07A9A7 ; PC 013A9A7 (Bank07.asm:6622) (BNE) -db #$D0 ; #$D0 - Light Side (Default), #$F0 - Dark Side, #$42 - Both Sides +;;Residual Portal +;org $0283E0 ; PC 0x103E0 (Bank02.asm:816) (BNE) +;db #$F0 ; #$D0 - Light Only (Default), #$F0 - Dark Only +;org $02B34D ; PC 0x1334D (Bank02.asm:7902) (BNE) +;db #$F0 ; #$D0 - Light Only (Default), #$F0 - Dark Only +;;-------------------------------------------------------------------------------- +;;Vortexes +;org $05AF79 ; PC 0x2AF79 (sprite_warp_vortex.asm:18) (BNE) +;db #$F0 ; #$D0 - Light-to-Dark (Default), #$F0 - Dark-to-Light +;;-------------------------------------------------------------------------------- +;;Duck +;org $07A3F4 ; PC 0x3A3F4 (Bank07.asm:5772) (BNE) +;db #$F0 ; #$D0 - Light Only (Default), #$F0 - Dark Only +;;-------------------------------------------------------------------------------- +;;Mirror +;org $07A943 ; PC 0x3A943 (Bank07.asm:6548) (BNE) +;db #$80 ; #$D0 - Dark-to-Light (Default), #$F0 - Light-to-Dark, #$80 - Both Directions, #$42 - Disabled +;;-------------------------------------------------------------------------------- +;;Residual Portal +;org $07A96D ; PC 0x3A96D (Bank07.asm:6578) (BEQ) +;db #$D0 ; #$F0 - Light Side (Default), #$D0 - Dark Side +;org $07A9A7 ; PC 0x3A9A7 (Bank07.asm:6622) (BNE) +;db #$F0 ; #$D0 - Light Side (Default), #$F0 - Dark Side +;org $07A9F3 ; PC 0x3A9F3 (Bank07.asm:6677) (BNE) +;db #$F0 ; #$D0 - Light Side (Default), #$F0 - Dark Side +;org $07AA3A ; PC 0x3AA3A (Bank07.asm:6718) (BEQ) +;db #$D0 ; #$F0 - Light Side (Default), #$D0 - Dark Side +;;-------------------------------------------------------------------------------- +;org $08D40C ; PC 0x4540C (ancilla_morph_poof.asm:48) (BEQ) +;db #$D0 ; #$F0 - Light Side (Default), #$D0 - Dark Side ;================================================================================ org $0DDBEC ; <- 6DBEC dw #10000 ; Rupee Limit +1