summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authorRangi <remy.oukaour+rangi42@gmail.com>2020-07-17 15:58:06 -0400
committerRangi <remy.oukaour+rangi42@gmail.com>2020-07-17 15:58:06 -0400
commit76289dfda0b7405944e10a78b7381c723475bea4 (patch)
treeb3041f6324c7a5b6065a84d94af66ddb098dee2c /engine
parentf53341efa170a322392e5d9cf094128a52041b1d (diff)
Port dbsprite macro for OAM y,x,tile,attr data from pokecrystal
Diffstat (limited to 'engine')
-rw-r--r--engine/battle/scale_sprites.asm20
-rw-r--r--engine/events/hidden_objects/cinnabar_gym_quiz.asm22
-rwxr-xr-xengine/menus/pokedex.asm6
-rwxr-xr-xengine/movie/gamefreak.asm74
-rwxr-xr-xengine/movie/trade.asm46
-rwxr-xr-xengine/overworld/cut.asm4
-rwxr-xr-xengine/overworld/emotion_bubbles.asm4
-rwxr-xr-xengine/overworld/healing_machine.asm16
-rwxr-xr-xengine/overworld/ledges.asm4
-rwxr-xr-xengine/overworld/player_animations.asm12
10 files changed, 112 insertions, 96 deletions
diff --git a/engine/battle/scale_sprites.asm b/engine/battle/scale_sprites.asm
index 69979412..87b4398d 100644
--- a/engine/battle/scale_sprites.asm
+++ b/engine/battle/scale_sprites.asm
@@ -79,7 +79,19 @@ ScalePixelsByTwo:
; repeats each input bit twice
DuplicateBitsTable:
- db $00, $03, $0c, $0f
- db $30, $33, $3c, $3f
- db $c0, $c3, $cc, $cf
- db $f0, $f3, $fc, $ff
+ db %00000000
+ db %00000011
+ db %00001100
+ db %00001111
+ db %00110000
+ db %00110011
+ db %00111100
+ db %00111111
+ db %11000000
+ db %11000011
+ db %11001100
+ db %11001111
+ db %11110000
+ db %11110011
+ db %11111100
+ db %11111111
diff --git a/engine/events/hidden_objects/cinnabar_gym_quiz.asm b/engine/events/hidden_objects/cinnabar_gym_quiz.asm
index 2e4f48f3..e2ae7fbe 100644
--- a/engine/events/hidden_objects/cinnabar_gym_quiz.asm
+++ b/engine/events/hidden_objects/cinnabar_gym_quiz.asm
@@ -183,12 +183,18 @@ UpdateCinnabarGymGateTileBlocks_::
jr nz, .loop
ret
+gym_gate_coord: MACRO
+ db \1, \2, \3, 0
+ENDM
+
+HORIZONTAL_GATE_BLOCK EQU $54
+VERTICAL_GATE_BLOCK EQU $5f
+
CinnabarGymGateCoords:
- ; format: x-coord, y-coord, direction, padding
- ; direction: $54 = horizontal gate, $5f = vertical gate
- db $09,$03,$54,$00
- db $06,$03,$54,$00
- db $06,$06,$54,$00
- db $03,$08,$5f,$00
- db $02,$06,$54,$00
- db $02,$03,$54,$00
+ ; x coord, y coord, block id
+ gym_gate_coord 9, 3, HORIZONTAL_GATE_BLOCK
+ gym_gate_coord 6, 3, HORIZONTAL_GATE_BLOCK
+ gym_gate_coord 6, 6, HORIZONTAL_GATE_BLOCK
+ gym_gate_coord 3, 8, VERTICAL_GATE_BLOCK
+ gym_gate_coord 2, 6, HORIZONTAL_GATE_BLOCK
+ gym_gate_coord 2, 3, HORIZONTAL_GATE_BLOCK
diff --git a/engine/menus/pokedex.asm b/engine/menus/pokedex.asm
index 53719712..5660ecfb 100755
--- a/engine/menus/pokedex.asm
+++ b/engine/menus/pokedex.asm
@@ -599,10 +599,8 @@ PokeText:
; horizontal line that divides the pokedex text description from the rest of the data
PokedexDataDividerLine:
- db $68,$69,$6B,$69,$6B
- db $69,$6B,$69,$6B,$6B
- db $6B,$6B,$69,$6B,$69
- db $6B,$69,$6B,$69,$6A
+ db $68, $69, $6B, $69, $6B, $69, $6B, $69, $6B, $6B
+ db $6B, $6B, $69, $6B, $69, $6B, $69, $6B, $69, $6A
db "@"
; draws a line of tiles
diff --git a/engine/movie/gamefreak.asm b/engine/movie/gamefreak.asm
index 1463eb4f..1f837443 100755
--- a/engine/movie/gamefreak.asm
+++ b/engine/movie/gamefreak.asm
@@ -146,7 +146,7 @@ AnimateShootingStar:
ret
SmallStarsOAM:
- db $00,$00,$A2,$90
+ dbsprite 0, 0, 0, 0, $A2, OAM_BEHIND_BG | OAM_OBP1
SmallStarsOAMEnd:
SmallStarsWaveCoordsPointerTable:
@@ -161,28 +161,28 @@ SmallStarsWaveCoordsPointerTable:
; These arrays contain the Y and X coordinates of each OAM entry.
SmallStarsWave1Coords:
- db $68,$30
- db $68,$40
- db $68,$58
- db $68,$78
+ db $68, $30
+ db $68, $40
+ db $68, $58
+ db $68, $78
SmallStarsWave2Coords:
- db $68,$38
- db $68,$48
- db $68,$60
- db $68,$70
+ db $68, $38
+ db $68, $48
+ db $68, $60
+ db $68, $70
SmallStarsWave3Coords:
- db $68,$34
- db $68,$4C
- db $68,$54
- db $68,$64
+ db $68, $34
+ db $68, $4C
+ db $68, $54
+ db $68, $64
SmallStarsWave4Coords:
- db $68,$3C
- db $68,$5C
- db $68,$6C
- db $68,$74
+ db $68, $3C
+ db $68, $5C
+ db $68, $6C
+ db $68, $74
SmallStarsEmptyWave:
db $FF
@@ -213,29 +213,29 @@ MoveDownSmallStars:
ret
GameFreakLogoOAMData:
- db $48,$50,$8D,$00
- db $48,$58,$8E,$00
- db $50,$50,$8F,$00
- db $50,$58,$90,$00
- db $58,$50,$91,$00
- db $58,$58,$92,$00
- db $60,$30,$80,$00
- db $60,$38,$81,$00
- db $60,$40,$82,$00
- db $60,$48,$83,$00
- db $60,$50,$93,$00
- db $60,$58,$84,$00
- db $60,$60,$85,$00
- db $60,$68,$83,$00
- db $60,$70,$81,$00
- db $60,$78,$86,$00
+ dbsprite 10, 9, 0, 0, $8d, 0
+ dbsprite 11, 9, 0, 0, $8e, 0
+ dbsprite 10, 10, 0, 0, $8f, 0
+ dbsprite 11, 10, 0, 0, $90, 0
+ dbsprite 10, 11, 0, 0, $91, 0
+ dbsprite 11, 11, 0, 0, $92, 0
+ dbsprite 6, 12, 0, 0, $80, 0
+ dbsprite 7, 12, 0, 0, $81, 0
+ dbsprite 8, 12, 0, 0, $82, 0
+ dbsprite 9, 12, 0, 0, $83, 0
+ dbsprite 10, 12, 0, 0, $93, 0
+ dbsprite 11, 12, 0, 0, $84, 0
+ dbsprite 12, 12, 0, 0, $85, 0
+ dbsprite 13, 12, 0, 0, $83, 0
+ dbsprite 14, 12, 0, 0, $81, 0
+ dbsprite 15, 12, 0, 0, $86, 0
GameFreakLogoOAMDataEnd:
GameFreakShootingStarOAMData:
- db $00,$A0,$A0,$10
- db $00,$A8,$A0,$30
- db $08,$A0,$A1,$10
- db $08,$A8,$A1,$30
+ dbsprite 20, 0, 0, 0, $a0, OAM_OBP1
+ dbsprite 21, 0, 0, 0, $a0, OAM_OBP1 | OAM_HFLIP
+ dbsprite 20, 1, 0, 0, $a1, OAM_OBP1
+ dbsprite 21, 1, 0, 0, $a1, OAM_OBP1 | OAM_HFLIP
GameFreakShootingStarOAMDataEnd:
FallingStar:
diff --git a/engine/movie/trade.asm b/engine/movie/trade.asm
index 992cbd97..fa84e01d 100755
--- a/engine/movie/trade.asm
+++ b/engine/movie/trade.asm
@@ -59,11 +59,11 @@ TradeAnimCommon:
addtradefunc: MACRO
\1TradeFunc::
dw \1
- ENDM
+ENDM
tradefunc: MACRO
db (\1TradeFunc - TradeFuncPointerTable) / 2
- ENDM
+ENDM
; The functions in the sequences below are executed in order by TradeFuncCommon.
; They are from opposite perspectives. The external clock one makes use of
@@ -86,7 +86,7 @@ InternalClockTradeFuncSequence:
tradefunc Trade_ShowEnemyMon
tradefunc Trade_Delay100
tradefunc Trade_Cleanup
- db $FF
+ db -1 ; end
ExternalClockTradeFuncSequence:
tradefunc LoadTradingGFXAndMonNames
@@ -110,7 +110,7 @@ ExternalClockTradeFuncSequence:
tradefunc Trade_ShowClearedWindow
tradefunc PrintTradeWentToText
tradefunc Trade_Cleanup
- db $FF
+ db -1 ; end
TradeFuncPointerTable:
addtradefunc LoadTradingGFXAndMonNames
@@ -346,8 +346,8 @@ Trade_AnimateBallEnteringLinkCable:
ret
Trade_BallInsideLinkCableOAM:
- db $7E,$00,$7E,$20
- db $7E,$40,$7E,$60
+ dbsprite 0, 15, 0, 6, $7e, OAM_HFLIP
+ dbsprite 8, 15, 0, 6, $7e, OAM_HFLIP | OAM_VFLIP
Trade_ShowEnemyMon:
ld a, TRADE_BALL_TILT_ANIM
@@ -697,31 +697,33 @@ Trade_WriteCircleOAM:
jr nz, .loop
ret
+trade_circle_oam: MACRO
+ dw \1
+ db \2, \3
+ENDM
+
Trade_CircleOAMPointers:
- dw Trade_CircleOAM0
- db $08,$08
- dw Trade_CircleOAM1
- db $18,$08
- dw Trade_CircleOAM2
- db $08,$18
- dw Trade_CircleOAM3
- db $18,$18
+ ; oam pointer, upper-left x coord, upper-left y coord
+ trade_circle_oam Trade_CircleOAM0, $08, $08
+ trade_circle_oam Trade_CircleOAM1, $18, $08
+ trade_circle_oam Trade_CircleOAM2, $08, $18
+ trade_circle_oam Trade_CircleOAM3, $18, $18
Trade_CircleOAM0:
- db $38,$10,$39,$10
- db $3A,$10,$3B,$10
+ dbsprite 2, 7, 0, 0, $39, OAM_OBP1
+ dbsprite 2, 7, 0, 2, $3b, OAM_OBP1
Trade_CircleOAM1:
- db $39,$30,$38,$30
- db $3B,$30,$3A,$30
+ dbsprite 6, 7, 0, 1, $38, OAM_OBP1 | OAM_HFLIP
+ dbsprite 6, 7, 0, 3, $3a, OAM_OBP1 | OAM_HFLIP
Trade_CircleOAM2:
- db $3A,$50,$3B,$50
- db $38,$50,$39,$50
+ dbsprite 10, 7, 0, 2, $3b, OAM_OBP1 | OAM_VFLIP
+ dbsprite 10, 7, 0, 0, $39, OAM_OBP1 | OAM_VFLIP
Trade_CircleOAM3:
- db $3B,$70,$3A,$70
- db $39,$70,$38,$70
+ dbsprite 14, 7, 0, 3, $3a, OAM_OBP1 | OAM_HFLIP | OAM_VFLIP
+ dbsprite 14, 7, 0, 1, $38, OAM_OBP1 | OAM_HFLIP | OAM_VFLIP
; a = species
Trade_LoadMonSprite:
diff --git a/engine/overworld/cut.asm b/engine/overworld/cut.asm
index 07039e03..6a92ccc0 100755
--- a/engine/overworld/cut.asm
+++ b/engine/overworld/cut.asm
@@ -123,8 +123,8 @@ WriteCutOrBoulderDustAnimationOAMBlock:
jp WriteOAMBlock
CutOrBoulderDustAnimationTilesAndAttributes:
- db $FC,$10,$FD,$10
- db $FE,$10,$FF,$10
+ dbsprite 2, -1, 0, 4, $fd, OAM_OBP1
+ dbsprite 2, -1, 0, 6, $ff, OAM_OBP1
GetCutOrBoulderDustAnimationOffsets:
ld hl, wSpritePlayerStateData1YPixels
diff --git a/engine/overworld/emotion_bubbles.asm b/engine/overworld/emotion_bubbles.asm
index 298858a2..0315687d 100755
--- a/engine/overworld/emotion_bubbles.asm
+++ b/engine/overworld/emotion_bubbles.asm
@@ -67,8 +67,8 @@ EmotionBubblesPointerTable:
dw HappyEmote
EmotionBubblesOAM:
- db $F8,$00,$F9,$00
- db $FA,$00,$FB,$00
+ dbsprite 0, -1, 0, 0, $f9, 0
+ dbsprite 0, -1, 0, 2, $fb, 0
EmotionBubbles:
ShockEmote: INCBIN "gfx/emotes/shock.2bpp"
diff --git a/engine/overworld/healing_machine.asm b/engine/overworld/healing_machine.asm
index eaa396d0..40ca6f65 100755
--- a/engine/overworld/healing_machine.asm
+++ b/engine/overworld/healing_machine.asm
@@ -66,13 +66,15 @@ PokeCenterFlashingMonitorAndHealBall:
INCBIN "gfx/overworld/heal_machine.2bpp"
PokeCenterOAMData:
- db $24,$34,$7C,$10 ; heal machine monitor
- db $2B,$30,$7D,$10 ; pokeballs 1-6
- db $2B,$38,$7D,$30
- db $30,$30,$7D,$10
- db $30,$38,$7D,$30
- db $35,$30,$7D,$10
- db $35,$38,$7D,$30
+ ; heal machine monitor
+ dbsprite 6, 4, 4, 4, $7c, OAM_OBP1
+ ; poke balls 1-6
+ dbsprite 6, 5, 0, 3, $7d, OAM_OBP1
+ dbsprite 7, 5, 0, 3, $7d, OAM_OBP1 | OAM_HFLIP
+ dbsprite 6, 6, 0, 0, $7d, OAM_OBP1
+ dbsprite 7, 6, 0, 0, $7d, OAM_OBP1 | OAM_HFLIP
+ dbsprite 6, 6, 0, 5, $7d, OAM_OBP1
+ dbsprite 7, 6, 0, 5, $7d, OAM_OBP1 | OAM_HFLIP
; d = value to xor with palette
FlashSprite8Times:
diff --git a/engine/overworld/ledges.asm b/engine/overworld/ledges.asm
index 0e006c5e..f01ae5ef 100755
--- a/engine/overworld/ledges.asm
+++ b/engine/overworld/ledges.asm
@@ -72,5 +72,5 @@ LedgeHoppingShadow:
LedgeHoppingShadowEnd:
LedgeHoppingShadowOAM:
- db $FF,$10,$FF,$20
- db $FF,$40,$FF,$60
+ dbsprite 2, -1, 0, 7, $ff, OAM_HFLIP
+ dbsprite 8, -1, 0, 7, $ff, OAM_HFLIP | OAM_VFLIP
diff --git a/engine/overworld/player_animations.asm b/engine/overworld/player_animations.asm
index 9e9b4073..c458a013 100755
--- a/engine/overworld/player_animations.asm
+++ b/engine/overworld/player_animations.asm
@@ -470,14 +470,10 @@ ItsABiteText:
FishingRodOAM:
; specifies how the fishing rod should be drawn on the screen
-; first byte = screen y coordinate
-; second byte = screen x coordinate
-; third byte = tile number
-; fourth byte = sprite properties
- db $5B, $4C, $FD, $00 ; player facing down
- db $44, $4C, $FD, $00 ; player facing up
- db $50, $40, $FE, $00 ; player facing left
- db $50, $58, $FE, $20 ; player facing right ($20 means "horizontally flip the tile")
+ dbsprite 9, 11, 4, 3, $fd, 0 ; down
+ dbsprite 9, 8, 4, 4, $fd, 0 ; up
+ dbsprite 8, 10, 0, 0, $fe, 0 ; left
+ dbsprite 11, 10, 0, 0, $fe, OAM_HFLIP ; right
fishing_gfx: MACRO
dw \1