-
Notifications
You must be signed in to change notification settings - Fork 0
/
bank_ram.inc
3396 lines (2587 loc) · 252 KB
/
bank_ram.inc
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
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
; история перемещения адресов
; 0602 -> 015E
; 0603 -> 015F
; 0604-0623 -> 0160-017F
; 0042-003C
; список свободных адресов
; 0029
; 002B
; 002D
; 003C
; 0042-0047 (06)
; 004A
; 0079-0085 (0D)
; 008D
; 00C0-00CE (0F)
; 00D0-00DF (10)
; 00F8-00FB (04) можно использовать для nmi как temp
; 00F2-00F7 (06)
; 0100-0103 (04)
; 012D
; 0181-01BF (40)
; 03C2-03FF (3E)
; 0602-0603 (02)
; 0620-0621 (02)
; 0679
; 067C-067F (04)
; 06D0-06D1 (02)
; 06F1-06F2 (02)
; 06FC-06FF (04)
; 07F5-07F9 (05)
; список бесполезных адресов
; 0087
; 00A4
; 00A5
; 00A7
; 00B8
; 00BD
; 00BE
; 00BF
; 06F1
; 06F9
; индексы объектов
; 00 = перс слева
; 01 = перс справа
; 02 = обычная атака перса слева
; 03 = обычная атака перса справа
; 04 = суперка перса слева
; 05 = суперка перса справа
; 06 = мяч
; 07 = сплинтер
; 08 = ???
; 09 = ???
; 0A = hitspark от атаки перса слева
; 0B = hitspark от атаки перса справа
; 0C = ???
; 0D = ???
; 0E = ???
; 0F = ???
; ($indirect),Y
ram_0000 = $0000 ; 024144 024159 02415F 024163 0243AC 024540 024546 02454A 024554 0245FC 024600 024654 024698 024828 024843 024949 02494F 024AF8 024AFE 024BDD 0251BC 0251C4 0251EC 025B73 025B7D 025B87 025B97 025BA7 025BB1 025BC3 025BDE 025BE8 025C23 025C39 025CEF 025CF5 025D8A 025DA0 02600C 02600E 026204 02620B 02621D 02622D 026235 026268 0269E4 026A4D 02701B 02701D 027026 02703C 027074 027C54 027C6A 027C87 02BE20 02BE2A 02BE4C 02BE60 02BE76 02BEDB 02BEF2 02C1F0 02C1F2 02C30C 02C30E 02C324 02C334 02C33B 02E7D0 02EEA9 02FD48 02FEB5 03008B 034013 034019 0381F2 0382F7 0382F9 03830D 038325 03832E 038330 03833E 03835B 038361 03836F 03839A 038464 038466 0384F1 038753 03875C 038762 03877B 038783 038B31 038B3A 038BFF 038C0B 038C42 038C4E 038E1F 038E22 038E33 038E3B 038E3D 038E52 038E63 038E67 038E6B 038E6D 038E96 038EA1 038EDF 038EEA 038F9B 039015 039019 039037 039039 03904A 039051 039056 03934E 039379 03937D 039382 0393E4 03941B 03942D 03943F 039460 03949B 039B8A 039F5A 039F7A 039FBF 039FF7 039FF9 03A056 03A171 03A17D 03A19B 03A19D 03A1B7 03A1B9 03A1C0 03A1C2 03A39F 03A3CB 03A721 03A72A 03A72F 03A737 03D04C 03D062 03D064 03D09A 03D0B6 03D191 03D19F 03D1A3 03D1AE 03D1B5 03D1C5 03D1CE 03D1D2 03D1DD 03D1EA 03D1FE 03D202 03D230 03D246 03D35D 03D3D8 03D3E3 03D3F8 03D435 03D43F 03D49E 03D4A4 03D4C6 03D770 03D832 03DD1A 03DD6F 03DEA5 03DEBB 03DF5F 03DF7C 03DF95 03DFAE 03E167 03E16B 03E2A1 03E2AC 03E637 03E63D 03E931 03EA27 03EA2D 03EA4B 03EA66 03EA82 03EA96 03EB51 03EB53 03EB5B 03EB71 03EBBA 03EBD0 03EBDD 03EBF3 03EC00 03F066 03F1A0 03F1BE 03F21F 03F307 03F319 03F31E 03F348 03FE28 03FE30 03FE3E
ram_0001 = $0001 ; 02411E 024126 024128 024138 024146 0241E9 0242B8 02482D 02484D 024BE2 0250D4 025132 02626D 0269EF 026A5B 026D35 02703A 027045 027047 02705B 027154 027156 027178 027184 027186 027DBA 02BE28 02BE2C 02BE44 02BE48 02BEE0 02BEED 02BF06 02C31C 02C32A 02E7D5 02EE98 02EF56 02EF5B 030090 0381F7 03830B 038311 03831A 03831C 038366 038368 03846F 038756 03875E 038766 038770 038793 038797 038BFD 038C03 038C1F 038E26 038E2F 038E39 038E48 038E4C 03935F 03938B 0393E9 0393F3 0393F7 03941D 039428 039438 03945D 039491 039B8F 039F63 039FC4 03A176 03A196 03D04F 03D068 03D17A 03D183 03D18D 03D193 03D197 03D1A5 03D1AA 03D1B0 03D1C7 03D1D5 03D1E6 03D1EC 03D1F0 03D1FC 03D35F 03D4A2 03D4A8 03D4C2 03D782 03D819 03D820 03DF8B 03DF8D 03DF90 03E29A 03E2BA 03EA50 03EA61 03EBB0 03EBBE 03EBCA 03F06B 03F1A2 03F1A8 03F1BE 03F1C3 03F1C5 03F21F 03F30D 03F319 03F31E 03F353
; ($indirect)
ram_0002 = $0002 ; 0250DD 0250E7 026276 026A36 026A56 026D7F 026D94 026DC2 026DE5 027050 027055 027CB2 027CBE 027F19 027F2D 027F2F 02BE16 02BE35 02BE3D 02BEE6 02BF02 02F7C4 02F7D6 030096 0300B6 038474 038759 038760 03876A 038772 03878D 038791 038E46 03935F 039391 039406 03942A 039450 03946A 039484 0394A7 0394B7 0394C4 039F6E 039FC9 03A17B 03A191 03D053 03D3AE 03D3BB 03D787 03D85A 03D861 03E284 03E2B3 03E642 03E64C 03EAA1 03F09C 03F0A9 03F0B3 03F0BD 03F0C1 03F0D1 03F1BE 03F21F 03F309 03F348
ram_0003 = $0003 ; 02627B 026A3E 026A64 026DC2 026DE8 027F3F 027F59 027F5D 027F61 027F6E 027F77 02BE33 02BE3F 03847F 03848A 0384E1 0384E5 03876E 038799 038A83 038E58 038E61 03935F 03938B 0393FB 03940B 03940E 039411 039414 039417 039441 039F72 039F74 039F77 039F93 039F95 039FA0 039FB6 03A16C 03D047 03D058 03D05A 03D358 03D376 03D7FF 03D878 03E289 03E2B5 03EA92 03F0CF 03F0D6 03F0DB 03F1BE 03F21F 03F30F 03F353
; 0004-0007 (04) temp
ram_0004 = $0004 ; 026A43 026A5D 026D37 026DB3 026DC5 026DCA 026DE1 026F23 026F5C 027D68 027D71 027D78 02BE0E 02BE4E 038484 03848C 0384E7 0384EB 038779 038785 03935F 039391 039419 03943A 03A116 03A121 03A147 03A156 03A161 03A18A 03BF33 03D042 03D05C 03D356 03D378 03EA5D 03EA87 03EF0F 03EF17 03EF1A 03EF25 03EF28 03F1BE 03F21F 03F342 03F345
ram_0005 = $0005 ; 0269F4 026A34 026DB5 026DCD 026DD5 026DEF 027DF3 027F21 027F38 027F3A 039443 039453 03947A 039496 0394B5 03D044 03D38C 03D395 03D735 03D73D 03D794 03D79E 03EA58 03EF05 03EF11 03EF15 03EF20 03EF23 03F1BE 03F21F 03F34D 03F350
ram_0006 = $0006 ; 0269F9 026A3C 027DA2 027DBE 038488 038495 0384A4 03943C 03944E 039477 03949D 0394BA 03D78C 03D7EE 03D7F2 03D80B 03D845 03F1BE 03F21F
ram_0007 = $0007 ; 038493 0384A6 03D7F5 03D84D 03F1BE 03F21F
; ($indirect),Y
ram_0008 = $0008 ; 025065 02508B 025A08 025A50 025A83 025ABF 025AC5 025B25 025B47 025B60 025B71 025C0B 025C21 025C31 025C4C 025C5D 025C65 025CEB 025D04 025D10 025D63 025D80 025D86 025D8E 026ABF 026B4B 026B5A 026C4D 026C53 027167 027CEA 027D1A 02C13B 02C13D 02C142 02FCA2 03414E 034156 03837A 03837C 03838C 03A038 03A03F 03A043 03A048 03A112 03A11D 03A123 03A12D 03D7DC 03D7E7 03D887 03E301 03E303 03E314 03E328 03E5F0 03E5FC 03E61C 03E62D 03E639 03E654 03E682 03EE1C 03EE1E 03F040 03F042 03F047 03F1BE 03F21F
ram_0009 = $0009 ; 025074 025086 025A0E 025A2D 025A39 025A6F 025BF2 025C03 025C0D 025C4E 025C5F 025C67 025C70 025CD4 025CED 025D12 025D61 025DD7 026A1F 026AA8 026AE1 026AEF 026AF7 02716C 03A03D 03A048 03D7EC 03D884 03F1BE 03F21F
; ($indirect),Y
ram_000A = $000A ; 02507C 025080 03425E 038478 0384F8 03A028 03A02F 03A033 03A048 03D731 03D743 03D7AE 03D874 03F1BE 03F21F 03F744
ram_000B = $000B ; 0269A1 0269A8 034263 03A02D 03A048 03D838 03D83E 03F1BE 03F21F
; 000C-000F (04) temp
ram_000C = $000C ; 026CF8 026D19 027D2F 027D3F 0344B0 03A00B 03A00E 03A014 03A01F 03A023 03A048 03F1BE 03F21F
ram_000D = $000D ; 026A48 026A4F 026D2F 027CB7 027D54 03480F 034818 03483C 034840 034842 03A01D 03A048 03F1BE 03F21F
ram_000E = $000E ; 0269E6 026D2D 027C89 027D52 0344BA 034ADD 0359A8 03EE57 03EE5E 03EE68 03EE6A 03EE6C 03EEAE 03EEC0 03EED6 03EEEF 03EEF6 03EF1C 03EF2A 03EF39 03F1BE 03F21F
ram_000F = $000F ; 0344B5 034AD8 0359A3 03EE4F 03EE55 03EE60 03EE64 03EEB6 03EEC6 03EEDB 03EEE3 03EEE7 03EEED 03EEF8 03EEFC 03EF3E 03F1BE 03F21F
; ($indirect),Y
ram_0010 = $0010 ; 024247 024276 0242A1 026C39 026C78 03405F 0340D0 0340DB 0340EB 0340F5 0340FF 03428C 034291 034295 03D7D1 03F1BE 03F21F
ram_0011 = $0011 ; 027092 0270BE 0270CE 034064 0340E5 0340F0 0340FA 034142 0344FE 0345C5 0345E7 034661 034984 0349CA 0349E5 034A4C 034DFB 034E1B 034E39 034E47 034E58 034EE6 034F00 034F27 034F47 034FAC 035036 03506E 0350F2 035132 03515F 035174 035185 03519B 0351D4 0351FC 035311 03532A 03543F 035458 03547B 0354A6 035554 0355A7 0355D3 0355E1 03560E 035642 035696 0356A4 0356F5 035723 035729 035792 0357C8 0357E2 035877 0358AA 0358EC 035906 03592E 03596D 035A13 035A35 035A83 035AA2 035ACE 035AE0 035C42 035CC3 035D4D 035FAE 035FF6 036056 036125 036140 037FBB 038B1F 038BB8 038BCA 03D7D6 03ED6D 03F1BE 03F21F
; 0012-001D (0C) temp
ram_0012 = $0012 ; 02430D 024310 024342 027090 0270BC 0270CE 0270D6 02E704 034057 03414C 034FD7 034FF9 03505F 03520F 035272 03533C 03534E 035373 035481 035509 03553B 03576A 03579D 035814 03586C 035934 035957 03599A 035AD4 035B62 035BB3 038B1D 038B6E 038BB8 038BCA 03D76B 03D82C 03F1BE 03F21F
ram_0013 = $0013 ; 024236 0242CD 024333 024AEB 02708C 0270B8 0270CE 0270D6 034052 034144 0341D9 0344AA 0345C9 034A44 034A6E 034A7D 034AAF 034ABC 034E0B 0350CC 0352B4 0353CD 0355B7 035887 0359E2 0359F9 035B7E 035BF0 035C49 035C70 035D61 035DC9 035EF8 035FB4 035FCB 035FE4 036135 037FAA 038B0F 038B1B 038B74 038BB8 038BCA 03F1BE 03F21F
ram_0014 = $0014 ; 024AD1 024AE1 027086 0270B2 0270CE 038B12 038B18 038B72 038BB8 038BCA 03EF54 03EF5C 03F1BE 03F21F
ram_0015 = $0015 ; 03EF4F 03EF60 03F1BE 03F21F
ram_0016 = $0016 ; 02707B 02709A 0270E1 034396 03439C 03EF4A 03EF64 03F1BE 03F21F
ram_0017 = $0017 ; 027079 027098 0270DF 034168 03416F 03427C 034394 0343A5 034494 03449E 035C1E 035C23 035C78 035C82 035CD1 035D08 035D2E 035D76 035DC1 035E43 035E70 035E75 035E84 035E8C 035EF6 035FBC 035FC1 0367AA 037E4B 037EA0 03F1BE 03F21F
ram_0018 = $0018 ; 024BCB 024BCD 024BCF 024BD2 026C55 026C85 0393CD 0393E0 0394D7 03966C 039689 03D91C 03D93C 03DE5C 03DE7C 03DFD1 03DFD3 03DFE6 03E12C 03E139 03F1BE 03F21F
ram_0019 = $0019 ; 026C4B 03D91E 03DE4E 03DE51 03DE54 03DE57 03DE5A 03E130 03F1BE 03F21F
ram_001A = $001A ; 02EB18 02EB37 03D910 03D92C 03D932 03F1BE 03F21F
ram_001B = $001B ; 02EB35 02EB40 03D912 03D926 03D938 03F1BE 03F21F
ram_001C = $001C ; 02EB12 02EB46 02EB58 02EB5A 03D916 03D920 03D92A 03D930 03D934 03F1BE 03F21F
ram_001D = $001D ; 03D918 03D922 03D924 03D936 03D93A 03F1BE 03F21F
; хранит копию Y в 0x03E13B
ram_001E = $001E ; 03E11E 03E13B 03F1BE 03F21F
; используется лишь в одной подпрограмме
ram_001F = $001F ; 0250C0 025140 03F1BE 03F21F
; скрипты для отрисовки экранов
; смотреть con_script_draw
ram_script_draw_hi = $0020 ; 03F1BE 03F21F 03F394 03F5AF 03F5B7 03F5BE
ram_script_draw_lo = $0021 ; 0390B7 0390E6 03911B 039154 039166 03916E 039185 0391A6 0391BB 0391F5 0392AD 03930B 039328 0393A7 039610 039633 03969A 0396BB 0396CA 0396CF 039848 039855 039875 0398BA 039958 039FD7 039FEE 03F1BE 03F21F 03F3CF 03F3F8 03F453 03F482 03F490 03F4BC 03F4C0 03F51F 03F54B 03F57F 03F5BB
; увеличивается в nmi
ram_счетчик_кадров = $0022 ; 02406A 024800 024806 02481D 024850 024878 024D39 024E37 025F1A 025F55 025FA4 0264FE 0266B7 0386AC 03891E 03899D 0389D6 038A0D 038AEE 038B29 038B33 038C6A 038D4C 038DF8 0398A2 039931 03A0A9 03A388 03A3A1 03A4C4 03E572 03E8A2 03F1BE 03F219 03F21F 03F388 03F45A
; если флаг стоит, то nmi пропустит обработку основных игровых скриптов
; такое случается, когда звуковой движок тормозит, и nmi вызвывается повторно в процессе
ram_nmi_flag = $0023 ; 03F1BE 03F21F 03F232 03F25E 03F281 03F630
; задержка удержания выключенного рендеринга экрана в nmi
; пока таймер идет, рендеринг будет насильно выключен
ram_таймер_выкл_рендеринга = $0024 ; 03D318 03F1BE 03F21F 03F248 03F24C 03F28B 03F2E3
; для 0300+, нужен чтобы отслеживать куда можно записывать
ram_index_ppu_buffer = $0025 ; 03004A 03106D 03D269 03D26D 03D273 03F1BE 03F21F
; какой-то флаг, проверяется при попытке поставить игру на паузу в 0x03D316 и еще в двух местах
ram_0026_flag = $0026 ; 02FF0F 03D2D3 03D314 03F1BE 03F21F 03F3D3 03F4C4 03F502
; влияет на координаты курсора, и его значение копируется в ram_game_mode
ram_позиция_курсора_в_главном_меню = $0027 ; 02EA6B 03A501 03F1BE 03F21F 03F3D5 03F3EB 03F424 03F431 03F465 03F479 03F49F 03FE6A
; адрес с рандомным байтом (второй адрес 008C)
ram_random_1 = $0028 ; 026909 034E52 034EBF 034F10 034FB7 035016 03507D 03507F 035113 035120 035192 0351A1 0351AD 0351DA 0352DA 035397 0353E2 035570 0356D1 0356DA 035770 035781 035820 035829 035914 03593A 035A42 035AE6 035B00 035BB9 03656A 03D2E6 03E222 03E4DE 03EDD9 03EDEB 03F1BE 03F214 03F217 03F21B 03F21D 03F21F 03F222
; свободный адрес
; ram_0029 = $0029 ; 03F1BE 03F21F
;
ram_002A = $002A ; 027BDD 03DD0A 03F1BE 03F21F 03FD48
; свободный адрес
; ram_002B = $002B ; 03F1BE 03F21F
; выбранный режим игры в главном меню
; 00 = story
; 01 = vs player
; 02 = vs cpu
; 03 = vs team
; 04 = tournament
; 05 = options
ram_game_mode = $002C ; 003F10 027008 0279D4 027B4C 027B64 02C107 02C119 02C122 02C150 02C16B 02C2BC 02C2FE 02EA16 02EC10 02EFA6 02FC90 02FD40 02FE22 02FEEE 02FF3C 02FF5C 031010 0381C0 03861D 0388AF 0388D4 038A81 03A503 03A5AC 03A918 03BF43 03D2D7 03D31E 03E215 03E273 03E3B7 03E49D 03E4B3 03E4F6 03E57B 03E599 03E5CC 03E5F2 03E68D 03E923 03EAAD 03F1BE 03F21F 03F3ED 03F4A1 03F8D2
; свободный адрес
; ram_002D = $002D ; 03F1BE 03F21F
; свободный адрес
; ram_002E = $002E ; 03F1BE 03F21F 03F260 03F2A1 03F676 03F67B 03F6A4 03F6D4 03F87C
; откуда начинать запись в 0200,X в спрайтовом движке
ram_индекс_oam = $002F ; 03D737 03D73B 03D7A2 03D801 03D871 03F1BE 03F21F
; 00 = ничего не делать
; 01 = черный -> цветной
; 20 = цветной -> белый
; 40 = белый -> цветной
; 80 = цветной -> черный
; обработчик в 0x03F3B9
ram_метод_изменения_яркости = $0030 ; 03D406 03E140 03E153 03F1BE 03F21F 03F390 03F3B9
; количество оставшихся continue
; bzk optimize, сделать бесконечные конты +80
ram_continue = $0031 ; 03818C 0381B1 038623 0386DA 03D2AD 03D61F 03F1F7 03F21F
; 0032-0033 (02) chr банки для фона
ram_chr_bank_bg = $0032 ; 02C0FC 03920E 03A224 03DC2D 03E81A 03F033 03F1BE 03F21F 03F53E 03F598 03F646 03FC49
; ram_0033 = $0033 ; 02EC15 039212 03A228 03DC32 03F037 03F1BE 03F21F 03F540 03F59C 03F651 03FC53
; 0034-0037 (04) chr банки для спрайтов
ram_chr_bank_spr = $0034 ; 038040 039152 039217 03A061 03A22C 03D5FF 03DC17 03F1BE 03F21F 03F636
; ram_0035 = $0035 ; 03A230 03D604 03DC1C 03F02F 03F1BE 03F21F 03F63A
; ram_0036 = $0036 ; 039698 03D5FF 03DC22 03F1BE 03F21F 03F63E
; ram_0037 = $0037 ; 038CAD 03D604 03DC27 03E81E 03F1BE 03F21F 03F642
; 0038-003B (04) альтернативные chr банки для спрайтов
ram_copy_chr_bank_spr = $0038 ; 03F1BE 03F21F 03F638 03F65C
; ram_0039 = $0039 ; 03F1BE 03F21F 03F63C 03F65C
; ram_003A = $003A ; 03F1BE 03F21F 03F640 03F65C
; ram_003B = $003B ; 03F1BE 03F21F 03F644 03F65C
; копия 8000
; бывший 0042
ram_copy_8000 = $003C ; 03F1BE 03F21F 03F632
; индекс для 003E
ram_003D = $003D ; 03F1BE 03F21F 03F609 03F60B 03F627 03F629
; 003E-0041 (04) для prg банксвичей
ram_003E = $003E ; 03F1BE 03F21F 03F62B
; ram_003F = $003F ; 03F1BE 03F21F 03F60D 03F62B
; ram_0040 = $0040 ; 03F1BE 03F21F 03F60D 03F62B
; ram_0041 = $0041 ; 03F1BE 03F21F 03F60D
; 0042-0047 (06) свободные адреса
; ram_0042 = $0042 ; 03F1BE 03F21F 03F612 03F61E 03F87E
; ram_0043 = $0043 ; 03F1BE 03F21F 03F688 03F692 03F87E
; ram_0044 = $0044 ; 03F1BE 03F21F
; ram_0045 = $0045 ; 03F1BE 03F21F 03FCA2 03FCA4
; ram_0046 = $0046 ; 03F1BE 03F21F 03F66F 03F682
; ram_0047 = $0047 ; 03F1BE 03F21F
; индекс для таблиц со сканлиниями и обработчиками
; смотреть con_0048
ram_irq_handler = $0048 ; 02EE7C 03F1BE 03F21F 03F824 03F83D 03F974 03FBE2
; индекс для E000,X
; 00 = выключить irq
; 01 = включить irq
ram_irq_flag = $0049 ; 02EE7E 0389B7 03F1BE 03F21F 03F4E9 03F837 03FB9A 03FBA0 03FBA5
; свободный адрес
; ram_004A = $004A ; 03F1BE 03F21F 03F833 03F8FF 03F98E 03F9DB 03FA24 03FA7F 03FAFA 03FB27 03FB5D 03FBF0
; ($indirect)
ram_004B = $004B ; 02EE86 03F1BE 03F21F 03F844
ram_004C = $004C ; 02EE8A 03F1BE 03F21F 03F849
;
ram_004D = $004D ; 02EE78 0389B9 03F1BE 03F21F 03F83A 03F8E5 03F901 03F90E 03F983 03F990 03F9DD 03FA26 03FA4D 03FA77 03FA81 03FA84 03FAAB 03FACF 03FAEE 03FAFC 03FB1C 03FB20 03FB52 03FB5F 03FBFA
; 004E-004F (02) альтернативные chr банки для фона (первый банк)
ram_alt_chr_bank_bg_1 = $004E ; 02EE8F 03971A 03A1E8 03A222 03F1BE 03F21F 03F920 03F9A4 03FA1F 03FA33
; ram_004F = $004F ; 02EE94 03971E 03A1E8 03F1BE 03F21F 03F929 03F9A4
; 0050-0051 (02) альтернативные chr банки для фона (второй банк)
ram_alt_chr_bank_bg_2 = $0050 ; 03A1ED 03A226 03F1BE 03F21F 03F9AB
; ram_0051 = $0051 ; 03A1ED 03F1BE 03F21F 03F9AB
; 0052-0053 (02) альтернативные chr банки для спрайтов (первый банк)
ram_alt_chr_bank_spr_1 = $0052 ; 03A1F2 03A22A 03F1BE 03F21F 03F9B9
; ram_0053 = $0053 ; 03A1F2 03F1BE 03F21F 03F9B9
; 0054-0055 (02) альтернативные chr банки для спрайтов (второй банк)
ram_alt_chr_bank_spr_2 = $0054 ; 03A1F7 03A22E 03F1BE 03F21F 03F9C4
; ram_0055 = $0055 ; 03A1F7 03F1BE 03F21F 03F9C4
; 0056-0078 (23) какие-то адреса для скроллинга заднего фона на картах
; всего 36 адресов, фон арены в диапазоне сканлиний 48-192
; итого 144 сканлинии и 36 адресов, получается по 4 сканлинии на каждый адрес?
ram_0056 = $0056 ; 03E2F5 03E370 03E374 03E394 03F1BE 03F21F 03F987 03FD27
; ram_0057 = $0057 ; 03E2F1 03E357 03E35E 03E362 03E38D 03F1BE 03F21F 03FA06 03FD27
; ram_0058 = $0058 ; 03F1BE 03F21F 03FD27
; ram_0059 = $0059 ; 03F1BE 03F21F 03FD27
; ram_005A = $005A ; 03F1BE 03F21F 03FD27
; ram_005B = $005B ; 03F1BE 03F21F 03FD27
; ram_005C = $005C ; 03F1BE 03F21F 03FD27
; ram_005D = $005D ; 03F1BE 03F21F 03FD27
; ram_005E = $005E ; 03F1BE 03F21F 03F8F9 03FD27
; ram_005F = $005F ; 03F1BE 03F21F 03FD27
; ram_0060 = $0060 ; 03F1BE 03F21F 03FD27
; ram_0061 = $0061 ; 03F1BE 03F21F 03F8F9 03FD27
; ram_0062 = $0062 ; 03F1BE 03F21F 03FD27
; ram_0063 = $0063 ; 03F1BE 03F21F 03F8F9 03FD27
; ram_0064 = $0064 ; 03F1BE 03F21F 03FD27
; ram_0065 = $0065 ; 03F1BE 03F21F 03FD27
; ram_0066 = $0066 ; 03F1BE 03F21F 03F8F9 03FD27
; ram_0067 = $0067 ; 03F1BE 03F21F 03FD27
; ram_0068 = $0068 ; 03F1BE 03F21F 03F8F9 03FD27
; ram_0069 = $0069 ; 03F1BE 03F21F 03FD27
; ram_006A = $006A ; 03F1BE 03F21F 03F8F9 03FD27
; ram_006B = $006B ; 03F1BE 03F21F 03FD27
; ram_006C = $006C ; 03F1BE 03F21F 03F8F9 03FD27
; ram_006D = $006D ; 03F1BE 03F21F 03FD27
; ram_006E = $006E ; 03F1BE 03F21F 03F8F9 03F943 03FD27
; ram_006F = $006F ; 03F1BE 03F21F 03F943 03FD27
; ram_0070 = $0070 ; 03F1BE 03F21F 03F943 03FD27
; ram_0071 = $0071 ; 03F1BE 03F21F 03F943 03FD27
; ram_0072 = $0072 ; 03F1BE 03F21F 03F943 03FD27
; ram_0073 = $0073 ; 03F1BE 03F21F 03F943 03FD27
; ram_0074 = $0074 ; 03F1BE 03F21F 03F943 03FD27
; ram_0075 = $0075 ; 03F1BE 03F21F 03F943 03FD27
; ram_0076 = $0076 ; 03F1BE 03F21F 03F943 03FD27
; ram_0077 = $0077 ; 03F1BE 03F21F 03FD27
; ram_0078 = $0078 ; 03F1BE 03F21F 03FD27
; 0079-0085 (0D) свободные адреса
; ram_0079 = $0079 ; 03F1BE 03F21F
; ram_007A = $007A ; 03F1BE 03F21F
; ram_007B = $007B ; 03F1BE 03F21F
; ram_007C = $007C ; 03F1BE 03F21F
; ram_007D = $007D ; 03F1BE 03F21F
; ram_007E = $007E ; 03F1BE 03F21F
; ram_007F = $007F ; 03F1BE 03F21F
; ram_0080 = $0080 ; 03F1BE 03F21F
; ram_0081 = $0081 ; 03F1BE 03F21F
; ram_0082 = $0082 ; 03F1BE 03F21F
; ram_0083 = $0083 ; 03F1BE 03F21F
; ram_0084 = $0084 ; 03F1BE 03F21F
; ram_0085 = $0085 ; 03F1BE 03F21F
;
ram_0086 = $0086 ; 02EE76 03D77F 03F1BE 03F21F 03F933 03FD55
; bzk бесполезный адрес
ram_0087 = $0087 ; 03F1BE 03F21F 03F935
; какой-то счетчик (скроллинга?) для irq
ram_0088 = $0088 ; 03F1BE 03F21F 03F93B 03F93D 03FBFC
; хз, используется при подсчете очков после боя?
ram_0089 = $0089 ; 03D2B1 03E55D 03E55F 03E561 03E567 03F1BE 03F21F
; 008A-008B (02) мои личные indirect адреса вне vblank
; должны использоваться только в пределах одной подпрограммы
ram_008A_data = $008A ; 03F1BE 03F21F
; ram_008B = $008B ; 03F1BE 03F21F
; адрес с рандомным байтом (первый адрес 0028)
ram_random_2 = $008C ; 0362E5 03632D 03F1BE 03F21F 03F224 03F226
; свободный адрес
; ram_008D = $008D ; 03F1BE 03F21F
; 008E-008F (02) одноразовые кнопки
ram_btn_press = $008E ; 0241D9 024272 024469 024617 024748 025112 025A4C 025A56 025A7B 025B45 025B4F 025B75 025BE0 025C25 025C7C 025C98 025CF1 025D6D 025D96 0279CB 027AAB 027AD6 027E79 02C1CA 02C1D9 02FDA7 02FDBD 034069 0341E3 034293 0342D5 03435B 034612 0346A7 0348A5 0348CF 0348E0 036338 03893A 03D021 03D31C 03EDA1 03F1BE 03F21F 03F270 03F320
; ram_008F = $008F ; 0241D9 024272 024469 024617 024748 025112 025A4C 025A56 025A7B 025B45 025B4F 025B75 025BE0 025C25 025C7C 025C98 025CF1 025D96 0266C8 0279CB 027AAB 027AD6 027E79 02C1D9 02FDA7 034069 0341E3 034293 0342D5 03435B 034612 0346A7 034769 0348A5 0348CF 0348E0 036338 03893A 03D021 03E4FE 03EDA1 03F1BE 03F21F 03F272 03F320
; сумма одноразовых кнопок обоих джойстиков
ram_sum_btn_press = $0090 ; 0381AC 0386CA 038923 038929 03895C 038D2D 038DCF 038F80 0390AF 03991D 039FCF 03A382 03A4A3 03A4CF 03A91E 03B010 03D021 03D326 03E351 03E4C1 03E770 03F1BE 03F21F 03F274 03F3B3 03F40A 03F41A 03F43B 03F4C9 03F519
; 0091-0092 (02) удержанные кнопки
ram_btn_hold = $0091 ; 024021 024114 0241E0 0241EB 0241F4 024256 0242A5 024312 024482 0244DC 0246FF 02473B 02494B 024D14 025A0A 025A54 025AF5 025B1D 025B23 025B9E 025C2F 025D8C 026AF3 0278D8 027AE5 02E86E 02F878 02FE53 03406B 0341E1 034232 034250 03429C 0342D3 03435D 034608 0346A5 034847 034858 034868 03489B 0348D1 0348E5 034A24 034B0A 0361FF 0363A9 038195 0392A7 03D021 03D204 03ED0F 03ED1B 03ED9F 03EDC1 03EF90 03F1BE 03F21F 03F26A 03F324
; ram_0092 = $0092 ; 024021 024114 0241E0 0241EB 0241F4 024256 0242A5 024312 024482 0244DC 0246FF 02473B 02494B 024D14 025A0A 025A54 025AF5 025B1D 025B23 025B9E 025C2F 025D8C 026AF3 0278D8 027AE5 02E86E 02F878 02FE53 03406B 0341E1 034232 034250 03429C 0342D3 03435D 034608 0346A5 03475F 034847 034858 034868 03489B 0348D1 0348E5 034A24 034B0A 0361FF 0363A9 03D021 03D204 03E504 03E840 03ED0F 03ED1B 03ED9F 03EDC1 03EF90 03F1BE 03F21F 03F26C 03F324
; сумма удержанных кнопок обоих джойстиков
ram_sum_btn_hold = $0093 ; 0386B2 038DE5 038E0F 03D021 03EF90 03F1BE 03F21F 03F26E
; какой-то вспомогательный скрипт (для отрисовки)?
; обработчик в 0x03D291
ram_0094_скрипт = $0094 ; 038748 0389B3 03A519 03D021 03D291 03D2B3 03D2C6 03F1BE 03F21F 03F50C 03F564 03FE6C
; обработчик в 0x03E197 и 0x0388A0
; смотреть con_0095
; bzk optimize, поменять адрес и con для 0x0388A0
ram_0095_стадия_игры = $0095 ; 024087 02416B 0248EF 02491A 024AC3 0259EB 02709C 027B94 027F41 02EEC6 038011 03801C 038084 038088 0382E0 0388A0 0388C5 0388E7 038996 0389A9 0389B1 038B07 038B3F 03A37C 03A393 03A463 03A64D 03A662 03A680 03BF49 03D021 03D1BF 03D2B7 03DFC7 03E125 03E161 03E197 03E208 03E20D 03E258 03E266 03E3B5 03E3C3 03E485 03E4EA 03E52D 03E53E 03E5D6 03E5E2 03E619 03E623 03E67E 03E69C 03E6F9 03E749 03E755 03E763 03E7B1 03E7DC 03E85B 03E85D 03E87C 03E87E 03E8AF 03E8C5 03E9BB 03E9CF 03EA31 03EA45 03EAEA 03EB09 03F001 03F1BE 03F21F 03FEE0 03FEFE
;
ram_0096 = $0096 ; 03A437 03A446 03A461 03A49F 03A4D5 03D021 03E627 03E7C6 03E7CE 03E7D7 03E861 03F1BE 03F21F
; флаг паузы по кнопке start
; 00 = пауза не стоит, 01 = пауза стоит
ram_pause_flag = $0097 ; 020019 02009F 020C0A 03D021 03D28C 03D329 03D333 03F1BE 03F21F
; какой-то флаг, проверяется при попытке поставить игру на паузу в 0x03D316
ram_0098_flag = $0098 ; 02418C 024A75 02FEEC 03D021 03D2A5 03D316 03E4EE 03E52F 03E54F 03E7FF 03E872 03E893 03F1BE 03F21F 03F443 03F4FE
; мой личный свободный временный адрес
; должен использоваться только в пределах одной подпрограммы
ram_0099_temp = $0099 ; 03D021 03F1BE 03F21F
; флаг того, что перс является черепахой, на замену проверкам по индексу перса 00-03
; 00 = черепаха
; 40 = не черепаха
ram_флаг_черепахи = $009A ; 03D021 03F1BE 03F21F
; ram_009B = $009B ; 03D021 03F1BE 03F21F
; младший байт таймера экранов в комбинации с ram_009F_таймер_экрана_hi
ram_009C_таймер_экрана_lo = $009C ; 02EA71 02EA9A 03D021 03F1BE 03F21F 03F44A 03F471 03F47E 03F5C3 03F5C9 03F5CF 03F5D8
;
ram_009D = $009D ; 02EA75 02EA96 03D021 03EFB2 03F1BE 03F21F 03FF23 03FF38 03FF7D
;
ram_номер_боя_story = $009E ; 02EE60 02EE80 02EEA3 02EECC 02FF8B 038982 03A4FF 03D021 03E241 03E249 03E3BB 03E47D 03E600 03E602 03E60F 03E615 03E691 03EB0F 03F1BE 03F21F 03F8ED
; копия ram_номер_боя_story для возврата в story при нажатии start вторым игроком для pvp
ram_copy_номер_боя_story = $009F ; 03A4FD 03D021 03F1BE 03F21F 03F5C5 03F5CD 03F5DA
ram_009F_таймер_экрана_hi = ram_copy_номер_боя_story ; старший байт таймера экранов в комбинации с ram_009C_таймер_экрана_lo
; 00A0-00A1 (02)
ram_strength = $00A0 ; 027A11 02EA3A 02EA92 038946 038950 0389DF 03D021 03DE5E 03F1BE 03F21F 03F513
; ram_00A1 = $00A1 ; 027A11 02EA3A 02EA92 038946 038950 0389DF 03D021 03DE5E 03F1BE 03F21F 03F515
; 00A2-00A3 (02)
ram_plr_id = $00A2 ; 0240D5 02C15F 02C1F5 02C207 02C23F 02C250 02C287 02C293 02C310 02EA2E 02EA34 02EA7D 02EA8C 02EA94 02FE5C 02FEE6 02FFAC 038468 039648 039884 03A125 03A14B 03A15A 03A16A 03A1DF 03A1F9 03BF38 03D021 03D2F1 03DE11 03E1ED 03E1FA 03E231 03E243 03E30A 03E317 03E330 03E343 03E423 03E431 03E838 03E8CF 03E8D6 03E8DF 03EBB8 03F1BE 03F21F 03F486
; ram_00A3 = $00A3 ; 0240D5 02C15F 02C1F5 02C207 02C23F 02C250 02C287 02C295 02C310 02EA2E 02EA34 02EA7D 02EA8C 02EA94 02FE5C 02FEEA 02FFC3 038468 039652 03A125 03A16A 03A1DF 03A1F9 03D021 03D2F9 03DE11 03E1F0 03E1F7 03E236 03E24F 03E254 03E30A 03E317 03E330 03E345 03E423 03E431 03EBB8 03F1BE 03F21F 03F488
; bzk бесполезный адрес?
; сохраняет все нажатые кнопки пока идет обработка яркости,
; и эта сумма используется как дополнительная проверка кнопок на экранах opening и topscore
ram_00A4_кнопки = $00A4 ; 0390B1 039FD1 03D021 03E14B 03F1BE 03F21F 03F3B5 03F3B7
; bzk бесполезный адрес, хранит 00
ram_00A5 = $00A5 ; 03D021 03EA23 03F1BE 03F21F
; используется во время боя
ram_screen_pos_X = $00A6 ; 025E6E 026004 0261FC 026230 02EECA 03D021 03DD8A 03E7E0 03E7FD 03E9E1 03E9FA 03EA1C 03EA21 03F1BE 03F21F 03FAD3 03FCDE
; bzk бесполезный адрес, хранит 00
ram_00A7 = $00A7 ; 03D021 03DD8C 03EA15 03EA1A 03F1BE 03F21F
; локальный индекс объектов внутри подпрограмм
ram_local_obj_index = $00A8 ; 003F19 02401A 024688 024D36 02510E 025160 025215 026255 0269AD 0269B5 0269C0 0269DA 026A4A 026A6F 026ABA 027C76 027C8F 027CB9 02C174 02C176 02C183 02C1C8 02C1D7 02C230 038D2B 038DCD 038F7E 038FC1 038FD9 039076 039F3D 039F3F 039F49 039F4E 03A1DB 03A1DD 03A21E 03D021 03E27B 03E27D 03E298 03E2D7 03E41B 03E41D 03E428 03EBB4 03EBB6 03EBEC 03F1BE 03F21F 03F6A2 03F6B3 03F6D8
; глобальный индекс объектов (на текущем кадре?)
; bzk optimize, поменять адрес в
; 0x03D56F и 0x03D579
; 0x027D8C ?
; ???
ram_global_obj_index = $00A9 ; 02401F 0241D0 024231 0242D7 024328 0247BD 02482F 02486F 024894 02492A 024962 0249D0 024A7A 024A83 024A99 024AB6 024AD3 024DF2 024E4F 024E60 024EF9 024F2C 024F5E 024F7E 024FAC 02500A 025104 025110 025168 02519C 0251BE 0251D2 0251EE 025207 02520D 02523A 02524D 025277 025283 0252C5 02533F 0259E9 025DF6 0265B2 026A0C 026A6B 026A6D 026A71 026A7B 026AB8 026AF1 026BBC 026BF2 026C1E 026C72 026CFA 026D0D 026D43 02752B 02797B 027C8D 027C91 027CC5 027CC7 027CC9 027CEF 027D33 027D5A 027D8C 027E77 027E9A 02C204 02E5A1 02E7D7 02E874 038FA9 03D021 03D56F 03D579 03DED7 03F1BE 03F21F 03F6A0 03F6B5 03F6D2 03F741
; таймер фриза игры после попадания по сопернику
; пока таймер идет, геймплей не движется дальше, работает только музыка
; если +80, то замедление игры после смерти, выставляется в 0x0249A9
ram_таймер_задержки_фпс = $00AA ; 0247B8 02480E 0249AB 024A54 025E59 026BDA 027BC7 027BCD 027CE5 02EE74 03D021 03E548 03E7EF 03F1BE 03F21F 03FD32 03FD38
; если 00AA = 80, то отсчитывает кадры прежде чем позволит геймплею продвинуться на 1 кадр вперед
ram_таймер_замедления_фпс = $00AB ; 03D021 03F1BE 03F21F 03FD3D 03FD40 03FD46
; предположительно еще более локальный индекс объектов, наподобие 00A8 и зависит от него же
; используется только в банке 12
ram_00AC = $00AC ; 0269B2 0269C7 026A05 026A1B 026A85 026B94 026BA4 026BBA 026C08 026C3B 026CC3 027C78 03D021 03F1BE 03F21F
; еще какой-то локальный индекс объектов?
ram_00AD = $00AD ; 024018 024926 0250A0 025150 025173 02624F 026841 027BED 027BEF 027C0A 03801E 03806E 03808C 03A653 03A658 03A65D 03D021 03EFB5 03F1BE 03F21F 03F8D8 03FD67 03FD82 03FDF0 03FF27 03FF29 03FF31 03FF3C 03FF3E 03FF44 03FF7F
; 00AE-00B5 (08) очки игроков
; 1й адрес = сотни тысяч
; 2й адрес = десятки тысяч
; 3й адрес = тысячи
; 4й адрес = сотни
ram_score = $00AE ; для обших ссылок обоих игроков
ram_p1_score = $00AE ; 027043 0270CB 0270D8 039F53 03D021 03DE20 03E1E1 03E206 03F1BE 03F21F
; ram_00AF = $00AF ; 027043 02704C 0270CB 0270D8 039F58 03D021 03DE20 03E1E4 03E203 03F1BE 03F21F
; ram_00B0 = $00B0 ; 027043 02704C 0270CB 0270D8 039F5C 03D021 03DE20 03E1E7 03E200 03F1BE 03F21F
; ram_00B1 = $00B1 ; 027043 02704C 0270CB 0270D8 039F61 03D021 03DE20 03E1EA 03E1FD 03F1BE 03F21F
ram_p2_score = $00B2 ; 027043 0270CB 0270D8 039F53 03D021 03DE2A 03F1BE 03F21F
; ram_00B3 = $00B3 ; 027043 02704C 0270CB 0270D8 039F58 03D021 03DE2A 03F1BE 03F21F
; ram_00B4 = $00B4 ; 027043 02704C 0270CB 0270D8 039F5C 03D021 03DE2A 03F1BE 03F21F
; ram_00B5 = $00B5 ; 027043 02704C 0270CB 0270D8 039F61 03D021 03DE2A 03F1BE 03F21F
; индекс речи в катсценах, читается в 0x039B53
; смотреть con_speech
ram_speech = $00B6 ; 0390FA 039128 03917D 039681 039863 039947 039B53 03D021 03D34F 03F1BE 03F21F
; 00B7-00BF (09) используются только в подпрограмме обработки скролла
; bzk бесполезный адрес 00B8, достаточно заменить его на PHA PLA или TAX TXA
; bzk бесполезные адреса 00BD-00BF, хранят результат ASL но не используются
ram_00B7 = $00B7 ; 03D021 03F1BE 03F21F 03FCDB 03FCE4 03FD1D
ram_00B8 = $00B8 ; 03D021 03F1BE 03F21F 03FCE9 03FCEF
ram_00B9 = $00B9 ; 03D021 03F1BE 03F21F 03FD06 03FD19
ram_00BA = $00BA ; 03D021 03F1BE 03F21F 03FCED 03FCF4 03FCF7 03FCFA 03FCFF 03FD02 03FD13
ram_00BB = $00BB ; 03D021 03F1BE 03F21F 03FD0C 03FD17 03FD1B
ram_00BC = $00BC ; 03D021 03F1BE 03F21F 03FD0A 03FD11 03FD15
ram_00BD = $00BD ; 03D021 03F1BE 03F21F 03FCF2
ram_00BE = $00BE ; 03D021 03F1BE 03F21F 03FCFC
ram_00BF = $00BF ; 03D021 03F1BE 03F21F 03FD04
; 00C0-00CE (0F) свободные адреса
; ram_00C0 = $00C0 ; 03D021 03F1BE 03F21F
; ram_00C1 = $00C1 ; 03D021 03F1BE 03F21F
; ram_00C2 = $00C2 ; 03D021 03F1BE 03F21F
; ram_00C3 = $00C3 ; 03D021 03F1BE 03F21F
; ram_00C4 = $00C4 ; 03D021 03F1BE 03F21F
; ram_00C5 = $00C5 ; 03D021 03F1BE 03F21F
; ram_00C6 = $00C6 ; 03D021 03F1BE 03F21F
; ram_00C7 = $00C7 ; 03D021 03F1BE 03F21F
; ram_00C8 = $00C8 ; 03D021 03F1BE 03F21F
; ram_00C9 = $00C9 ; 03D021 03F1BE 03F21F
; ram_00CA = $00CA ; 03D021 03F1BE 03F21F
; ram_00CB = $00CB ; 03D021 03F1BE 03F21F
; ram_00CC = $00CC ; 03D021 03F1BE 03F21F
; ram_00CD = $00CD ; 03D021 03F1BE 03F21F
; ram_00CE = $00CE ; 03D021 03F1BE 03F21F
; хранит копию X для подпрограммы с подсчетом очков
ram_00CF = $00CF ; 038BB4 038C61 03D021 03F1BE 03F21F
; 00D0-00DF (10) свободные адреса
; ram_00D0 = $00D0 ; 03D021 03F1BE 03F21F
; ram_00D1 = $00D1 ; 03D021 03F1BE 03F21F
; ram_00D2 = $00D2 ; 03D021 03F1BE 03F21F
; ram_00D3 = $00D3 ; 03D021 03F1BE 03F21F
; ram_00D4 = $00D4 ; 03D021 03F1BE 03F21F
; ram_00D5 = $00D5 ; 03D021 03F1BE 03F21F
; ram_00D6 = $00D6 ; 03D021 03F1BE 03F21F
; ram_00D7 = $00D7 ; 03D021 03F1BE 03F21F
; ram_00D8 = $00D8 ; 03D021 03F1BE 03F21F
; ram_00D9 = $00D9 ; 03D021 03F1BE 03F21F
; ram_00DA = $00DA ; 03D021 03F1BE 03F21F
; ram_00DB = $00DB ; 03D021 03F1BE 03F21F
; ram_00DC = $00DC ; 03D021 03F1BE 03F21F
; ram_00DD = $00DD ; 03D021 03F1BE 03F21F
; ram_00DE = $00DE ; 03D021 03F1BE 03F21F
; ram_00DF = $00DF ; 03D021 03F1BE 03F21F
; ($indirect),Y
; для звукового движка
ram_00E0 = $00E0 ; 020A7A 020ACB 020AF0 020B1A 020B57 020B77 020B88 020BAA 020BC3 020BC8 03F1BE 03F21F
ram_00E1 = $00E1 ; 020A87 020AD0 020AFA 020B21 020B5C 020B8D 020BAF 020BCC 020BD1 03F1BE 03F21F
; ($indirect) ($indirect),Y
; для звукового движка
ram_00E2 = $00E2 ; 0201BD 0201C7 020278 0202E2 0202E9 02030D 020316 020319 02031F 02035A 020371 0203D3 0203D8 0203EB 0203F2 0203FE 02040F 020411 020494 0204F2 0204FA 020516 020524 020589 020598 0205A1 0205DB 0205E0 0205E4 0205E6 020611 020613 02061E 020C71 020C7E 03F1BE 03F21F
ram_00E3 = $00E3 ; 02027D 020596 02059A 0205D9 0205DE 020C74 020C7C 03F1BE 03F21F
; для звукового движка
ram_00E4 = $00E4 ; 0202B1 0202D0 0202D2 0202E7 020331 020337 0203A3 0203CC 0203CE 0203D6 0203DC 02051A 020522 020528 02052B 02052E 020531 020BF9 020C16 020C69 020C80 020E9D 021011 03F1BE 03F21F
ram_00E5 = $00E5 ; 020C6B 020C82 020E9F 021013 03F1BE 03F21F
; ($indirect),Y
; для звукового движка
ram_00E6 = $00E6 ; 020EB5 020F71 020F78 02102C 02103E 021040 03F1BE 03F21F
ram_00E7 = $00E7 ; 020EBA 020F7E 020F83 021031 021044 03F1BE 03F21F
; для звукового движка
ram_00E8 = $00E8 ; 020345 0205B4 0205EC 0205F9 0205FF 020650 020652 020977 020980 02098D 020993 0209A2 0209A8 0209F9 020A06 03F1BE 03F21F
ram_00E9 = $00E9 ; 02034A 0205BA 0205F1 020601 020606 020656 02097B 020995 02099A 0209AA 0209AF 0209CB 0209E9 03F1BE 03F21F
; 00EA-00EF (06) для звукового движка
ram_00EA = $00EA ; 0200AB 0200BD 020125 020170 020174 020178 0203A5 0203ED 020416 020439 02043D 020576 02057A 0206F0 0206F4 020AE7 020B0B 020B0F 020B26 020B2A 020B3B 020B4B 020B4F 020B7F 020B8F 020B93 020BB4 020C35 020FF0 03F1BE 03F21F
; ram_00EB = $00EB ; 0200AB 0200BD 020125 020170 020174 020178 0203A5 0203AA 0203ED 020416 020439 02043D 020576 02057A 0206F0 0206F4 02091D 020921 020982 020A4A 020A71 020A75 020AD5 020AD9 020AE7 020B0B 020B0F 020B26 020B2A 020B3B 020B4B 020B4F 020B7F 020B8F 020B93 020BB4 020C35 020FF0 03F1BE 03F21F
; ram_00EC = $00EC ; 0200AB 0200BD 020416 020439 02043D 0206F0 0206F4 020AE7 020B0B 020B0F 020B26 020B2A 020B3B 020B4B 020B4F 020B7F 020B8F 020B93 020BB4 020C35 020FF0 03F1BE 03F21F
; ram_00ED = $00ED ; 0200AB 0200BD 020416 020439 02043D 0206F0 0206F4 020AE7 020B0B 020B0F 020B26 020B2A 020B3B 020B4B 020B4F 020B6B 020B6F 020B7F 020B8F 020B93 020BB4 020FF0 03F1BE 03F21F
; ram_00EE = $00EE ; 0200AB 0200BD 0203A5 0203AA 0203ED 020416 0206F0 0206F4 02091D 020921 020982 020A4A 020A71 020A75 020AD5 020AD9 020B7F 020BB4 020FF0 03F1BE 03F21F
; ram_00EF = $00EF ; 0200AB 0200BD 020416 02091D 020921 020A09 020B7F 020BB4 020FF0 03F1BE 03F21F
; 00F0-00F1 (02) для звукового движка
ram_00F0 = $00F0 ; 020136 02013D 02055A 03F1BE 03F21F
; ram_00F1 = $00F1 ; 020136 02013D 02055A 03F1BE 03F21F
; 00F2-00F7 (06) свободные адреса
; ram_00F2 = $00F2 ; 03F1BE 03F21F
; ram_00F3 = $00F3 ; 03F1BE 03F21F
; ram_00F4 = $00F4 ; 03F1BE 03F21F
; ram_00F5 = $00F5 ; 03F1BE 03F21F
; ram_00F6 = $00F6 ; 03F1BE 03F21F
; ram_00F7 = $00F7 ; 03F1BE 03F21F
; 4 адреса исползуются только при чтении регистров джойстиков как temp
; можно использовать как свободные адреса во время nmi
ram_00F8 = $00F8 ; 03F1BE 03F21F 03F322
ram_00F9 = $00F9 ; 03F1BE 03F21F 03F322
ram_00FA = $00FA ; 03F1BE 03F21F 03F31C 03F326
ram_00FB = $00FB ; 03F1BE 03F21F 03F31C 03F326
;
ram_scroll_Y = $00FC ; 03921F 039260 039268 039270 039278 039296 0392C0 0392C2 0392D3 0392D5 0392E4 03DD86 03F072 03F1BE 03F21F 03F2C0 03F551 03F556 03F906 03F998 03FA0B 03FA2E
ram_scroll_X = $00FD ; 039224 0392B8 0392BA 0392F1 03DD88 03F070 03F1BE 03F21F 03F2BB
;
ram_for_2001 = $00FE ; 03F1BE 03F21F 03F246 03F289 03F2DF 03F2ED 03F492 03F496 03F499 03F49D 03FA8B 03FA99
ram_for_2000 = $00FF ; 03001D 039226 03922D 039258 039290 0392D7 0392DB 0392DD 0392FC 03DD7E 03DD82 03EA29 03EA2F 03F016 03F01A 03F1BE 03F21F 03F2C5 03F2D8 03F2E6 03F542 03F546 03F569 03F56D 03F590 03F594 03FA10
; 0100-01FF (100) stack
; 0100-0103 (04) свободные адреса
; ram_0100 = $0100 ; 03F1BE
; ram_0101 = $0101 ; 03F1BE
; ram_0102 = $0102 ; 03F1BE
; ram_0103 = $0103 ; 03F1BE
;
ram_0104 = $0104 ; 026A82 026B5C 026C95 026CA5 03EFDC 03F1BE
;
ram_0105 = $0105 ; 027B87 038345 039053 03E2C1 03E666 03F1BE
ram_0106 = $0106 ; 02FF02 03E2C1 03E666 03F1BE
ram_0107 = $0107 ; 03E666 03F1BE
ram_0108 = $0108 ; 03E666 03F1BE
ram_0109 = $0109 ; 03E2C1 03E666 03E669 03F1BE
ram_010A = $010A ; 03E666 03E669 03F1BE
ram_010B = $010B ; 03E669 03F1BE
; номер сканлинии для irq будет считываться отсюда, если не 00, а иначе из таблицы
; также этот адрес игнорируется для обработчика con_0048_10
ram_custom_scanline = $010C ; 0391F2 03927B 03F1BE 03F82B 03FBE8
; 010D-010E (02) дополнительный адрес со здоровьем в дополнение к ram_plr_hp_lo
ram_plr_hp_hi = $010D ; 027E43 027F23 027F31 02EB2D 038B99 03A755 03A768 03A779 03A781 03F1BE 03FE7D 03FE86 03FE8A 03FF5A 03FF62
; ram_010E = $010E ; 027E43 027F23 027F31 03A77C 03A784 03F1BE 03FE7D 03FE86 03FE8A 03FF5D 03FF65
; что-то связанное с очками
ram_010F = $010F ; 03F1BE
ram_0110 = $0110 ; 03F1BE
;
ram_0111 = $0111 ; 027069 0385FD 039043 039F6B 03F1BE 03F3D7 03F44D
;
ram_0112 = $0112 ; 027060 038600 039F65 03F1BE 03F3DA 03F450
; 0113-0121 (0F) рекорды очков для экрана с телкой
; по 3 адреса на каждый из 5 рекордов, в каждом адресе хранится по 2 цифры
ram_topscore = $0113 ; 039F7C 039FA4 039FC1 03A011 03F1E7
; ram_0114 = $0114 ; 039FAA 039FC6 03A025 03F1EC
; ram_0115 = $0115 ; 039FB0 039FCB 03A035 03F1EF
; ram_0116 = $0116 ; 039F7C 039FA4 039FA7 03A011 03F1E7
; ram_0117 = $0117 ; 039FAA 039FAD 03A025 03F1EC
; ram_0118 = $0118 ; 039FB0 039FB3 03A035 03F1EF
; ram_0119 = $0119 ; 039F7C 039FA4 039FA7 03A011 03F1E7
; ram_011A = $011A ; 039FAA 039FAD 03A025 03F1EC
; ram_011B = $011B ; 039FB0 039FB3 03A035 03F1EF
; ram_011C = $011C ; 039F7C 039FA4 039FA7 03A011 03F1E7
; ram_011D = $011D ; 039FAA 039FAD 03A025 03F1EC
; ram_011E = $011E ; 039FB0 039FB3 03A035 03F1EF
; ram_011F = $011F ; 039F7C 039FA7 03A011 03F1E7
; ram_0120 = $0120 ; 039FAD 03A025 03F1EC
; ram_0121 = $0121 ; 039FB3 03A035 03F1EF
; 0122-0124 (03)
ram_reset_check = $0122 ; 03F1CB 03F1FE
; ram_0123 = $0123 ; 03F1CB 03F1FE
; ram_0124 = $0124 ; 03F1CB 03F1FE
; 0125-012C (09) опции, значения по умолчанию в 0x03F9CB
ram_options = $0125 ; для общих ссылок
; 00 = EASY
; 01 = NORMAL
; 02 = HARD
; 03 = EXPERT
ram_option_difficulty = $0125 ; 034303 03498A 034995 0349B2 034EA2 0361AA 0361D5 036202 03635F 0363C8 036485 03655D 036581 036740 036770 036810 037C10 037D93 037E10 037EA2 037F6F 037FB4 038065 0380E2 0380E7 0380F0 0380F7 038190 0396B6 039C10 03A5B4 03A618 03D2A7 03D343 03EDDB 03EDEF 03F1DD
; 00 = NORMAL
; 01 = TURBO
ram_option_speed = $0126 ; 024538 0245F7 024B64 024BC6 02506C 026675 026D8B 026D96 02746F 027555 0276A6 027791 02789A 0279EA 02F76F 02F7C1 02F7D0 02F7D8 03812E 038133 038137 03D1BA 03DCA2 03DF86 03E120 03E15C 03EFFC 03F1DD 03FEBF 03FEE6
; 00 = 45
; 01 = 60
; 02 = 99
; 03 = бесконечное
ram_option_timer = $0127 ; 03814D 038154 03815D 03A5B0 03E4A1 03EAB1 03F1DD
; 00 = 100%
; 01 = 150%
; 02 = 200%
; 03 = бесконечное
ram_option_health = $0128 ; 0240CC 027F4B 027F66 02EB80 038173 03817A 038183 038B96 03A750 03F1DD 03FE76
; 0129-012A (02)
ram_plr_колво_побед_в_матчах = $0129 ; 02FD4A 02FD59 02FD68 02FD6D 03F1DD
; ram_012A = $012A ; 02FD4A 02FD59 02FD68 02FD6D 03F1DD
; .... ..xx = SKIN
; 00 = GREEN
; 01 = ORIGINAL
; 02 = NIGHT
; .... x... = BALANCING
; 00 = OFF
; 08 = ON
; ...x .... = shred CTRL
; 00 = OFF
; 10 = ON
ram_option_misc = $012B ; 02717A 0279DE 02EA23 02EA61 02EE9A 02EF50 038110 03811B 038124 03A69B 03A6A1 03A6A7 03D612 03F1DD
; 00 = NO ONE
; 01 = LOSER
; 02 = LOSERMIX
; 03 = WINNER
; 04 = SURVIVAL
ram_option_team_keeps = $012C ; 02FBC5 02FC9F 02FCEF 02FF97 02FFB5 03A6C6 03A6CD 03A6D6 03E59F 03F1DD
; свободный адрес
; ram_012D = $012D ;
; 012E-012F (02)
ram_012E_plr = $012E ; 025B04 025B29 025B32 025B84 025B94 0345D5 0353DA 0357F0 03E46A 03F1BE
; ram_012F = $012F ; 025B04 025B29 025B32 025B84 025B94 0345D5 0353DA 03E46A 03F1BE
; 0130-014B (1C)
; временная ссылка для имен персов в tournament, не затрагивающая vs team
; все прочие ссылки можно считать для vs team
ram_tournament_name = $0130 ;
ram_0130 = $0130 ; 003F15 02FE5E 02FEF6 02FFA6 031059 038314 038CBB 038D64 038EA3 039025 03E644 03F1BE
ram_0131 = $0131 ; 003F15 02FE5E 02FEF6 02FFA6 031059 038314 038CBB 038D67 038EA3 03902A 03E644 03F1BE
ram_0132 = $0132 ; 003F15 02FE5E 02FEF6 02FFA6 031059 038314 038CBB 038D6A 038EA3 03902F 03E644 03F1BE
ram_0133 = $0133 ; 003F15 02FE5E 02FEF6 02FFA6 031059 038314 038CBB 038D6D 039033 03E644 03F1BE
ram_0134 = $0134 ; 003F15 02FE5E 02FEF6 02FFA6 031059 038314 038CBB 038D64 039025 03E644 03F1BE
ram_0135 = $0135 ; 003F15 02FE5E 02FEF6 02FFA6 031059 038314 038CBB 038D67 03902A 03E644 03F1BE
ram_0136 = $0136 ; 003F15 02FE5E 02FEF6 02FFA6 031059 038314 038CBB 038D6A 03902F 03E644 03F1BE
ram_0137 = $0137 ; 003F15 02FEF6 038314 038CBB 038D6D 039033 03E644 03F1BE
ram_0138 = $0138 ; 003F15 02FE5E 02FEF6 02FFBD 031059 038314 038CBB 038D64 039025 03E644 03F1BE
ram_0139 = $0139 ; 003F15 02FE5E 02FEF6 031059 038314 038CBB 038D67 03902A 03E644 03F1BE
ram_013A = $013A ; 003F15 02FE5E 02FEF6 031059 038314 038CBB 038D6A 03902F 03E644 03F1BE
ram_013B = $013B ; 003F15 02FE5E 02FEF6 031059 038314 038CBB 038D6D 039033 03E644 03F1BE
ram_013C = $013C ; 003F15 02FE5E 02FEF6 031059 038314 038CBB 038D64 038EA3 039025 03E644 03F1BE
ram_013D = $013D ; 003F15 02FE5E 02FEF6 031059 038314 038CBB 038D67 038EA3 03902A 03E644 03F1BE
ram_013E = $013E ; 003F15 02FE5E 02FEF6 031059 038314 038CBB 038D6A 038EA3 03902F 03E644 03F1BE
ram_013F = $013F ; 003F15 02FEF6 038314 038CBB 038D6D 038EA3 039033 03E644 03F1BE
; 0140-0141 (02)
ram_plr_колво_персов_в_цепочке_vs_team = $0140 ; 003F15 02FCDE 02FCF4 02FE35 02FE43 02FE47 02FE64 02FEF6 02FF67 031028 031043 031055 038CBB 03E644 03E647 03F1BE
; ram_0141 = $0141 ; 003F15 02FCF7 02FD99 02FE35 02FE43 02FE47 02FE64 02FEF6 02FF67 031028 031043 031055 038CBB 03E644 03E647 03F1BE
; 0142-0143 (02)
ram_plr_колво_побед_в_vs_team = $0142 ; 003F15 02FCB5 02FCD1 02FEB7 02FEC4 02FEC9 02FEF6 02FF62 02FFA3 038CBB 03E644 03E647 03F1BE
; ram_0143 = $0143 ; 003F15 02FEB7 02FEC4 02FEC9 02FEF6 02FF62 02FFBA 038CBB 03E644 03E647 03F1BE
; тип выбора перса в vs team
; 00 = ничего не делать
; FF = запись имени выбранного перса
; FE = отмена выбранного перса (текст "???")
; FD = выбор рандомного перса (текст "RND")
ram_0144_plr_выбор_перса_vs_team = $0144 ; 003F15 02FE59 02FE6B 02FEF6 031018 031039 03103E 038CBB 03E644 03E647 03F1BE
; ram_0145 = $0145 ; 003F15 02FE59 02FE6B 02FEF6 031018 031039 03103E 038CBB 03E644 03E647 03F1BE
; временный ppu буфер для имен vs team
; bzk optimize, буфер размером до 014D включительно, заменить адреса или переписать код
ram_0146_ppu_buffer = $0146 ; 003F15 02FEF6 031025 03106F 038CBB 03E644 03E647 03F1BE
; ram_0147 = $0147 ; 003F15 02FEF6 031030 03106F 038CBB 03E644 03E647 03F1BE
; ram_0148 = $0148 ; 02FEF6 031036 03106F 038CBB 03E647 03F1BE
; ram_0149 = $0149 ; 02FEF6 031066 03106F 038CBB 03E647 03F1BE
; ram_014A = $014A ; 02FEF6 031066 03106F 038CBB 03E647 03F1BE
; ram_014B = $014B ; 02FEF6 031066 03106F 038CBB 03E647 03F1BE
; 014C-0152 (07)
; временная ссылка для индексов персов в tournament, не затрагивающая vs team
; все прочие ссылки можно считать для vs team
ram_tournament_fighter = $014C ;
; еще не разобрано
ram_014C = $014C ; 02FEF6 031066 03106F 038382 038CBB 038F9D 038FC3 038FDB 03906C 03A3A7 03E22E 03E65A 03F1BE
ram_014D = $014D ; 02FEF6 03106F 038382 038CBB 038F9D 038FC3 038FDB 03906C 03A3A7 03E233 03E65A 03F1BE
ram_014E = $014E ; 02FEF6 038382 038CBB 038F9D 038FC3 038FDB 03906C 03A3A7 03E22E 03E65A 03F1BE
ram_014F = $014F ; 0240CF 02FCAE 02FEF6 038382 038CBB 038F9D 038FC3 038FDB 03906C 03A3A7 03E233 03E65A 03E944 03F1BE
ram_номер_боя_vs_team_и_переключатель = $0150 ; 02FC9C 02FEF6 02FF94 02FFB2 03819B 03819E 038382 03A3A7 03B016 03B01B 03B029 03E22E 03E3F3 03E65A 03E65D 03F1BE
ram_переключатель_man_cpu = $0151 ; 0279D9 02EA1C 02FD94 02FDC5 02FDD5 02FDFC 02FE4A 02FEF6 02FF48 03A3A7 03E233 03E65A 03E65D 03F1BE
ram_0152 = $0152 ; 025E5B 02EE65 02FEF6 03A3A7 03E65D 03F1BE
; еще не разобрано
ram_0153 = $0153 ; 02FEF6 03F1BE
ram_0154 = $0154 ; 027B75 02FC96 02FEF6 034015 038329 038CA5 03A399 03A3DF 03E229 03E294 03E4C7 03E650 03E657 03E675 03F1BE 03FF4D