let's dev 6/13/17

changed sram trace to run on item-get only
fixed free bow problem from previous build
moved digging table to fixed location
fixed hera music issue
fixed hammerable ganon
updated bossses to use pregenerated RNG
This commit is contained in:
Karkat
2017-06-13 21:28:01 -04:00
parent 989baced43
commit cbdae959a4
12 changed files with 142 additions and 41 deletions

View File

@@ -26,7 +26,7 @@ org $3FFFFF ; <- 1FFFFF
db #$00 ; expand file to 2mb
org $1FFFF8 ; timestamp rom
dl #$20170610
dl #$20170613
;================================================================================

View File

@@ -78,6 +78,7 @@ RTL
;--------------------------------------------------------------------------------
PostItemGet:
;LDA.b #$00 : STA !ITEM_BUSY ; mark item as finished
JSL.l MaybeWriteSRAMTrace
RTL
;--------------------------------------------------------------------------------
PostItemAnimation:

View File

@@ -23,9 +23,9 @@
FrameHookAction:
JSL $0080B5 ; Module_MainRouting
PHA : PHP
LDA EnableSRAMTrace : AND.l TournamentSeedInverse : BEQ +
LDA $1A : BNE ++ : JSL.l WriteStatusPreview : ++ ; write every 256 frames
+
;LDA EnableSRAMTrace : AND.l TournamentSeedInverse : BEQ +
; LDA $1A : BNE ++ : JSL.l WriteStatusPreview : ++ ; write every 256 frames
;+
LDA !LOCK_STATS : BNE ++
REP #$20 ; set 16-bit accumulator

View File

