shithub: pokecrystal

Download patch

ref: 4f01dff6c201a56537bc43a032b07eb16273b038
parent: 41de67edbd9eb337de14a8930b9f4e651383d2b7
author: Remy Oukaour <[email protected]>
date: Tue Jan 2 12:26:23 EST 2018

Use OAM flags in dsprite data

--- a/engine/billspc.asm
+++ b/engine/billspc.asm
@@ -1523,30 +1523,30 @@
 ; e2e2b (38:6e2b)
 
 .OAM: ; e2e2b
-	dsprite 4, 6, 10, 0, $00, $00
-	dsprite 4, 6, 11, 0, $00, $00
-	dsprite 4, 6, 12, 0, $00, $00
-	dsprite 4, 6, 13, 0, $00, $00
-	dsprite 4, 6, 14, 0, $00, $00
-	dsprite 4, 6, 15, 0, $00, $00
-	dsprite 4, 6, 16, 0, $00, $00
-	dsprite 4, 6, 17, 0, $00, $00
-	dsprite 4, 6, 18, 0, $00, $00
-	dsprite 4, 6, 18, 7, $00, $00
-	dsprite 7, 1, 10, 0, $00, $40
-	dsprite 7, 1, 11, 0, $00, $40
-	dsprite 7, 1, 12, 0, $00, $40
-	dsprite 7, 1, 13, 0, $00, $40
-	dsprite 7, 1, 14, 0, $00, $40
-	dsprite 7, 1, 15, 0, $00, $40
-	dsprite 7, 1, 16, 0, $00, $40
-	dsprite 7, 1, 17, 0, $00, $40
-	dsprite 7, 1, 18, 0, $00, $40
-	dsprite 7, 1, 18, 7, $00, $40
-	dsprite 5, 6,  9, 6, $01, $00
-	dsprite 6, 1,  9, 6, $01, $40
-	dsprite 5, 6, 19, 1, $01, $20
-	dsprite 6, 1, 19, 1, $01, $60
+	dsprite 4, 6, 10, 0, $00, 0
+	dsprite 4, 6, 11, 0, $00, 0
+	dsprite 4, 6, 12, 0, $00, 0
+	dsprite 4, 6, 13, 0, $00, 0
+	dsprite 4, 6, 14, 0, $00, 0
+	dsprite 4, 6, 15, 0, $00, 0
+	dsprite 4, 6, 16, 0, $00, 0
+	dsprite 4, 6, 17, 0, $00, 0
+	dsprite 4, 6, 18, 0, $00, 0
+	dsprite 4, 6, 18, 7, $00, 0
+	dsprite 7, 1, 10, 0, $00, 0 | Y_FLIP
+	dsprite 7, 1, 11, 0, $00, 0 | Y_FLIP
+	dsprite 7, 1, 12, 0, $00, 0 | Y_FLIP
+	dsprite 7, 1, 13, 0, $00, 0 | Y_FLIP
+	dsprite 7, 1, 14, 0, $00, 0 | Y_FLIP
+	dsprite 7, 1, 15, 0, $00, 0 | Y_FLIP
+	dsprite 7, 1, 16, 0, $00, 0 | Y_FLIP
+	dsprite 7, 1, 17, 0, $00, 0 | Y_FLIP
+	dsprite 7, 1, 18, 0, $00, 0 | Y_FLIP
+	dsprite 7, 1, 18, 7, $00, 0 | Y_FLIP
+	dsprite 5, 6,  9, 6, $01, 0
+	dsprite 6, 1,  9, 6, $01, 0 | Y_FLIP
+	dsprite 5, 6, 19, 1, $01, 0 | X_FLIP
+	dsprite 6, 1, 19, 1, $01, 0 | X_FLIP | Y_FLIP
 	db -1
 ; e2e8c
 
@@ -1573,16 +1573,16 @@
 ; e2eac
 
 .OAM: ; e2eac
-	dsprite 4, 7, 10, 0, $06, $00
-	dsprite 5, 3, 11, 0, $00, $40
-	dsprite 5, 3, 12, 0, $00, $40
-	dsprite 5, 3, 13, 0, $00, $40
-	dsprite 5, 3, 14, 0, $00, $40
-	dsprite 5, 3, 15, 0, $00, $40
-	dsprite 5, 3, 16, 0, $00, $40
-	dsprite 5, 3, 17, 0, $00, $40
-	dsprite 5, 3, 18, 0, $00, $40
-	dsprite 4, 7, 19, 0, $07, $00
+	dsprite 4, 7, 10, 0, $06, 0
+	dsprite 5, 3, 11, 0, $00, 0 | Y_FLIP
+	dsprite 5, 3, 12, 0, $00, 0 | Y_FLIP
+	dsprite 5, 3, 13, 0, $00, 0 | Y_FLIP
+	dsprite 5, 3, 14, 0, $00, 0 | Y_FLIP
+	dsprite 5, 3, 15, 0, $00, 0 | Y_FLIP
+	dsprite 5, 3, 16, 0, $00, 0 | Y_FLIP
+	dsprite 5, 3, 17, 0, $00, 0 | Y_FLIP
+	dsprite 5, 3, 18, 0, $00, 0 | Y_FLIP
+	dsprite 4, 7, 19, 0, $07, 0
 	db -1
 ; e2ed5
 
--- a/engine/card_flip.asm
+++ b/engine/card_flip.asm
@@ -1210,29 +1210,29 @@
 
 .SpriteData: ; e0853
 	db 18
