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
|
||||
|
||||
|
||||
@@ -74,8 +74,8 @@ NewObjectsCode:
|
||||
dw .LeftRightFloor-.ObjData ; 07
|
||||
dw .TopLeftFloor-.ObjData ; 08
|
||||
dw .TopRightFloor-.ObjData ; 09
|
||||
dw .BottomleftFloor-.ObjData; 10
|
||||
dw .BottomRightFloor-.ObjData;11
|
||||
dw .BottomleftFloor-.ObjData ; 10
|
||||
dw .BottomRightFloor-.ObjData ; 11
|
||||
dw .FloorAny-.ObjData ; 12
|
||||
|
||||
.ObjData
|
||||
|
||||
@@ -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,112 +99,109 @@ Sprite_SeaUrchin_Main:
|
||||
|
||||
|
||||
Sprite_SeaUrchin_Draw:
|
||||
JSL Sprite_PrepOamCoord
|
||||
JSL Sprite_OAM_AllocateDeferToPlayer
|
||||
{
|
||||
JSL Sprite_PrepOamCoord
|
||||
JSL Sprite_OAM_AllocateDeferToPlayer
|
||||
|
||||
LDA $0DC0, X : CLC : ADC $0D90, X : TAY;Animation Frame
|
||||
LDA .start_index, Y : STA $06
|
||||
LDA $0DC0, X : CLC : ADC $0D90, X : TAY;Animation Frame
|
||||
LDA .start_index, Y : STA $06
|
||||
|
||||
|
||||
PHX
|
||||
LDX .nbr_of_tiles, Y ;amount of tiles -1
|
||||
LDY.b #$00
|
||||
.nextTile
|
||||
PHX
|
||||
LDX .nbr_of_tiles, Y ;amount of tiles -1
|
||||
LDY.b #$00
|
||||
.nextTile
|
||||
|
||||
PHX ; Save current Tile Index?
|
||||
PHX ; Save current Tile Index?
|
||||
|
||||
TXA : CLC : ADC $06 ; Add Animation Index Offset
|
||||
TXA : CLC : ADC $06 ; Add Animation Index Offset
|
||||
|
||||
PHA ; Keep the value with animation index offset?
|
||||
PHA ; Keep the value with animation index offset?
|
||||
|
||||
ASL A : TAX
|
||||
ASL A : TAX
|
||||
|
||||
REP #$20
|
||||
REP #$20
|
||||
|
||||
LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y
|
||||
AND.w #$0100 : STA $0E
|
||||
INY
|
||||
LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y
|
||||
CLC : ADC #$0010 : CMP.w #$0100
|
||||
SEP #$20
|
||||
BCC .on_screen_y
|
||||
LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y
|
||||
AND.w #$0100 : STA $0E
|
||||
INY
|
||||
LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y
|
||||
CLC : ADC #$0010 : CMP.w #$0100
|
||||
SEP #$20
|
||||
BCC .on_screen_y
|
||||
|
||||
LDA.b #$F0 : STA ($90), Y ;Put the sprite out of the way
|
||||
STA $0E
|
||||
.on_screen_y
|
||||
LDA.b #$F0 : STA ($90), Y ;Put the sprite out of the way
|
||||
STA $0E
|
||||
.on_screen_y
|
||||
|
||||
PLX ; Pullback Animation Index Offset (without the *2 not 16bit anymore)
|
||||
INY
|
||||
LDA .chr, X : STA ($90), Y
|
||||
INY
|
||||
LDA .properties, X : STA ($90), Y
|
||||
PLX ; Pullback Animation Index Offset (without the *2 not 16bit anymore)
|
||||
INY
|
||||
LDA .chr, X : STA ($90), Y
|
||||
INY
|
||||
LDA .properties, X : STA ($90), Y
|
||||
|
||||
PHY
|
||||
PHY
|
||||
|
||||
TYA : LSR #2 : TAY
|
||||
TYA : LSR #2 : TAY
|
||||
|
||||
LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer
|
||||
LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer
|
||||
|
||||
PLY : INY
|
||||
PLY : INY
|
||||
|
||||
PLX : DEX : BPL .nextTile
|
||||
PLX : DEX : BPL .nextTile
|
||||
|
||||
PLX
|
||||
PLX
|
||||
|
||||
RTS
|
||||
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
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0
|
||||
.x_offsets
|
||||
dw 0
|
||||
dw 0
|
||||
dw 0
|
||||
dw 0
|
||||
dw 0
|
||||
dw 0
|
||||
dw 0
|
||||
dw 0
|
||||
.y_offsets
|
||||
dw 0
|
||||
dw -1
|
||||
dw 0
|
||||
dw -1
|
||||
dw 0
|
||||
dw -1
|
||||
dw 0
|
||||
dw -1
|
||||
.chr
|
||||
db $E6
|
||||
db $E8
|
||||
db $E6
|
||||
db $E8
|
||||
db $E6
|
||||
db $E8
|
||||
db $E6
|
||||
db $E8
|
||||
.properties
|
||||
db $39
|
||||
db $39
|
||||
db $79
|
||||
db $79
|
||||
db $39
|
||||
db $39
|
||||
db $79
|
||||
db $79
|
||||
.sizes
|
||||
db $02
|
||||
db $02
|
||||
db $02
|
||||
db $02
|
||||
db $02
|
||||
db $02
|
||||
db $02
|
||||
db $02
|
||||
.start_index
|
||||
db $00, $01, $02, $03, $04, $05, $06, $07
|
||||
.nbr_of_tiles
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0
|
||||
.x_offsets
|
||||
dw 0
|
||||
dw 0
|
||||
dw 0
|
||||
dw 0
|
||||
dw 0
|
||||
dw 0
|
||||
dw 0
|
||||
dw 0
|
||||
.y_offsets
|
||||
dw 0
|
||||
dw -1
|
||||
dw 0
|
||||
dw -1
|
||||
dw 0
|
||||
dw -1
|
||||
dw 0
|
||||
dw -1
|
||||
.chr
|
||||
db $E6
|
||||
db $E8
|
||||
db $E6
|
||||
db $E8
|
||||
db $E6
|
||||
db $E8
|
||||
db $E6
|
||||
db $E8
|
||||
.properties
|
||||
db $39
|
||||
db $39
|
||||
db $79
|
||||
db $79
|
||||
db $39
|
||||
db $39
|
||||
db $79
|
||||
db $79
|
||||
.sizes
|
||||
db $02
|
||||
db $02
|
||||
db $02
|
||||
db $02
|
||||
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
|
||||
{
|
||||
PHB : PHK : PLB
|
||||
|
||||
; Add more code here to initialize data
|
||||
PLB
|
||||
RTL
|
||||
}
|
||||
|
||||
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,155 +187,189 @@ 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
|
||||
{
|
||||
JSL Sprite_PrepOamCoord
|
||||
JSL Sprite_OAM_AllocateDeferToPlayer
|
||||
|
||||
LDA $0DC0, X : CLC : ADC $0D90, X : TAY;Animation Frame
|
||||
LDA .start_index, Y : STA $06
|
||||
LDA $0DC0, X : CLC : ADC $0D90, X : TAY;Animation Frame
|
||||
LDA .start_index, Y : STA $06
|
||||
|
||||
|
||||
PHX
|
||||
LDX .nbr_of_tiles, Y ;amount of tiles -1
|
||||
LDY.b #$00
|
||||
.nextTile
|
||||
PHX
|
||||
LDX .nbr_of_tiles, Y ;amount of tiles -1
|
||||
LDY.b #$00
|
||||
.nextTile
|
||||
|
||||
PHX ; Save current Tile Index?
|
||||
PHX ; Save current Tile Index?
|
||||
|
||||
TXA : CLC : ADC $06 ; Add Animation Index Offset
|
||||
TXA : CLC : ADC $06 ; Add Animation Index Offset
|
||||
|
||||
PHA ; Keep the value with animation index offset?
|
||||
PHA ; Keep the value with animation index offset?
|
||||
|
||||
ASL A : TAX
|
||||
ASL A : TAX
|
||||
|
||||
REP #$20
|
||||
REP #$20
|
||||
|
||||
LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y
|
||||
AND.w #$0100 : STA $0E
|
||||
INY
|
||||
LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y
|
||||
CLC : ADC #$0010 : CMP.w #$0100
|
||||
SEP #$20
|
||||
BCC .on_screen_y
|
||||
LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y
|
||||
AND.w #$0100 : STA $0E
|
||||
INY
|
||||
LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y
|
||||
CLC : ADC #$0010 : CMP.w #$0100
|
||||
SEP #$20
|
||||
BCC .on_screen_y
|
||||
|
||||
LDA.b #$F0 : STA ($90), Y ;Put the sprite out of the way
|
||||
STA $0E
|
||||
.on_screen_y
|
||||
LDA.b #$F0 : STA ($90), Y ;Put the sprite out of the way
|
||||
STA $0E
|
||||
.on_screen_y
|
||||
|
||||
PLX ; Pullback Animation Index Offset (without the *2 not 16bit anymore)
|
||||
INY
|
||||
LDA .chr, X : STA ($90), Y
|
||||
INY
|
||||
LDA .properties, X : STA ($90), Y
|
||||
PLX ; Pullback Animation Index Offset (without the *2 not 16bit anymore)
|
||||
INY
|
||||
LDA .chr, X : STA ($90), Y
|
||||
INY
|
||||
LDA .properties, X : STA ($90), Y
|
||||
|
||||
PHY
|
||||
PHY
|
||||
|
||||
TYA : LSR #2 : TAY
|
||||
TYA : LSR #2 : TAY
|
||||
|
||||
LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer
|
||||
LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer
|
||||
|
||||
PLY : INY
|
||||
PLY : INY
|
||||
|
||||
PLX : DEX : BPL .nextTile
|
||||
PLX : DEX : BPL .nextTile
|
||||
|
||||
PLX
|
||||
PLX
|
||||
|
||||
RTS
|
||||
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
|
||||
db 3, 3, 3, 3, 2, 3, 3, 3, 0, 0, 0, 3, 3
|
||||
.x_offsets
|
||||
dw -4, -4, 12, 12
|
||||
dw -4, -4, 12, 12
|
||||
dw -4, -4, 4, 12
|
||||
dw -4, -4, 4, 4
|
||||
dw -4, 4, 4
|
||||
dw 4, -4, 4, -4
|
||||
dw 4, -4, 4, -4
|
||||
dw 4, -4, -4, -4
|
||||
dw 0
|
||||
dw 0
|
||||
dw 0
|
||||
dw 8, 8, 0, 0
|
||||
dw 8, 8, 0, 0
|
||||
.y_offsets
|
||||
dw -4, 4, 4, 12
|
||||
dw -4, 4, 4, 12
|
||||
dw -8, 0, 0, -8
|
||||
dw 0, -8, -8, 0
|
||||
dw 0, 0, -16
|
||||
dw 0, 0, -8, -8
|
||||
dw 0, 0, -16, -8
|
||||
dw 0, 0, 8, -8
|
||||
dw 0
|
||||
dw 0
|
||||
dw 0
|
||||
dw -4, 4, 4, 12
|
||||
dw -4, 4, 4, 12
|
||||
.chr
|
||||
db $10, $20, $22, $32
|
||||
db $10, $20, $02, $12
|
||||
db $13, $23, $24, $15
|
||||
db $26, $16, $17, $27
|
||||
db $29, $2A, $0A
|
||||
db $23, $24, $13, $14
|
||||
db $26, $27, $06, $18
|
||||
db $29, $2B, $3B, $1B
|
||||
db $2C
|
||||
db $2E
|
||||
db $2E
|
||||
db $10, $20, $22, $32
|
||||
db $10, $20, $02, $12
|
||||
.properties
|
||||
db $37, $37, $37, $37
|
||||
db $37, $37, $37, $37
|
||||
db $37, $37, $37, $37
|
||||
db $37, $37, $37, $37
|
||||
db $37, $37, $37
|
||||
db $77, $77, $77, $77
|
||||
db $77, $77, $77, $77
|
||||
db $77, $77, $77, $77
|
||||
db $37
|
||||
db $77
|
||||
db $37
|
||||
db $77, $77, $77, $77
|
||||
db $77, $77, $77, $77
|
||||
.sizes
|
||||
db $02, $02, $00, $00
|
||||
db $02, $02, $00, $00
|
||||
db $02, $02, $02, $00
|
||||
db $02, $02, $02, $02
|
||||
db $02, $02, $02
|
||||
db $02, $02, $02, $02
|
||||
db $02, $02, $02, $00
|
||||
db $02, $00, $00, $00
|
||||
db $02
|
||||
db $02
|
||||
db $02
|
||||
db $02, $02, $00, $00
|
||||
db $02, $02, $00, $00
|
||||
.start_index
|
||||
db $00, $04, $08, $0C, $10, $13, $17, $1B, $1F, $20, $21, $22, $26
|
||||
.nbr_of_tiles
|
||||
db 3, 3, 3, 3, 2, 3, 3, 3, 0, 0, 0, 3, 3
|
||||
.x_offsets
|
||||
dw -4, -4, 12, 12
|
||||
dw -4, -4, 12, 12
|
||||
dw -4, -4, 4, 12
|
||||
dw -4, -4, 4, 4
|
||||
dw -4, 4, 4
|
||||
dw 4, -4, 4, -4
|
||||
dw 4, -4, 4, -4
|
||||
dw 4, -4, -4, -4
|
||||
dw 0
|
||||
dw 0
|
||||
dw 0
|
||||
dw 8, 8, 0, 0
|
||||
dw 8, 8, 0, 0
|
||||
.y_offsets
|
||||
dw -4, 4, 4, 12
|
||||
dw -4, 4, 4, 12
|
||||
dw -8, 0, 0, -8
|
||||
dw 0, -8, -8, 0
|
||||
dw 0, 0, -16
|
||||
dw 0, 0, -8, -8
|
||||
dw 0, 0, -16, -8
|
||||
dw 0, 0, 8, -8
|
||||
dw 0
|
||||
dw 0
|
||||
dw 0
|
||||
dw -4, 4, 4, 12
|
||||
dw -4, 4, 4, 12
|
||||
.chr
|
||||
db $10, $20, $22, $32
|
||||
db $10, $20, $02, $12
|
||||
db $13, $23, $24, $15
|
||||
db $26, $16, $17, $27
|
||||
db $29, $2A, $0A
|
||||
db $23, $24, $13, $14
|
||||
db $26, $27, $06, $18
|
||||
db $29, $2B, $3B, $1B
|
||||
db $2C
|
||||
db $2E
|
||||
db $2E
|
||||
db $10, $20, $22, $32
|
||||
db $10, $20, $02, $12
|
||||
.properties
|
||||
db $37, $37, $37, $37
|
||||
db $37, $37, $37, $37
|
||||
db $37, $37, $37, $37
|
||||
db $37, $37, $37, $37
|
||||
db $37, $37, $37
|
||||
db $77, $77, $77, $77
|
||||
db $77, $77, $77, $77
|
||||
db $77, $77, $77, $77
|
||||
db $37
|
||||
db $77
|
||||
db $37
|
||||
db $77, $77, $77, $77
|
||||
db $77, $77, $77, $77
|
||||
.sizes
|
||||
db $02, $02, $00, $00
|
||||
db $02, $02, $00, $00
|
||||
db $02, $02, $02, $00
|
||||
db $02, $02, $02, $02
|
||||
db $02, $02, $02
|
||||
db $02, $02, $02, $02
|
||||
db $02, $02, $02, $00
|
||||
db $02, $00, $00, $00
|
||||
db $02
|
||||
db $02
|
||||
db $02
|
||||
db $02, $02, $00, $00
|
||||
db $02, $02, $00, $00
|
||||
}
|
||||
@@ -126,15 +126,14 @@ macro HandlePlayerCamera()
|
||||
endmacro
|
||||
|
||||
macro InitMovement()
|
||||
|
||||
LDA.b $22
|
||||
STA.b $3F
|
||||
STA.b $3F
|
||||
|
||||
LDA.b $23
|
||||
STA.b $41
|
||||
STA.b $41
|
||||
|
||||
LDA.b $20
|
||||
STA.b $3E
|
||||
LDA.b $20
|
||||
STA.b $3E
|
||||
|
||||
LDA.b $21
|
||||
STA.b $40
|
||||
@@ -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,15 +642,15 @@ 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
|
||||
.OutsideDown
|
||||
.OutsideUp
|
||||
SEP #$20
|
||||
CLC : RTS ;Return with carry cleared
|
||||
CLC : RTS ; Return with carry cleared
|
||||
}
|
||||
|
||||
;==============================================================================
|
||||
|
||||
Reference in New Issue
Block a user