Merge branch 'OWMain' of github.com:codemann8/z3randomizer into overworld_kara
This commit is contained in:
@@ -114,8 +114,12 @@ function hexto555(h) = ((((h&$FF)/8)<<10)|(((h>>8&$FF)/8)<<5)|(((h>>16&$FF)/8)<<
|
||||
!MULTIWORLD_SPRITEITEM_PLAYER_ID = "$7EC099"
|
||||
!MULTIWORLD_HUD_TIMER = "$7EC09A"
|
||||
!MULTIWORLD_HUD_DELAY = "#120"
|
||||
!MULTIWORLD_ITEM_ID = "$7EC09B" ; for lua scripts?
|
||||
!Dungeon_ChestData = "$01E96C"
|
||||
|
||||
!FLAG_OW_MIXED = $04
|
||||
!FLAG_OW_CROSSED = $02
|
||||
|
||||
incsrc hooks.asm
|
||||
incsrc treekid.asm
|
||||
incsrc spriteswap.asm
|
||||
|
||||
@@ -582,6 +582,8 @@ dw $00bc, $00a2, $00a3, $00c2, $001a, $0049, $0014, $008c
|
||||
dw $009f, $0066, $005d, $00a8, $00a9, $00aa, $00b9, $0052
|
||||
; HC West Hall, TR Dash Bridge, TR Hub, Pod Arena, GT Petting Zoo, Ice Spike Cross
|
||||
dw $0050, $00c5, $00c6, $0009, $0003, $002a, $007d, $005e
|
||||
; Sewer Drop, Mire Cross, GT Crystal Circles
|
||||
dw $0011, $00b2, $003d
|
||||
dw $ffff
|
||||
|
||||
; dungeon tables
|
||||
|
||||
@@ -216,12 +216,12 @@ RTL
|
||||
AnimatedEntranceFix: ;when an entrance animation tries to start
|
||||
PHA : PHX
|
||||
LDA.l InvertedMode : BEQ + ;If we are in inverted mode
|
||||
LDA.l OWMode+1 : CMP #$01 : BEQ + ;If we are in Mixed OW shuffle mode
|
||||
LDA $8A : AND #$40 : BNE + ;and in the light world
|
||||
PLX : PLA
|
||||
STZ $04C6 ; skip it.
|
||||
LDA #$00
|
||||
RTL
|
||||
LDA.l OWMode+1 : AND.b #!FLAG_OW_MIXED : BNE + ;If we are in Mixed OW shuffle mode
|
||||
LDA $8A : AND #$40 : BNE + ;and in the light world
|
||||
PLX : PLA
|
||||
STZ $04C6 ; skip it.
|
||||
LDA #$00
|
||||
RTL
|
||||
+
|
||||
PLX : PLA
|
||||
STA $02E4 ;what we wrote over
|
||||
|
||||
@@ -61,8 +61,8 @@ FluteBoy:
|
||||
JML.l FluteBoy_Continue
|
||||
;--------------------------------------------------------------------------------
|
||||
FreeDuckCheck:
|
||||
LDA.l OWMode+1 : CMP.b #$01 : BEQ .skipInvertedCheck
|
||||
LDA.l InvertedMode : BEQ .done
|
||||
LDA.l OWMode+1 : AND.b #!FLAG_OW_MIXED : BNE .skipInvertedCheck
|
||||
LDA.l InvertedMode : BEQ .done
|
||||
.skipInvertedCheck
|
||||
|
||||
LDA $7EF34C : CMP.b #$03 : BEQ .done ; flute is already active
|
||||
|
||||
@@ -2483,7 +2483,7 @@ JSL BirdTravel_LoadTargetAreaMusic
|
||||
BRA + : NOP #14 : +
|
||||
;--------------------------------------------------------------------------------
|
||||
org $02B027 ; <- Bank02.asm:7535-7541
|
||||
JSL Overworld_DetermineMusicSFX
|
||||
JSL Overworld_DetermineMusic
|
||||
BRA + : NOP #42 : +
|
||||
;================================================================================
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ HudAdditions:
|
||||
++
|
||||
|
||||
LDX $1B : BNE + ; if outdoors
|
||||
lda.l OWMode : and #$0300 : bne ++ : rts ; Skip if vanilla ow rando
|
||||
lda.l OWMode : and.w #((!FLAG_OW_CROSSED+!FLAG_OW_MIXED)<<8)+$ff : bne ++ : rts ; Skip if vanilla ow rando
|
||||
++ lda $7ef36d : and #$00ff : beq ++
|
||||
lda $7ef3ca : and #$00ff : beq +++
|
||||
lda #$2d60 : bra .owdisplay
|
||||
|
||||
@@ -93,8 +93,8 @@ LDA.l OWTileMapAlt+3 : AND #$0001 : BEQ .notInverted
|
||||
LDA #$0034 : STA $2BE0
|
||||
.notInverted
|
||||
LDA.l OWTileMapAlt+3 : AND #$0002 : BEQ .return
|
||||
LDA.l OWMode : AND #$00FF : BEQ .return
|
||||
LDA $2BE0 : STA $38B4 ;adding convenient WDM portal in OW Shuffle
|
||||
LDA.l OWMode : AND #$00FF : BEQ .return
|
||||
LDA $2BE0 : STA $38B4 ;adding convenient WDM portal in OW Shuffle
|
||||
.return
|
||||
RTS
|
||||
}
|
||||
@@ -969,8 +969,8 @@ LDA.l OWTileMapAlt+$43 : AND #$0001 : BEQ .owshuffle
|
||||
LDA #$0212 : STA $2BE0 ; portal
|
||||
.owshuffle
|
||||
LDA.l OWTileMapAlt+$43 : AND #$0002 : BEQ .return
|
||||
LDA.l OWMode : AND #$00FF : BEQ .return
|
||||
LDA $2BE0 : STA $38B4 ; adding convenient WDM portal in OW Shuffle
|
||||
LDA.l OWMode : AND #$00FF : BEQ .return
|
||||
LDA $2BE0 : STA $38B4 ; adding convenient WDM portal in OW Shuffle
|
||||
.return
|
||||
RTS
|
||||
}
|
||||
|
||||
5
msu.asm
5
msu.asm
@@ -76,7 +76,7 @@
|
||||
;
|
||||
; Additional tracks
|
||||
;
|
||||
; 60 - Light World OW (after ped pull)
|
||||
; 60 - Light World OW (after aga kill)
|
||||
; 61 - Dark World OW (with all crystals)
|
||||
;
|
||||
;=======================================
|
||||
@@ -250,7 +250,8 @@ CheckMusicLoadRequest:
|
||||
BRA .check_fallback-3
|
||||
.lightworld
|
||||
PHA
|
||||
LDA $7EF300 : AND.b #$40 : BEQ +
|
||||
;LDA $7EF300 : AND.b #$40 : BEQ + ; ped pull
|
||||
LDA $7EF3C5 : CMP.b #03 : BNE + ; aga1 killed
|
||||
PLA
|
||||
LDA.b #60 : BRA .check_fallback-3
|
||||
+
|
||||
|
||||
51
music.asm
51
music.asm
@@ -16,7 +16,7 @@ PreOverworld_LoadProperties_ChooseMusic:
|
||||
|
||||
; if we are in the light world go ahead and set chosen selection
|
||||
;LDA $7EF3CA : BEQ .checkInverted+4
|
||||
+ JSL Overworld_DetermineMusicSFX
|
||||
+ JSL Overworld_DetermineMusic
|
||||
|
||||
.lastCheck
|
||||
LDA $0132 : CMP.b #$F2 : BNE +
|
||||
@@ -57,7 +57,8 @@ Overworld_FinishMirrorWarp:
|
||||
|
||||
LDA.b #$80 : STA $9B
|
||||
|
||||
JSL Overworld_DetermineMusicSFX
|
||||
JSL Overworld_DetermineAmbientSFX
|
||||
JSL Overworld_DetermineMusic
|
||||
|
||||
.done
|
||||
STX $012C
|
||||
@@ -74,14 +75,15 @@ Overworld_FinishMirrorWarp:
|
||||
|
||||
;--------------------------------------------------------------------------------
|
||||
BirdTravel_LoadTargetAreaMusic:
|
||||
JSL Overworld_DetermineMusicSFX
|
||||
JSL Overworld_DetermineAmbientSFX
|
||||
JSL Overworld_DetermineMusic
|
||||
STZ $04C8 ; Clear peg puzzle count
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
;--------------------------------------------------------------------------------
|
||||
;X to be set to music track to load
|
||||
;$012D to be set to any ambient SFX for the area
|
||||
Overworld_DetermineMusicSFX:
|
||||
Overworld_DetermineMusic:
|
||||
LDA $7EF3C5 : CMP.b #$02 : !BGE +
|
||||
LDX.b #$03 ; If phase < 2, play the rain music
|
||||
BRA .done
|
||||
@@ -91,7 +93,6 @@ Overworld_DetermineMusicSFX:
|
||||
CMP.b #$47 : BEQ .darkMountain
|
||||
|
||||
LDX.b #$02 ; hyrule field theme
|
||||
LDA.b #$05 : STA $012D
|
||||
|
||||
LDA $7EF3CA : BEQ +
|
||||
LDX.b #$09 ; default dark world theme
|
||||
@@ -113,15 +114,7 @@ Overworld_DetermineMusicSFX:
|
||||
LDX #$0F ; dark woods theme
|
||||
BRA .bunny
|
||||
|
||||
; Misery Mire rain SFX
|
||||
+ CMP.b #$70 : BNE .bunny
|
||||
LDA $7EF2F0 : AND.b #$20 : BNE .bunny
|
||||
LDA.b #$01 : CMP $0131 : BEQ +
|
||||
STA $012D : BRA .bunny
|
||||
+ STZ $012D : BRA .bunny
|
||||
|
||||
.darkMountain
|
||||
LDA.b #$09 : STA $012D ; set storm ambient SFX
|
||||
LDX.b #$0D ; dark mountain theme
|
||||
|
||||
.bunny
|
||||
@@ -134,6 +127,36 @@ Overworld_DetermineMusicSFX:
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
;--------------------------------------------------------------------------------
|
||||
;$012D to be set to any ambient SFX for the area
|
||||
Overworld_DetermineAmbientSFX:
|
||||
LDA $7EF3C5 : CMP.b #$02 : !BGE +
|
||||
BRA .done ; rain state sfx handled elsewhere
|
||||
|
||||
+ LDA $8A : CMP.b #$43 : BEQ .darkMountain
|
||||
CMP.b #$45 : BEQ .darkMountain
|
||||
CMP.b #$47 : BEQ .darkMountain
|
||||
|
||||
CMP.b #$70 : BEQ .mire
|
||||
|
||||
LDA.b #$05 : BRA .setSfx ; silence
|
||||
|
||||
.mire
|
||||
LDA $7EF2F0 : AND.b #$20 : BNE .done
|
||||
LDA.b #$01 : BRA .setSfx ; Misery Mire rain SFX
|
||||
|
||||
.darkMountain
|
||||
LDA.b #$09 : BRA .setSfx ; set storm ambient SFX
|
||||
|
||||
.setSfx
|
||||
CMP $0131 : BEQ +
|
||||
STA $012D
|
||||
+ STZ $012D
|
||||
|
||||
.done
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
;--------------------------------------------------------------------------------
|
||||
;0 = Is Kakariko Overworld
|
||||
;1 = Not Kakariko Overworld
|
||||
|
||||
628
newhud.asm
628
newhud.asm
@@ -1,319 +1,309 @@
|
||||
NewDrawHud:
|
||||
SEP #$30
|
||||
;================================================================================
|
||||
; Draw bomb count
|
||||
!BOMBCOUNT_DRAW_ADDRESS = "$7EC75A"
|
||||
!INFINITE_BOMBS = "$7F50C9"
|
||||
;================================================================================
|
||||
|
||||
LDA !INFINITE_BOMBS : BNE .infinite_bombs
|
||||
.finite_bombs
|
||||
LDA.l SpecialWeapons : CMP #$01 : BNE .normal
|
||||
LDA.l !BOMB_LEVEL : BEQ .no_bombs
|
||||
.normal
|
||||
LDA.l $7EF343 ; bombs
|
||||
JSR HudHexToDec2Digit ;requires 8 bit registers!
|
||||
REP #$20
|
||||
LDX.b $06 : TXA : ORA.w #$2400 : STA !BOMBCOUNT_DRAW_ADDRESS ; Draw bombs 10 digit
|
||||
LDX.b $07 : TXA : ORA.w #$2400 : STA !BOMBCOUNT_DRAW_ADDRESS+2 ; Draw bombs 1 digit
|
||||
BRA +
|
||||
|
||||
.no_bombs
|
||||
REP #$20
|
||||
LDA.w #$207F : STA !BOMBCOUNT_DRAW_ADDRESS
|
||||
STA !BOMBCOUNT_DRAW_ADDRESS+2
|
||||
BRA +
|
||||
|
||||
.infinite_bombs
|
||||
REP #$20
|
||||
LDA.w #$2431 : STA !BOMBCOUNT_DRAW_ADDRESS ; infinity (left half)
|
||||
INC A : STA !BOMBCOUNT_DRAW_ADDRESS+2 ; infinity (right half)
|
||||
+
|
||||
|
||||
;================================================================================
|
||||
; Draw rupee counter
|
||||
!RUPEE_DRAW_ADDRESS = "$7EC750"
|
||||
;================================================================================
|
||||
|
||||
LDA.l $7EF362 ; Drawing bombs (above) always ends with 16-bit A, so, no need to REP here
|
||||
JSR HudHexToDec4Digit
|
||||
LDX.b $04 : TXA : ORA.w #$2400 : STA !RUPEE_DRAW_ADDRESS ; 1000s
|
||||
LDX.b $05 : TXA : ORA.w #$2400 : STA !RUPEE_DRAW_ADDRESS+2 ; 100s
|
||||
LDX.b $06 : TXA : ORA.w #$2400 : STA !RUPEE_DRAW_ADDRESS+4 ; 10s
|
||||
LDX.b $07 : TXA : ORA.w #$2400 : STA !RUPEE_DRAW_ADDRESS+6 ; 1s
|
||||
|
||||
;================================================================================
|
||||
; Draw arrow count
|
||||
!ARROWCOUNT_DRAW_ADDRESS = "$7EC760"
|
||||
!INFINITE_ARROWS = "$7F50C8"
|
||||
;================================================================================
|
||||
|
||||
SEP #$20
|
||||
LDA.l ArrowMode : BNE +
|
||||
LDA !INFINITE_ARROWS : BNE .infinite_arrows
|
||||
.finite_arrows
|
||||
LDA.l $7EF377 ; arrows
|
||||
JSR HudHexToDec2Digit
|
||||
REP #$20
|
||||
LDX.b $06 : TXA : ORA.w #$2400 : STA !ARROWCOUNT_DRAW_ADDRESS ; Draw arrows 10 digit
|
||||
LDX.b $07 : TXA : ORA.w #$2400 : STA !ARROWCOUNT_DRAW_ADDRESS+2 ; Draw arrows 1 digit
|
||||
BRA +
|
||||
|
||||
.infinite_arrows
|
||||
REP #$20
|
||||
LDA.w #$2431 : STA !ARROWCOUNT_DRAW_ADDRESS ; infinity (left half)
|
||||
INC A : STA !ARROWCOUNT_DRAW_ADDRESS+2 ; infinity (right half)
|
||||
+
|
||||
|
||||
;================================================================================
|
||||
; Draw Goal Item Indicator
|
||||
!GOAL_COUNTER = "$7EF418"
|
||||
!GOAL_DRAW_ADDRESS = "$7EC72A"
|
||||
;================================================================================
|
||||
|
||||
SEP #$20
|
||||
LDA.l GoalItemRequirement : BNE + : JMP .done : + ; Star Meter
|
||||
|
||||
LDA.l !GOAL_COUNTER
|
||||
JSR HudHexToDec3Digit
|
||||
REP #$20
|
||||
|
||||
LDA.l GoalItemIcon : STA !GOAL_DRAW_ADDRESS ; draw star icon
|
||||
|
||||
LDX.b $05 : TXA : ORA.w #$2400 : STA !GOAL_DRAW_ADDRESS+2 ; draw 100's digit
|
||||
LDX.b $06 : TXA : ORA.w #$2400 : STA !GOAL_DRAW_ADDRESS+4 ; draw 10's digit
|
||||
LDX.b $07 : TXA : ORA.w #$2400 : STA !GOAL_DRAW_ADDRESS+6 ; draw 1's digit
|
||||
|
||||
SEP #$20
|
||||
LDA.l GoalItemRequirement : CMP.b #$FF : BEQ .skip
|
||||
|
||||
LDA.l GoalItemRequirement
|
||||
JSR HudHexToDec3Digit
|
||||
REP #$20
|
||||
LDA.w #$2830 : STA !GOAL_DRAW_ADDRESS+8 ; draw slash
|
||||
LDX.b $05 : TXA : ORA.w #$2400 : STA !GOAL_DRAW_ADDRESS+10 ; draw 100's digit
|
||||
LDX.b $06 : TXA : ORA.w #$2400 : STA !GOAL_DRAW_ADDRESS+12 ; draw 10's digit
|
||||
LDX.b $07 : TXA : ORA.w #$2400 : STA !GOAL_DRAW_ADDRESS+14 ; draw 1's digit
|
||||
BRA .done
|
||||
.skip
|
||||
REP #$20
|
||||
LDA.w #$207F ; transparent tile
|
||||
STA !GOAL_DRAW_ADDRESS+8
|
||||
STA !GOAL_DRAW_ADDRESS+10
|
||||
STA !GOAL_DRAW_ADDRESS+12
|
||||
.done
|
||||
|
||||
;================================================================================
|
||||
; Draw Dungeon Compass Counts
|
||||
;================================================================================
|
||||
REP #$20
|
||||
LDA.l CompassMode : AND #$00FF : BEQ + ; skip if CompassMode is 0.
|
||||
JSL.l DrawDungeonCompassCounts ; compasses.asm
|
||||
+
|
||||
|
||||
;================================================================================
|
||||
; Draw key count
|
||||
!KEYS = "$7EF36F"
|
||||
!KEY_DIGITS_ADDRESS = "$7EC764"
|
||||
!KEY_ICON_ADDRESS = "$7EC726"
|
||||
;================================================================================
|
||||
SEP #$20
|
||||
LDA.l !KEYS : CMP.b #$FF : BEQ .not_in_dungeon
|
||||
.in_dungeon
|
||||
JSR HudHexToDec2Digit : REP #$20
|
||||
|
||||
; if 10s digit is 0, draw transparent tile instead of 0
|
||||
LDX.b $06 : TXA : CPX.b #$90 : BNE +
|
||||
LDA.w #$007F
|
||||
+
|
||||
ORA.w #$2400 : STA !KEY_DIGITS_ADDRESS
|
||||
|
||||
; 1s digit
|
||||
LDX.b $07 : TXA : ORA.w #$2400 : STA !KEY_DIGITS_ADDRESS+2
|
||||
BRA .done_keys
|
||||
|
||||
.not_in_dungeon
|
||||
REP #$20
|
||||
|
||||
;in the overworld, draw transparent tiles instead of key count
|
||||
LDA.w #$247F : STA !KEY_DIGITS_ADDRESS : STA !KEY_DIGITS_ADDRESS+2
|
||||
STA !KEY_ICON_ADDRESS
|
||||
|
||||
.done_keys
|
||||
|
||||
|
||||
|
||||
|
||||
;--------------------------------------------------------------------------------
|
||||
; Draw pendant/crystal icon
|
||||
;--------------------------------------------------------------------------------
|
||||
!PRIZE_ICON = $7EC742
|
||||
!P_ICON = $296C
|
||||
!C_ICON = $295F
|
||||
|
||||
SEP #$20
|
||||
LDA.b $1B : BEQ .noprize
|
||||
|
||||
LDX.w $040C
|
||||
CPX #$1A : !BGE .noprize
|
||||
CPX #$04 : !BLT .noprize
|
||||
CPX #$08 : BEQ .noprize
|
||||
|
||||
LDA $10 : CMP #$12 : BEQ .noprize
|
||||
|
||||
REP #$20
|
||||
|
||||
LDA.l MapMode
|
||||
BEQ .drawprize
|
||||
|
||||
LDA.l $7EF368
|
||||
AND.l DungeonItemMasks,X
|
||||
BEQ .noprize
|
||||
|
||||
.drawprize
|
||||
TXA : LSR : TAX
|
||||
LDA.l CrystalPendantFlags_2, X
|
||||
AND.w #$0040 : BNE .is_crystal
|
||||
|
||||
LDA.w #!P_ICON
|
||||
BRA .doneprize
|
||||
|
||||
.is_crystal
|
||||
LDA.w #!C_ICON
|
||||
BRA .doneprize
|
||||
|
||||
.noprize
|
||||
REP #$20
|
||||
LDA.w #$207F
|
||||
|
||||
.doneprize
|
||||
STA.l !PRIZE_ICON
|
||||
|
||||
;--------------------------------------------------------------------------------
|
||||
; Draw Magic Meter
|
||||
!INFINITE_MAGIC = "$7F50CA"
|
||||
!DrawMagicMeter_mp_tilemap = "$0DFE0F"
|
||||
;--------------------------------------------------------------------------------
|
||||
LDA $7EF36E : AND #$00FF ; crap we wrote over when placing the hook for OnDrawHud
|
||||
!ADD #$0007
|
||||
AND #$FFF8
|
||||
TAX ; end of crap
|
||||
|
||||
LDA !INFINITE_MAGIC : AND.w #$00FF : BNE + : JMP .green : +
|
||||
SEP #$20 : LDA.b #$80 : STA $7EF36E : REP #$30 ; set magic to max
|
||||
LDX.w #$0080 ; load full magic meter graphics
|
||||
LDA $1A : AND.w #$000C : LSR #2
|
||||
BEQ .red
|
||||
CMP.w #0001 : BEQ .yellow
|
||||
CMP.w #0002 : BNE + : JMP .green : +
|
||||
.blue
|
||||
LDA !DrawMagicMeter_mp_tilemap+0, X : AND.w #$EFFF : STA $7EC746
|
||||
LDA !DrawMagicMeter_mp_tilemap+2, X : AND.w #$EFFF : STA $7EC786
|
||||
LDA !DrawMagicMeter_mp_tilemap+4, X : AND.w #$EFFF : STA $7EC7C6
|
||||
LDA !DrawMagicMeter_mp_tilemap+6, X : AND.w #$EFFF : STA $7EC806
|
||||
RTL
|
||||
.red
|
||||
LDA !DrawMagicMeter_mp_tilemap+0, X : AND.w #$E7FF : STA $7EC746
|
||||
LDA !DrawMagicMeter_mp_tilemap+2, X : AND.w #$E7FF : STA $7EC786
|
||||
LDA !DrawMagicMeter_mp_tilemap+4, X : AND.w #$E7FF : STA $7EC7C6
|
||||
LDA !DrawMagicMeter_mp_tilemap+6, X : AND.w #$E7FF : STA $7EC806
|
||||
RTL
|
||||
.yellow
|
||||
LDA !DrawMagicMeter_mp_tilemap+0, X : AND.w #$EBFF : STA $7EC746
|
||||
LDA !DrawMagicMeter_mp_tilemap+2, X : AND.w #$EBFF : STA $7EC786
|
||||
LDA !DrawMagicMeter_mp_tilemap+4, X : AND.w #$EBFF : STA $7EC7C6
|
||||
LDA !DrawMagicMeter_mp_tilemap+6, X : AND.w #$EBFF : STA $7EC806
|
||||
RTL
|
||||
.orange
|
||||
LDA !DrawMagicMeter_mp_tilemap+0, X : AND.w #$E3FF : STA $7EC746
|
||||
LDA !DrawMagicMeter_mp_tilemap+2, X : AND.w #$E3FF : STA $7EC786
|
||||
LDA !DrawMagicMeter_mp_tilemap+4, X : AND.w #$E3FF : STA $7EC7C6
|
||||
LDA !DrawMagicMeter_mp_tilemap+6, X : AND.w #$E3FF : STA $7EC806
|
||||
RTL
|
||||
.green
|
||||
LDA !DrawMagicMeter_mp_tilemap+0, X : STA $7EC746
|
||||
LDA !DrawMagicMeter_mp_tilemap+2, X : STA $7EC786
|
||||
LDA !DrawMagicMeter_mp_tilemap+4, X : STA $7EC7C6
|
||||
LDA !DrawMagicMeter_mp_tilemap+6, X : STA $7EC806
|
||||
RTL
|
||||
|
||||
;================================================================================
|
||||
; 16-bit A, 8-bit X
|
||||
; in: A(b) - Byte to Convert
|
||||
; out: $04 - $07 (high - low)
|
||||
;================================================================================
|
||||
HudHexToDec4Digit:
|
||||
LDY.b #$90
|
||||
-
|
||||
CMP.w #1000 : !BLT +
|
||||
INY
|
||||
SBC.w #1000 : BRA -
|
||||
+
|
||||
STY $04 : LDY #$90 ; Store 1000s digit & reset Y
|
||||
-
|
||||
CMP.w #100 : !BLT +
|
||||
INY
|
||||
SBC.w #100 : BRA -
|
||||
+
|
||||
STY $05 : LDY #$90 ; Store 100s digit & reset Y
|
||||
-
|
||||
CMP.w #10 : !BLT +
|
||||
INY
|
||||
SBC.w #10 : BRA -
|
||||
+
|
||||
STY $06 : LDY #$90 ; Store 10s digit & reset Y
|
||||
CMP.w #1 : !BLT +
|
||||
-
|
||||
INY
|
||||
DEC : BNE -
|
||||
+
|
||||
STY $07 ; Store 1s digit
|
||||
RTS
|
||||
|
||||
;================================================================================
|
||||
; 8-bit registers
|
||||
; in: A(b) - Byte to Convert
|
||||
; out: $05 - $07 (high - low)
|
||||
;================================================================================
|
||||
HudHexToDec3Digit: ; this may be overkill, could have used the 4 digit one...
|
||||
LDY.b #$90
|
||||
-
|
||||
CMP.b #100 : !BLT +
|
||||
INY
|
||||
SBC.b #100 : BRA -
|
||||
+
|
||||
STY $05 : LDY.b #$90 ; Store 100s digit and reset Y
|
||||
-
|
||||
CMP.b #10 : !BLT +
|
||||
INY
|
||||
SBC.b #10 : BRA -
|
||||
+
|
||||
STY $06 : LDY #$90 ; Store 10s digit and reset Y
|
||||
CMP.b #1 : !BLT +
|
||||
-
|
||||
INY
|
||||
DEC : BNE -
|
||||
+
|
||||
STY $07 ; Store 1s digit
|
||||
RTS
|
||||
|
||||
;================================================================================
|
||||
; 8-bit registers
|
||||
; in: A(b) - Byte to Convert
|
||||
; out: $06 - $07 (high - low)
|
||||
;================================================================================
|
||||
HudHexToDec2Digit:
|
||||
LDY.b #$90
|
||||
-
|
||||
CMP.b #10 : !BLT +
|
||||
INY
|
||||
SBC.b #10 : BRA -
|
||||
+
|
||||
STY $06 : LDY #$90 ; Store 10s digit and reset Y
|
||||
CMP.b #1 : !BLT +
|
||||
-
|
||||
INY
|
||||
DEC : BNE -
|
||||
+
|
||||
STY $07 ; Store 1s digit
|
||||
RTS
|
||||
NewDrawHud:
|
||||
SEP #$30
|
||||
;================================================================================
|
||||
; Draw bomb count
|
||||
!BOMBCOUNT_DRAW_ADDRESS = "$7EC75A"
|
||||
!INFINITE_BOMBS = "$7F50C9"
|
||||
;================================================================================
|
||||
|
||||
LDA !INFINITE_BOMBS : BNE .infinite_bombs
|
||||
.finite_bombs
|
||||
LDA.l $7EF343 ; bombs
|
||||
JSR HudHexToDec2Digit ;requires 8 bit registers!
|
||||
REP #$20
|
||||
LDX.b $06 : TXA : ORA.w #$2400 : STA !BOMBCOUNT_DRAW_ADDRESS ; Draw bombs 10 digit
|
||||
LDX.b $07 : TXA : ORA.w #$2400 : STA !BOMBCOUNT_DRAW_ADDRESS+2 ; Draw bombs 1 digit
|
||||
BRA +
|
||||
|
||||
.infinite_bombs
|
||||
REP #$20
|
||||
LDA.w #$2431 : STA !BOMBCOUNT_DRAW_ADDRESS ; infinity (left half)
|
||||
INC A : STA !BOMBCOUNT_DRAW_ADDRESS+2 ; infinity (right half)
|
||||
+
|
||||
|
||||
;================================================================================
|
||||
; Draw rupee counter
|
||||
!RUPEE_DRAW_ADDRESS = "$7EC750"
|
||||
;================================================================================
|
||||
|
||||
LDA.l $7EF362 ; Drawing bombs (above) always ends with 16-bit A, so, no need to REP here
|
||||
JSR HudHexToDec4Digit
|
||||
LDX.b $04 : TXA : ORA.w #$2400 : STA !RUPEE_DRAW_ADDRESS ; 1000s
|
||||
LDX.b $05 : TXA : ORA.w #$2400 : STA !RUPEE_DRAW_ADDRESS+2 ; 100s
|
||||
LDX.b $06 : TXA : ORA.w #$2400 : STA !RUPEE_DRAW_ADDRESS+4 ; 10s
|
||||
LDX.b $07 : TXA : ORA.w #$2400 : STA !RUPEE_DRAW_ADDRESS+6 ; 1s
|
||||
|
||||
;================================================================================
|
||||
; Draw arrow count
|
||||
!ARROWCOUNT_DRAW_ADDRESS = "$7EC760"
|
||||
!INFINITE_ARROWS = "$7F50C8"
|
||||
;================================================================================
|
||||
|
||||
SEP #$20
|
||||
LDA.l ArrowMode : BNE +
|
||||
LDA !INFINITE_ARROWS : BNE .infinite_arrows
|
||||
.finite_arrows
|
||||
LDA.l $7EF377 ; arrows
|
||||
JSR HudHexToDec2Digit
|
||||
REP #$20
|
||||
LDX.b $06 : TXA : ORA.w #$2400 : STA !ARROWCOUNT_DRAW_ADDRESS ; Draw arrows 10 digit
|
||||
LDX.b $07 : TXA : ORA.w #$2400 : STA !ARROWCOUNT_DRAW_ADDRESS+2 ; Draw arrows 1 digit
|
||||
BRA +
|
||||
|
||||
.infinite_arrows
|
||||
REP #$20
|
||||
LDA.w #$2431 : STA !ARROWCOUNT_DRAW_ADDRESS ; infinity (left half)
|
||||
INC A : STA !ARROWCOUNT_DRAW_ADDRESS+2 ; infinity (right half)
|
||||
+
|
||||
|
||||
;================================================================================
|
||||
; Draw Goal Item Indicator
|
||||
!GOAL_COUNTER = "$7EF418"
|
||||
!GOAL_DRAW_ADDRESS = "$7EC72A"
|
||||
;================================================================================
|
||||
|
||||
SEP #$20
|
||||
LDA.l GoalItemRequirement : BNE + : JMP .done : + ; Star Meter
|
||||
|
||||
LDA.l !GOAL_COUNTER
|
||||
JSR HudHexToDec3Digit
|
||||
REP #$20
|
||||
|
||||
LDA.l GoalItemIcon : STA !GOAL_DRAW_ADDRESS ; draw star icon
|
||||
|
||||
LDX.b $05 : TXA : ORA.w #$2400 : STA !GOAL_DRAW_ADDRESS+2 ; draw 100's digit
|
||||
LDX.b $06 : TXA : ORA.w #$2400 : STA !GOAL_DRAW_ADDRESS+4 ; draw 10's digit
|
||||
LDX.b $07 : TXA : ORA.w #$2400 : STA !GOAL_DRAW_ADDRESS+6 ; draw 1's digit
|
||||
|
||||
SEP #$20
|
||||
LDA.l GoalItemRequirement : CMP.b #$FF : BEQ .skip
|
||||
|
||||
LDA.l GoalItemRequirement
|
||||
JSR HudHexToDec3Digit
|
||||
REP #$20
|
||||
LDA.w #$2830 : STA !GOAL_DRAW_ADDRESS+8 ; draw slash
|
||||
LDX.b $05 : TXA : ORA.w #$2400 : STA !GOAL_DRAW_ADDRESS+10 ; draw 100's digit
|
||||
LDX.b $06 : TXA : ORA.w #$2400 : STA !GOAL_DRAW_ADDRESS+12 ; draw 10's digit
|
||||
LDX.b $07 : TXA : ORA.w #$2400 : STA !GOAL_DRAW_ADDRESS+14 ; draw 1's digit
|
||||
BRA .done
|
||||
.skip
|
||||
REP #$20
|
||||
LDA.w #$207F ; transparent tile
|
||||
STA !GOAL_DRAW_ADDRESS+8
|
||||
STA !GOAL_DRAW_ADDRESS+10
|
||||
STA !GOAL_DRAW_ADDRESS+12
|
||||
.done
|
||||
|
||||
;================================================================================
|
||||
; Draw Dungeon Compass Counts
|
||||
;================================================================================
|
||||
REP #$20
|
||||
LDA.l CompassMode : AND #$00FF : BEQ + ; skip if CompassMode is 0.
|
||||
JSL.l DrawDungeonCompassCounts ; compasses.asm
|
||||
+
|
||||
|
||||
;================================================================================
|
||||
; Draw key count
|
||||
!KEYS = "$7EF36F"
|
||||
!KEY_DIGITS_ADDRESS = "$7EC764"
|
||||
!KEY_ICON_ADDRESS = "$7EC726"
|
||||
;================================================================================
|
||||
SEP #$20
|
||||
LDA.l !KEYS : CMP.b #$FF : BEQ .not_in_dungeon
|
||||
.in_dungeon
|
||||
JSR HudHexToDec2Digit : REP #$20
|
||||
|
||||
; if 10s digit is 0, draw transparent tile instead of 0
|
||||
LDX.b $06 : TXA : CPX.b #$90 : BNE +
|
||||
LDA.w #$007F
|
||||
+
|
||||
ORA.w #$2400 : STA !KEY_DIGITS_ADDRESS
|
||||
|
||||
; 1s digit
|
||||
LDX.b $07 : TXA : ORA.w #$2400 : STA !KEY_DIGITS_ADDRESS+2
|
||||
BRA .done_keys
|
||||
|
||||
.not_in_dungeon
|
||||
REP #$20
|
||||
|
||||
;in the overworld, draw transparent tiles instead of key count
|
||||
LDA.w #$247F : STA !KEY_DIGITS_ADDRESS : STA !KEY_DIGITS_ADDRESS+2
|
||||
STA !KEY_ICON_ADDRESS
|
||||
|
||||
.done_keys
|
||||
|
||||
|
||||
|
||||
|
||||
;--------------------------------------------------------------------------------
|
||||
; Draw pendant/crystal icon
|
||||
;--------------------------------------------------------------------------------
|
||||
!PRIZE_ICON = $7EC742
|
||||
!P_ICON = $296C
|
||||
!C_ICON = $295F
|
||||
|
||||
SEP #$20
|
||||
LDA.b $1B : BEQ .noprize
|
||||
|
||||
LDX.w $040C
|
||||
CPX #$1A : !BGE .noprize
|
||||
CPX #$04 : !BLT .noprize
|
||||
CPX #$08 : BEQ .noprize
|
||||
|
||||
LDA $10 : CMP #$12 : BEQ .noprize
|
||||
|
||||
LDA.l MapMode
|
||||
REP #$20
|
||||
BEQ .drawprize
|
||||
|
||||
LDA.l $7EF368
|
||||
AND.l DungeonItemMasks,X
|
||||
BEQ .noprize
|
||||
|
||||
.drawprize
|
||||
TXA : LSR : TAX
|
||||
LDA.l CrystalPendantFlags_2, X
|
||||
AND.w #$0040 : BNE .is_crystal
|
||||
|
||||
LDA.w #!P_ICON
|
||||
BRA .doneprize
|
||||
|
||||
.is_crystal
|
||||
LDA.w #!C_ICON
|
||||
BRA .doneprize
|
||||
|
||||
.noprize
|
||||
REP #$20
|
||||
LDA.w #$207F
|
||||
|
||||
.doneprize
|
||||
STA.l !PRIZE_ICON
|
||||
|
||||
;--------------------------------------------------------------------------------
|
||||
; Draw Magic Meter
|
||||
!INFINITE_MAGIC = "$7F50CA"
|
||||
!DrawMagicMeter_mp_tilemap = "$0DFE0F"
|
||||
;--------------------------------------------------------------------------------
|
||||
LDA $7EF36E : AND #$00FF ; crap we wrote over when placing the hook for OnDrawHud
|
||||
!ADD #$0007
|
||||
AND #$FFF8
|
||||
TAX ; end of crap
|
||||
|
||||
LDA !INFINITE_MAGIC : AND.w #$00FF : BNE + : JMP .green : +
|
||||
SEP #$20 : LDA.b #$80 : STA $7EF36E : REP #$30 ; set magic to max
|
||||
LDX.w #$0080 ; load full magic meter graphics
|
||||
LDA $1A : AND.w #$000C : LSR #2
|
||||
BEQ .red
|
||||
CMP.w #0001 : BEQ .yellow
|
||||
CMP.w #0002 : BNE + : JMP .green : +
|
||||
.blue
|
||||
LDA !DrawMagicMeter_mp_tilemap+0, X : AND.w #$EFFF : STA $7EC746
|
||||
LDA !DrawMagicMeter_mp_tilemap+2, X : AND.w #$EFFF : STA $7EC786
|
||||
LDA !DrawMagicMeter_mp_tilemap+4, X : AND.w #$EFFF : STA $7EC7C6
|
||||
LDA !DrawMagicMeter_mp_tilemap+6, X : AND.w #$EFFF : STA $7EC806
|
||||
RTL
|
||||
.red
|
||||
LDA !DrawMagicMeter_mp_tilemap+0, X : AND.w #$E7FF : STA $7EC746
|
||||
LDA !DrawMagicMeter_mp_tilemap+2, X : AND.w #$E7FF : STA $7EC786
|
||||
LDA !DrawMagicMeter_mp_tilemap+4, X : AND.w #$E7FF : STA $7EC7C6
|
||||
LDA !DrawMagicMeter_mp_tilemap+6, X : AND.w #$E7FF : STA $7EC806
|
||||
RTL
|
||||
.yellow
|
||||
LDA !DrawMagicMeter_mp_tilemap+0, X : AND.w #$EBFF : STA $7EC746
|
||||
LDA !DrawMagicMeter_mp_tilemap+2, X : AND.w #$EBFF : STA $7EC786
|
||||
LDA !DrawMagicMeter_mp_tilemap+4, X : AND.w #$EBFF : STA $7EC7C6
|
||||
LDA !DrawMagicMeter_mp_tilemap+6, X : AND.w #$EBFF : STA $7EC806
|
||||
RTL
|
||||
.orange
|
||||
LDA !DrawMagicMeter_mp_tilemap+0, X : AND.w #$E3FF : STA $7EC746
|
||||
LDA !DrawMagicMeter_mp_tilemap+2, X : AND.w #$E3FF : STA $7EC786
|
||||
LDA !DrawMagicMeter_mp_tilemap+4, X : AND.w #$E3FF : STA $7EC7C6
|
||||
LDA !DrawMagicMeter_mp_tilemap+6, X : AND.w #$E3FF : STA $7EC806
|
||||
RTL
|
||||
.green
|
||||
LDA !DrawMagicMeter_mp_tilemap+0, X : STA $7EC746
|
||||
LDA !DrawMagicMeter_mp_tilemap+2, X : STA $7EC786
|
||||
LDA !DrawMagicMeter_mp_tilemap+4, X : STA $7EC7C6
|
||||
LDA !DrawMagicMeter_mp_tilemap+6, X : STA $7EC806
|
||||
RTL
|
||||
|
||||
;================================================================================
|
||||
; 16-bit A, 8-bit X
|
||||
; in: A(b) - Byte to Convert
|
||||
; out: $04 - $07 (high - low)
|
||||
;================================================================================
|
||||
HudHexToDec4Digit:
|
||||
LDY.b #$90
|
||||
-
|
||||
CMP.w #1000 : !BLT +
|
||||
INY
|
||||
SBC.w #1000 : BRA -
|
||||
+
|
||||
STY $04 : LDY #$90 ; Store 1000s digit & reset Y
|
||||
-
|
||||
CMP.w #100 : !BLT +
|
||||
INY
|
||||
SBC.w #100 : BRA -
|
||||
+
|
||||
STY $05 : LDY #$90 ; Store 100s digit & reset Y
|
||||
-
|
||||
CMP.w #10 : !BLT +
|
||||
INY
|
||||
SBC.w #10 : BRA -
|
||||
+
|
||||
STY $06 : LDY #$90 ; Store 10s digit & reset Y
|
||||
CMP.w #1 : !BLT +
|
||||
-
|
||||
INY
|
||||
DEC : BNE -
|
||||
+
|
||||
STY $07 ; Store 1s digit
|
||||
RTS
|
||||
|
||||
;================================================================================
|
||||
; 8-bit registers
|
||||
; in: A(b) - Byte to Convert
|
||||
; out: $05 - $07 (high - low)
|
||||
;================================================================================
|
||||
HudHexToDec3Digit: ; this may be overkill, could have used the 4 digit one...
|
||||
LDY.b #$90
|
||||
-
|
||||
CMP.b #100 : !BLT +
|
||||
INY
|
||||
SBC.b #100 : BRA -
|
||||
+
|
||||
STY $05 : LDY.b #$90 ; Store 100s digit and reset Y
|
||||
-
|
||||
CMP.b #10 : !BLT +
|
||||
INY
|
||||
SBC.b #10 : BRA -
|
||||
+
|
||||
STY $06 : LDY #$90 ; Store 10s digit and reset Y
|
||||
CMP.b #1 : !BLT +
|
||||
-
|
||||
INY
|
||||
DEC : BNE -
|
||||
+
|
||||
STY $07 ; Store 1s digit
|
||||
RTS
|
||||
|
||||
;================================================================================
|
||||
; 8-bit registers
|
||||
; in: A(b) - Byte to Convert
|
||||
; out: $06 - $07 (high - low)
|
||||
;================================================================================
|
||||
HudHexToDec2Digit:
|
||||
LDY.b #$90
|
||||
-
|
||||
CMP.b #10 : !BLT +
|
||||
INY
|
||||
SBC.b #10 : BRA -
|
||||
+
|
||||
STY $06 : LDY #$90 ; Store 10s digit and reset Y
|
||||
CMP.b #1 : !BLT +
|
||||
-
|
||||
INY
|
||||
DEC : BNE -
|
||||
+
|
||||
STY $07 ; Store 1s digit
|
||||
RTS
|
||||
|
||||
@@ -468,6 +468,7 @@ AddReceivedItemExpanded:
|
||||
JSR IncrementItemCounters
|
||||
+
|
||||
LDA $02D8 ; Item Value
|
||||
STA !MULTIWORLD_ITEM_ID
|
||||
|
||||
CMP.b #$16 : BEQ .bottle ; Bottle
|
||||
CMP.b #$2B : BEQ .bottle ; Red Potion w/bottle
|
||||
|
||||
@@ -35,11 +35,7 @@ rtl
|
||||
|
||||
OnFileLoadOverride:
|
||||
jsl OnFileLoad ; what I wrote over
|
||||
lda.l DRFlags : and #$80 : beq + ;flag is off
|
||||
lda $7ef086 : ora #$80 : sta $7ef086
|
||||
+ lda.l DRFlags : and #$40 : beq + ;flag is off
|
||||
lda $7ef036 : ora #$80 : sta $7ef036
|
||||
+ lda.l DRFlags : and #$02 : beq +
|
||||
+ lda.l DRFlags : and #$02 : beq + ; Mirror Scroll
|
||||
lda $7ef353 : bne +
|
||||
lda #$01 : sta $7ef353
|
||||
+ rtl
|
||||
|
||||
36
owrando.asm
36
owrando.asm
@@ -338,23 +338,27 @@ OWNewDestination:
|
||||
sep #$30 : lda OWOppSlotOffset,y : !add $04 : asl : and #$7f : sta $700
|
||||
|
||||
; crossed OW shuffle
|
||||
lda.l OWMode+1 : and #$ff : cmp #$02 : bne .return
|
||||
ldx $05 : lda.l OWTileWorldAssoc,x : sta.l $7ef3ca ; change world
|
||||
LDA.l OWMode+1 : AND.b #!FLAG_OW_CROSSED : beq .return
|
||||
ldx $05 : lda.l OWTileWorldAssoc,x : cmp.l $7ef3ca : beq .return
|
||||
sta.l $7ef3ca ; change world
|
||||
lda #$38 : sta $012f ; play sfx - #$3b is an alternative
|
||||
|
||||
; toggle bunny mode
|
||||
lda $7ef357 : bne .nobunny
|
||||
lda.l InvertedMode : bne .inverted
|
||||
lda $7ef3ca : and.b #$40 : bra +
|
||||
.inverted lda $7ef3ca : and.b #$40 : eor #$40
|
||||
+ cmp #$40 : bne .nobunny
|
||||
; turn into bunny
|
||||
lda $5d : cmp #$17 : beq .return
|
||||
lda #$17 : sta $5d
|
||||
lda #$01 : sta $02e0
|
||||
bra .return
|
||||
.nobunny
|
||||
lda $5d : cmp #$17 : bne .return
|
||||
stz $5d : stz $2e0
|
||||
; toggle bunny mode
|
||||
+ lda $7ef357 : bne .nobunny
|
||||
lda.l InvertedMode : bne .inverted
|
||||
lda $7ef3ca : and.b #$40 : bra +
|
||||
.inverted lda $7ef3ca : and.b #$40 : eor #$40
|
||||
+ cmp #$40 : bne .nobunny
|
||||
; turn into bunny
|
||||
lda $5d : cmp #$04 : beq + ; if swimming, continue
|
||||
lda #$17 : sta $5d
|
||||
+ lda #$01 : sta $02e0 : sta $56
|
||||
bra .return
|
||||
|
||||
.nobunny
|
||||
lda $5d : cmp #$17 : bne + ; retain current state unless bunny
|
||||
stz $5d
|
||||
+ stz $02e0 : stz $56
|
||||
|
||||
.return
|
||||
lda $05 : sta $8a
|
||||
|
||||
136
roomloading.asm
136
roomloading.asm
@@ -15,9 +15,6 @@ LoadRoomHook:
|
||||
dl IcePalaceBombosNE ; 03
|
||||
dl CastleEastEntrance ; 04
|
||||
dl CastleWestEntrance ; 05
|
||||
dl PoDFallingBridge ; 06
|
||||
dl PoDArena ; 07
|
||||
dl MireBKPond ; 08
|
||||
|
||||
NoCallback:
|
||||
RTL
|
||||
@@ -92,138 +89,11 @@ CastleEastEntrance: ; new solution (see Rain Prevention)
|
||||
CastleWestEntrance: ; new solution (see Rain Prevention)
|
||||
RTL
|
||||
|
||||
PoDFallingBridge:
|
||||
LDA.l DRFlags : AND #$10 : BNE + : RTL : +
|
||||
|
||||
REP #$20 ; 16 A
|
||||
LDA.w #$08e1 ; square peg
|
||||
%writeTileAt(5,7,0,1)
|
||||
%writeTileAt(11,7,0,1)
|
||||
INC ;horizontal rail
|
||||
%writeTileAt(6,7,0,1)
|
||||
%writeTileAt(7,7,0,1)
|
||||
%writeTileAt(8,7,0,1)
|
||||
%writeTileAt(9,7,0,1)
|
||||
%writeTileAt(10,7,0,1)
|
||||
SEP #$20 ; 8 A
|
||||
|
||||
REP #$20 ; 16 A
|
||||
LDA.w #$08e0 ; corner top left
|
||||
%writeTileAt(5,6,0,1)
|
||||
%writeTileAt(10,6,0,1)
|
||||
LDA.w #$48e0 ; corner top right
|
||||
%writeTileAt(6,6,0,1)
|
||||
%writeTileAt(11,6,0,1)
|
||||
LDA.w #$08f4 ; top mid
|
||||
%writeTileAt(7,6,0,1)
|
||||
%writeTileAt(8,6,0,1)
|
||||
%writeTileAt(9,6,0,1)
|
||||
|
||||
LDA.w #$08f1 ; corner mid left
|
||||
%writeTileAt(5,7,0,1)
|
||||
%writeTileAt(10,7,0,1)
|
||||
LDA.w #$48f1 ; corner mid right
|
||||
%writeTileAt(6,7,0,1)
|
||||
%writeTileAt(11,7,0,1)
|
||||
LDA.w #$08f2 ; mid mid
|
||||
%writeTileAt(7,7,0,1)
|
||||
%writeTileAt(8,7,0,1)
|
||||
%writeTileAt(9,7,0,1)
|
||||
|
||||
LDA.w #$08e4 ; corner lower left
|
||||
%writeTileAt(5,8,0,1)
|
||||
%writeTileAt(10,8,0,1)
|
||||
LDA.w #$48e4 ; corner lower right
|
||||
%writeTileAt(6,8,0,1)
|
||||
%writeTileAt(11,8,0,1)
|
||||
LDA.w #$08e5 ; lower mid
|
||||
%writeTileAt(7,8,0,1)
|
||||
%writeTileAt(8,8,0,1)
|
||||
%writeTileAt(9,8,0,1)
|
||||
SEP #$20 ; 8 A
|
||||
RTL
|
||||
|
||||
;08e0 48e0 08f4 08f4 08e0 48e0
|
||||
;08f1 48f1 08f2 08f2 08f1 48f1
|
||||
;08e4 48e4 08e5 08e5 08e4 48e4
|
||||
;
|
||||
;(54,42) 22,10,1,1 42 85 2720 2742 156C
|
||||
;(54,43) 22,11,1,1 43 87 2784 2806 15EC
|
||||
;(54,44) 22,12,1,1 44 89 2848 2870 166C
|
||||
PoDArena:
|
||||
LDA.l DRFlags : AND #$10 : BNE + : RTL : +
|
||||
|
||||
REP #$20 ; 16 A
|
||||
LDA.w #$08e0 ; corner top left
|
||||
%writeTileAt(22,10,1,1)
|
||||
%writeTileAt(25,10,1,1)
|
||||
LDA.w #$48e0 ; corner top right
|
||||
%writeTileAt(23,10,1,1)
|
||||
%writeTileAt(26,10,1,1)
|
||||
LDA.w #$08f4 ; top mid
|
||||
%writeTileAt(24,10,1,1)
|
||||
|
||||
LDA.w #$08f1 ; corner mid left
|
||||
%writeTileAt(22,11,1,1)
|
||||
%writeTileAt(25,11,1,1)
|
||||
LDA.w #$48f1 ; corner mid right
|
||||
%writeTileAt(23,11,1,1)
|
||||
%writeTileAt(26,11,1,1)
|
||||
LDA.w #$08f2 ; mid mid
|
||||
%writeTileAt(24,11,1,1)
|
||||
|
||||
LDA.w #$08e4 ; corner lower left
|
||||
%writeTileAt(22,12,1,1)
|
||||
%writeTileAt(25,12,1,1)
|
||||
LDA.w #$48e4 ; corner lower right
|
||||
%writeTileAt(23,12,1,1)
|
||||
%writeTileAt(26,12,1,1)
|
||||
LDA.w #$08e5 ; lower mid
|
||||
%writeTileAt(24,12,1,1)
|
||||
SEP #$20 ; 8 A
|
||||
RTL
|
||||
|
||||
MireBKPond:
|
||||
LDA.l DRFlags : AND #$10 : BNE + : RTL : +
|
||||
|
||||
REP #$20 ; 16 A
|
||||
LDA.w #$08e0 ; corner top left
|
||||
%writeTileAt(13,11,1,1)
|
||||
%writeTileAt(17,11,1,1)
|
||||
LDA.w #$48e0 ; corner top right
|
||||
%writeTileAt(14,11,1,1)
|
||||
%writeTileAt(18,11,1,1)
|
||||
LDA.w #$08f4 ; top mid
|
||||
%writeTileAt(15,11,1,1)
|
||||
%writeTileAt(16,11,1,1)
|
||||
|
||||
LDA.w #$08f1 ; corner mid left
|
||||
%writeTileAt(13,12,1,1)
|
||||
%writeTileAt(17,12,1,1)
|
||||
LDA.w #$48f1 ; corner mid right
|
||||
%writeTileAt(14,12,1,1)
|
||||
%writeTileAt(18,12,1,1)
|
||||
LDA.w #$08f2 ; mid mid
|
||||
%writeTileAt(15,12,1,1)
|
||||
%writeTileAt(16,12,1,1)
|
||||
|
||||
LDA.w #$08e4 ; corner lower left
|
||||
%writeTileAt(13,13,1,1)
|
||||
%writeTileAt(17,13,1,1)
|
||||
LDA.w #$48e4 ; corner lower right
|
||||
%writeTileAt(14,13,1,1)
|
||||
%writeTileAt(18,13,1,1)
|
||||
LDA.w #$08e5 ; lower mid
|
||||
%writeTileAt(15,13,1,1)
|
||||
%writeTileAt(16,13,1,1)
|
||||
SEP #$20 ; 8 A
|
||||
RTL
|
||||
|
||||
RoomCallbackTable:
|
||||
; 0 1 2 3 4 5 6 7 8 9 A B C D E F
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00 ; 00x
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $06, $00, $00, $00, $00, $00 ; 01x
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $07, $00, $00, $00, $00, $00 ; 02x
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 01x
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 02x
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 03x
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 04x
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 05x
|
||||
@@ -234,7 +104,7 @@ RoomCallbackTable:
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 0Ax
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 0Bx
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 0Cx
|
||||
db $00, $08, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $03, $00 ; 0Dx
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $03, $00 ; 0Dx
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 0Ex
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 0Fx
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 0Fx
|
||||
|
||||
Reference in New Issue
Block a user