-	dsprite 0, 0, 0, 0, $04, $00
-	dsprite 0, 0, 1, 0, $06, $00
-	dsprite 0, 0, 2, 0, $06, $00
-	dsprite 0, 0, 3, 0, $06, $00
-	dsprite 0, 0, 4, 0, $04, $20
+	dsprite 0, 0, 0, 0, $04, 0
+	dsprite 0, 0, 1, 0, $06, 0
+	dsprite 0, 0, 2, 0, $06, 0
+	dsprite 0, 0, 3, 0, $06, 0
+	dsprite 0, 0, 4, 0, $04, 0 | X_FLIP
 
-	dsprite 1, 0, 0, 0, $05, $00
-	dsprite 1, 0, 4, 0, $05, $20
+	dsprite 1, 0, 0, 0, $05, 0
+	dsprite 1, 0, 4, 0, $05, 0 | X_FLIP
 
-	dsprite 2, 0, 0, 0, $05, $00
-	dsprite 2, 0, 4, 0, $05, $20
+	dsprite 2, 0, 0, 0, $05, 0
+	dsprite 2, 0, 4, 0, $05, 0 | X_FLIP
 
-	dsprite 3, 0, 0, 0, $05, $00
-	dsprite 3, 0, 4, 0, $05, $20
+	dsprite 3, 0, 0, 0, $05, 0
+	dsprite 3, 0, 4, 0, $05, 0 | X_FLIP
 
 	dsprite 4, 0, 0, 0, $05, $00
-	dsprite 4, 0, 4, 0, $05, $20
+	dsprite 4, 0, 4, 0, $05, 0 | X_FLIP
 
-	dsprite 5, 0, 0, 0, $04, $40
-	dsprite 5, 0, 1, 0, $06, $40
-	dsprite 5, 0, 2, 0, $06, $40
-	dsprite 5, 0, 3, 0, $06, $40
-	dsprite 5, 0, 4, 0, $04, $60
+	dsprite 5, 0, 0, 0, $04, 0 | Y_FLIP
+	dsprite 5, 0, 1, 0, $06, 0 | Y_FLIP
+	dsprite 5, 0, 2, 0, $06, 0 | Y_FLIP
+	dsprite 5, 0, 3, 0, $06, 0 | Y_FLIP
+	dsprite 5, 0, 4, 0, $04, 0 | X_FLIP | Y_FLIP
 ; e089c
 
 ChooseCard_HandleJoypad: ; e089c
@@ -1471,145 +1471,145 @@
 
 .SingleTile: ; e0a41
 	db 6
-	dsprite   0, 0,  -1, 7, $00, $80
-	dsprite   0, 0,   0, 0, $02, $80
-	dsprite   0, 0,   1, 0, $03, $80
-	dsprite   0, 5,  -1, 7, $00, $c0
-	dsprite   0, 5,   0, 0, $02, $c0
-	dsprite   0, 5,   1, 0, $03, $80
+	dsprite  0, 0,  -1, 7, $00, 0 | BEHIND_BG
+	dsprite  0, 0,   0, 0, $02, 0 | BEHIND_BG
+	dsprite  0, 0,   1, 0, $03, 0 | BEHIND_BG
+	dsprite  0, 5,  -1, 7, $00, 0 | Y_FLIP | BEHIND_BG
+	dsprite  0, 5,   0, 0, $02, 0 | Y_FLIP | BEHIND_BG
+	dsprite  0, 5,   1, 0, $03, 0 | BEHIND_BG
 
 .PokeGroup: ; e0a5a
 	db 26
