-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathco-op.txt
216 lines (196 loc) · 6.72 KB
/
co-op.txt
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
List A: RAM Map
0DA3 : Controller Data 1: byetUDLR
0DA5 : Controller Data 2: axlr0000
0DA7 : Controller Data 1, 1 frame
0DA9 : Controller Data 2, 1 frame
0DB3 : 2-player flag
0DB4 : P1 Lives
0DB5 : P2 lives
0DB9 : CDUPPWDS flags. Carrying, Debug, looking Up, Powerup, in Water, Ducking, Spinjumping
0F3A : Address from which to upload Mario's 8x8 tiles (16-bit)
0F3C : Address from which to upload Mario's head tile (16-bit)
0F3E : Address from which to upload Mario's foot tile (16-bit)
0F42 : Address from which to upload Luigi's 8x8 tiles (16-bit)
0F44 : Address from which to upload Luigi's head tile (16-bit)
0F46 : Address from which to upload Luigi's foot tile (16-bit)
0F3A : On the OW, the 24-bit address from which to upload Mario's palette - set low bytes to FFFF to disable OW uploads
0F3D : On the OW, the 24-bit address from which to upload Mario's OW tile
0F42 : On the OW, the 24-bit address from which to upload Luigi's palette
0F45 : On the OW, the 24-bit address from which to upload Luigi's OW tile
0F5E : unused!
0F5F : unused!
0F60 : sprite index of platform luigi is riding on, #$FF if luigi is not riding on anything
0F61 : number of enemies bounced on
0F62 : number of enemies killed w/ star
0F63 : ----LLMM flags. 00 - Died 01 - Bubble 10 - Inactive, but effecting play 11 - active
0F64 : Transtimeline messaging flags: ------RJ standing on Rotating Plat/Jump Autocorrect flag
0F65 : sprite index of luigi
0F66 : Time until relevant player should respawn in bubble
0F67 : Used to simulate weightlessness of mario - used for mario's yspeed since that'll be gravity'd every frame
0F68 : Number of lives to give Luigi. like $18E4
0F69 : Kind of slope Luigi is on. like $13EE
0F6A : -USBECNP flags. Water Surface, Sliding, Behind scenery, climbing-on-Edge, Climbing, climbing-on-Net, Sprinting
0F6B : unused!
0F6C : unused!
0F6D : unused!
0F6E : unused!
0F6F : unused!
0F71 : unused!
142C-142F: various scratch
sprites:
142C is the previous frame's 0F60 value
objects:
???
1504,x: Current animation. See List B. Set high bit to teleport afterwards.
1510,x: Current frame, $13E0 values
151C,x: Animation Timer. Like $1496. Also used for the time to show feet peddling frames and swimming frames
1528,x: Will always be #$75. Used to identify sprite.
1534,x: Cape image. Like $13DF
1540,x: Flashing timer
154C,x: timer to show picking up frame or kicking frame
1558,x: used to indicate whether or not player is turning around. Used in graphics rt and sliding-smoke
1564,x: Time to show fireball frame
1570,x: star timer
157C,x: direction. 0=left 1=right
1588,x: like mario's $77 - Player Blocked Status
1594,x: cape frame timer
15AC,x: unused
1602,x: unused
160E,x: unused
163E,x: Dash timer
164A,x: sprite's buoyancy. 1 if in water/lava/etc
7FAC60: Sprite table for number of vertical pixels moved per frame
7FAC6C: Sprite table for number of horizontal pixels moved per frame
7FAC78: Sprite table for previous frame's y-clip
7FAC84: Sprite table for previous frame's x-clip
List A2: Reserved OAM:
Mario:
0310 - Head (0464, 0411 low)
0314 - Foot (0465, 0411 mlow)
0318 - Top 8x8 (0466, 0411 mhigh)
031C - Bottom 8x8 (0467, 0411 high)
0320 - Cape (0468, 0412 low)
Luigi:
0328 - Head (0469, 0412 mhigh)
032C - Foot (046A, 0412 high)
0330 - Top 8x8 (046B, 0413 low)
0334 - Bottom 8x8 (046C, 0413 mlow)
0338 - Cape (046D, 0413 mhigh)
Bubble:
033C - Top Left (046E, 0413 high)
0340
0344 - Who cares
0348
034C
List B: Animations ($1504,x + $151C,x)
00 - Nothing
01 - Pipe Walk Left
02 - Pipe Walk Right
03 - Pipe Up
04 - Pipe Down
05 - Freeze
06 - Get Hurt
07 - Get Mushroom
08 - Get Flower
09 - Shoot from Diagonal Pipe
0A - Get Cape
List C: Graphical frames ($0F3A/$1510,x)
00 - Standing
01 - Walk 1
02 - Walk 2
03 - Sprint 1
04 - Sprint 2
05 - Sprint 3
06 - Carrying, Standing
07 - Carrying, Walk 1
08 - Carrying, Walk 2
09 - Jump
0A - Face Screen (Spinjump 1)
0B - Face Background (Spinjump 2)
0C - Ducking
0D - Looking Up
0E - Turning
0F - Fireball
10 - Climbing
11 - Victory Pose
12 - Carrying, Ducking
13 - Kicking
14 - Falling
15 - Death
16 - Sliding
17 - Carrying, Looking up
18 - Jumping, Fireball
19 - Jumping, Sprinting
1A - Swim A
1B - Swim B
1C - Swim C
1D - Swim D
1E - Swim E
List D: TODOs
-what is $0DBE for? - DONE It's mario's lives silly!
-add addr for minor animation timing: walking, running, climbing etc. also add climbing flipping - DONE
-ANIMATIONS! - DONE
-Boss doors
-regular doors only entered at certain points
-Finish slope interaction
-Fix running through slopes... is this even possible? OF COURSE IT IS!
-Transition frame address from 1510,x to 0F42 - DONE - UNDONE
-Restore hijacks from DSX.asm; transfer all DMA code to the extiles hijack. - DONE
-Fix frame of layer priority issues for pipes - DONE
-Fix images walking in pipes - DONE
-Fix goal march victory posing - DONE
-Add CMC player names, overworld - DONE
-Pester Miles for OW graphics - DONE
-Names in life swap/scorecard
-Fix SB and SC tail positioning for runjump/firejump - DONE
-Do something about title sequence
-Expanding/shrinking turnblocks in Iggy castle - DONE
-L3 crushers
-Swinging Platforms: more than one at once - DONE
-Add few frames of foot pedaling in midair
-Replicate mario motion after victory sign
-Transition away from sprite dependancy
--Reorganize RAM - WIP
--Redo Speed routines - DONE
--Add hijack somewhere - DONE
--Remove ref to inserted sprite - DONE!!!
-comment hijacks in afterthoughts/simjack
-Coin game cloud interaction
-Add global sprite state for "carried by p2", or something equally absurd
-Triple-arm rotating platforms - DONE
-Enemies need to hate both players equally
--boo
--yellow koopa
--bat
--chuck - DONE
-Make sure slowdown isn't dumb and easily fixable
-Dry bones
-Escalators
-Make screen scroll trigger on p2 climbing/sprinting
-Players die when they go off the bottom of the screen in vertical levels
-Disable p1 cape powers I hate
-Friction on checkerboard platforms - DONE
-Podobo graphics
-Climbing frame is wrong?? who did this
List E: things to change to add another carrying sprite state
00FB69 - Transform to goal-end item
018133 - Mode table
019399 - Whether to do object interaction?
0193CA - Whether to reverse direction when hitting wall?
01A4C9 - Cases for killing sprites with kicked object
01A4DD - ^
01A501 - ^
01A515 - ^
01A529 - ^
01AA66 - Actually picking something up
01C1F5 - Goal-end items opting out of some processing
01C2D8 - Setting something down?
01C2F2 - ^
01C3B5 - Goal-end items, unknown
01C704 - Goal-end items, physics
01E1F6 - Check for key-keyhole contact
01E6DA - Pick up item?
028636 - Pick up purple block
0293B6 - Opt out of some interaction processing?
02AC08 - Find the sprite mario is currently carrying for subscreen exit
02AC1D - Carrying the sprite in the new level