forked from everything8215/ff3
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbattle-ram.txt
673 lines (664 loc) · 50.4 KB
/
battle-ram.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
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
+---------------------------------------------------------------------------+
| |
| FINAL FANTASY III |
| |
+---------------------------------------------------------------------------+
| file: battle-ram.txt |
| |
| description: ram map for battle module |
| |
| created: 12/1/2020 |
| |
| author: [email protected] |
+---------------------------------------------------------------------------+
=============================================================================
| memory overview |
+-----------------+
+-------------+-------------------------------------------------------------+
| address | description |
+-------------+-------------------------------------------------------------+
| $0000-$07FF | 2k internal system ram |
| $0800-$1FFF | system ram mirror |
| $2000-$2007 | ppu registers |
| $2008-$3FFF | ppu register mirror |
| $4000-$401F | apu and i/o registers |
| $4020-$5FFF | unused |
| $6000-$7FFF | 8k cartridge prg-ram (battery) |
| $8000-$9FFF | switchable prg-rom bank 0 |
| $A000-$BFFF | switchable prg-rom bank 1 |
| $C000-$DFFF | prg-rom bank 2 (always bank $3E) |
| $E000-$FFFF | prg-rom bank 3 (always bank $3F) |
+-------------+-------------------------------------------------------------+
=============================================================================
| system ram ($0000-$07FF) |
+--------------------------+
+-------------+-------------------------------------------------------------+
| address | description |
+-------------+-------------------------------------------------------------+
| $0000-$0014 | hardware/system zero page |
| | $00 irq indicator (cleared after irq) |
| | $01 irq enable -> $E000/$E001 |
| | $02 current irq scanline |
| | $03 next irq scanline |
| | $04 monster entry frame counter |
| | $05 nmi indicator (cleared after nmi) |
| | $06 ppu control -> $2000 (nmi) |
| | $07 ppu control -> $2000 (???) |
| | $08 ppu control -> $2000 (irq) |
| | $09 ppu mask -> $2001 (nmi) |
| | $0A ppu mask -> $2001 (irq ???) |
| | $0B - |
| | +$0C ppu scroll -> +$2005 (nmi) |
| | $0E |
| | $0F ppu x scroll (monster entry) |
| | +$10 ppu scroll -> +$2005 (irq) |
| | $12 rlduseba buttons pressed this frame |
| | $13 rlduseba buttons pressed last frame |
| | $14 button repeat counter |
| | $15 rng counter 0 (mostly battle graphics) |
| | $16 rng counter 1 (mostly battle main) |
| | $17 rng counter 2 (unused ???) |
+-------------+-------------------------------------------------------------+
| $0018-$007D | battle main zero page |
| | $18-$4B scratchpad |
| | +$4C battle algorithm pointer |
| | +$4E text buffer offset |
| | $50-$51 rl----ba cursor input button |
| | r: right |
| | l: left |
| | b: B |
| | a: A |
| | $52 current character id |
| | $53 number of characters |
| | $54 magic message type |
| | 0: normal |
| | 1: healing spell damages undead |
| | 2: absorb element |
| | 3: terrain backfired |
| | 4: cast life on undead monster |
| | 5: cast death on undead monster |
| | +$55 pointer to cursor position ??? |
| | +$57 pointer to character sram 1 ($6100) |
| | +$59 pointer to character sram 2 ($6200) |
| | +$5B pointer to character properties ($7575) |
| | +$5D pointer to monster properties ($7675) |
| | $5F current character offset (id * $40) |
| | +$60 |
| | $62 attacker slot * 2 (pointer to $F0) |
| | $63 |
| | $64 target slot * 2 (pointer to $F0) |
| | $65 |
| | $66 attacker slot |
| | $67 |
| | $68 target slot |
| | $69 causes monsters to do nothing ??? |
| | +$6A net damage |
| | $6C-$6D - |
| | +$6E pointer to attacker properties ($7575) |
| | +$70 pointer to target properties ($7575) |
| | $72 show item name in top right window |
| | $73 |
| | $74 player trying to run away (any character) |
| | $75-$77 - |
| | +$78 current damage ($FFFF = null) |
| | +$7A - |
| | $7C total no. of hits |
| | $7D total no. of hits (previous hand) |
+-------------+-------------------------------------------------------------+
| $007E-$00CF | battle graphics zero page |
| | $7E-$92 scratchpad |
| | +$93 battle graphics function pointer |
| | $95 attacker id |
| | +$96 animation function pointer |
| | $98 h-flip character movement for back attack |
| | $99 character status 1 (from $7D9B) |
| | $9A character status 2 |
| | $9B-$9C - |
| | $9D status sprite x position |
| | $9E status sprite y position |
| | $9F status sprite tile id ($FF = none) |
| | $A0 pointer to next character status sprite |
| | +$A1 pointer to status sprite data (32/9EFD) |
| | $A3 character id for status and target numeral sprites |
| | $A4 target mask for target numeral sprites |
| | $A5 character id for target select |
| | $A6 - |
| | $A7 tile flags for status sprite |
| | $A8 y offset for status sprite |
| | $A9 prg-bank is loading (disable sound update) |
| | $AA disable ppu update at irq |
| | $AB loaded prg-bank index |
| | $AC show status and target numeral sprites |
| | $AD target select monster mask |
| | $AE target select character mask |
| | $AF target select column |
| | $B0 target select monster row |
| | $B1 target select type |
| | 0: single monster |
| | 1: all monsters |
| | 2: |
| | 3: |
| | 4: single character |
| | 5: all characters |
| | $B2 target select character row |
| | $B3 ------am |
| | a: target allies by default |
| | m: multi-target allowed |
| | $B4 target mask -> byte $2F of character properties |
| | $B5 target flags -> byte $30 of character properties |
| | $B6 animation frame counter |
| | $B7 persistent frame counter ??? |
| | $B8 target id (for animation) |
| | $B9 slice hit counter |
| | $BA hit animation id |
| | 0: slice |
| | 1: |
| | 2: claw |
| | 3: arrow |
| | 4: shuriken |
| | 5: boomerang |
| | $BB-$BC number of hits (right/left hand) |
| | +$BD animation hits counter |
| | $BF scratchpad for subroutine at 32/98E8 |
| | $C0-$C3 character sprite x positions (current) |
| | $C4-$C7 character sprite y positions |
| | $C8 pointer to next available animation sprite |
| | $C9 sound effect pending |
| | $CA sound effect id |
| | $CB crit flag |
| | $CC ineffective attack |
| | $CD right hand or left hand weapon (0 or 1) |
| | $CE-$CF - |
+-------------+-------------------------------------------------------------+
| $00D0-$00DF | sound/music zero page (see field-ram.txt) |
| $00E0-$00EF | target status buffer (8 * 2 bytes) |
| $00F0-$00FF | attacker status buffer (8 * 2 bytes) |
| ++$0100 | nmi jump code |
| ++$0103 | irq jump code |
| $0106-$01FF | cpu stack |
| $0200-$02FF | sprite (oam) data |
| | $0200-$029F animation sprites (40) |
| | $0200-$023F damage numeral sprites (32) |
| | $0200-$021F character status sprites (8) |
| | $0220-$022F cursor 0 sprites (4) |
| | $0230-$023F cursor 1 sprites (4) |
| | $0260-$029F character target numeral sprites (16) |
| | $02A0-$02FF character sprites (24) |
| $0300-$07FF | see field-ram.txt |
+-------------+-------------------------------------------------------------+
=============================================================================
| prg-ram ($6000-$7FFF) |
+-----------------------+
+-------------+-------------------------------------------------------------+
| address | description |
+-------------+-------------------------------------------------------------+
| $6000-$71FF | map data (see field-ram.txt) |
| $7200-$737F | generic buffer |
| $7380-$73FF | animation sprite data buffer |
| $7400-$747F | generic buffer (battle main) |
| $7480-$754F | saved field dp $00-$CF |
| $7550-$756F | saved field dp $E0-$FF |
| $7570-$7574 | scratchpad |
| $7575-$7674 | character properties (4 * 64 bytes) |
| $7675-$7874 | monster properties (8 * 64 bytes) |
| $7875-$78B4 | summon properties (1 * 64 bytes) |
| | $00 level |
| | $01 abcdefgh status 1 |
| | a: dead |
| | b: stone |
| | c: toad |
| | d: silence |
| | e: mini |
| | f: blind |
| | g: poison |
| | h: near fatal |
| | $02 abcxxppj status 2 |
| | a: paralyzed |
| | b: asleep |
| | c: confused |
| | x: turn counter until status removed |
| | p: partial petrify |
| | j: jumping |
| | +$03 current hp |
| | +$05 max hp |
| | $07-$0E mp |
| | $0E special attack id (monsters) |
| | $0F job level |
| | $10 intelligence |
| | $11 spirit |
| | $12 hewfildr weak elements |
| | h: holy |
| | e: earth |
| | w: wind |
| | f: fire |
| | i: ice |
| | l: lightning |
| | d: dark |
| | r: recovery |
| | $13 m.defense mult. |
| | $14 m.evade % |
| | $15 m.defense |
| | $16 attack elements |
| | $17 attack mult. |
| | $18 hit % |
| | $19 attack power |
| | $1A attack status |
| | $1B attack elements (left hand) |
| | $1C attack multiplier (left hand) |
| | $1D hit % (left hand) |
| | $1E attack power (left hand) |
| | $1F attack status (left hand) |
| | $20 strong/absorbed elements |
| | $21 defense mult. |
| | $22 evade % |
| | $23 defense |
| | $24 status immunity 1 (lsb: absorb strong elements) |
| | $25 |
| | $26 reflect counter |
| | $27 counter for jump and buildup |
| | $28 crit probability (39/BB1A, byte 0) |
| | $29 crit bonus (39/BB1A, byte 1) |
| | $2A run probability (39/BB1A, byte 2) |
| | $2B sleep probability (39/BB1A, byte 3) |
| | $2C m--ahsss attacker flags |
| | m: is a monster |
| | a: using a magic attack |
| | h: using an item |
| | s: character/monster slot |
| | $2D |
| | $2E command id (item/magic id if $2C.3/4 set) |
| | 00: do nothing |
| | 01: asleep/paralyzed |
| | 02: change to front row |
| | 03: change to back row |
| | 04: fight |
| | 05: defend |
| | 06: run |
| | 07: escape |
| | 08: jump 1 |
| | 09: jump 2 |
| | 0A: |
| | 0B: terrain |
| | 0C: peep |
| | 0D: scan |
| | 0E: steal |
| | 0F: buildup |
| | 10: sing |
| | 11: scare |
| | 12: cheer |
| | 13: |
| | 14: item |
| | 15: magic |
| | $2F target mask |
| | $30 m??????? target flags |
| | m: monster target |
| | $31 s---habn right hand item type |
| | $32 s---habn left hand item type |
| | s: shield |
| | h: harp |
| | a: arrow |
| | b: bow |
| | n: normal |
| | $33 fil--wwr (element boosts are bugged, see 31/AF16) |
| | f: fire spells boosted |
| | i: ice spells boosted |
| | l: lightning spells boosted |
| | w: weapon type |
| | 0: none |
| | 1: normal |
| | 2: harp |
| | 3: bow and arrow |
| | r: battle row (back row if set) |
| | $34 |
| | $35 aabbccdd job exp. multipliers (39/BB1A byte 4) |
| | a: command 0 |
| | b: command 1 |
| | c: command 2 |
| | d: command 3 |
| | $36 ---iiiii |
| | i: item set |
| | $37 special attack rate |
| | $38-$3F special attack script (monsters) |
| | $38 right hand weapon attack bonus (characters) |
| | $39 left hand weapon attack bonus (characters) |
| | $3E used an equipped item (characters) |
| | $3F used item id (characters) |
| +$78B5 | reflected target pointer |
| $78B7 | special attack script pointer |
| $78B8 | menu window width (in a single tilemap sector) |
| $78B9 | menu window width (overflow into the other sector) |
| $78BA | battle type (for battle main) |
| | $00: normal battle |
| | $01: strike first (cleared after first round) |
| | $80: ambushed (cleared after first round) |
| | $88: back attack (msb cleared after first round) |
| $78BB-$78C2 | character status for display (4 * 2 bytes) |
| | $78BB abcdefgh status 1 |
| | a: dead |
| | b: stone |
| | c: paralyzed |
| | d: asleep |
| | e: confused |
| | f: toad |
| | g: silence |
| | h: mini |
| | $78BC abc----- status 2 |
| | a: blind |
| | b: poison |
| | c: near fatal |
| $78C3 | battle type for graphics |
| | $00: normal battle |
| | $80: ambushed |
| | $88: back attack |
| $78C4-$78C7 | status id to display in character hp window ($FF = none) |
| | 0: paralyzed |
| | 1: asleep |
| | 2: confused |
| | 3: silence |
| | 4: blind |
| | 5: poison |
| | 6: near fatal |
| | 7: partial petrify |
| $78C8 | - |
| $78C9-$78CE | saved stats for defense/bite ($13-$15 and $21-$23) |
| $78CF-$78D2 | battle command used by each character (hp window display) |
| $78D3 | dv----r- battle end condition |
| | d: defeat |
| | v: victory |
| | r: ran away |
| $78D4 | targets that are running away (mask) |
| $78D5 | action script id |
| | 00: fight |
| | 01: magic/command |
| | 02: display message |
| | 03: airship cannon attack |
| | 04: skill/level up message ??? |
| | 05: poison damage |
| $78D6 | top left message (attacker id, msb: monster) |
| $78D7 | top right message (see 34/90A0) |
| $78D8 | middle left message (target id, msb: monster) |
| $78D9 | middle right message (status) |
| $78DA-$78E3 | bottom message queue (battle messages) |
| $78E4-$78ED | message variable queue |
| $78EE | battle message queue size |
| $78EF | message variable queue size |
| $78F0-$78FF | number of times each battle command was used (4 * 4 bytes) |
| $7900-$7ABF | generic buffer (battle graphics) |
| +$7AC0 | pointer to menu window text buffer |
| $7AC2 | attack queue pointer |
| $7AC3-$7AC6 | selected command slot for each character |
| $7AC7-$7ACA | spell level or summon id for each character |
| $7ACB-$7AD6 | action attacker id ??? (msb: character/monster) |
| $7AD7-$7AF4 | text buffer |
| $7AF5-$7AFC | left/right hand equipped item buffer |
| $7AFD-$7B3C | inventory buffer |
| $7B3D-$7B40 | left/right hand item usability for current character |
| $7B41-$7B60 | inventory item usability for current character |
| $7B61-$7BE0 | - |
| $7BE1 | characters using magic ??? (1 bit per character) |
| $7BE2 | number of turns since last barrier shift (amon/hein) |
| $7BE3-$7CE2 | random number table |
| $7CE3 | battle bg id (for terrain) |
| $7CE4-$7CE7 | saved defense value for each character (defend command) |
| $7CE8 | set to $FF when using potion, hi-potion, or elixir |
| $7CE9 | target is in back row |
| $7CEA | saved front/back row flag |
| $7CEB | disable character hp window update |
| $7CEC | characters that are near fatal (mask) |
| +$7CED | battle id |
| $7CEF | battle bg id / palette offset (see 3F/F877) |
| $7CF0-$7CF2 | palette buffer |
+-------------+-------------------------------------------------------------+
| $7CF3 | nonzero after first turn (screen on ???) |
| $7CF4 | frame counter for character running animation ??? |
| $7CF5 | - |
| $7CF6 | current prg bank |
| $7CF7-$7D16 | color palettes |
| | 0: monster palette 0 |
| | 1: monster palette 1 |
| | 2: battle bg palette |
| | 3: menu window palette |
| | 4: character palette 0 |
| | 5: character palette 1 |
| | 6: character palette 2 |
| | 7: cursor/animation palette |
| $7D17-$7D26 | monster attribute data |
| $7D27-$7D66 | bg/monster attribute table |
| $7D67 | monster set |
| $7D68 | ?bmmmmmm |
| | b: boss battle |
| | m: monster count index |
| $7D69 | monster palette 1 |
| $7D6A | monster palette 2 |
| $7D6B-$7D6E | monster ids |
| $7D6F-$7D72 | monster counts |
| $7D73-$7D7A | sssggggg b?aaaaaa (4 * 2 bytes) |
| | s: monster graphics size/bank |
| | g: monster graphics / boss tilemap id |
| | b: set for bosses (monsters 128-255) ??? |
| | a: attribute data id |
| $7D7B | monster tilemap id |
| $7D7C | - |
| $7D7D | character movement direction |
| | 0: forward |
| | 1: backward |
| $7D7E | - |
| $7D7F-$7D82 | character x positions (destination, for animation) |
| $7D83-$7D86 | character animation frame, flip if msb set (see 32/972E) |
| | 00: none |
| | 01: walking |
| | 02: normal |
| | 03: kneeling |
| | 04: animated |
| | 05: cheer command |
| | 06: left arm forward |
| | 07: jump 1 |
| | 08: scare, defend, jump 2 |
| | 09: dead |
| | 0A: walking (toad/mini) |
| | 0B: normal (toad/mini) |
| | 0C: kneeling (toad/mini) |
| | 0D: ??? (toad/mini) |
| | 0E: scare, defend, cheer (toad/mini) |
| | 0F: hit (toad/mini) |
| | 10: ??? (toad/mini) |
| | 11: character 0 victory cheer |
| | 12: character 1 victory cheer |
| | 13: character 2 victory cheer |
| | 14: character 3 victory cheer |
| $7D87-$7D8A | saved character animation frame |
| $7D8B-$7D8E | character jobs |
| $7D8F-$7D92 | character battle row |
| | 0: front row |
| | 1: back row |
| $7D93-$7D96 | character palette ids |
| $7D97-$7D9A | character palette override (palette 3 for stone ???) |
| $7D9B-$7DA2 | status buffer from $78BB (4 * 2 bytes) |
| | $7D9B abcdefgh status 1 |
| | a: dead |
| | b: stone |
| | c: paralyzed |
| | d: asleep |
| | e: confused |
| | f: toad |
| | g: silence |
| | h: mini |
| | $7D9C abc?r??x status 2 |
| | a: blind |
| | b: poison |
| | c: near fatal |
| | r: facing right (back attack) |
| | x: facing backwards (confused) |
| $7DA3-$7DA6 | character graphics type |
| | 0: normal |
| | 1: dead |
| | 2: toad |
| | 3: mini |
| $7DA7-$7DAE | monster types ($FF if dead) |
| $7DAF-$7DB6 | monster types |
| $7DB7-$7DBA | copied from $78C4-$78C7 but for animated status graphics |
| +$7DBB | ppu address for battle bg graphics loader |
| +$7DBD | ram address for battle bg graphics loader |
| $7DBF | frame counter for battle bg graphics loader |
| $7DC1-$7DC4 | don't h-flip character movement if confused |
| +$7DC5 | ppu address for stone tilemap |
| +$7DC7 | source address for stone tilemap (bank 2F) |
| $7DC9 | stone tilemap transfer size |
| $7DCA | monsters to show/hide (dead, mini, ran away, summon, etc.) |
| +$7DCB | monster death gradient direction ??? (+1 or -1) |
| $7DCD | - |
| $7DCE-$7DD1 | number of monsters of each type remaining |
| $7DD2 | total number of monsters remaining |
| $7DD3-$7DD6 | number of monsters of each type that grant experience |
| $7DD7-$7DE6 | monster center positions (8 * 2 bytes) |
| $7DE7-$7DF6 | monster cursor positions (8 * 2 bytes) |
| $7DF7-$7E06 | monster top-left positions (8 * 2 bytes) |
| $7E07-$7E0E | monster bottom y positions (8 * 1 byte) |
| $7E0F-$7E12 | selected targets for each character |
| $7E13 | right hand weapon graphics |
| $7E14 | right hand weapon palette |
| $7E15 | left hand weapon graphics |
| $7E16 | left hand weapon palette |
| $7E17 | right hand hit palette ??? |
| $7E18 | left hand hit palette ??? |
| $7E19 | buildup overloaded |
| $7E1A-$7E1E | - |
| $7E1F | right hand weapon animation id |
| $7E20 | left hand weapon animation id |
| | 0: unarmed |
| | 1: axe, spear, knife, sword |
| | 2: nunchuck, rod, staff, hammer |
| | 3: bow |
| | 4: harp |
| | 5: boomerang |
| | 6: fullmoon |
| | 7: shuriken |
| | 8: arrow |
| | 9: claw |
| $7E21 | - |
| $7E22-$7E25 | saved character x position while jumping |
| $7E26-$7E2F | vector distances for x-component |
| $7E30-$7E39 | vector distances for y-component |
| $7E3A-$7E43 | vector angles for x-component |
| $7E44-$7E4D | vector angles for y-component |
| $7E4E | sine function amplitude multiplier |
| $7E4F-$7E5E | target damage (for damage numerals) |
| $7E5F-$7E6E | attacker damage (for damage numerals) |
| $7E6F | target is a monster |
| +$7E70 | damage numeral value |
| $7E72 | hmssssss damage numeral flags |
| | h: healing (green text) |
| | m: miss |
| | s: slot id |
| $7E73 | damage numeral bounce counter |
| $7E74-$7E77 | - |
| $7E78-$7E87 | saved color palettes ??? |
| $7E88 | magic spell id |
| $7E89 | magic animation targets |
| $7E8A | drain animation target counter |
| $7E8B | abc----- magic graphics flags |
| | a: pre-animation type (0 = black, 1 = white) |
| | b: tile offset msb |
| | c: align with center/bottom of character sprite ??? |
| $7E8C | magic graphics tile offset |
| $7E8D | magic palette id |
| $7E8E | enable monster flash palette |
| $7E8F | monsters to flash (mask) |
| $7E90 | palette for flash |
| $7E91 | summon id |
| $7E92 | summon attack id (0, 1, or 2) |
| $7E93 | enable battle message ??? |
| $7E94 | aaaabbbb |
| | a: summon id |
| | b: summon attack id (0, 1, or 2) |
| $7E95 | summon sprites wrap around screen in x direction |
| $7E96 | character vs. character (don't show weapon projectiles) |
| $7E97 | attack animation id |
| $7E98 | attacker (mask) |
| $7E99 | targets (mask) |
| $7E9A | at?????? target flags |
| | a: attacker is a monster |
| | t: target is a monster |
| $7E9B | targets hit (mask) ??? |
| $7E9C | magic animation script offset |
| $7E9D | magic animation id |
| | 00: normal |
| | 01: kill |
| | 02: quake |
| | 03: meteo, cave-in |
| | 04: drain |
| | 05: life, life 2 |
| | 06: summon, split |
| | 07: brak2 |
| | 08: toad |
| | 09: flare wave |
| | 0A: tsunami |
| | 0B: glare, mind blast, mega flare |
| | 0C: explode |
| | 0D: mini |
| | 0E: earthquake |
| | 0F: none |
| | 10: flame |
| | 11: blizzard |
| | 12: thunder |
| $7E9E-$7EB7 | related to monster death animation ??? |
| $7EB8 | reflected target mask |
| $7EB9-$7EC0 | targets reflected onto |
| $7EC1 | current target slot |
| $7EC2 | action id (for animation) |
| $7EC3 | summon attack ??? |
| $7EC4-$7ECB | monster status for graphics ??? |
| $7ECC | animation frames to skip if life/life2 hits |
| $7ECD-$7ED4 | monster types (from $7DA7) |
| $7ED5 | for explosion animation (0: mega flare, 2: cannon blast) |
| $7ED6 | saved Y register for function at 33/A7A5 |
| $7ED7 | saved X register for function at 33/A7A5 |
| $7ED8 | bacmt--s battle flags |
| | b: boss battle |
| | a: characters can't use magic |
| | c: cannon blast |
| | m: can't use mini |
| | t: world id for terrain attacks |
| | 0: floating continent |
| | 1: surface world |
| | s: disable run, scare, escape (characters and monsters) |
| | also starts special attack script pointer at 1 ($78B7) |
| $7ED9-$7EDE | saved interrupt jump code |
| $7EDF | knight target using cover |
| $7EE0 | target being covered |
| $7EE1 | split monster type ??? |
| $7EE2 | no character fade in after summon animation (chocobo dash) |
| $7EE3-$7EF4 | sine/cosine function (copied from 2E/9F6C) |
| $7EF5-$7F06 | bank 10 final boss animation jump code (copied from 2E/9F7E)|
| $7F07-$7F3F | - |
+-------------+-------------------------------------------------------------+
| $7F40-$7FFF | sound/music ram (see field-ram.txt) |
+-------------+-------------------------------------------------------------+
=============================================================================
| ppu ram |
+---------+
+-------------+-------------------------------------------------------------+
| address | description |
+-------------+-------------------------------------------------------------+
| $0000-$037F | |
| $0380-$03DF | stone + toad bg graphics |
| $03E0-$045F | stone + mini bg graphics |
| $0460-$05FF | character stone bg graphics |
| $0600-$06FF | battle bg graphics |
| $0700- | monster graphics |
| $1000-$100F | empty tile |
| $1010-$139F | character graphics (14 tiles each) |
| $13A0-$16FF | animation graphics |
| $1700-$1FFF | menu graphics |
| $2000-$209F | battle bg tilemap 1 |
| $20A0-$225F | battlefield tilemap 1 |
| $2260-$23BF | menu tilemap 1 |
| $23C0-$23FF | tilemap 1 attribute data |
| $2400-$249F | battle bg tilemap 2 |
| $24A0-$265F | battlefield tilemap 2 |
| $2660-$27BF | menu tilemap 2 |
| $27C0-$27FF | tilemap 2 attribute data |
| $2800-$3EFF | mirror of $2000-$27FF |
| $3F00-$3F1F | color palette |
| $3F20-$3FFF | mirror of $3F00-$3F1F |
+-------------+-------------------------------------------------------------+