-	dsprite   0, 0,  -1, 7, $00, $80
-	dsprite   0, 0,   0, 0, $02, $80
-	dsprite   0, 0,   1, 0, $00, $a0
-	dsprite   1, 0,  -1, 7, $01, $80
-	dsprite   1, 0,   1, 0, $01, $a0
-	dsprite   2, 0,  -1, 7, $01, $80
-	dsprite   2, 0,   1, 0, $03, $80
-	dsprite   3, 0,  -1, 7, $01, $80
-	dsprite   3, 0,   1, 0, $03, $80
-	dsprite   4, 0,  -1, 7, $01, $80
-	dsprite   4, 0,   1, 0, $03, $80
-	dsprite   5, 0,  -1, 7, $01, $80
-	dsprite   5, 0,   1, 0, $03, $80
-	dsprite   6, 0,  -1, 7, $01, $80
-	dsprite   6, 0,   1, 0, $03, $80
-	dsprite   7, 0,  -1, 7, $01, $80
-	dsprite   7, 0,   1, 0, $03, $80
-	dsprite   8, 0,  -1, 7, $01, $80
-	dsprite   8, 0,   1, 0, $03, $80
-	dsprite   9, 0,  -1, 7, $01, $80
-	dsprite   9, 0,   1, 0, $03, $80
-	dsprite  10, 0,  -1, 7, $01, $80
-	dsprite  10, 0,   1, 0, $03, $80
-	dsprite  10, 1,  -1, 7, $00, $c0
-	dsprite  10, 1,   0, 0, $02, $c0
-	dsprite  10, 1,   1, 0, $03, $80
+	dsprite  0, 0,  -1, 7, $00, 0 | BEHIND_BG
+	dsprite  0, 0,   0, 0, $02, 0 | BEHIND_BG
+	dsprite  0, 0,   1, 0, $00, 0 | X_FLIP | BEHIND_BG
+	dsprite  1, 0,  -1, 7, $01, 0 | BEHIND_BG
+	dsprite  1, 0,   1, 0, $01, 0 | X_FLIP | BEHIND_BG
+	dsprite  2, 0,  -1, 7, $01, 0 | BEHIND_BG
+	dsprite  2, 0,   1, 0, $03, 0 | BEHIND_BG
+	dsprite  3, 0,  -1, 7, $01, 0 | BEHIND_BG
+	dsprite  3, 0,   1, 0, $03, 0 | BEHIND_BG
+	dsprite  4, 0,  -1, 7, $01, 0 | BEHIND_BG
+	dsprite  4, 0,   1, 0, $03, 0 | BEHIND_BG
+	dsprite  5, 0,  -1, 7, $01, 0 | BEHIND_BG
+	dsprite  5, 0,   1, 0, $03, 0 | BEHIND_BG
+	dsprite  6, 0,  -1, 7, $01, 0 | BEHIND_BG
+	dsprite  6, 0,   1, 0, $03, 0 | BEHIND_BG
+	dsprite  7, 0,  -1, 7, $01, 0 | BEHIND_BG
+	dsprite  7, 0,   1, 0, $03, 0 | BEHIND_BG
+	dsprite  8, 0,  -1, 7, $01, 0 | BEHIND_BG
+	dsprite  8, 0,   1, 0, $03, 0 | BEHIND_BG
+	dsprite  9, 0,  -1, 7, $01, 0 | BEHIND_BG
+	dsprite  9, 0,   1, 0, $03, 0 | BEHIND_BG
+	dsprite 10, 0,  -1, 7, $01, 0 | BEHIND_BG
+	dsprite 10, 0,   1, 0, $03, 0 | BEHIND_BG
+	dsprite 10, 1,  -1, 7, $00, 0 | Y_FLIP | BEHIND_BG
+	dsprite 10, 1,   0, 0, $02, 0 | Y_FLIP | BEHIND_BG
+	dsprite 10, 1,   1, 0, $03, 0 | BEHIND_BG
 
 .NumGroup: ; e0ac3
 	db 20
-	dsprite   0, 0,  -1, 7, $00, $80
-	dsprite   0, 0,   0, 0, $02, $80
-	dsprite   0, 0,   1, 0, $02, $80
-	dsprite   0, 0,   2, 0, $03, $80
-	dsprite   0, 0,   3, 0, $02, $80
-	dsprite   0, 0,   4, 0, $03, $80
-	dsprite   0, 0,   5, 0, $02, $80
-	dsprite   0, 0,   6, 0, $03, $80
-	dsprite   0, 0,   7, 0, $02, $80
-	dsprite   0, 0,   8, 0, $03, $80
-	dsprite   0, 5,  -1, 7, $00, $c0
-	dsprite   0, 5,   0, 0, $02, $c0
-	dsprite   0, 5,   1, 0, $02, $c0
-	dsprite   0, 5,   2, 0, $03, $80
-	dsprite   0, 5,   3, 0, $02, $c0
-	dsprite   0, 5,   4, 0, $03, $80
-	dsprite   0, 5,   5, 0, $02, $c0
-	dsprite   0, 5,   6, 0, $03, $80
-	dsprite   0, 5,   7, 0, $02, $c0
-	dsprite   0, 5,   8, 0, $03, $80
+	dsprite  0, 0,  -1, 7, $00, 0 | BEHIND_BG
+	dsprite  0, 0,   0, 0, $02, 0 | BEHIND_BG
+	dsprite  0, 0,   1, 0, $02, 0 | BEHIND_BG
+	dsprite  0, 0,   2, 0, $03, 0 | BEHIND_BG
+	dsprite  0, 0,   3, 0, $02, 0 | BEHIND_BG
+	dsprite  0, 0,   4, 0, $03, 0 | BEHIND_BG
+	dsprite  0, 0,   5, 0, $02, 0 | BEHIND_BG
+	dsprite  0, 0,   6, 0, $03, 0 | BEHIND_BG
+	dsprite  0, 0,   7, 0, $02, 0 | BEHIND_BG
+	dsprite  0, 0,   8, 0, $03, 0 | BEHIND_BG
+	dsprite  0, 5,  -1, 7, $00, 0 | Y_FLIP | BEHIND_BG
+	dsprite  0, 5,   0, 0, $02, 0 | Y_FLIP | BEHIND_BG
+	dsprite  0, 5,   1, 0, $02, 0 | Y_FLIP | BEHIND_BG
+	dsprite  0, 5,   2, 0, $03, 0 | BEHIND_BG
+	dsprite  0, 5,   3, 0, $02, 0 | Y_FLIP | BEHIND_BG
+	dsprite  0, 5,   4, 0, $03, 0 | BEHIND_BG
+	dsprite  0, 5,   5, 0, $02, 0 | Y_FLIP | BEHIND_BG
+	dsprite  0, 5,   6, 0, $03, 0 | BEHIND_BG
+	dsprite  0, 5,   7, 0, $02, 0 | Y_FLIP | BEHIND_BG
+	dsprite  0, 5,   8, 0, $03, 0 | BEHIND_BG
 
 .NumGroupPair: ; e0b14
 	db 30
