Housekeeping
This commit is contained in:
@@ -143,8 +143,8 @@ group04:
|
||||
; 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|
||||
; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
; -----------------------------------------------------------------------------------
|
||||
db $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $01, $01, $01, $01, $01
|
||||
db $02, $02, $02, $02, $00, $00, $00, $00, $00, $00, $02, $01, $01, $01, $01, $01
|
||||
db $00, $00, $02, $02, $02, $02, $02, $02, $02, $02, $02, $01, $01, $01, $01, $01
|
||||
db $00, $00, $02, $02, $00, $00, $00, $00, $00, $00, $02, $01, $01, $01, $01, $01
|
||||
db $01, $01, $00, $00, $00, $00, $00, $00, $00, $00, $02, $02, $02, $02, $02, $02
|
||||
db $00, $00, $22, $00, $00, $00, $00, $00, $00, $00, $02, $02, $02, $02, $02, $02
|
||||
|
||||
|
||||
@@ -11,18 +11,18 @@
|
||||
; 26 - N/A
|
||||
; 27 - N/A
|
||||
; 28 - ZS Reserved
|
||||
; 29 - ZSprite Engine
|
||||
; 2A - Sprites: all_sprites.asm
|
||||
; 29 - ZS Reserved
|
||||
; 2A - ZS Reserved
|
||||
; 2B - Items: all_items.asm
|
||||
; 2C - Dungeon Objects, Spike Subtype
|
||||
; 2C - Dungeon Objects, Spike Subtype, Together Warp Tag
|
||||
; 2D - Menu
|
||||
; 2E - HUD
|
||||
; 2F - House Tag
|
||||
; 30 - N/A
|
||||
; 31 - Deku Link Code
|
||||
; 30 - ZSprite Engine
|
||||
; 31 - Sprites: all_sprites.asm
|
||||
; 32 - Entrance Music Fix
|
||||
; 33 - Together Warp Tag
|
||||
; 34 - N/A
|
||||
; 33 - Custom Collision Tables
|
||||
; 34 - Deku Link Code
|
||||
; 35 - Deku Link GFX
|
||||
; 36 - Zora Link GFX
|
||||
; 37 - Bunny Link GFX
|
||||
@@ -75,46 +75,16 @@ namespace Oracle
|
||||
print " -- Dungeon -- "
|
||||
print ""
|
||||
|
||||
incsrc "Dungeons/keyblock.asm"
|
||||
print "End of Dungeons/keyblock.asm ", pc
|
||||
|
||||
incsrc "Dungeons/sanctuary_transition.asm"
|
||||
|
||||
incsrc "Dungeons/entrances.asm"
|
||||
print "End of Dungeons/entrances.asm ", pc
|
||||
|
||||
incsrc "Dungeons/mothula.asm"
|
||||
print "End of Dungeons/mothula.asm ", pc
|
||||
|
||||
incsrc "Dungeons/enemy_damage.asm"
|
||||
print "End of Dungeons/enemy_damage.asm ", pc
|
||||
|
||||
incsrc "Dungeons/together_warp_tag.asm"
|
||||
print "End of together_warp_tag.asm ", pc
|
||||
|
||||
incsrc "Dungeons/arrghus.asm"
|
||||
print "End of Dungeons/arrghus.asm ", pc
|
||||
|
||||
incsrc "Dungeons/Objects/object_handler.asm"
|
||||
print "End of object_handler.asm ", pc
|
||||
|
||||
incsrc "Dungeons/spike_subtype.asm"
|
||||
print "End of spike_subtype.asm ", pc
|
||||
|
||||
incsrc "Dungeons/Lanmola.asm"
|
||||
print "End of Dungeons/Lanmola.asm ", pc
|
||||
|
||||
incsrc "Dungeons/Lanmola_Expanded.asm"
|
||||
print "End of Dungeons/Lanmola_Expanded.asm ", pc
|
||||
|
||||
incsrc "Dungeons/house_tag.asm"
|
||||
print "End of Dungeons/house_tag.asm ", pc
|
||||
incsrc "Dungeons/dungeons.asm"
|
||||
|
||||
print ""
|
||||
|
||||
; -------------------------------------------------------
|
||||
; Music
|
||||
|
||||
print " -- Music -- "
|
||||
print ""
|
||||
|
||||
incsrc "Music/frozen_hyrule.asm"
|
||||
print "End of Music/frozen_hyrule.asm ", pc
|
||||
|
||||
@@ -173,7 +143,6 @@ namespace Oracle
|
||||
|
||||
; -------------------------------------------------------
|
||||
incsrc "Util/all_items.asm"
|
||||
; print "End of Util/all_items.asm ", pc
|
||||
|
||||
incsrc "Dungeons/house_walls.asm"
|
||||
|
||||
|
||||
@@ -4,6 +4,13 @@ org $0AB917 ; after most of the area loading after calling the bird takes place
|
||||
org $028492 ; after leaving a dungeon
|
||||
JSL CheckForChangeGraphicsNormalLoad
|
||||
|
||||
|
||||
org $02E94A
|
||||
JSL CheckForSpecialAreaGraphics
|
||||
|
||||
org $0ED5A8
|
||||
OverworldPalettesLoader:
|
||||
|
||||
org $00E19B
|
||||
InitTilesets:
|
||||
|
||||
@@ -26,9 +33,26 @@ CheckForChangeGraphicsNormalLoad:
|
||||
|
||||
.boat_area
|
||||
|
||||
|
||||
RTL
|
||||
}
|
||||
|
||||
CheckForSpecialAreaGraphics:
|
||||
{
|
||||
JSL OverworldPalettesLoader
|
||||
|
||||
LDA $8A : CMP.b #$81 : BNE .korok_area
|
||||
|
||||
PHB : PHK : PLB
|
||||
JSR ApplyKorokSpriteSheets
|
||||
PLB
|
||||
|
||||
.korok_area
|
||||
|
||||
RTL
|
||||
|
||||
}
|
||||
|
||||
; ==============================================================================
|
||||
|
||||
ApplyGraphics1:
|
||||
@@ -53,3 +77,23 @@ ApplyGraphics1:
|
||||
|
||||
; ==============================================================================
|
||||
|
||||
ApplyKorokSpriteSheets:
|
||||
{
|
||||
REP #$20 ; A = 16, XY = 8
|
||||
LDX #$80 : STX $2115 ; Set the video port register every time we write it increase by 1
|
||||
LDA #$5000 : STA $2116 ; Destination of the DMA $5800 in vram <- this need to be divided by 2
|
||||
LDA #$1801 : STA $4300 ; DMA Transfer Mode and destination register
|
||||
; "001 => 2 registers write once (2 bytes: p, p+1)"
|
||||
LDA.w #KorokSpriteSheets : STA $4302 ; Source address where you want gfx from ROM
|
||||
LDX.b #KorokSpriteSheets>>16 : STX $4304
|
||||
LDA #$1800 : STA $4305 ; size of the transfer 4 sheets of $800 each
|
||||
LDX #$01 : STX $420B ; Do the DMA
|
||||
|
||||
SEP #$30
|
||||
|
||||
RTS
|
||||
|
||||
KorokSpriteSheets:
|
||||
incbin gfx/korok.bin
|
||||
}
|
||||
|
||||
|
||||
@@ -99,6 +99,7 @@ Sprite_SeaUrchin_Main:
|
||||
|
||||
|
||||
Sprite_SeaUrchin_Draw:
|
||||
{
|
||||
JSL Sprite_PrepOamCoord
|
||||
JSL Sprite_OAM_AllocateDeferToPlayer
|
||||
|
||||
@@ -154,11 +155,6 @@ PLX
|
||||
RTS
|
||||
|
||||
|
||||
;==================================================================================================
|
||||
; Sprite Draw Generated Data
|
||||
; --------------------------------------------------------------------------------------------------
|
||||
; This is where the generated Data for the sprite go
|
||||
;==================================================================================================
|
||||
.start_index
|
||||
db $00, $01, $02, $03, $04, $05, $06, $07
|
||||
.nbr_of_tiles
|
||||
@@ -208,3 +204,4 @@ db $02
|
||||
db $02
|
||||
db $02
|
||||
db $02
|
||||
}
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
;==============================================================================
|
||||
; Sprite Properties
|
||||
;==============================================================================
|
||||
|
||||
!SPRID = $25 ; The sprite ID you are overwriting (HEX)
|
||||
!NbrTiles = 08 ; Number of tiles used in a frame
|
||||
!Harmless = 01 ; 00 = Sprite is Harmful, 01 = Sprite is Harmless
|
||||
@@ -9,7 +7,7 @@
|
||||
!Damage = 00 ; (08 is a whole heart), 04 is half heart
|
||||
!DeathAnimation = 00 ; 00 = normal death, 01 = no death animation
|
||||
!ImperviousAll = 00 ; 00 = Can be attack, 01 = attack will clink on it
|
||||
!SmallShadow = 01 ; 01 = small shadow, 00 = no shadow
|
||||
!SmallShadow = 00 ; 01 = small shadow, 00 = no shadow
|
||||
!Shadow = 01 ; 00 = don't draw shadow, 01 = draw a shadow
|
||||
!Palette = 00 ; Unused in this VillageDog (can be 0 to 7)
|
||||
!Hitbox = 09 ; 00 to 31, can be viewed in sprite draw tool
|
||||
@@ -31,11 +29,7 @@
|
||||
|
||||
%Set_Sprite_Properties(Sprite_VillageDog_Prep, Sprite_VillageDog_Long)
|
||||
|
||||
;==============================================================================
|
||||
; Sprite Long Hook for that sprite
|
||||
; This code can be left unchanged
|
||||
; handle the draw code and if the sprite is active and should move or not
|
||||
;==============================================================================
|
||||
|
||||
Sprite_VillageDog_Long:
|
||||
{
|
||||
PHB : PHK : PLB
|
||||
@@ -53,24 +47,14 @@ Sprite_VillageDog_Long:
|
||||
}
|
||||
|
||||
|
||||
;==============================================================================
|
||||
; Sprite initialization
|
||||
; this code only get called once perfect to initialize sprites substate or timers
|
||||
; this code as soon as the room transitions/ overworld transition occurs
|
||||
;==============================================================================
|
||||
Sprite_VillageDog_Prep:
|
||||
{
|
||||
PHB : PHK : PLB
|
||||
|
||||
; Add more code here to initialize data
|
||||
|
||||
PLB
|
||||
RTL
|
||||
}
|
||||
|
||||
;==============================================================================
|
||||
; Sprite Main routines code
|
||||
; This is the main local code of your sprite
|
||||
; This contains all the Subroutines of your sprites you can add more below
|
||||
;==============================================================================
|
||||
Sprite_VillageDog_Main:
|
||||
{
|
||||
LDA.w SprAction, X ; Load the SprAction
|
||||
@@ -83,6 +67,7 @@ Sprite_VillageDog_Main:
|
||||
dw Dog_MoveRightTowardsLink ; 04
|
||||
dw Dog_WagTailLeft ; 05
|
||||
dw Dog_WagTailRight ; 06
|
||||
dw Dog_RandomMovement ; 07
|
||||
|
||||
; 0
|
||||
Dog_Handler:
|
||||
@@ -108,7 +93,7 @@ Sprite_VillageDog_Main:
|
||||
|
||||
LDA.w SprTimerD, X : BNE +
|
||||
; Load the timer for the run
|
||||
LDA #$40 : STA.w SprTimerD, X
|
||||
LDA #$60 : STA.w SprTimerD, X
|
||||
%GotoAction(3)
|
||||
+
|
||||
RTS
|
||||
@@ -121,7 +106,7 @@ Sprite_VillageDog_Main:
|
||||
|
||||
LDA.w SprTimerD, X : BNE +
|
||||
; Load the timer for the run
|
||||
LDA #$40 : STA.w SprTimerD, X
|
||||
LDA #$60 : STA.w SprTimerD, X
|
||||
%GotoAction(4)
|
||||
+
|
||||
RTS
|
||||
@@ -131,11 +116,12 @@ Sprite_VillageDog_Main:
|
||||
Dog_MoveLeftTowardsLink:
|
||||
{
|
||||
%PlayAnimation(2,4,6)
|
||||
JSR CheckForSwitchToRandomMovement
|
||||
JSL Sprite_DirectionToFacePlayer
|
||||
; Check if the dog is near link, then wag the tail
|
||||
LDA $0E : CMP.b #$0070 : BCS +
|
||||
LDA $0E : CMP.b #$00A0 : BCS +
|
||||
CLC
|
||||
LDA $0F : CMP.b #$0070 : BCS +
|
||||
LDA $0F : CMP.b #$00A0 : BCS +
|
||||
%GotoAction(5)
|
||||
+
|
||||
|
||||
@@ -162,11 +148,12 @@ Sprite_VillageDog_Main:
|
||||
{
|
||||
%PlayAnimation(5,7,6)
|
||||
|
||||
JSR CheckForSwitchToRandomMovement
|
||||
JSL Sprite_DirectionToFacePlayer
|
||||
; Check if the dog is near link, then wag the tail
|
||||
LDA $0E : CMP.b #$0070 : BCS +
|
||||
LDA $0E : CMP.b #$00A0 : BCS +
|
||||
CLC
|
||||
LDA $0F : CMP.b #$0070 : BCS +
|
||||
LDA $0F : CMP.b #$00A0 : BCS +
|
||||
%GotoAction(6)
|
||||
+
|
||||
|
||||
@@ -189,11 +176,7 @@ Sprite_VillageDog_Main:
|
||||
Dog_WagTailLeft:
|
||||
{
|
||||
%PlayAnimation(0,1, 8)
|
||||
LDA $02B2 : CMP.b #$05 : BNE .not_minish
|
||||
%ShowSolicitedMessage($18) : JMP .continue
|
||||
.not_minish
|
||||
%ShowSolicitedMessage($1B)
|
||||
.continue
|
||||
JSR ShowMessageIfMinish
|
||||
LDA.w SprTimerD, X : BNE +
|
||||
%GotoAction(0)
|
||||
+
|
||||
@@ -204,25 +187,62 @@ Sprite_VillageDog_Main:
|
||||
Dog_WagTailRight:
|
||||
{
|
||||
%PlayAnimation(11,12,8)
|
||||
LDA $02B2 : CMP.b #$05 : BNE .not_minish
|
||||
%ShowSolicitedMessage($18) : JMP .continue
|
||||
.not_minish
|
||||
%ShowSolicitedMessage($1B)
|
||||
.continue
|
||||
JSR ShowMessageIfMinish
|
||||
LDA.w SprTimerD, X : BNE +
|
||||
%GotoAction(0)
|
||||
+
|
||||
RTS
|
||||
}
|
||||
|
||||
; 07
|
||||
Dog_RandomMovement:
|
||||
{
|
||||
%PlayAnimation(2,4,6)
|
||||
LDA.w SprTimerD, X : BNE +
|
||||
; Load the timer for the run
|
||||
LDA #$60 : STA.w SprTimerD, X
|
||||
|
||||
JSL GetRandomInt
|
||||
AND.b #$03
|
||||
BEQ .move_left
|
||||
BNE .move_right
|
||||
.move_left
|
||||
|
||||
%GotoAction(3)
|
||||
RTS
|
||||
.move_right
|
||||
%GotoAction(4)
|
||||
RTS
|
||||
|
||||
+
|
||||
RTS
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
CheckForSwitchToRandomMovement:
|
||||
{
|
||||
; LDA.w SprTimerD, X : BNE +
|
||||
; LDA #$60 : STA.w SprTimerD, X
|
||||
; %GotoAction(7)
|
||||
; +
|
||||
RTS
|
||||
}
|
||||
|
||||
|
||||
|
||||
ShowMessageIfMinish:
|
||||
{
|
||||
LDA $02B2 : CMP.b #$05 : BNE .not_minish
|
||||
%ShowSolicitedMessage($18) : JMP .continue
|
||||
.not_minish
|
||||
%ShowSolicitedMessage($1B)
|
||||
.continue
|
||||
RTS
|
||||
}
|
||||
|
||||
;==============================================================================
|
||||
; Sprite Draw code
|
||||
; --------------------------------------------------------------------------------------------------
|
||||
; Draw the tiles on screen with the data provided by the sprite maker editor
|
||||
;==============================================================================
|
||||
Sprite_VillageDog_Draw:
|
||||
{
|
||||
JSL Sprite_PrepOamCoord
|
||||
JSL Sprite_OAM_AllocateDeferToPlayer
|
||||
|
||||
@@ -278,10 +298,6 @@ PLX
|
||||
RTS
|
||||
|
||||
|
||||
;==============================================================================
|
||||
; Sprite Draw Generated Data
|
||||
; This is where the generated Data for the sprite go
|
||||
;==============================================================================
|
||||
.start_index
|
||||
db $00, $04, $08, $0C, $10, $13, $17, $1B, $1F, $20, $21, $22, $26
|
||||
.nbr_of_tiles
|
||||
@@ -356,3 +372,4 @@ db $02
|
||||
db $02
|
||||
db $02, $02, $00, $00
|
||||
db $02, $02, $00, $00
|
||||
}
|
||||
@@ -126,7 +126,6 @@ macro HandlePlayerCamera()
|
||||
endmacro
|
||||
|
||||
macro InitMovement()
|
||||
|
||||
LDA.b $22
|
||||
STA.b $3F
|
||||
|
||||
@@ -328,8 +327,11 @@ print "HandleTileDirections ", pc
|
||||
HandleTileDirections:
|
||||
{
|
||||
; Setup Minecart position to look for tile IDs
|
||||
LDA.w SprY, X : STA.b $00 : LDA.w SprYH, X : STA.b $01
|
||||
LDA.w SprX, X : STA.b $02 : LDA.w SprXH, X : STA.b $03
|
||||
; LDA.w SprY, X : STA.b $00 : LDA.w SprYH, X : STA.b $01
|
||||
; LDA.w SprX, X : STA.b $02 : LDA.w SprXH, X : STA.b $03
|
||||
; Setup Minecart position to look for tile IDs
|
||||
LDA.w SprY, X : AND #$F8 : STA.b $00 : LDA.w SprYH, X : STA.b $01
|
||||
LDA.w SprX, X : AND #$F8 : STA.b $02 : LDA.w SprXH, X : STA.b $03
|
||||
|
||||
; Fetch tile attributes based on current coordinates
|
||||
LDA.b #$00 : JSL Sprite_GetTileAttr
|
||||
@@ -640,8 +642,8 @@ CheckIfPlayerIsOn:
|
||||
|
||||
LDA $20 : CLC : ADC #$0012 : CMP $0FDA : BCC .OutsideUp
|
||||
LDA $20 : SEC : SBC #$0012 : CMP $0FDA : BCS .OutsideDown
|
||||
SEP #$21
|
||||
RTS ;Return with carry setted
|
||||
|
||||
SEP #$21 : RTS ; Return with carry set
|
||||
|
||||
.OutsideLeft
|
||||
.OutsideRight
|
||||
|
||||
Reference in New Issue
Block a user