1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
SpriteFacingAndAnimationTable:
; This table is used for overworld sprites $1-$9.
dw .StandingDown ; facing down, walk animation frame 0
dw .WalkingDown ; facing down, walk animation frame 1
dw .StandingDown ; facing down, walk animation frame 2
dw .WalkingDown2 ; facing down, walk animation frame 3
dw .StandingUp ; facing up, walk animation frame 0
dw .WalkingUp ; facing up, walk animation frame 1
dw .StandingUp ; facing up, walk animation frame 2
dw .WalkingUp2 ; facing up, walk animation frame 3
dw .StandingLeft ; facing left, walk animation frame 0
dw .WalkingLeft ; facing left, walk animation frame 1
dw .StandingLeft ; facing left, walk animation frame 2
dw .WalkingLeft ; facing left, walk animation frame 3
dw .StandingRight ; facing right, walk animation frame 0
dw .WalkingRight ; facing right, walk animation frame 1
dw .StandingRight ; facing right, walk animation frame 2
dw .WalkingRight ; facing right, walk animation frame 3
; The rest of this table is used for sprites $a and $b.
; All orientation and animation parameters lead to the same result.
; Used for immobile sprites like items on the ground.
dw .StandingDown
dw .StandingDown
dw .StandingDown
dw .StandingDown
dw .StandingDown
dw .StandingDown
dw .StandingDown
dw .StandingDown
dw .StandingDown
dw .StandingDown
dw .StandingDown
dw .StandingDown
dw .StandingDown
dw .StandingDown
dw .StandingDown
dw .StandingDown
; special case
dw .SpecialCase ; pikachu maybe?
; Tables used as a reference to transform OAM data.
; Format:
; db y, x, attributes, tile index
.StandingDown:
db 4 ; #
db 0, 0, $00, 0
db 0, 8, $01, 0
db 8, 0, $02, OAMFLAG_CANBEMASKED
db 8, 8, $03, OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA
.WalkingDown:
db 4 ; #
db 0, 0, $80, 0
db 0, 8, $81, 0
db 8, 0, $82, OAMFLAG_CANBEMASKED
db 8, 8, $83, OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA
.WalkingDown2:
db 4 ; #
db 0, 8, $80, OAM_HFLIP
db 0, 0, $81, OAM_HFLIP
db 8, 8, $82, OAM_HFLIP | OAMFLAG_CANBEMASKED
db 8, 0, $83, OAM_HFLIP | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA
.StandingUp:
db 4 ; #
db 0, 0, $04, 0
db 0, 8, $05, 0
db 8, 0, $06, OAMFLAG_CANBEMASKED
db 8, 8, $07, OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA
.WalkingUp:
db 4 ; #
db 0, 0, $84, 0
db 0, 8, $85, 0
db 8, 0, $86, OAMFLAG_CANBEMASKED
db 8, 8, $87, OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA
.WalkingUp2:
db 4 ; #
db 0, 8, $84, OAM_HFLIP
db 0, 0, $85, OAM_HFLIP
db 8, 8, $86, OAM_HFLIP | OAMFLAG_CANBEMASKED
db 8, 0, $87, OAM_HFLIP | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA
.StandingLeft:
db 4 ; #
db 0, 0, $08, 0
db 0, 8, $09, 0
db 8, 0, $0a, OAMFLAG_CANBEMASKED
db 8, 8, $0b, OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA
.WalkingLeft:
db 4 ; #
db 0, 0, $88, 0
db 0, 8, $89, 0
db 8, 0, $8a, OAMFLAG_CANBEMASKED
db 8, 8, $8b, OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA
.StandingRight:
db 4 ; #
db 0, 8, $08, OAM_HFLIP
db 0, 0, $09, OAM_HFLIP
db 8, 8, $0a, OAM_HFLIP | OAMFLAG_CANBEMASKED
db 8, 0, $0b, OAM_HFLIP | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA
.WalkingRight:
db 4 ; #
db 0, 8, $88, OAM_HFLIP
db 0, 0, $89, OAM_HFLIP
db 8, 8, $8a, OAM_HFLIP | OAMFLAG_CANBEMASKED
db 8, 0, $8b, OAM_HFLIP | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA
.SpecialCase:
db 9 ; #
db -4, -4, $00, 0
db -4, 4, $01, 0
db -4, 12, $00, OAM_HFLIP
db 4, -4, $01, 0
db 4, 4, $02, 0
db 4, 12, $01, 0
db 12, -4, $00, OAM_VFLIP | OAMFLAG_CANBEMASKED
db 12, 4, $01, OAMFLAG_CANBEMASKED
db 12, 12, $00, OAM_VFLIP | OAM_HFLIP | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA
|