-	dsprite   0, 0,   0, 0, $00, $80
-	dsprite   0, 0,   1, 0, $02, $80
-	dsprite   0, 0,   2, 0, $02, $80
-	dsprite   0, 0,   3, 0, $03, $80
-	dsprite   0, 0,   4, 0, $02, $80
-	dsprite   0, 0,   5, 0, $03, $80
-	dsprite   0, 0,   6, 0, $02, $80
-	dsprite   0, 0,   7, 0, $03, $80
-	dsprite   0, 0,   8, 0, $02, $80
-	dsprite   0, 0,   9, 0, $03, $80
-	dsprite   1, 0,   0, 0, $01, $80
-	dsprite   1, 0,   3, 0, $03, $80
-	dsprite   1, 0,   5, 0, $03, $80
-	dsprite   1, 0,   7, 0, $03, $80
-	dsprite   1, 0,   9, 0, $03, $80
-	dsprite   2, 0,   0, 0, $01, $80
-	dsprite   2, 0,   3, 0, $03, $80
-	dsprite   2, 0,   5, 0, $03, $80
-	dsprite   2, 0,   7, 0, $03, $80
-	dsprite   2, 0,   9, 0, $03, $80
-	dsprite   2, 1,   0, 0, $00, $c0
-	dsprite   2, 1,   1, 0, $02, $c0
-	dsprite   2, 1,   2, 0, $02, $c0
-	dsprite   2, 1,   3, 0, $03, $80
-	dsprite   2, 1,   4, 0, $03, $80
-	dsprite   2, 1,   5, 0, $03, $80
-	dsprite   2, 1,   6, 0, $03, $80
-	dsprite   2, 1,   7, 0, $03, $80
-	dsprite   2, 1,   8, 0, $03, $80
-	dsprite   2, 1,   9, 0, $03, $80
+	dsprite  0, 0,   0, 0, $00, 0 | BEHIND_BG
+	dsprite  0, 0,   1, 0, $02, 0 | BEHIND_BG
+	dsprite  0, 0,   2, 0, $02, 0 | BEHIND_BG
+	dsprite  0, 0,   3, 0, $03, 0 | BEHIND_BG
+	dsprite  0, 0,   4, 0, $02, 0 | BEHIND_BG
+	dsprite  0, 0,   5, 0, $03, 0 | BEHIND_BG
+	dsprite  0, 0,   6, 0, $02, 0 | BEHIND_BG
+	dsprite  0, 0,   7, 0, $03, 0 | BEHIND_BG
+	dsprite  0, 0,   8, 0, $02, 0 | BEHIND_BG
+	dsprite  0, 0,   9, 0, $03, 0 | BEHIND_BG
+	dsprite  1, 0,   0, 0, $01, 0 | BEHIND_BG
+	dsprite  1, 0,   3, 0, $03, 0 | BEHIND_BG
+	dsprite  1, 0,   5, 0, $03, 0 | BEHIND_BG
+	dsprite  1, 0,   7, 0, $03, 0 | BEHIND_BG
+	dsprite  1, 0,   9, 0, $03, 0 | BEHIND_BG
+	dsprite  2, 0,   0, 0, $01, 0 | BEHIND_BG
+	dsprite  2, 0,   3, 0, $03, 0 | BEHIND_BG
+	dsprite  2, 0,   5, 0, $03, 0 | BEHIND_BG
+	dsprite  2, 0,   7, 0, $03, 0 | BEHIND_BG
+	dsprite  2, 0,   9, 0, $03, 0 | BEHIND_BG
+	dsprite  2, 1,   0, 0, $00, 0 | Y_FLIP | BEHIND_BG
+	dsprite  2, 1,   1, 0, $02, 0 | Y_FLIP | BEHIND_BG
+	dsprite  2, 1,   2, 0, $02, 0 | Y_FLIP | BEHIND_BG
+	dsprite  2, 1,   3, 0, $03, 0 | BEHIND_BG
+	dsprite  2, 1,   4, 0, $03, 0 | BEHIND_BG
+	dsprite  2, 1,   5, 0, $03, 0 | BEHIND_BG
+	dsprite  2, 1,   6, 0, $03, 0 | BEHIND_BG
+	dsprite  2, 1,   7, 0, $03, 0 | BEHIND_BG
+	dsprite  2, 1,   8, 0, $03, 0 | BEHIND_BG
+	dsprite  2, 1,   9, 0, $03, 0 | BEHIND_BG
 
 .PokeGroupPair: ; e0b8d
 	db 38
