Merge branch 'master' of https://github.com/mmxbass/z3randomizer
This commit is contained in:
@@ -218,6 +218,11 @@ GFX_Hash_Alphabet:
|
||||
incbin hashalphabet.chr.gfx
|
||||
warnpc $31C001
|
||||
|
||||
org $31C000
|
||||
IcePalaceFloorGfx:
|
||||
incbin ice_palace_floor.bin
|
||||
warnpc $31C801
|
||||
|
||||
org $338000
|
||||
GFX_HUD_Palette:
|
||||
incbin hudpalette.pal
|
||||
@@ -327,6 +332,9 @@ db GFX_HUD_Main
|
||||
org $008781
|
||||
UseImplicitRegIndexedLocalJumpTable:
|
||||
|
||||
org $00879c
|
||||
UseImplicitRegIndexedLongJumpTable:
|
||||
|
||||
org $008333
|
||||
Vram_EraseTilemaps_triforce:
|
||||
|
||||
|
||||
@@ -27,14 +27,14 @@ RTS
|
||||
SmithDoorCheck:
|
||||
LDA.l SmithTravelsFreely : AND.w #$00FF : BEQ .orig
|
||||
;If SmithTravelsFreely is set Frog/Smith can enter multi-entrance overworld doors
|
||||
JMP.l Overworld_Entrance_BRANCH_RHO
|
||||
JML.l Overworld_Entrance_BRANCH_RHO
|
||||
|
||||
.orig ; The rest is equivlent to what we overwrote
|
||||
CPX.w #$0076 : !BGE +
|
||||
JMP.l Overworld_Entrance_BRANCH_LAMBDA
|
||||
JML.l Overworld_Entrance_BRANCH_LAMBDA
|
||||
+
|
||||
|
||||
JMP.l Overworld_Entrance_BRANCH_RHO
|
||||
JML.l Overworld_Entrance_BRANCH_RHO
|
||||
;--------------------------------------------------------------------------------
|
||||
AllowStartFromSingleEntranceCave:
|
||||
; 16 Bit A, 16 bit XY
|
||||
|
||||
@@ -54,8 +54,8 @@ RTL
|
||||
FluteBoy:
|
||||
LDA $10 : CMP.b #$1A : BEQ +
|
||||
LDA.b #$01 : STA $0FDD
|
||||
JMP.l FluteBoy_Abort
|
||||
JML.l FluteBoy_Abort
|
||||
+
|
||||
LDA $0D80, X : CMP.b #$03 ; thing we wrote over
|
||||
JMP.l FluteBoy_Continue
|
||||
;--------------------------------------------------------------------------------
|
||||
JML.l FluteBoy_Continue
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
@@ -29,9 +29,9 @@ DrawGoalIndicator:
|
||||
BRA .done
|
||||
.skip
|
||||
LDA.w #$207F
|
||||
STA !DRAW_ADDRESS, X : INX #
|
||||
STA !DRAW_ADDRESS, X : INX #
|
||||
STA !DRAW_ADDRESS, X : INX #
|
||||
STA !DRAW_ADDRESS, X : INX #2
|
||||
STA !DRAW_ADDRESS, X : INX #2
|
||||
STA !DRAW_ADDRESS, X : INX #2
|
||||
.done
|
||||
PLX
|
||||
RTL
|
||||
|
||||
@@ -184,8 +184,8 @@ LoadAlphabetTilemap:
|
||||
INX #6 : INY
|
||||
CPX #25 : !BLT -
|
||||
|
||||
JSR DMAAlphabetTilemap:
|
||||
|
||||
JSR DMAAlphabetTilemap
|
||||
PLP : PLY : PLX : PLA
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
25
hooks.asm
25
hooks.asm
@@ -146,9 +146,6 @@ org $0288D1 ; <- 108D1 - Bank02.asm : 1690 (STZ $0646)
|
||||
JSL.l IndoorSubtileTransitionCounter
|
||||
NOP #2
|
||||
;--------------------------------------------------------------------------------
|
||||
org $02895D ; <- 1095D - Bank02.asm : 1812 (JSL Dungeon_LoadRoom)
|
||||
JSL.l IndoorTileTransitionCounter
|
||||
;--------------------------------------------------------------------------------
|
||||
org $07B574 ; <- 3B574 - Bank07.asm : 8519 (LDA.b #$01 : STA $02E9)
|
||||
JSL.l IncrementChestCounter
|
||||
NOP
|
||||
@@ -414,7 +411,7 @@ dl $080116, $070116; <- E97E
|
||||
;org $06C9BC ; <- 349BC - sprite_ponds.asm : 1066
|
||||
;org $06C9C0 ; <- 349C0 - sprite_ponds.asm : 1068
|
||||
;org $06C926 ; <- 34926 - sprite_ponds.asm : 945
|
||||
;JMP.l GetFairySword
|
||||
;JML.l GetFairySword
|
||||
;NOP #12
|
||||
org $06C936 ; <- 34936 - sprite_ponds.asm : 952
|
||||
PyramidFairy_BRANCH_IOTA:
|
||||
@@ -432,7 +429,7 @@ org $068A14 ; <- 30A14 - sprite_prep.asm : 716
|
||||
NOP #8 ; fix bomb shop spawn for dwarfless big bomb
|
||||
;--------------------------------------------------------------------------------
|
||||
org $06B489 ; <- 33489 - sprite_smithy_bros.asm : 473 (LDA $7EF359 : CMP.b #$03 : BCS .tempered_sword_or_better)
|
||||
JMP.l GetSmithSword
|
||||
JML.l GetSmithSword
|
||||
NOP #4
|
||||
Smithy_DoesntHaveSword:
|
||||
org $06B49D ; <- 3349D - sprite_smithy_bros.asm : 485 (.tempered_sword_or_better)
|
||||
@@ -489,7 +486,7 @@ org $07B57B ; <- 3B57B - Bank07.asm : 8523 (BMI .cantOpen)
|
||||
NOP #2
|
||||
;--------------------------------------------------------------------------------
|
||||
org $00D531 ; 5531 - Bank00.asm:3451 (LDY.b #$5D)
|
||||
JMP.l GetAnimatedSpriteGfxFile
|
||||
JML.l GetAnimatedSpriteGfxFile
|
||||
|
||||
org $00D547 ; 5547 - Bank00.asm:3467 (JSR Decomp_spr_high)
|
||||
GetAnimatedSpriteGfxFile_return:
|
||||
@@ -849,7 +846,7 @@ org $08C6F9 ; 446F9 - ancilla_receive_item.asm : 538 - (LDA AddReceiveItem.prope
|
||||
LDA AddReceivedItemExpanded_properties, X
|
||||
;--------------------------------------------------------------------------------
|
||||
org $08C70F ; 4470F - ancilla_receive_item.asm : 550 - (LDA .wide_item_flag, X : STA ($92), Y ; AddReceiveItem.wide_item_flag? ; LDA.b #$00 : STA ($92), Y in the japanese version)
|
||||
JMP.l LoadNarrowObject
|
||||
JML.l LoadNarrowObject
|
||||
NOP
|
||||
LoadNarrowObjectReturn:
|
||||
;--------------------------------------------------------------------------------
|
||||
@@ -1433,10 +1430,10 @@ org $05ED10 ; <- 2ED10 - sprite_zelda.asm : 233 - (LDA.b #$19 : STA $012C)
|
||||
NOP #5
|
||||
;--------------------------------------------------------------------------------
|
||||
org $1ECE47 ; <- F4E47 - sprite_crystal_maiden.asm : 220
|
||||
JMP.l MaidenCrystalScript
|
||||
JML.l MaidenCrystalScript
|
||||
;--------------------------------------------------------------------------------
|
||||
org $1ECCEB ; <- F4CEB - sprite_crystal_maiden.asm : 25 ; skip all palette nonsense
|
||||
JMP.l SkipCrystalPalette
|
||||
JML.l SkipCrystalPalette
|
||||
org $1ECD39
|
||||
SkipCrystalPalette:
|
||||
;--------------------------------------------------------------------------------
|
||||
@@ -1836,7 +1833,7 @@ org $06B048 ; <- 33048
|
||||
JSL.l ItemCheck_TreeKid3
|
||||
|
||||
org $06AF59 ; <- 32F59 - sprite_flute_boy.asm : 36 (LDA $0D80, X : CMP.b #$03 : BEQ .invisible)
|
||||
JMP.l FluteBoy
|
||||
JML.l FluteBoy
|
||||
FluteBoy_Abort:
|
||||
RTS
|
||||
FluteBoy_Continue:
|
||||
@@ -2092,13 +2089,13 @@ org $02895D ; <- Bank02.asm:1812 (JSL Dungeon_LoadRoom)
|
||||
JSL LoadRoomHook
|
||||
;--------------------------------------------------------------------------------
|
||||
org $028BE7 ; <- Bank02.asm:2299 (JSL Dungeon_LoadRoom)
|
||||
JSL LoadRoomHook
|
||||
JSL LoadRoomHook_noStats
|
||||
;--------------------------------------------------------------------------------
|
||||
org $029309 ; <- Bank02.asm:3533 (JSL Dungeon_LoadRoom)
|
||||
JSL LoadRoomHook
|
||||
JSL LoadRoomHook_noStats
|
||||
;--------------------------------------------------------------------------------
|
||||
org $02C2F3 ; <- Bank02.asm:10391 (JSL Dungeon_LoadRoom)
|
||||
JSL LoadRoomHook
|
||||
JSL LoadRoomHook_noStats
|
||||
;================================================================================
|
||||
|
||||
;================================================================================
|
||||
@@ -2129,7 +2126,7 @@ org $07A055 ; <- Bank07.asm:5205 (LDA $0B99 : BEQ BRANCH_DELTA)
|
||||
JSL.l ArrowGame : NOP #14
|
||||
|
||||
org $07A06C ; <- Bank07.asm:5215 (LDA $7EF377 : BEQ BRANCH_EPSILON)
|
||||
JSL.l DecrementArrows : SKIP #2 : NOP : LDA $7EF377
|
||||
JSL.l DecrementArrows : SKIP 2 : NOP : LDA $7EF377
|
||||
;================================================================================
|
||||
|
||||
;================================================================================
|
||||
|
||||
@@ -70,7 +70,7 @@ ReloadingFloors:
|
||||
LDA.w #$0800 ; Length
|
||||
PHB
|
||||
;MVN $7F, IcePalaceFloorGfx>>16
|
||||
MVN $A07F ; CHANGE THIS IF YOU MOVE THE FILE - kkat
|
||||
MVN $B17F ; CHANGE THIS IF YOU MOVE THE GRAPHICS FILE - kkat
|
||||
PLB
|
||||
|
||||
; Pretend that we ran the original routine
|
||||
@@ -79,6 +79,3 @@ ReloadingFloors:
|
||||
STA $03
|
||||
|
||||
JML ReloadingFloorsCancel
|
||||
|
||||
IcePalaceFloorGfx:
|
||||
incbin ice_palace_floor.bin
|
||||
@@ -888,32 +888,32 @@ RTL
|
||||
; out: A - Loot OAM Table Index
|
||||
; check if this is even still referenced anywhere
|
||||
;--------------------------------------------------------------------------------
|
||||
GetWitchLootOAMTableIndex:
|
||||
PHX
|
||||
PHB : PHK : PLB
|
||||
;--------
|
||||
TAX : LDA .gfxSlots, X ; look up item gfx
|
||||
PLB : PLX
|
||||
RTL
|
||||
|
||||
;DATA - Loot Identifier to Sprite ID
|
||||
{
|
||||
.gfxSlots
|
||||
db $FF, $FF, $FF, $FF, $05, $06, $FF, $0C
|
||||
db $0B, $0D, $0A, $07, $13, $0E, $FF, $FF
|
||||
|
||||
db $FF, $FF, $FF, $FF, $FF, $09, $FF, $FF
|
||||
db $08, $FF, $FF, $10, $11, $12, $FF, $FF
|
||||
|
||||
db $FF, $FF, $03, $04, $FF, $FF, $02, $FF
|
||||
db $FF, $FF, $14, $15, $17, $16, $15, $17
|
||||
|
||||
db $16, $0F, $FF, $FF, $FF, $FF, $FF, $FF
|
||||
db $FF, $FF, $FF, $FF, $FF, $FF, $02, $02
|
||||
|
||||
db $FF, $FF, $FF, $FF, $01, $FF, $FF, $FF
|
||||
db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF
|
||||
}
|
||||
;GetWitchLootOAMTableIndex:
|
||||
; PHX
|
||||
; PHB : PHK : PLB
|
||||
; ;--------
|
||||
; TAX : LDA .gfxSlots, X ; look up item gfx
|
||||
; PLB : PLX
|
||||
;RTL
|
||||
;
|
||||
;;DATA - Loot Identifier to Sprite ID
|
||||
;{
|
||||
; .gfxSlots
|
||||
; db $FF, $FF, $FF, $FF, $05, $06, $FF, $0C
|
||||
; db $0B, $0D, $0A, $07, $13, $0E, $FF, $FF
|
||||
;
|
||||
; db $FF, $FF, $FF, $FF, $FF, $09, $FF, $FF
|
||||
; db $08, $FF, $FF, $10, $11, $12, $FF, $FF
|
||||
;
|
||||
; db $FF, $FF, $03, $04, $FF, $FF, $02, $FF
|
||||
; db $FF, $FF, $14, $15, $17, $16, $15, $17
|
||||
;
|
||||
; db $16, $0F, $FF, $FF, $FF, $FF, $FF, $FF
|
||||
; db $FF, $FF, $FF, $FF, $FF, $FF, $02, $02
|
||||
;
|
||||
; db $FF, $FF, $FF, $FF, $01, $FF, $FF, $FF
|
||||
; db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF
|
||||
;}
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
@@ -23,5 +23,5 @@ MaidenCrystalScript:
|
||||
|
||||
JSL.l MaybeWriteSRAMTrace
|
||||
|
||||
JMP $1ECF35 ; <- F4F35 - sprite_crystal_maiden.asm : 426
|
||||
;--------------------------------------------------------------------------------
|
||||
JML.l $1ECF35 ; <- F4F35 - sprite_crystal_maiden.asm : 426
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
@@ -463,7 +463,7 @@ AddReceivedItemExpanded:
|
||||
PLX : PLA
|
||||
|
||||
PHB : PHK ; we're skipping the corresponding instructions to grab the data bank
|
||||
JMP.l AddReceivedItem+2
|
||||
JML.l AddReceivedItem+2
|
||||
}
|
||||
;--------------------------------------------------------------------------------
|
||||
;DATA AddReceivedItemExpanded
|
||||
@@ -1044,5 +1044,5 @@ RTS
|
||||
ActivateGoal:
|
||||
STZ $11
|
||||
STZ $B0
|
||||
JMP.l StatsFinalPrep
|
||||
JML.l StatsFinalPrep
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
@@ -397,22 +397,22 @@ DrawHUDDungeonItems:
|
||||
LDA.w #$2810 : STA $1684 ; small keys icon
|
||||
SEP #$20 ; set 8-bit accumulator
|
||||
; Small Keys
|
||||
LDA.b #$16 : !ADD $7EF37D : STA $1686 : LDA.b #$28 : ADC #$00 : sta $1686+1 ; Hyrule Castle
|
||||
LDA.b #$16 : !ADD $7EF380 : STA $1688 : LDA.b #$28 : ADC #$00 : sta $1688+1 ; Agahnims Tower
|
||||
LDA.b #$16 : !ADD $7EF37D : STA $1686 : LDA.b #$28 : ADC #$00 : sta.w $1686+1 ; Hyrule Castle
|
||||
LDA.b #$16 : !ADD $7EF380 : STA $1688 : LDA.b #$28 : ADC #$00 : sta.w $1688+1 ; Agahnims Tower
|
||||
|
||||
LDA.b #$16 : !ADD $7EF37E : STA $168C : LDA.b #$28 : ADC #$00 : sta $168C+1 ; Eastern
|
||||
LDA.b #$16 : !ADD $7EF37F : STA $168E : LDA.b #$28 : ADC #$00 : sta $168E+1 ; Desert
|
||||
LDA.b #$16 : !ADD $7EF386 : STA $1690 : LDA.b #$28 : ADC #$00 : sta $1690+1 ; Hera
|
||||
LDA.b #$16 : !ADD $7EF37E : STA $168C : LDA.b #$28 : ADC #$00 : sta.w $168C+1 ; Eastern
|
||||
LDA.b #$16 : !ADD $7EF37F : STA $168E : LDA.b #$28 : ADC #$00 : sta.w $168E+1 ; Desert
|
||||
LDA.b #$16 : !ADD $7EF386 : STA $1690 : LDA.b #$28 : ADC #$00 : sta.w $1690+1 ; Hera
|
||||
|
||||
LDA.b #$16 : !ADD $7EF382 : STA $1694 : LDA.b #$28 : ADC #$00 : sta $1694+1 ; PoD
|
||||
LDA.b #$16 : !ADD $7EF381 : STA $1696 : LDA.b #$28 : ADC #$00 : sta $1696+1 ; Swamp
|
||||
LDA.b #$16 : !ADD $7EF384 : STA $1698 : LDA.b #$28 : ADC #$00 : sta $1698+1 ; Skull Woods
|
||||
LDA.b #$16 : !ADD $7EF387 : STA $169A : LDA.b #$28 : ADC #$00 : sta $169A+1 ; Thieves Town
|
||||
LDA.b #$16 : !ADD $7EF385 : STA $169C : LDA.b #$28 : ADC #$00 : sta $169C+1 ; Ice
|
||||
LDA.b #$16 : !ADD $7EF383 : STA $169E : LDA.b #$28 : ADC #$00 : sta $169E+1 ; Mire
|
||||
LDA.b #$16 : !ADD $7EF388 : STA $16A0 : LDA.b #$28 : ADC #$00 : sta $16A0+1 ; Turtle Rock
|
||||
LDA.b #$16 : !ADD $7EF382 : STA $1694 : LDA.b #$28 : ADC #$00 : sta.w $1694+1 ; PoD
|
||||
LDA.b #$16 : !ADD $7EF381 : STA $1696 : LDA.b #$28 : ADC #$00 : sta.w $1696+1 ; Swamp
|
||||
LDA.b #$16 : !ADD $7EF384 : STA $1698 : LDA.b #$28 : ADC #$00 : sta.w $1698+1 ; Skull Woods
|
||||
LDA.b #$16 : !ADD $7EF387 : STA $169A : LDA.b #$28 : ADC #$00 : sta.w $169A+1 ; Thieves Town
|
||||
LDA.b #$16 : !ADD $7EF385 : STA $169C : LDA.b #$28 : ADC #$00 : sta.w $169C+1 ; Ice
|
||||
LDA.b #$16 : !ADD $7EF383 : STA $169E : LDA.b #$28 : ADC #$00 : sta.w $169E+1 ; Mire
|
||||
LDA.b #$16 : !ADD $7EF388 : STA $16A0 : LDA.b #$28 : ADC #$00 : sta.w $16A0+1 ; Turtle Rock
|
||||
|
||||
LDA.b #$16 : !ADD $7EF389 : STA $16A4 : LDA.b #$28 : ADC #$00 : sta $16A4+1 ; Ganon's Tower
|
||||
LDA.b #$16 : !ADD $7EF389 : STA $16A4 : LDA.b #$28 : ADC #$00 : sta.w $16A4+1 ; Ganon's Tower
|
||||
|
||||
REP #$20 ; set 16-bit accumulator
|
||||
++
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
LoadRoomHook:
|
||||
JSL $01873A ; Dungeon_LoadRoom (Bank01.asm:726)
|
||||
JSL.l IndoorTileTransitionCounter
|
||||
|
||||
.noStats
|
||||
JSL Dungeon_LoadRoom
|
||||
REP #$10 ; 16 bit XY
|
||||
LDX $A0 ; Room ID
|
||||
LDA RoomCallbackTable, X
|
||||
SEP #$10 ; 8 bit XY
|
||||
JSL $00879c ; UseImplicitRegIndexedLocalJumpTable
|
||||
JSL UseImplicitRegIndexedLongJumpTable
|
||||
; Callback routines:
|
||||
dl NoCallback ; 00
|
||||
dl IcePalaceBombosSE ; 01
|
||||
|
||||
@@ -77,7 +77,7 @@ macro DrawDigit(value,offset)
|
||||
+
|
||||
LDA $0E : STA !BIGRAM, X : INX : INX
|
||||
LDA.w #56 : STA !BIGRAM, X : INX : INX
|
||||
LDY $0A : TYA : ASL : TAY : LDA .digit_properties, Y : STA !BIGRAM, X : INX : INX
|
||||
LDY $0A : TYA : ASL : TAY : LDA.w .digit_properties, Y : STA !BIGRAM, X : INX : INX
|
||||
LDA.w #$0000 : STA !BIGRAM, X : INX : INX
|
||||
|
||||
LDA $0E : !ADD.w #$0008 : STA $0E ; move offset 8px right
|
||||
|
||||
@@ -232,7 +232,7 @@ RenderCreditsStatCounter:
|
||||
; XXXX X00L LLLL LLLL BBBB SSSS CCC- ---- ---- ---- AAAA AAAA AAAA AAAA AAAA AAAA
|
||||
|
||||
; == Determine stat type ==
|
||||
LDA CreditsStats,y ; LLLL LLLL XXXX XTTL
|
||||
LDA.w CreditsStats,y ; LLLL LLLL XXXX XTTL
|
||||
LSR
|
||||
AND #$0003 ; TT
|
||||
CMP.w #$0000
|
||||
@@ -241,7 +241,7 @@ RenderCreditsStatCounter:
|
||||
|
||||
.normalStat
|
||||
; == Write Stripe header (VRAM address, i.e. tile coordinates) ==
|
||||
LDA CreditsStats,y ; LLLL LLLL XXXX XTTL
|
||||
LDA.w CreditsStats,y ; LLLL LLLL XXXX XTTL
|
||||
LSR #3
|
||||
AND #$001F ; X XXXX
|
||||
CLC
|
||||
@@ -272,7 +272,7 @@ RenderCreditsStatCounter:
|
||||
STA !ValueLow
|
||||
|
||||
; == Shift value ==
|
||||
LDA CreditsStats+2,y; CCC- ---- BBBB SSSS
|
||||
LDA.w CreditsStats+2,y; CCC- ---- BBBB SSSS
|
||||
AND.w #$000F ; SSSS
|
||||
BEQ +
|
||||
TAX
|
||||
@@ -283,7 +283,7 @@ RenderCreditsStatCounter:
|
||||
STA !ValueLow
|
||||
+
|
||||
; == Mask value ==
|
||||
LDA CreditsStats+2,y; CCC- ---- BBBB SSSS
|
||||
LDA.w CreditsStats+2,y; CCC- ---- BBBB SSSS
|
||||
;LSR #4
|
||||
;AND.w #$000F ; BBBB
|
||||
LSR #3
|
||||
@@ -294,7 +294,7 @@ RenderCreditsStatCounter:
|
||||
STA !ValueLow
|
||||
|
||||
; == Cap value ==
|
||||
LDA CreditsStats+3,y; ---- ---- CCC- ----
|
||||
LDA.w CreditsStats+3,y; ---- ---- CCC- ----
|
||||
LSR #5
|
||||
AND.w #$0007 ; CCC
|
||||
BEQ +
|
||||
@@ -361,7 +361,7 @@ RenderCreditsStatCounter:
|
||||
; Output format: HH:MM:SS.FF
|
||||
|
||||
; == Write Stripe header (VRAM address, i.e. tile coordinates) ==
|
||||
LDA CreditsStats,y ; LLLL LLLL XXXX XTTL
|
||||
LDA.w CreditsStats,y ; LLLL LLLL XXXX XTTL
|
||||
LSR #3
|
||||
AND #$001F ; X XXXX
|
||||
CLC
|
||||
|
||||
@@ -6,18 +6,18 @@
|
||||
;GetFairySword:
|
||||
; CMP.b #$49 : BNE + : LDA.b #$00 : + ; convert single fighter sword to low id one
|
||||
; CMP.b #$50 : BNE + : LDA.b #$01 : + ; convert safe master sword to normal one
|
||||
; CMP #$04 : !BLT + : JMP.l PyramidFairy_BRANCH_IOTA : + ; for any sword, incl newer
|
||||
; JSL ItemCheck_FairySword : BEQ + : JMP.l PyramidFairy_BRANCH_IOTA : + ; skip if we already flagged getting this
|
||||
; CMP #$04 : !BLT + : JML.l PyramidFairy_BRANCH_IOTA : + ; for any sword, incl newer
|
||||
; JSL ItemCheck_FairySword : BEQ + : JML.l PyramidFairy_BRANCH_IOTA : + ; skip if we already flagged getting this
|
||||
; JSL ItemSet_FairySword ; mark as got
|
||||
; LDA FairySword : STA $0DC0, X ; whichever sword
|
||||
; LDA.b #$05 : STA $0EB0, X ; something we overwrote, documentation unclear on purpose
|
||||
;
|
||||
;JMP.l PyramidFairy_BRANCH_GAMMA
|
||||
;JML.l PyramidFairy_BRANCH_GAMMA
|
||||
;================================================================================
|
||||
;GetSmithSword:
|
||||
; JSL ItemCheck_SmithSword : BEQ + : JMP.l Smithy_AlreadyGotSword : + ; check if we're not already done
|
||||
; JSL ItemCheck_SmithSword : BEQ + : JML.l Smithy_AlreadyGotSword : + ; check if we're not already done
|
||||
; ;JSL ItemSet_SmithSword - too early
|
||||
;JMP.l Smithy_DoesntHaveSword
|
||||
;JML.l Smithy_DoesntHaveSword
|
||||
;================================================================================
|
||||
;LoadSwordForDamage:
|
||||
; LDA $7EF359 : CMP #$04 : BNE .done ; skip if not gold sword
|
||||
@@ -111,16 +111,16 @@ RTL
|
||||
RTL
|
||||
;================================================================================
|
||||
GetSmithSword:
|
||||
JSL ItemCheck_SmithSword : BEQ + : JMP.l Smithy_AlreadyGotSword : +
|
||||
JSL ItemCheck_SmithSword : BEQ + : JML.l Smithy_AlreadyGotSword : +
|
||||
LDA.l SmithItemMode : BNE +
|
||||
JMP.l Smithy_DoesntHaveSword ; Classic Smithy
|
||||
JML.l Smithy_DoesntHaveSword ; Classic Smithy
|
||||
+
|
||||
LDA.l SmithItem : TAY
|
||||
STZ $02E9 ; Item from NPC
|
||||
PHX : JSL Link_ReceiveItem : PLX
|
||||
REP #$20 : LDA $7EF360 : !SUB.w #$000A : STA $7EF360 : SEP #$20 ; Take 10 rupees
|
||||
JSL ItemSet_SmithSword
|
||||
JMP.l Smithy_AlreadyGotSword
|
||||
JML.l Smithy_AlreadyGotSword
|
||||
;================================================================================
|
||||
CheckMedallionSword:
|
||||
PHB : PHX : PHY
|
||||
@@ -130,16 +130,16 @@ CheckMedallionSword:
|
||||
REP #$20 ; set 16-bit accumulator
|
||||
LDA $A0 ; load room ID
|
||||
CMP.w #$000E : BNE ++ : .freezor1
|
||||
LDA $22 : AND.w #$01FF : CMP #368-8 : !BLT .normal : CMP #368+32-8 : !BGE .normal ; check x-coord
|
||||
LDA $20 : AND.w #$01FF : CMP #400-22 : !BLT .normal : CMP #400+32-22 : !BGE .normal ; check y-coord
|
||||
LDA $22 : AND.w #$01FF : CMP.w #368-8 : !BLT .normal : CMP.w #368+32-8 : !BGE .normal ; check x-coord
|
||||
LDA $20 : AND.w #$01FF : CMP.w #400-22 : !BLT .normal : CMP.w #400+32-22 : !BGE .normal ; check y-coord
|
||||
BRL .permit
|
||||
++ : CMP.w #$007E : BNE ++ : .freezor2
|
||||
LDA $22 : AND.w #$01FF : CMP #112-8 : !BLT .normal : CMP #112+32-8 : !BGE .normal ; check x-coord
|
||||
LDA $20 : AND.w #$01FF : CMP #400-22 : !BLT .normal : CMP #400+32-22 : !BGE .normal ; check y-coord
|
||||
LDA $22 : AND.w #$01FF : CMP.w #112-8 : !BLT .normal : CMP.w #112+32-8 : !BGE .normal ; check x-coord
|
||||
LDA $20 : AND.w #$01FF : CMP.w #400-22 : !BLT .normal : CMP.w #400+32-22 : !BGE .normal ; check y-coord
|
||||
BRL .permit
|
||||
++ : CMP.w #$00DE : BNE ++ : .kholdstare
|
||||
LDA $22 : AND.w #$01FF : CMP #368-8 : !BLT .normal : CMP #368+32-8 : !BGE .normal ; check x-coord
|
||||
LDA $20 : AND.w #$01FF : CMP #144-22 : !BLT .normal : CMP #144+32-22 : !BGE .normal ; check y-coord
|
||||
LDA $22 : AND.w #$01FF : CMP.w #368-8 : !BLT .normal : CMP.w #368+32-8 : !BGE .normal ; check x-coord
|
||||
LDA $20 : AND.w #$01FF : CMP.w #144-22 : !BLT .normal : CMP.w #144+32-22 : !BGE .normal ; check y-coord
|
||||
BRA .permit
|
||||
++ : .normal
|
||||
SEP #$20 ; set 8-bit accumulator
|
||||
|
||||
247
tables.asm
247
tables.asm
@@ -231,15 +231,104 @@ org $30804F ; PC 0x18004F
|
||||
ByrnaInvulnerability:
|
||||
db #$01 ; #$00 = Off - #$01 = On (default)
|
||||
;--------------------------------------------------------------------------------
|
||||
; Out of order 0x180050-0x18005C (CrystalPendantFlags_2)
|
||||
org $308050 ; PC 0x180050 - 0x18005C
|
||||
CrystalPendantFlags_2:
|
||||
db $00 ; Sewers
|
||||
db $00 ; Hyrule Castle
|
||||
db $00 ; Eastern Palace
|
||||
db $00 ; Desert Palace
|
||||
db $00 ; Agahnim's Tower
|
||||
db $40 ; Swamp Palace
|
||||
db $40 ; Palace of Darkness
|
||||
db $40 ; Misery Mire
|
||||
db $40 ; Skull Woods
|
||||
db $40 ; Ice Palace
|
||||
.hera
|
||||
db $00 ; Tower of Hera
|
||||
db $40 ; Thieves' Town
|
||||
db $40 ; Turtle Rock
|
||||
;Pendant: $00
|
||||
;Crystal: $40
|
||||
;--------------------------------------------------------------------------------
|
||||
; 0x18005D - 0x18005F (unused)
|
||||
;--------------------------------------------------------------------------------
|
||||
; Out of order 0x180060 - 0x18007E (ProgrammableItemLogicJump_1)
|
||||
org $308060 ; PC 0x180060 - 0x18007E
|
||||
ProgrammableItemLogicJump_1:
|
||||
JSL.l $000000 : RTL
|
||||
ProgrammableItemLogicJump_2:
|
||||
JSL.l $000000 : RTL
|
||||
ProgrammableItemLogicJump_3:
|
||||
JSL.l $000000 : RTL
|
||||
|
||||
org $308061 ; PC 0x180061
|
||||
ProgrammableItemLogicPointer_1:
|
||||
dl #$000000
|
||||
org $308066 ; PC 0x180066
|
||||
ProgrammableItemLogicPointer_2:
|
||||
dl #$000000
|
||||
org $30806B ; PC 0x18006B
|
||||
ProgrammableItemLogicPointer_3:
|
||||
dl #$000000
|
||||
;--------------------------------------------------------------------------------
|
||||
; 0x18007F (unused)
|
||||
;--------------------------------------------------------------------------------
|
||||
; Out of order 0x180070-0x18007F (CrystalNumberTable)
|
||||
org $308070 ; PC 0x180070 - 0x18007F
|
||||
CrystalNumberTable:
|
||||
db $00 ;
|
||||
db $79 ; Swamp
|
||||
db $00 ;
|
||||
db $6E ; Ice
|
||||
db $00 ;
|
||||
db $6F ; Mire
|
||||
db $00 ;
|
||||
db $6D ; Thieves
|
||||
db $69 ; Desert
|
||||
db $7C ; TRock
|
||||
db $69 ; Hera
|
||||
db $6C ; Skull
|
||||
db $69 ; Eastern
|
||||
db $7F ; Darkness
|
||||
db $00 ;
|
||||
db $00 ;
|
||||
|
||||
;1 Indicator : 7F
|
||||
;2 Indicator : 79
|
||||
;3 Indicator : 6C
|
||||
;4 Indicator : 6D
|
||||
;5 Indicator : 6E
|
||||
;6 Indicator : 6F
|
||||
;7 Indicator : 7C
|
||||
;8 Indicator : 7D
|
||||
;9 Indicator : 7E
|
||||
|
||||
;Dark Red X : 69
|
||||
;Light Red X : 78
|
||||
;White X : 68
|
||||
|
||||
;Pendant UL : 60
|
||||
;Pendant UR : 61
|
||||
;Pendant BL : 70
|
||||
;Pendant BR : 71
|
||||
|
||||
;Sword UL : 62
|
||||
;Sword UR : 63
|
||||
;Sword BL : 72
|
||||
;Sword BR : 73
|
||||
|
||||
;Crystal UL : 64
|
||||
;Crystal UR : 65
|
||||
;Crystal BL : 74
|
||||
;Crystal BR : 75
|
||||
|
||||
;Skull UL : 66
|
||||
;Skull UR : 67
|
||||
;Skull BL : 76
|
||||
;Skull BR : 77
|
||||
|
||||
;Warp UL : 6A
|
||||
;Warp UR : 6B
|
||||
;Warp BL : 7A
|
||||
;Warp BR : 7B
|
||||
;--------------------------------------------------------------------------------
|
||||
org $308080 ; PC 0x180080 - 0x180083
|
||||
Upgrade5BombsRefill:
|
||||
@@ -283,7 +372,15 @@ db #$47 ; #$47 - 20 Rupees (default)
|
||||
;--------------------------------------------------------------------------------
|
||||
; 0x180098 - 0x18009F (unused)
|
||||
;--------------------------------------------------------------------------------
|
||||
; Out of order 0x1800A0 - 0x1800A3 (Bugfix_MirrorlessSQToLW)
|
||||
org $3080A0 ; PC 0x1800A0 - 0x1800A3
|
||||
Bugfix_MirrorlessSQToLW:
|
||||
db #$01 ; #$00 = Original Behavior - #$01 = Randomizer Behavior (Default)
|
||||
Bugfix_SwampWaterLevel:
|
||||
db #$01 ; #$00 = Original Behavior - #$01 = Randomizer Behavior (Default)
|
||||
Bugfix_PreAgaDWDungeonDeathToFakeDW:
|
||||
db #$01 ; #$00 = Original Behavior - #$01 = Randomizer Behavior (Default)
|
||||
Bugfix_SetWorldOnAgahnimDeath:
|
||||
db #$01 ; #$00 = Original Behavior - #$01 = Randomizer Behavior (Default)
|
||||
;--------------------------------------------------------------------------------
|
||||
; 0x1800A4- 0x1800FF (unused)
|
||||
;--------------------------------------------------------------------------------
|
||||
@@ -476,64 +573,6 @@ org $0ABF24 ; PC 0x53F24
|
||||
MapObject_TRock:
|
||||
dw $6434 ; #6434 - Crystal
|
||||
|
||||
;--------------------------------------------------------------------------------
|
||||
org $308070 ; PC 0x180070 - 0x18007F (Out of order)
|
||||
CrystalNumberTable:
|
||||
db $00 ;
|
||||
db $79 ; Swamp
|
||||
db $00 ;
|
||||
db $6E ; Ice
|
||||
db $00 ;
|
||||
db $6F ; Mire
|
||||
db $00 ;
|
||||
db $6D ; Thieves
|
||||
db $69 ; Desert
|
||||
db $7C ; TRock
|
||||
db $69 ; Hera
|
||||
db $6C ; Skull
|
||||
db $69 ; Eastern
|
||||
db $7F ; Darkness
|
||||
db $00 ;
|
||||
db $00 ;
|
||||
|
||||
;1 Indicator : 7F
|
||||
;2 Indicator : 79
|
||||
;3 Indicator : 6C
|
||||
;4 Indicator : 6D
|
||||
;5 Indicator : 6E
|
||||
;6 Indicator : 6F
|
||||
;7 Indicator : 7C
|
||||
;8 Indicator : 7D
|
||||
;9 Indicator : 7E
|
||||
|
||||
;Dark Red X : 69
|
||||
;Light Red X : 78
|
||||
;White X : 68
|
||||
|
||||
;Pendant UL : 60
|
||||
;Pendant UR : 61
|
||||
;Pendant BL : 70
|
||||
;Pendant BR : 71
|
||||
|
||||
;Sword UL : 62
|
||||
;Sword UR : 63
|
||||
;Sword BL : 72
|
||||
;Sword BR : 73
|
||||
|
||||
;Crystal UL : 64
|
||||
;Crystal UR : 65
|
||||
;Crystal BL : 74
|
||||
;Crystal BR : 75
|
||||
|
||||
;Skull UL : 66
|
||||
;Skull UR : 67
|
||||
;Skull BL : 76
|
||||
;Skull BR : 77
|
||||
|
||||
;Warp UL : 6A
|
||||
;Warp UR : 6B
|
||||
;Warp BL : 7A
|
||||
;Warp BR : 7B
|
||||
;--------------------------------------------------------------------------------
|
||||
org $02A09B ; PC 0x1209B - Bank02.asm:5802 - (pool MilestoneItem_Flags:)
|
||||
CrystalPendantFlags:
|
||||
@@ -562,24 +601,6 @@ CrystalPendantFlags:
|
||||
;Crystal 6: $01
|
||||
;Crystal 7: $08
|
||||
;--------------------------------------------------------------------------------
|
||||
org $308050 ; PC 0x180050 - 0x18005C (Out of order)
|
||||
CrystalPendantFlags_2:
|
||||
db $00 ; Sewers
|
||||
db $00 ; Hyrule Castle
|
||||
db $00 ; Eastern Palace
|
||||
db $00 ; Desert Palace
|
||||
db $00 ; Agahnim's Tower
|
||||
db $40 ; Swamp Palace
|
||||
db $40 ; Palace of Darkness
|
||||
db $40 ; Misery Mire
|
||||
db $40 ; Skull Woods
|
||||
db $40 ; Ice Palace
|
||||
.hera
|
||||
db $00 ; Tower of Hera
|
||||
db $40 ; Thieves' Town
|
||||
db $40 ; Turtle Rock
|
||||
;Pendant: $00
|
||||
;Crystal: $40
|
||||
;Dungeons with no drops should match their respective world's normal vanilla prize ;xxx
|
||||
;--------------------------------------------------------------------------------
|
||||
org $01C6FC ; PC 0xC6FC - Bank01.asm:10344 - (db $00, $00, $01, $02, $00, $06, $06, $06, $06, $06, $03, $06, $06)
|
||||
@@ -646,34 +667,6 @@ org $07B53B ; PC 0x3B53B
|
||||
RedBoomerangSubstitution:
|
||||
db #$FF ; no substitution
|
||||
;--------------------------------------------------------------------------------
|
||||
org $308060 ; PC 0x180060 - 0x18007E (Out of order)
|
||||
ProgrammableItemLogicJump_1:
|
||||
JSL.l $000000 : RTL
|
||||
ProgrammableItemLogicJump_2:
|
||||
JSL.l $000000 : RTL
|
||||
ProgrammableItemLogicJump_3:
|
||||
JSL.l $000000 : RTL
|
||||
|
||||
org $308061 ; PC 0x180061
|
||||
ProgrammableItemLogicPointer_1:
|
||||
dl #$000000
|
||||
org $308066 ; PC 0x180066
|
||||
ProgrammableItemLogicPointer_2:
|
||||
dl #$000000
|
||||
org $30806B ; PC 0x18006B
|
||||
ProgrammableItemLogicPointer_3:
|
||||
dl #$000000
|
||||
;--------------------------------------------------------------------------------
|
||||
org $3080A0 ; PC 0x1800A0 - 0x1800A3 (Out of order)
|
||||
Bugfix_MirrorlessSQToLW:
|
||||
db #$01 ; #$00 = Original Behavior - #$01 = Randomizer Behavior (Default)
|
||||
Bugfix_SwampWaterLevel:
|
||||
db #$01 ; #$00 = Original Behavior - #$01 = Randomizer Behavior (Default)
|
||||
Bugfix_PreAgaDWDungeonDeathToFakeDW:
|
||||
db #$01 ; #$00 = Original Behavior - #$01 = Randomizer Behavior (Default)
|
||||
Bugfix_SetWorldOnAgahnimDeath:
|
||||
db #$01 ; #$00 = Original Behavior - #$01 = Randomizer Behavior (Default)
|
||||
;--------------------------------------------------------------------------------
|
||||
;org $08D01A ; PC 0x4501A - ancilla_flute.asm - 42
|
||||
;OldHauntedGroveItem:
|
||||
; db #$14 ; #$14 = Flute
|
||||
@@ -1499,25 +1492,6 @@ dw #9999 ; Rupee Limit
|
||||
!BIGRAM = "$7EC900";
|
||||
; $7EC900 - Big RAM Buffer ($1F00)
|
||||
;================================================================================
|
||||
org $30FF00 ; PC 0x187F00 - PC 0x187FFF (out of order)
|
||||
NameHashTable: ; change this for each new version - MOVE THIS TO BANK $30
|
||||
db $57, $41, $D6, $7A, $E0, $10, $8A, $97, $A2, $89, $82, $45, $46, $1C, $DF, $F7
|
||||
db $55, $0F, $1D, $56, $AC, $29, $DC, $D1, $25, $2A, $C5, $92, $42, $B7, $BE, $50
|
||||
db $64, $62, $31, $E8, $49, $63, $40, $5F, $C9, $47, $F6, $0B, $FA, $FC, $E4, $F0
|
||||
db $E6, $8F, $6D, $B1, $68, $A4, $D3, $0E, $54, $5D, $6B, $CF, $20, $69, $33, $07
|
||||
db $2C, $4D, $32, $77, $C1, $95, $7B, $DE, $66, $8C, $35, $84, $86, $7C, $44, $1A
|
||||
db $3E, $15, $D4, $0C, $B5, $90, $4C, $B2, $26, $1E, $38, $C0, $76, $9C, $2B, $7F
|
||||
db $5E, $D5, $75, $B6, $E3, $7D, $8D, $72, $3A, $CB, $6F, $5B, $AD, $BD, $F1, $BB
|
||||
db $05, $9A, $F4, $03, $02, $FF, $DA, $4F, $93, $B3, $14, $EC, $EE, $D7, $F9, $96
|
||||
db $A7, $13, $CA, $BF, $88, $19, $A3, $78, $24, $87, $3C, $9E, $B4, $27, $C2, $AF
|
||||
db $80, $C4, $C8, $6C, $E9, $94, $F8, $8B, $3D, $34, $A6, $53, $17, $22, $F3, $A5
|
||||
db $1B, $2E, $06, $39, $D2, $43, $73, $12, $09, $58, $30, $5C, $99, $98, $9F, $ED
|
||||
db $37, $67, $EA, $BA, $E7, $D9, $81, $08, $7E, $BC, $70, $5A, $51, $C3, $B9, $61
|
||||
db $36, $4B, $A8, $01, $65, $3B, $EF, $59, $04, $18, $79, $0D, $DD, $CE, $CC, $AE
|
||||
db $83, $21, $EB, $6E, $0A, $71, $B0, $11, $85, $C7, $A1, $FD, $E5, $16, $48, $FB
|
||||
db $F2, $23, $2F, $28, $9B, $AA, $AB, $D0, $6A, $9D, $C6, $2D, $00, $FE, $E1, $3F
|
||||
db $A0, $4A, $B8, $4E, $74, $1F, $8E, $A9, $F5, $CD, $60, $91, $DB, $D8, $52, $E2
|
||||
;================================================================================
|
||||
org $30A100 ; PC 0x182100 - 0x182304
|
||||
EntranceDoorFrameTable:
|
||||
; data for multi-entrance caves
|
||||
@@ -1641,5 +1615,22 @@ db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
|
||||
;--------------------------------------------------------------------------------
|
||||
; 0x185140 - 187EFF (unused)
|
||||
;--------------------------------------------------------------------------------
|
||||
; Out of order 0x187F00 - PC 0x187FFF (NameHashTable)
|
||||
org $30FF00 ; PC 0x187F00 - PC 0x187FFF
|
||||
NameHashTable: ; change this for each new version - MOVE THIS TO BANK $30
|
||||
db $57, $41, $D6, $7A, $E0, $10, $8A, $97, $A2, $89, $82, $45, $46, $1C, $DF, $F7
|
||||
db $55, $0F, $1D, $56, $AC, $29, $DC, $D1, $25, $2A, $C5, $92, $42, $B7, $BE, $50
|
||||
db $64, $62, $31, $E8, $49, $63, $40, $5F, $C9, $47, $F6, $0B, $FA, $FC, $E4, $F0
|
||||
db $E6, $8F, $6D, $B1, $68, $A4, $D3, $0E, $54, $5D, $6B, $CF, $20, $69, $33, $07
|
||||
db $2C, $4D, $32, $77, $C1, $95, $7B, $DE, $66, $8C, $35, $84, $86, $7C, $44, $1A
|
||||
db $3E, $15, $D4, $0C, $B5, $90, $4C, $B2, $26, $1E, $38, $C0, $76, $9C, $2B, $7F
|
||||
db $5E, $D5, $75, $B6, $E3, $7D, $8D, $72, $3A, $CB, $6F, $5B, $AD, $BD, $F1, $BB
|
||||
db $05, $9A, $F4, $03, $02, $FF, $DA, $4F, $93, $B3, $14, $EC, $EE, $D7, $F9, $96
|
||||
db $A7, $13, $CA, $BF, $88, $19, $A3, $78, $24, $87, $3C, $9E, $B4, $27, $C2, $AF
|
||||
db $80, $C4, $C8, $6C, $E9, $94, $F8, $8B, $3D, $34, $A6, $53, $17, $22, $F3, $A5
|
||||
db $1B, $2E, $06, $39, $D2, $43, $73, $12, $09, $58, $30, $5C, $99, $98, $9F, $ED
|
||||
db $37, $67, $EA, $BA, $E7, $D9, $81, $08, $7E, $BC, $70, $5A, $51, $C3, $B9, $61
|
||||
db $36, $4B, $A8, $01, $65, $3B, $EF, $59, $04, $18, $79, $0D, $DD, $CE, $CC, $AE
|
||||
db $83, $21, $EB, $6E, $0A, $71, $B0, $11, $85, $C7, $A1, $FD, $E5, $16, $48, $FB
|
||||
db $F2, $23, $2F, $28, $9B, $AA, $AB, $D0, $6A, $9D, $C6, $2D, $00, $FE, $E1, $3F
|
||||
db $A0, $4A, $B8, $4E, $74, $1F, $8E, $A9, $F5, $CD, $60, $91, $DB, $D8, $52, $E2
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
@@ -96,7 +96,7 @@ LoadNarrowObject:
|
||||
LDA AddReceivedItemExpanded_wide_item_flag, X : STA ($92), Y ; AddReceiveItem.wide_item_flag? ; LDA.b #$00 : STA ($92), Y in the japanese version
|
||||
PLY
|
||||
;JSL.l DrawNarrowDroppedObject
|
||||
JMP.l LoadNarrowObjectReturn
|
||||
JML.l LoadNarrowObjectReturn
|
||||
;--------------------------------------------------------------------------------
|
||||
DrawNarrowDroppedObject:
|
||||
; If it's a 16x16 sprite, we'll only draw one, otherwise we'll end up drawing
|
||||
|
||||
Reference in New Issue
Block a user