@@ -61,6 +61,10 @@ JSL.l SpawnZelda : NOP #2
org $06F2C8 ; <- 372C8 - Bank06.asm : 5776 (LDA $44 : CMP.b #$80 : BEQ .no_collision)
JSL.l GoalItemGanonCheck
;--------------------------------------------------------------------------------
;Hammerable Ganon
org $06F2EA ; <- 372EA - Bank06.asm : 5791 (LDA $0E20, X : CMP.b #$D6 : BCS .no_collision)
JSL.l GoalItemGanonCheck : NOP
;--------------------------------------------------------------------------------
;================================================================================
; Stat Hooks
@@ -726,7 +730,7 @@ JSL.l CheckFullHealth
;--------------------------------------------------------------------------------
;================================================================================
; RNG Fix
; RNG Fixes
;--------------------------------------------------------------------------------
org $1DFD9E ; <- EFD9E - sprite_diggin_guy.asm : 307
NOP #8
@@ -749,7 +753,77 @@ JSL RandomGanon
;org $01EDB2 ; <- EDB2 - Bank01.asm : 14038
;INC $04C4
;--------------------------------------------------------------------------------
org $05A3F4 ; <- 2A3F4 - sprite_lanmola.asm : 112 (JSL GetRandomInt : AND.b #$07 : TAY)
JSL.l RNG_Lanmolas1
org $05A401 ; <- 2A401 - sprite_lanmola.asm : 116 (JSL GetRandomInt : AND.b #$07 : TAY)
JSL.l RNG_Lanmolas1
org $05A4FA ; <- 2A4FA - sprite_lanmola.asm : 241 (JSL GetRandomInt : AND.b #$07 : TAY)
JSL.l RNG_Lanmolas1
org $05A507 ; <- 2A507 - sprite_lanmola.asm : 245 (JSL GetRandomInt : AND.b #$07 : TAY)
JSL.l RNG_Lanmolas1
;--------------------------------------------------------------------------------
org $1DD817 ; <- ED817 - sprite_giant_moldorm.asm : 187 (JSL GetRandomInt : AND.b #$02 : DEC A : STA $0EB0, X)
JSL.l RNG_Moldorm1
org $1DD821 ; <- ED821 - sprite_giant_moldorm.asm : 189 (JSL GetRandomInt : AND.b #$1F : ADC.b #$20 : STA !timer_0, X)
JSL.l RNG_Moldorm1
org $1DD832 ; <- ED832 - sprite_giant_moldorm.asm : 203 (JSL GetRandomInt : AND.b #$0F : ADC.b #$08 : STA !timer_0, X)
JSL.l RNG_Moldorm1
;--------------------------------------------------------------------------------
org $1E81A9 ; <- F01A9 - sprite_helmasaur_king.asm : 247 (JSL GetRandomInt : AND.b #$07 : TAY)
JSL.l RNG_Helmasaur
org $1E8262 ; <- F0262 - sprite_helmasaur_king.asm : 373 (JSL GetRandomInt : AND.b #$01 : BEQ BRANCH_BETA)
JSL.l RNG_Helmasaur
org $1DEEE1 ; <- EEEE1 - sprite_helmasaur_fireball.asm : 236 (JSL GetRandomInt : STA $0FB6)
JSL.l RNG_Helmasaur
;--------------------------------------------------------------------------------
org $1EB5F7 ; <- F35F7 - sprite_arrghus.asm : 328 (JSL GetRandomInt : AND.b #$3F : ADC.b #$30 : STA $0DF0, X)
JSL.l RNG_Arrghus
;--------------------------------------------------------------------------------
org $1EBF4D ; <- F3F4D - sprite_mothula.asm : 180 (JSL GetRandomInt : AND.b #$07 : TAY)
JSL.l RNG_Mothula
org $1EBF60 ; <- F3F60 - sprite_mothula.asm : 187 (JSL GetRandomInt : AND.b #$1F : ADC.b #$40 : STA $0DF0, X)
JSL.l RNG_Mothula
org $1EBFBE ; <- F3FBE - sprite_mothula.asm : 261 (JSL GetRandomInt : AND.b #$1F : ORA.b #$40 : STA !beam_timer, X)
JSL.l RNG_Mothula
org $1EC095 ; <- F4095 - sprite_mothula.asm : 373 (JSL GetRandomInt : AND.b #$1F : CMP #$1E : BCC .already_in_range)
JSL.l RNG_Mothula
;--------------------------------------------------------------------------------
org $1E957A ; <- F157A - sprite_kholdstare.asm : 209 (JSL GetRandomInt : AND.b #$3F : ADC.b #$20 : STA $0DF0, X)
JSL.l RNG_Kholdstare
org $1E95F0 ; <- F15F0 - sprite_kholdstare.asm : 289 (JSL GetRandomInt : AND.b #$3F : ADC.b #$60 : STA $0DF0, X)
JSL.l RNG_Kholdstare
org $1E95FB ; <- F15FB - sprite_kholdstare.asm : 291 (JSL GetRandomInt : PHA : AND.b #$03 : TAY)
JSL.l RNG_Kholdstare
org $1E96C9 ; <- F16C9 - sprite_kholdstare.asm : 453 (JSL GetRandomInt : AND.b #$07 : TAY)
JSL.l RNG_Kholdstare
org $1E96E5 ; <- F16E5 - sprite_kholdstare.asm : 458 (JSL GetRandomInt : AND.b #$07 : TAY)
JSL.l RNG_Kholdstare
org $1E97D5 ; <- F17D5 - sprite_kholdstare.asm : 605 (JSL GetRandomInt : AND.b #$04 : STA $0D)
JSL.l RNG_Kholdstare
;--------------------------------------------------------------------------------
org $1DE5B4 ; <- EE5E4 - sprite_vitreous.asm : 207 (JSL GetRandomInt : AND.b #$0F : TAY)
JSL.l RNG_Vitreous
org $1DE626 ; <- EE626 - sprite_vitreous.asm : 255 (JSL GetRandomInt : AND.b #$07 : STA $0D90, Y)
JSL.l RNG_Vitreous
;--------------------------------------------------------------------------------
org $1DB61C ; <- EB16C - sprite_trinexx.asm : 530 (JSL GetRandomInt : AND.b #$07 : TAY)
JSL.l RNG_Trinexx
org $1DB186 ; <- EB186 - sprite_trinexx.asm : 535 (JSL GetRandomInt : AND.b #$07 : TAY)
JSL.l RNG_Trinexx
org $1DB25E ; <- EB25E - sprite_trinexx.asm : 643 (JSL GetRandomInt : AND.b #$03 : TAY : CMP $00 : BEQ BRANCH_ALPHA)
JSL.l RNG_Trinexx
org $1DB28D ; <- EB28D - sprite_trinexx.asm : 661 (JSL GetRandomInt : AND.b #$03 : CMP.b #$01 : TYA : BCS BRANCH_GAMMA)
JSL.l RNG_Trinexx
org $1DB9B0 ; <- EB9B0 - sprite_sidenexx.asm : 165 (JSL GetRandomInt : AND.b #$07 : INC A : CMP.b #$05 : BCS BRANCH_ALPHA)
JSL.l RNG_Trinexx
org $1DB9CC ; <- EB9CC - sprite_sidenexx.asm : 175 (JSL GetRandomInt : LSR A : BCS BRANCH_ALPHA)
JSL.l RNG_Trinexx
org $1DBA5D ; <- EBA5D - sprite_sidenexx.asm : 270 (JSL GetRandomInt : AND.b #$0F : STA $0DF0, X)
JSL.l RNG_Trinexx
org $1DBAB1 ; <- EBAB1 - sprite_sidenexx.asm : 314 (JSL GetRandomInt : AND.b #$0F : LDY.b #$00 : SUB.b #$03)
JSL.l RNG_Trinexx
org $1DBAC3 ; <- EBAC3 - sprite_sidenexx.asm : 323 (JSL GetRandomInt : AND.b #$0F : ADD.b #$0C : STA $02 : STZ $03)
JSL.l RNG_Trinexx
;================================================================================
; HUD Changes
;--------------------------------------------------------------------------------
@@ -782,10 +856,13 @@ JSL.l DrawMagicHeader
NOP #17
;--------------------------------------------------------------------------------
org $0DFB29 ; <- - headsup_display.asm : 688 (LDA.b #$86 : STA $7EC71E)
LDA.b #$86 : STA $7EC720 ; nudge silver arrow right
LDA.b #$24 : STA $7EC721
LDA.b #$87 : STA $7EC722
LDA.b #$24 : STA $7EC723
;LDA.b #$86 : STA $7EC720 ; nudge silver arrow right - remember to update this in newit
;LDA.b #$24 : STA $7EC721
;LDA.b #$87 : STA $7EC722
;LDA.b #$24 : STA $7EC723
JSL.l DrawHUDSilverArrows : BRA +
NOP #18
+
;--------------------------------------------------------------------------------
; Insert our version of the hud tilemap
org $0DFA96 ; <- 6FA96 - headsup_display.asm : 626 (LDX.w #.hud_tilemap)
@@ -798,7 +875,7 @@ MVN $207E
;NOP
;--------------------------------------------------------------------------------
org $0DFB1F ; 6FB1F - headsup_display.asm : 681 (LDA $7EF340 : BEQ .hastNoBow)
JSL.l DrawHUDSilverArrows
JSL.l CheckHUDSilverArrows
;--------------------------------------------------------------------------------
;================================================================================

View File

@@ -950,7 +950,7 @@ SpawnShovelItem:
LSR #2 : TAX ; clobber lower 2 bis - we have 64 slots now
LDA .spawn_table, X ; look up the drop on the table
LDA.l ShovelSpawnTable, X ; look up the drop on the table
;most of this part below is copied from the digging game
@@ -996,21 +996,5 @@ RTL
db $00
db $13
.spawn_table
db $B2 ; Gold Bee
db $D8, $D8, $D8 ; Single Heart
db $D8, $D8, $D8, $D8, $D8 ; Single Heart
db $D9, $D9, $D9, $D9, $D9 ; Green Rupee
db $DA, $DA, $DA, $DA, $DA ; Blue Rupee
db $DB, $DB, $DB, $DB, $DB ; Red Rupee
db $DC, $DC, $DC, $DC, $DC ; 1 Bomb
db $DD, $DD, $DD, $DD, $DD ; 4 Bombs
db $DE, $DE, $DE, $DE, $DE ; 8 Bombs
db $DF, $DF, $DF, $DF, $DF ; Small Magic
db $E0, $E0, $E0, $E0, $E0 ; Large Magic
db $E1, $E1, $E1, $E1, $E1 ; 5 Arrows
db $E2, $E2, $E2, $E2, $E2 ; 10 Arrows
db $E3, $E3, $E3, $E3, $E3 ; Fairy
}
;--------------------------------------------------------------------------------

View File

@@ -21,5 +21,7 @@ MaidenCrystalScript:
LDA.b #$08 : STA $7EF3C7 ; Update the map icon to just be Ganon's Tower
+
JSL.l MaybeWriteSRAMTrace
JMP $1ECF35 ; <- F4F35 - sprite_crystal_maiden.asm : 426
;--------------------------------------------------------------------------------

View File

@@ -655,17 +655,23 @@ RTL
; LDA.w #$11CE : STA $00 ; thing we wrote over
;RTL
;--------------------------------------------------------------------------------
;Return $7EF340 unless no bow and silvers, then return 3
DrawHUDSilverArrows:
;Return $7EF340 but also draw silver arrows if you have the upgrade even if you don't have the bow
CheckHUDSilverArrows:
LDA $7EF340 : BNE +
LDA $7EF414 : AND.b #$40 : BEQ ++
LDA.b #$03
RTL
JSL.l DrawHUDSilverArrows
++
LDA $7EF340
+
RTL
;--------------------------------------------------------------------------------
DrawHUDSilverArrows:
LDA.b #$86 : STA $7EC720 ; draw silver arrow marker
LDA.b #$24 : STA $7EC721
LDA.b #$87 : STA $7EC722
LDA.b #$24 : STA $7EC723
RTL
;--------------------------------------------------------------------------------
!RNG_ITEM = "$7EF450"
!SCRATCH_AREA = "$7F5020"
!SINGLE_INDEX_TEMP = "$7F5020"

View File

@@ -117,10 +117,10 @@ CheckHeraObject:
LDA CrystalPendantFlags_2_hera : BNE .crystal
.pendant
LDA $7EF374 : AND.l CrystalPendantFlags_hera
LDA $7EF374 : AND.l CrystalPendantFlags_hera : AND.w #$00FF
RTL
.crystal
LDA $7EF37A : AND.l CrystalPendantFlags_hera
LDA $7EF37A : AND.l CrystalPendantFlags_hera : AND.w #$00FF
RTL
;================================================================================
;GetPendantCrystalWorld:

View File

@@ -1,6 +1,12 @@
;================================================================================
; RTPreview SRAM Hook
;--------------------------------------------------------------------------------
MaybeWriteSRAMTrace:
LDA EnableSRAMTrace : AND.l TournamentSeedInverse : BEQ +
JSL.l WriteStatusPreview
+
RTL
;--------------------------------------------------------------------------------
WriteStatusPreview:
PHA
LDA $4300 : PHA ; preserve DMA parameters

View File

@@ -39,7 +39,7 @@ RNG_Lanmolas1:
LDA.b #$00 : BRA _rng_done
RNG_Moldorm1:
LDA.b #$01 : BRA _rng_done
RNG_Agahnim1:
RNG_Agahnim1:;x
LDA.b #$02 : BRA _rng_done
RNG_Helmasaur:
LDA.b #$03 : BRA _rng_done
@@ -53,15 +53,15 @@ RNG_Vitreous:
LDA.b #$07 : BRA _rng_done
RNG_Trinexx:
LDA.b #$08 : BRA _rng_done
RNG_Lanmolas2:
RNG_Lanmolas2:;x
LDA.b #$09 : BRA _rng_done
RNG_Moldorm2:
RNG_Moldorm2:;x
LDA.b #$0A : BRA _rng_done
RNG_Agahnim2:
RNG_Agahnim2:;x
LDA.b #$0B : BRA _rng_done
RNG_Agahnim2Phantoms:
RNG_Agahnim2Phantoms:;x
LDA.b #$0C : BRA _rng_done
RNG_Ganon:
RNG_Ganon:;x
LDA.b #$0D
_rng_done:
JSL.l GetStaticRNG
@@ -75,7 +75,7 @@ GetStaticRNG:
PHX : PHP
REP #$20 ; set 16-bit accumulator and index registers
AND.w #$007F
ASL : TAX : LDA !RNG_POINTERS, X : INC : STA !RNG_POINTERS, X : TAX : ASL ; increment pointer and move value to X
ASL : TAX : LDA !RNG_POINTERS, X : INC : AND.w #$03FF : STA !RNG_POINTERS, X : TAX : ASL ; increment pointer and move value to X
LDA Static_RNG, X ; load RNG value
PLP : PLX
RTL

View File

@@ -30,6 +30,14 @@ LoadSwordForDamage:
.done
RTL
;================================================================================
CheckGanonHammerDamage:
LDA.l HammerableGanon : BEQ +
LDA $0E20, X : CMP.b #$D8 ; original behavior except ganon
RTL
+
LDA $0E20, X : CMP.b #$D6 ; original behavior
RTL
;================================================================================
GetSmithSword:
JSL ItemCheck_SmithSword : BEQ + : JMP.l Smithy_AlreadyGotSword : +
LDA.l SmithItemMode : BNE +

View File

@@ -181,6 +181,23 @@ org $308086 ; PC 0x180086
GanonAgahRNG:
db #$01 ; $00 = vanilla behavior, $01 = no extra blue balls/warps, $02 = use the random table
;--------------------------------------------------------------------------------
org $308090 ; PC 0x180090 (0x40 bytes)
ShovelSpawnTable:
db $B2 ; Gold Bee
db $D8, $D8, $D8 ; Single Heart
db $D8, $D8, $D8, $D8, $D8 ; Single Heart
db $D9, $D9, $D9, $D9, $D9 ; Green Rupee
db $DA, $DA, $DA, $DA, $DA ; Blue Rupee
db $DB, $DB, $DB, $DB, $DB ; Red Rupee
db $DC, $DC, $DC, $DC, $DC ; 1 Bomb
db $DD, $DD, $DD, $DD, $DD ; 4 Bombs
db $DE, $DE, $DE, $DE, $DE ; 8 Bombs
db $DF, $DF, $DF, $DF, $DF ; Small Magic
db $E0, $E0, $E0, $E0, $E0 ; Large Magic
db $E1, $E1, $E1, $E1, $E1 ; 5 Arrows
db $E2, $E2, $E2, $E2, $E2 ; 10 Arrows
db $E3, $E3, $E3, $E3, $E3 ; Fairy
;--------------------------------------------------------------------------------
org $098B7C ; PC 0x48B7C
EtherTablet:
db #$10 ; #$10 = Ether