-	dsprite   0, 0,  -1, 7, $00, $80
-	dsprite   0, 0,   3, 0, $00, $a0
-	dsprite   1, 0,  -1, 7, $01, $80
-	dsprite   1, 0,   3, 0, $01, $a0
-	dsprite   2, 0,  -1, 7, $01, $80
-	dsprite   2, 0,   3, 0, $01, $a0
-	dsprite   3, 0,  -1, 7, $01, $80
-	dsprite   3, 0,   1, 0, $03, $80
-	dsprite   3, 0,   3, 0, $03, $80
-	dsprite   4, 0,  -1, 7, $01, $80
-	dsprite   4, 0,   1, 0, $03, $80
-	dsprite   4, 0,   3, 0, $03, $80
-	dsprite   5, 0,  -1, 7, $01, $80
-	dsprite   5, 0,   1, 0, $03, $80
-	dsprite   5, 0,   3, 0, $03, $80
-	dsprite   6, 0,  -1, 7, $01, $80
-	dsprite   6, 0,   1, 0, $03, $80
-	dsprite   6, 0,   3, 0, $03, $80
-	dsprite   7, 0,  -1, 7, $01, $80
-	dsprite   7, 0,   1, 0, $03, $80
-	dsprite   7, 0,   3, 0, $03, $80
-	dsprite   8, 0,  -1, 7, $01, $80
-	dsprite   8, 0,   1, 0, $03, $80
-	dsprite   8, 0,   3, 0, $03, $80
-	dsprite   9, 0,  -1, 7, $01, $80
-	dsprite   9, 0,   1, 0, $03, $80
-	dsprite   9, 0,   3, 0, $03, $80
-	dsprite  10, 0,  -1, 7, $01, $80
-	dsprite  10, 0,   1, 0, $03, $80
-	dsprite  10, 0,   3, 0, $03, $80
-	dsprite  11, 0,  -1, 7, $01, $80
-	dsprite  11, 0,   1, 0, $03, $80
-	dsprite  11, 0,   3, 0, $03, $80
-	dsprite  11, 1,  -1, 7, $00, $c0
-	dsprite  11, 1,   0, 0, $02, $c0
-	dsprite  11, 1,   1, 0, $03, $c0
-	dsprite  11, 1,   2, 0, $02, $c0
-	dsprite  11, 1,   3, 0, $03, $e0
+	dsprite  0, 0,  -1, 7, $00, 0 | BEHIND_BG
+	dsprite  0, 0,   3, 0, $00, 0 | X_FLIP | BEHIND_BG
+	dsprite  1, 0,  -1, 7, $01, 0 | BEHIND_BG
+	dsprite  1, 0,   3, 0, $01, 0 | X_FLIP | BEHIND_BG
+	dsprite  2, 0,  -1, 7, $01, 0 | BEHIND_BG
+	dsprite  2, 0,   3, 0, $01, 0 | X_FLIP | BEHIND_BG
+	dsprite  3, 0,  -1, 7, $01, 0 | BEHIND_BG
+	dsprite  3, 0,   1, 0, $03, 0 | BEHIND_BG
+	dsprite  3, 0,   3, 0, $03, 0 | BEHIND_BG
+	dsprite  4, 0,  -1, 7, $01, 0 | BEHIND_BG
+	dsprite  4, 0,   1, 0, $03, 0 | BEHIND_BG
+	dsprite  4, 0,   3, 0, $03, 0 | BEHIND_BG
+	dsprite  5, 0,  -1, 7, $01, 0 | BEHIND_BG
+	dsprite  5, 0,   1, 0, $03, 0 | BEHIND_BG
+	dsprite  5, 0,   3, 0, $03, 0 | BEHIND_BG
+	dsprite  6, 0,  -1, 7, $01, 0 | BEHIND_BG
+	dsprite  6, 0,   1, 0, $03, 0 | BEHIND_BG
+	dsprite  6, 0,   3, 0, $03, 0 | BEHIND_BG
+	dsprite  7, 0,  -1, 7, $01, 0 | BEHIND_BG
+	dsprite  7, 0,   1, 0, $03, 0 | BEHIND_BG
+	dsprite  7, 0,   3, 0, $03, 0 | BEHIND_BG
+	dsprite  8, 0,  -1, 7, $01, 0 | BEHIND_BG
+	dsprite  8, 0,   1, 0, $03, 0 | BEHIND_BG
+	dsprite  8, 0,   3, 0, $03, 0 | BEHIND_BG
+	dsprite  9, 0,  -1, 7, $01, 0 | BEHIND_BG
+	dsprite  9, 0,   1, 0, $03, 0 | BEHIND_BG
+	dsprite  9, 0,   3, 0, $03, 0 | BEHIND_BG
+	dsprite 10, 0,  -1, 7, $01, 0 | BEHIND_BG
+	dsprite 10, 0,   1, 0, $03, 0 | BEHIND_BG
+	dsprite 10, 0,   3, 0, $03, 0 | BEHIND_BG
+	dsprite 11, 0,  -1, 7, $01, 0 | BEHIND_BG
+	dsprite 11, 0,   1, 0, $03, 0 | BEHIND_BG
+	dsprite 11, 0,   3, 0, $03, 0 | BEHIND_BG
+	dsprite 11, 1,  -1, 7, $00, 0 | Y_FLIP | BEHIND_BG
+	dsprite 11, 1,   0, 0, $02, 0 | Y_FLIP | BEHIND_BG
+	dsprite 11, 1,   1, 0, $03, 0 | Y_FLIP | BEHIND_BG
+	dsprite 11, 1,   2, 0, $02, 0 | Y_FLIP | BEHIND_BG
+	dsprite 11, 1,   3, 0, $03, 0 | X_FLIP | Y_FLIP | BEHIND_BG
 
 .Impossible: ; e0c26
 	db 4
-	dsprite   0, 0,   0, 0, $00, $80
-	dsprite   0, 0,   1, 0, $00, $a0
-	dsprite   1, 0,   0, 0, $00, $c0
-	dsprite   1, 0,   1, 0, $00, $e0
+	dsprite  0, 0,   0, 0, $00, 0 | BEHIND_BG
+	dsprite  0, 0,   1, 0, $00, 0 | X_FLIP | BEHIND_BG
+	dsprite  1, 0,   0, 0, $00, 0 | Y_FLIP | BEHIND_BG
+	dsprite  1, 0,   1, 0, $00, 0 | X_FLIP | Y_FLIP | BEHIND_BG
 ; e0c37
 
 CardFlip_InitAttrPals: ; e0c37 (38:4c37)
--- a/engine/mystery_gift.asm
+++ b/engine/mystery_gift.asm
@@ -1713,22 +1713,22 @@
 ; 1058f0 (41:58f0)
 
 .OAM_data: ; 1058f0
-	dsprite  2, 1,  6, 4, $00, $00
-	dsprite  2, 1,  7, 4, $01, $00
-	dsprite  2, 1,  8, 4, $02, $00
-	dsprite  2, 1,  9, 4, $03, $00
-	dsprite  3, 1,  6, 4, $04, $00
-	dsprite  3, 1,  7, 4, $05, $00
-	dsprite  3, 1,  8, 4, $06, $00
-	dsprite  3, 1,  9, 4, $07, $00
-	dsprite  0, 1, 11, 4, $00, $00
-	dsprite  0, 1, 12, 4, $01, $00
-	dsprite  0, 1, 13, 4, $02, $00
-	dsprite  0, 1, 14, 4, $03, $00
-	dsprite  1, 1, 11, 4, $04, $00
-	dsprite  1, 1, 12, 4, $05, $00
-	dsprite  1, 1, 13, 4, $06, $00
-	dsprite  1, 1, 14, 4, $07, $00
+	dsprite  2, 1,  6, 4, $00, 0
+	dsprite  2, 1,  7, 4, $01, 0
+	dsprite  2, 1,  8, 4, $02, 0
+	dsprite  2, 1,  9, 4, $03, 0
+	dsprite  3, 1,  6, 4, $04, 0
+	dsprite  3, 1,  7, 4, $05, 0
+	dsprite  3, 1,  8, 4, $06, 0
+	dsprite  3, 1,  9, 4, $07, 0
+	dsprite  0, 1, 11, 4, $00, 0
+	dsprite  0, 1, 12, 4, $01, 0
+	dsprite  0, 1, 13, 4, $02, 0
+	dsprite  0, 1, 14, 4, $03, 0
+	dsprite  1, 1, 11, 4, $04, 0
+	dsprite  1, 1, 12, 4, $05, 0
+	dsprite  1, 1, 13, 4, $06, 0
+	dsprite  1, 1, 14, 4, $07, 0
 
 ; japanese mystery gift gfx
 MysteryGiftJP_GFX: ; 105930
--- a/engine/pokedex.asm
+++ b/engine/pokedex.asm
@@ -2026,59 +2026,59 @@
 	ret
 
 .CursorOAM: ; 41167
-	db $18, $47, $30, $07
-	db $10, $47, $31, $07
-	db $10, $4f, $32, $07
-	db $10, $57, $32, $07
-	db $10, $5f, $32, $07
-	db $10, $67, $33, $07
-	db $10, $7e, $33, $27
-	db $10, $86, $32, $27
-	db $10, $8e, $32, $27
-	db $10, $96, $32, $27
-	db $10, $9e, $31, $27
-	db $18, $9e, $30, $27
-	db $20, $47, $30, $47
-	db $28, $47, $31, $47
-	db $28, $4f, $32, $47
-	db $28, $57, $32, $47
-	db $28, $5f, $32, $47
-	db $28, $67, $33, $47
-	db $28, $7e, $33, $67
-	db $28, $86, $32, $67
-	db $28, $8e, $32, $67
-	db $28, $96, $32, $67
-	db $28, $9e, $31, $67
-	db $20, $9e, $30, $67
+	db $18, $47, $30, 7
+	db $10, $47, $31, 7
+	db $10, $4f, $32, 7
+	db $10, $57, $32, 7
+	db $10, $5f, $32, 7
+	db $10, $67, $33, 7
+	db $10, $7e, $33, 7 | X_FLIP
+	db $10, $86, $32, 7 | X_FLIP
+	db $10, $8e, $32, 7 | X_FLIP
+	db $10, $96, $32, 7 | X_FLIP
+	db $10, $9e, $31, 7 | X_FLIP
+	db $18, $9e, $30, 7 | X_FLIP
+	db $20, $47, $30, 7 | Y_FLIP
+	db $28, $47, $31, 7 | Y_FLIP
+	db $28, $4f, $32, 7 | Y_FLIP
+	db $28, $57, $32, 7 | Y_FLIP
+	db $28, $5f, $32, 7 | Y_FLIP
+	db $28, $67, $33, 7 | Y_FLIP
+	db $28, $7e, $33, 7 | X_FLIP | Y_FLIP
+	db $28, $86, $32, 7 | X_FLIP | Y_FLIP
+	db $28, $8e, $32, 7 | X_FLIP | Y_FLIP
+	db $28, $96, $32, 7 | X_FLIP | Y_FLIP
+	db $28, $9e, $31, 7 | X_FLIP | Y_FLIP
+	db $20, $9e, $30, 7 | X_FLIP | Y_FLIP
 	db $ff
 
 .CursorAtTopOAM: ; 411c8
 ; OAM data for when the cursor is at the top of the list. The tiles at the top
 ; are cut off so they don't show up outside the list area.
-	db $18, $47, $30, $07
-	db $10, $47, $34, $07
-	db $10, $4f, $35, $07
-	db $10, $57, $35, $07
-	db $10, $5f, $35, $07
-	db $10, $67, $36, $07
-	db $10, $7e, $36, $27
-	db $10, $86, $35, $27
-	db $10, $8e, $35, $27
-	db $10, $96, $35, $27
-	db $10, $9e, $34, $27
-	db $18, $9e, $30, $27
-	db $20, $47, $30, $47
-	db $28, $47, $31, $47
-	db $28, $4f, $32, $47
-	db $28, $57, $32, $47
-	db $28, $5f, $32, $47
-	db $28, $67, $33, $47
-	db $28, $7e, $33, $67
-	db $28, $86, $32, $67
-	db $28, $8e, $32, $67
-	db $28, $96, $32, $67
-	db $28, $9e, $31, $67
-	db $20, $9e, $30, $67
+	db $18, $47, $30, 7
+	db $10, $47, $34, 7
+	db $10, $4f, $35, 7
+	db $10, $57, $35, 7
+	db $10, $5f, $35, 7
+	db $10, $67, $36, 7
+	db $10, $7e, $36, 7 | X_FLIP
+	db $10, $86, $35, 7 | X_FLIP
+	db $10, $8e, $35, 7 | X_FLIP
+	db $10, $96, $35, 7 | X_FLIP
+	db $10, $9e, $34, 7 | X_FLIP
+	db $18, $9e, $30, 7 | X_FLIP
+	db $20, $47, $30, 7 | Y_FLIP
+	db $28, $47, $31, 7 | Y_FLIP
+	db $28, $4f, $32, 7 | Y_FLIP
+	db $28, $57, $32, 7 | Y_FLIP
+	db $28, $5f, $32, 7 | Y_FLIP
+	db $28, $67, $33, 7 | Y_FLIP
+	db $28, $7e, $33, 7 | X_FLIP | Y_FLIP
+	db $28, $86, $32, 7 | X_FLIP | Y_FLIP
+	db $28, $8e, $32, 7 | X_FLIP | Y_FLIP
+	db $28, $96, $32, 7 | X_FLIP | Y_FLIP
+	db $28, $9e, $31, 7 | X_FLIP | Y_FLIP
+	db $20, $9e, $30, 7 | X_FLIP | Y_FLIP
 	db $ff
 
 Pokedex_PutNewModeABCModeCursorOAM: ; 41229 (10:5229)
@@ -2087,26 +2087,26 @@
 	ret
 
 .CursorOAM: ; 41230
-	db $1b, $47, $30, $07
-	db $13, $47, $31, $07
-	db $13, $4f, $32, $07
-	db $13, $57, $32, $07
-	db $13, $5f, $33, $07
-	db $13, $80, $33, $27
-	db $13, $88, $32, $27
-	db $13, $90, $32, $27
-	db $13, $98, $31, $27
-	db $1b, $98, $30, $27
-	db $23, $47, $30, $47
-	db $2b, $47, $31, $47
-	db $2b, $4f, $32, $47
-	db $2b, $57, $32, $47
-	db $2b, $5f, $33, $47
-	db $2b, $80, $33, $67
-	db $2b, $88, $32, $67
-	db $2b, $90, $32, $67
-	db $2b, $98, $31, $67
-	db $23, $98, $30, $67
+	db $1b, $47, $30, 7
+	db $13, $47, $31, 7
+	db $13, $4f, $32, 7
+	db $13, $57, $32, 7
+	db $13, $5f, $33, 7
+	db $13, $80, $33, 7 | X_FLIP
+	db $13, $88, $32, 7 | X_FLIP
+	db $13, $90, $32, 7 | X_FLIP
+	db $13, $98, $31, 7 | X_FLIP
+	db $1b, $98, $30, 7 | X_FLIP
+	db $23, $47, $30, 7 | Y_FLIP
+	db $2b, $47, $31, 7 | Y_FLIP
+	db $2b, $4f, $32, 7 | Y_FLIP
+	db $2b, $57, $32, 7 | Y_FLIP
+	db $2b, $5f, $33, 7 | Y_FLIP
+	db $2b, $80, $33, 7 | X_FLIP | Y_FLIP
+	db $2b, $88, $32, 7 | X_FLIP | Y_FLIP
+	db $2b, $90, $32, 7 | X_FLIP | Y_FLIP
+	db $2b, $98, $31, 7 | X_FLIP | Y_FLIP
+	db $23, $98, $30, 7 | X_FLIP | Y_FLIP
 	db $ff
 
 Pokedex_UpdateSearchResultsCursorOAM: ; 41281 (10:5281)
@@ -2118,30 +2118,30 @@
 	ret
 
 .CursorOAM: ; 41290
-	db $1b, $47, $30, $07
-	db $13, $47, $31, $07
-	db $13, $4f, $32, $07
-	db $13, $57, $32, $07
-	db $13, $5f, $32, $07
-	db $13, $67, $33, $07
-	db $13, $7e, $33, $27
-	db $13, $86, $32, $27
-	db $13, $8e, $32, $27
-	db $13, $96, $32, $27
-	db $13, $9e, $31, $27
-	db $1b, $9e, $30, $27
-	db $23, $47, $30, $47
-	db $2b, $47, $31, $47
-	db $2b, $4f, $32, $47
-	db $2b, $57, $32, $47
-	db $2b, $5f, $32, $47
-	db $2b, $67, $33, $47
-	db $2b, $7e, $33, $67
-	db $2b, $86, $32, $67
-	db $2b, $8e, $32, $67
-	db $2b, $96, $32, $67
-	db $2b, $9e, $31, $67
-	db $23, $9e, $30, $67
+	db $1b, $47, $30, 7
+	db $13, $47, $31, 7
+	db $13, $4f, $32, 7
+	db $13, $57, $32, 7
+	db $13, $5f, $32, 7
+	db $13, $67, $33, 7
+	db $13, $7e, $33, 7 | X_FLIP
+	db $13, $86, $32, 7 | X_FLIP
+	db $13, $8e, $32, 7 | X_FLIP
+	db $13, $96, $32, 7 | X_FLIP
+	db $13, $9e, $31, 7 | X_FLIP
+	db $1b, $9e, $30, 7 | X_FLIP
+	db $23, $47, $30, 7 | Y_FLIP
+	db $2b, $47, $31, 7 | Y_FLIP
+	db $2b, $4f, $32, 7 | Y_FLIP
+	db $2b, $57, $32, 7 | Y_FLIP
+	db $2b, $5f, $32, 7 | Y_FLIP
+	db $2b, $67, $33, 7 | Y_FLIP
+	db $2b, $7e, $33, 7 | X_FLIP | Y_FLIP
+	db $2b, $86, $32, 7 | X_FLIP | Y_FLIP
+	db $2b, $8e, $32, 7 | X_FLIP | Y_FLIP
+	db $2b, $96, $32, 7 | X_FLIP | Y_FLIP
+	db $2b, $9e, $31, 7 | X_FLIP | Y_FLIP
+	db $23, $9e, $30, 7 | X_FLIP | Y_FLIP
 	db $ff
 
 Pokedex_LoadCursorOAM: ; 412f1 (10:52f1)
--- a/engine/pokedex_2.asm
+++ b/engine/pokedex_2.asm
@@ -40,7 +40,7 @@
 
 DoDexSearchSlowpokeFrame: ; 44207
 	ld a, [wDexSearchSlowpokeFrame]
-	ld hl, .SpriteData
+	ld hl, .SlowpokeSpriteData
 	ld de, Sprites
 .loop
 	ld a, [hli]
@@ -64,16 +64,16 @@
 	inc de
 	jr .loop
 
-.SpriteData: ; 44228
-	dsprite 11, 0,  9, 0, $00, $00
-	dsprite 11, 0, 10, 0, $01, $00
-	dsprite 11, 0, 11, 0, $02, $00
-	dsprite 12, 0,  9, 0, $10, $00
-	dsprite 12, 0, 10, 0, $11, $00
-	dsprite 12, 0, 11, 0, $12, $00
-	dsprite 13, 0,  9, 0, $20, $00
-	dsprite 13, 0, 10, 0, $21, $00
-	dsprite 13, 0, 11, 0, $22, $00
+.SlowpokeSpriteData: ; 44228
+	dsprite 11, 0,  9, 0, $00, 0
+	dsprite 11, 0, 10, 0, $01, 0
+	dsprite 11, 0, 11, 0, $02, 0
+	dsprite 12, 0,  9, 0, $10, 0
+	dsprite 12, 0, 10, 0, $11, 0
+	dsprite 12, 0, 11, 0, $12, 0
+	dsprite 13, 0,  9, 0, $20, 0
+	dsprite 13, 0, 10, 0, $21, 0
+	dsprite 13, 0, 11, 0, $22, 0
 	db -1
 
 DisplayDexEntry: ; 4424d
--- a/engine/unown_puzzle.asm
+++ b/engine/unown_puzzle.asm
@@ -573,27 +573,27 @@
 ; e150f
 
 .OAM_HoldingPiece: ; e150f
-	dsprite -1, -4, -1, -4, $00, $00
-	dsprite -1, -4,  0, -4, $01, $00
-	dsprite -1, -4,  0,  4, $02, $00
-	dsprite  0, -4, -1, -4, $0c, $00
-	dsprite  0, -4,  0, -4, $0d, $00
-	dsprite  0, -4,  0,  4, $0e, $00
-	dsprite  0,  4, -1, -4, $18, $00
-	dsprite  0,  4,  0, -4, $19, $00
-	dsprite  0,  4,  0,  4, $1a, $00
+	dsprite -1, -4, -1, -4, $00, 0
+	dsprite -1, -4,  0, -4, $01, 0
+	dsprite -1, -4,  0,  4, $02, 0
+	dsprite  0, -4, -1, -4, $0c, 0
+	dsprite  0, -4,  0, -4, $0d, 0
+	dsprite  0, -4,  0,  4, $0e, 0
+	dsprite  0,  4, -1, -4, $18, 0
+	dsprite  0,  4,  0, -4, $19, 0
+	dsprite  0,  4,  0,  4, $1a, 0
 	db -1
 
 .OAM_NotHoldingPiece: ; e1534
-	dsprite -1, -4, -1, -4, $00, $00
-	dsprite -1, -4,  0, -4, $01, $00
-	dsprite -1, -4,  0,  4, $00, $20 ; xflip
-	dsprite  0, -4, -1, -4, $02, $00
-	dsprite  0, -4,  0, -4, $03, $00
-	dsprite  0, -4,  0,  4, $02, $20 ; xflip
-	dsprite  0,  4, -1, -4, $00, $40 ; yflip
-	dsprite  0,  4,  0, -4, $01, $40 ; yflip
-	dsprite  0,  4,  0,  4, $00, $60 ; xflip, yflip
+	dsprite -1, -4, -1, -4, $00, 0
+	dsprite -1, -4,  0, -4, $01, 0
+	dsprite -1, -4,  0,  4, $00, 0 | X_FLIP
+	dsprite  0, -4, -1, -4, $02, 0
+	dsprite  0, -4,  0, -4, $03, 0
+	dsprite  0, -4,  0,  4, $02, 0 | X_FLIP
+	dsprite  0,  4, -1, -4, $00, 0 | Y_FLIP
+	dsprite  0,  4,  0, -4, $01, 0 | Y_FLIP
+	dsprite  0,  4,  0,  4, $00, 0 | X_FLIP | Y_FLIP
 	db -1
 
 UnownPuzzleCoordData: ; e1559