-
Notifications
You must be signed in to change notification settings - Fork 0
/
bank_1A.asm
8390 lines (7230 loc) · 401 KB
/
bank_1A.asm
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
.segment "BANK_1A"
.include "copy_bank_ram.inc"
.include "copy_bank_val.inc"
; 0x034010-0x03800F
.org $8000
.export sub_0x034011_обработчик_ai
- D 0 - - - 0x034010 0D:8000: 0A .byte con_bank_id + $1A ;
sub_0x034011_обработчик_ai:
C D 0 - - - 0x034011 0D:8001: A2 01 LDX #$01
bra_8003_loop:
C - - - - - 0x034013 0D:8003: 86 00 STX ram_0000
C - - - - - 0x034015 0D:8005: AD 54 01 LDA ram_0154
C - - - - - 0x034018 0D:8008: 0A ASL
C - - - - - 0x034019 0D:8009: 65 00 ADC ram_0000
C - - - - - 0x03401B 0D:800B: A8 TAY
C - - - - - 0x03401C 0D:800C: B9 55 01 LDA ram_tournament_индекс_игрока,Y ; 0155 0156 0157 0158 0159 015A
C - - - - - 0x03401F 0D:800F: 10 03 BPL bra_8014 ; if not cpu
; if cpu
C - - - - - 0x034021 0D:8011: 20 F2 A1 JSR sub_A1F2
bra_8014:
C - - - - - 0x034024 0D:8014: CA DEX
C - - - - - 0x034025 0D:8015: 10 EC BPL bra_8003_loop
C - - - - - 0x034027 0D:8017: 60 RTS
sub_8036:
C - - - - - 0x034046 0D:8036: 20 04 F2 JSR sub_0x03F214_генератор_рандома
C - - - - - 0x034049 0D:8039: 20 5B EC JSR sub_EC5B
C - - - - - 0x03404C 0D:803C: BC DE 06 LDY ram_06DE_cpu_индекс_соперника,X ; 06DE 06DF
C - - - - - 0x03404F 0D:803F: 20 26 EF JSR sub_EF26
C - - - - - 0x034052 0D:8042: 85 13 STA ram_0013
C - - - - - 0x034054 0D:8044: 20 B9 EE JSR sub_EEB9
C - - - - - 0x034057 0D:8047: 85 12 STA ram_0012
C - - - - - 0x034059 0D:8049: BC DE 06 LDY ram_06DE_cpu_индекс_соперника,X ; 06DE 06DF
C - - - - - 0x03405C 0D:804C: 20 66 EE JSR sub_EE66_проверить_здоровье_персов
C - - - - - 0x03405F 0D:804F: 85 10 STA ram_0010
C - - - - - 0x034061 0D:8051: B9 20 05 LDA ram_obj_state_hi,Y ; 0520 0521
C - - - - - 0x034064 0D:8054: 85 11 STA ram_0011
C - - - - - 0x034066 0D:8056: 60 RTS
sub_EC5B:
; перемещено из банка FF
C - - - - - 0x03EC6B 0F:EC5B: BC DE 06 LDY ram_06DE_cpu_индекс_соперника,X ; 06DE 06DF
C - - - - - 0x03EC6E 0F:EC5E: B9 54 05 LDA ram_obj_id + $04,Y ; 0554 0555
C - - - - - 0x03EC71 0F:EC61: C9 30 CMP #con_0552_special_shred_волна
C - - - - - 0x03EC73 0F:EC63: F0 0A BEQ bra_EC6F
C - - - - - 0x03EC75 0F:EC65: C9 39 CMP #con_0552_special_casey_песок
C - - - - - 0x03EC77 0F:EC67: F0 06 BEQ bra_EC6F
C - - - - - 0x03EC79 0F:EC69: A9 FF LDA #$FF
C - - - - - 0x03EC7B 0F:EC6B: 8D F8 06 STA ram_06F8
C - - - - - 0x03EC7E 0F:EC6E: 60 RTS
bra_EC6F:
C - - - - - 0x03EC7F 0F:EC6F: 98 TYA
C - - - - - 0x03EC80 0F:EC70: 18 CLC
C - - - - - 0x03EC81 0F:EC71: 69 04 ADC #$04
C - - - - - 0x03EC83 0F:EC73: A8 TAY
C - - - - - 0x03EC84 0F:EC74: 20 26 EF JSR sub_EF26
C - - - - - 0x03EC87 0F:EC77: 8D F8 06 STA ram_06F8
C - - - - - 0x03EC8A 0F:EC7A: 60 RTS
sub_EEB9:
; перемещено из банка FF
; бряк срабатывает ежекадрово для каждого cpu игрока во время боя,
; включая начало боя и победную анимацию
C - - - - - 0x03EEC9 0F:EEB9: A0 06 LDY #$06
C - - - - - 0x03EECB 0F:EEBB: B9 00 04 LDA ram_obj_anim_id,Y ; 0406
C - - - - - 0x03EECE 0F:EEBE: F0 60 BEQ bra_EF20
C - - - - - 0x03EED0 0F:EEC0: 20 97 EE JSR sub_EE97_вычислить_разницу_pos_X_объектов
C - - - - - 0x03EED3 0F:EEC3: BC DE 06 LDY ram_06DE_cpu_индекс_соперника,X ; 06DE 06DF
C - - - - - 0x03EED6 0F:EEC6: A5 0E LDA ram_000E ; разница координат lo
C - - - - - 0x03EED8 0F:EEC8: 8D D9 06 STA ram_06D9
C - - - - - 0x03EEDB 0F:EECB: A5 0F LDA ram_000F ; разница координат hi
C - - - - - 0x03EEDD 0F:EECD: 8D D8 06 STA ram_06D8
C - - - - - 0x03EEE0 0F:EED0: AD D6 06 LDA ram_дистанция_до_соперника_X_hi
C - - - - - 0x03EEE3 0F:EED3: 45 0F EOR ram_000F ; разница координат hi
C - - - - - 0x03EEE5 0F:EED5: 30 4C BMI bra_EF23
C - - - - - 0x03EEE7 0F:EED7: A5 0F LDA ram_000F ; разница координат hi
C - - - - - 0x03EEE9 0F:EED9: 10 13 BPL bra_EEEE
C - - - - - 0x03EEEB 0F:EEDB: 49 FF EOR #$FF
C - - - - - 0x03EEED 0F:EEDD: 85 0F STA ram_000F
C - - - - - 0x03EEEF 0F:EEDF: A5 0E LDA ram_000E ; разница координат lo
C - - - - - 0x03EEF1 0F:EEE1: 49 FF EOR #$FF
C - - - - - 0x03EEF3 0F:EEE3: 18 CLC
C - - - - - 0x03EEF4 0F:EEE4: 69 01 ADC #< $0001
C - - - - - 0x03EEF6 0F:EEE6: 85 0E STA ram_000E ; разница координат lo
C - - - - - 0x03EEF8 0F:EEE8: A5 0F LDA ram_000F ; разница координат hi
C - - - - - 0x03EEFA 0F:EEEA: 69 00 ADC #> $0001
C - - - - - 0x03EEFC 0F:EEEC: 85 0F STA ram_000F ; разница координат hi
bra_EEEE:
C - - - - - 0x03EEFE 0F:EEEE: AD D6 06 LDA ram_дистанция_до_соперника_X_hi
C - - - - - 0x03EF01 0F:EEF1: 10 14 BPL bra_EF07
C - - - - - 0x03EF03 0F:EEF3: 49 FF EOR #$FF
C - - - - - 0x03EF05 0F:EEF5: 85 05 STA ram_0005
C - - - - - 0x03EF07 0F:EEF7: AD D7 06 LDA ram_дистанция_до_соперника_X_lo
C - - - - - 0x03EF0A 0F:EEFA: 49 FF EOR #$FF
C - - - - - 0x03EF0C 0F:EEFC: 18 CLC
C - - - - - 0x03EF0D 0F:EEFD: 69 01 ADC #< $0001
C - - - - - 0x03EF0F 0F:EEFF: 85 04 STA ram_0004
C - - - - - 0x03EF11 0F:EF01: A5 05 LDA ram_0005
C - - - - - 0x03EF13 0F:EF03: 69 00 ADC #> $0001
C - - - - - 0x03EF15 0F:EF05: 85 05 STA ram_0005
bra_EF07:
C - - - - - 0x03EF17 0F:EF07: A5 04 LDA ram_0004
C - - - - - 0x03EF19 0F:EF09: 6A ROR
C - - - - - 0x03EF1A 0F:EF0A: 85 04 STA ram_0004
C - - - - - 0x03EF1C 0F:EF0C: C5 0E CMP ram_000E
C - - - - - 0x03EF1E 0F:EF0E: 90 10 BCC bra_EF20
C - - - - - 0x03EF20 0F:EF10: A5 05 LDA ram_0005
C - - - - - 0x03EF22 0F:EF12: 4A LSR
C - - - - - 0x03EF23 0F:EF13: 85 05 STA ram_0005
C - - - - - 0x03EF25 0F:EF15: A5 04 LDA ram_0004
C - - - - - 0x03EF27 0F:EF17: 6A ROR
C - - - - - 0x03EF28 0F:EF18: 85 04 STA ram_0004
C - - - - - 0x03EF2A 0F:EF1A: C5 0E CMP ram_000E
C - - - - - 0x03EF2C 0F:EF1C: 90 40 BCC bra_EF5E
C - - - - - 0x03EF2E 0F:EF1E: B0 3B BCS bra_EF5B ; jmp
bra_EF20:
C - - - - - 0x03EF30 0F:EF20: A9 03 LDA #$03
C - - - - - 0x03EF32 0F:EF22: 60 RTS
bra_EF23:
C - - - - - 0x03EF33 0F:EF23: A9 00 LDA #$00
C - - - - - 0x03EF35 0F:EF25: 60 RTS
sub_EF26:
; перемещено из банка FF
; на выходе A
; 00 =
; 01 =
; 02 =
C - - - - - 0x03EF36 0F:EF26: 20 97 EE JSR sub_EE97_вычислить_разницу_pos_X_объектов
C D 3 - - - 0x03EF39 0F:EF29: A5 0E LDA ram_000E ; разница координат lo
C - - - - - 0x03EF3B 0F:EF2B: 8D D7 06 STA ram_дистанция_до_соперника_X_lo
C - - - - - 0x03EF3E 0F:EF2E: A5 0F LDA ram_000F ; разница координат hi
C - - - - - 0x03EF40 0F:EF30: 8D D6 06 STA ram_дистанция_до_соперника_X_hi
C - - - - - 0x03EF43 0F:EF33: 8A TXA
C - - - - - 0x03EF44 0F:EF34: 0A ASL
C - - - - - 0x03EF45 0F:EF35: 0A ASL
C - - - - - 0x03EF46 0F:EF36: A8 TAY
C - - - - - 0x03EF47 0F:EF37: B9 E8 06 LDA ram_06E8,Y ; 06E8 06EC
C - - - - - 0x03EF4A 0F:EF3A: 85 16 STA ram_0016
C - - - - - 0x03EF4C 0F:EF3C: B9 E9 06 LDA ram_06E9,Y ; 06E9 06ED
C - - - - - 0x03EF4F 0F:EF3F: 85 15 STA ram_0015
C - - - - - 0x03EF51 0F:EF41: B9 EA 06 LDA ram_06EA,Y ; 06EA 06EE
C - - - - - 0x03EF54 0F:EF44: 85 14 STA ram_0014
C - - - - - 0x03EF56 0F:EF46: BC DE 06 LDY ram_06DE_cpu_индекс_соперника,X ; 06DE 06DF
C - - - - - 0x03EF59 0F:EF49: AD 38 06 LDA ram_расстояние_между_персами
C - - - - - 0x03EF5C 0F:EF4C: C5 14 CMP ram_0014
C - - - - - 0x03EF5E 0F:EF4E: B0 D0 BCS bra_EF20
; if персы достаточно близко друг к другу
C - - - - - 0x03EF60 0F:EF50: C5 15 CMP ram_0015
C - - - - - 0x03EF62 0F:EF52: B0 0A BCS bra_EF5E
C - - - - - 0x03EF64 0F:EF54: C5 16 CMP ram_0016
C - - - - - 0x03EF66 0F:EF56: B0 03 BCS bra_EF5B
C - - - - - 0x03EF68 0F:EF58: A9 00 LDA #$00
C - - - - - 0x03EF6A 0F:EF5A: 60 RTS
bra_EF5B:
C - - - - - 0x03EF6B 0F:EF5B: A9 01 LDA #$01
C - - - - - 0x03EF6D 0F:EF5D: 60 RTS
bra_EF5E:
C - - - - - 0x03EF6E 0F:EF5E: A9 02 LDA #$02
C - - - - - 0x03EF70 0F:EF60: 60 RTS
sub_EE97_вычислить_разницу_pos_X_объектов:
; перемещено из банка FF
C - - - - - 0x03EEA7 0F:EE97: B9 40 04 LDA ram_obj_pos_X_lo,Y ; 0440 0441 0444 0445 0446
C - - - - - 0x03EEAA 0F:EE9A: 38 SEC
C - - - - - 0x03EEAB 0F:EE9B: FD 40 04 SBC ram_obj_pos_X_lo,X ; 0440 0441
C - - - - - 0x03EEAE 0F:EE9E: 85 0E STA ram_000E
C - - - - - 0x03EEB0 0F:EEA0: B9 30 04 LDA ram_obj_pos_X_hi,Y ; 0430 0431 0434 0435 0436
C - - - - - 0x03EEB3 0F:EEA3: FD 30 04 SBC ram_obj_pos_X_hi,X ; 0430 0431
C - - - - - 0x03EEB6 0F:EEA6: 85 0F STA ram_000F
C - - - - - 0x03EEB8 0F:EEA8: 60 RTS
loc_8057:
C D 0 - - - 0x034067 0D:8057: A9 00 LDA #$00
loc_8059:
C D 0 - - - 0x034069 0D:8059: 95 8E STA ram_btn_press,X
loc_805B:
C D 0 - - - 0x03406B 0D:805B: 95 91 STA ram_btn_hold,X
C - - - - - 0x03406D 0D:805D: BD CA 06 LDA ram_06CA_cpu_script,X ; 06CA 06CB
C - - - - - 0x034070 0D:8060: 20 32 D0 JSR sub_0x03D042_поинтеры_после_JSR
- D 0 - I - 0x034073 0D:8063: 69 80 .word ofs_037_8069_00
- D 0 - I - 0x034075 0D:8065: 74 81 .word ofs_037_8174_01
- D 0 - I - 0x034077 0D:8067: 16 81 .word ofs_037_8116_02
ofs_037_8069_00:
; свободный адрес 0011
C - - J - - 0x034079 0D:8069: A9 FF LDA #$FF
C - - - - - 0x03407B 0D:806B: 8D 9F 06 STA ram_поведение_cpu_1 + $1F
C - - - - - 0x03407E 0D:806E: 8D BF 06 STA ram_поведение_cpu_2 + $1F
C - - - - - 0x034081 0D:8071: A9 00 LDA #$00
C - - - - - 0x034083 0D:8073: 9D C6 06 STA ram_06C6_cpu_btn,X ; 06C6 06C7
C - - - - - 0x034086 0D:8076: 9D C8 06 STA ram_06C8_cpu_btn,X ; 06C8 06C9
C - - - - - 0x034089 0D:8079: 9D D2 06 STA ram_06D2_cpu_script,X ; 06D2 06D3
C - - - - - 0x03408C 0D:807C: 9D D4 06 STA ram_06D4_cpu_script,X ; 06D4 06D5
C - - - - - 0x03408F 0D:807F: 9D E2 06 STA ram_06E2_cpu,X ; 06E2 06E3
C - - - - - 0x034092 0D:8082: 9D CC 06 STA ram_06CC_cpu_flag,X ; 06CC 06CD
C - - - - - 0x034095 0D:8085: 8D F3 06 STA ram_06F3_флаг_использования_рандома
C - - - - - 0x03409B 0D:808B: 9D F6 06 STA ram_06F6_plr,X ; 06F6 06F7
C - - - - - 0x0340A1 0D:8091: 9D E4 06 STA ram_06E4_cpu_flag,X ; 06E4 06E5
C - - - - - 0x0340A4 0D:8094: 9D DC 06 STA ram_06DC_cpu_flag,X ; 06DC 06DD
C - - - - - 0x0340A7 0D:8097: 9D DA 06 STA ram_06DA_cpu_script,X ; 06DA 06DB
C - - - - - 0x0340AA 0D:809A: 9D C0 06 STA ram_cpu_шаблон_ai,X ; 06C0 06C1
C - - - - - 0x0340AD 0D:809D: 9D C2 06 STA ram_06C2_cpu_индекс_поведения,X ; 06C2 06C3
C - - - - - 0x0340B0 0D:80A0: 9D C4 06 STA ram_06C4_cpu_timer,X ; 06C4 06C5
C - - - - - 0x0340B3 0D:80A3: 9D CE 06 STA ram_06CE_cpu,X ; 06CE 06CF
C - - - - - 0x0340B6 0D:80A6: 9D E2 06 STA ram_06E2_cpu,X ; 06E2 06E3
C - - - - - 0x0340B9 0D:80A9: 9D E4 06 STA ram_06E4_cpu_flag,X ; 06E4 06E5
C - - - - - 0x0340BC 0D:80AC: 9D E6 06 STA ram_06E6_cpu,X ; 06E6 06E7
C - - - - - 0x0340BF 0D:80AF: 9D F8 06 STA ram_06F8,X ; 06F8 06F9
C - - - - - 0x0340C2 0D:80B2: A9 C0 LDA #$C0
C - - - - - 0x0340C4 0D:80B4: 9D E0 06 STA ram_06E0_cpu_timer,X ; 06E0 06E1
C - - - - - 0x0340C7 0D:80B7: 8A TXA
C - - - - - 0x0340C8 0D:80B8: 49 01 EOR #$01
C - - - - - 0x0340CA 0D:80BA: 9D DE 06 STA ram_06DE_cpu_индекс_соперника,X ; 06DE 06DF
C - - - - - 0x0340CD 0D:80BD: 8A TXA
C - - - - - 0x0340CE 0D:80BE: 0A ASL
C - - - - - 0x0340CF 0D:80BF: 0A ASL
C - - - - - 0x0340D0 0D:80C0: 85 10 STA ram_0010
C - - - - - 0x0340D2 0D:80C2: BC 50 05 LDY ram_obj_id,X ; 0550 0551
C - - - - - 0x0340D5 0D:80C5: B9 1C DF LDA tbl_0x03DF2C_рейндж_броска,Y
C - - - - - 0x0340D8 0D:80C8: 38 SEC
C - - - - - 0x0340D9 0D:80C9: E9 01 SBC #$01
C - - - - - 0x0340DB 0D:80CB: A4 10 LDY ram_0010
C - - - - - 0x0340DD 0D:80CD: 99 E8 06 STA ram_06E8,Y ; 06E8 06EC
C - - - - - 0x0340E0 0D:80D0: BD 50 05 LDA ram_obj_id,X ; 0550 0551
; * 03
C - - - - - 0x0340E3 0D:80D3: 0A ASL
C - - - - - 0x0340E4 0D:80D4: 0A ADC ram_obj_id,X ; 0550 0551
C - - - - - 0x0340E7 0D:80D7: A8 TAY
C - - - - - 0x0340E8 0D:80D8: B9 FB 80 LDA tbl_80FA + $02,Y
PHA
LDA tbl_80FA + $01,Y
PHA
LDA tbl_80FA,Y
LDY ram_0010
STA ram_06E9,Y ; 06E9 06ED
PLA
STA ram_06EA,Y ; 06EA 06EE
PLA
C - - - - - 0x0340ED 0D:80DD: 99 E9 06 STA ram_06EB,Y ; 06EB 06EF
C - - - - - 0x034104 0D:80F4: A9 01 LDA #$01
C - - - - - 0x034106 0D:80F6: 9D CA 06 STA ram_06CA_cpu_script,X ; 06CA 06CB
C - - - - - 0x034109 0D:80F9: 60 RTS
tbl_80FA:
; 00 con_fighter_leo
- D 0 - - - 0x03410B 0D:80FB: 1C .byte $1C ;
- D 0 - - - 0x03410C 0D:80FC: 38 .byte $38 ;
- D 0 - - - 0x03410D 0D:80FD: 8C .byte $8C ;
; 01 con_fighter_raph
- D 0 - - - 0x03410F 0D:80FF: 1C .byte $1C ;
- D 0 - - - 0x034110 0D:8100: 54 .byte $54 ;
- D 0 - - - 0x034111 0D:8101: 8C .byte $8C ;
; 02 con_fighter_mike
- D 0 - - - 0x034113 0D:8103: 1C .byte $1C ;
- D 0 - - - 0x034114 0D:8104: 54 .byte $54 ;
- D 0 - - - 0x034115 0D:8105: 8C .byte $8C ;
; 03 con_fighter_don
- D 0 - - - 0x034117 0D:8107: 1C .byte $1C ;
- D 0 - - - 0x034118 0D:8108: 3C .byte $3C ;
- D 0 - - - 0x034119 0D:8109: 8C .byte $8C ;
; 04 con_fighter_casey
- D 0 - - - 0x03411B 0D:810B: 20 .byte $20 ;
- D 0 - - - 0x03411C 0D:810C: 60 .byte $60 ;
- D 0 - - - 0x03411D 0D:810D: A0 .byte $A0 ;
; 05 con_fighter_hot
- D 0 - - - 0x03411F 0D:810F: 24 .byte $24 ;
- D 0 - - - 0x034120 0D:8110: 6C .byte $6C ;
- D 0 - - - 0x034121 0D:8111: B4 .byte $B4 ;
; 06 con_fighter_shred
- D 0 - - - 0x034123 0D:8113: 1E .byte $1E ;
- D 0 - - - 0x034124 0D:8114: 5A .byte $5A ;
- D 0 - - - 0x034125 0D:8115: 96 .byte $96 ;
.if con_новые_персы <> $00
; 07 con_fighter___leo
.byte $1C ;
.byte $38 ;
.byte $8C ;
; 08 con_fighter___raph
.byte $1C ;
.byte $54 ;
.byte $8C ;
; 09 con_fighter___mike
.byte $1C ;
.byte $54 ;
.byte $8C ;
; 0A con_fighter___don
.byte $1C ;
.byte $3C ;
.byte $8C ;
; 0B con_fighter___casey
.byte $20 ;
.byte $60 ;
.byte $A0 ;
; 0C con_fighter___hot
.byte $24 ;
.byte $6C ;
.byte $B4 ;
; 0D con_fighter___shred
.byte $1E ;
.byte $5A ;
.byte $96 ;
.endif
ofs_037_8116_02:
C - - J - - 0x034126 0D:8116: 20 36 80 JSR sub_8036
C - - - - - 0x034129 0D:8119: 20 BB 81 JSR sub_81BB
C - - - - - 0x03412C 0D:811C: BD C0 06 LDA ram_cpu_шаблон_ai,X
C - - - - - 0x03412F 0D:811F: C9 FF CMP #$FF
C - - - - - 0x034131 0D:8121: D0 04 BNE bra_8127
C - - - - - 0x034133 0D:8123: DE CA 06 DEC ram_06CA_cpu_script,X ; 06CA 06CB 02 -> 01
C - - - - - 0x034136 0D:8126: 60 RTS
bra_8127:
C - - - - - 0x034137 0D:8127: BD E6 06 LDA ram_06E6_cpu,X ; 06E6 06E7
C - - - - - 0x03413A 0D:812A: D0 19 BNE bra_8145_RTS
C - - - - - 0x03413C 0D:812C: BC DE 06 LDY ram_06DE_cpu_индекс_соперника,X ; 06DE 06DF
C - - - - - 0x03413F 0D:812F: BD 20 05 LDA ram_obj_state_hi,X ; 0520 0521
; что это за пиздец такой?
C - - - - - 0x034142 0D:8132: 45 11 EOR ram_0011
C - - - - - 0x034144 0D:8134: 45 13 EOR ram_0013
C - - - - - 0x034146 0D:8136: 59 10 06 EOR ram_plr_флаг_индекса_атаки,Y ; 0610 0611
C - - - - - 0x034149 0D:8139: 4D A6 05 EOR ram_05A0_obj_флаги_мяча + $06
C - - - - - 0x03414C 0D:813C: 45 12 EOR ram_0012
C - - - - - 0x03414E 0D:813E: 85 08 STA ram_0008
C - - - - - 0x034150 0D:8140: 5D CE 06 EOR ram_06CE_cpu,X ; 06CE 06CF
C - - - - - 0x034153 0D:8143: D0 01 BNE bra_8146
bra_8145_RTS:
C - - - - - 0x034155 0D:8145: 60 RTS
bra_8146:
C - - - - - 0x034156 0D:8146: A5 08 LDA ram_0008
C - - - - - 0x034158 0D:8148: 9D CE 06 STA ram_06CE_cpu,X ; 06CE 06CF
C - - - - - 0x03415B 0D:814B: BD E4 06 LDA ram_06E4_cpu_flag,X ; 06E4 06E5
C - - - - - 0x03415E 0D:814E: D0 F5 BNE bra_8145_RTS
C - - - - - 0x034160 0D:8150: A9 FF LDA #$FF
C - - - - - 0x034162 0D:8152: 8D F0 06 STA ram_06F0_flag
C - - - - - 0x034165 0D:8155: 20 93 81 JSR sub_8193_выбрать_шаблоны_ai_на_основе_комбинации_персов
C - - - - - 0x034168 0D:8158: A5 17 LDA ram_0017
C - - - - - 0x03416A 0D:815A: F0 0A BEQ bra_8166_шаблон_не_выбран
C - - - - - 0x03416C 0D:815C: 20 96 ED JSR sub_ED96_очистка_адресов_cpu_при_необходимости
C - - - - - 0x03416F 0D:815F: A5 17 LDA ram_0017
C - - - - - 0x034171 0D:8161: 9D E6 06 STA ram_06E6_cpu,X ; 06E6 06E7
C - - - - - 0x034174 0D:8164: D0 14 BNE bra_817A
bra_8166_шаблон_не_выбран:
C - - - - - 0x034176 0D:8166: 20 A7 81 JSR sub_81A7_выбрать_базовые_шаблоны_ai_для_персов
C - - - - - 0x034179 0D:8169: AC F0 06 LDY ram_06F0_flag
C - - - - - 0x03417C 0D:816C: D0 05 BNE bra_8173_RTS
C - - - - - 0x03417E 0D:816E: FE E4 06 INC ram_06E4_cpu_flag,X ; 06E4 06E5
C - - - - - 0x034181 0D:8171: D0 07 BNE bra_817A
bra_8173_RTS:
C - - - - - 0x034183 0D:8173: 60 RTS
ofs_037_8174_01:
C - - J - - 0x034184 0D:8174: 20 36 80 JSR sub_8036
C - - - - - 0x034187 0D:8177: 20 A7 81 JSR sub_81A7_выбрать_базовые_шаблоны_ai_для_персов
bra_817A:
C - - - - - 0x03418A 0D:817A: 9D C0 06 STA ram_cpu_шаблон_ai,X
C - - - - - 0x03418D 0D:817D: 20 6E A5 JSR sub_A56E
C - - - - - 0x034190 0D:8180: C9 46 CMP #con_колво_шаблонов_ai
C - - - - - 0x034192 0D:8182: B0 0B BCS bra_818F
C - - - - - 0x034194 0D:8184: A9 00 LDA #$00
C - - - - - 0x034196 0D:8186: 9D D2 06 STA ram_06D2_cpu_script,X ; 06D2 06D3
C - - - - - 0x034199 0D:8189: A9 02 LDA #$02
C - - - - - 0x03419B 0D:818B: 9D CA 06 STA ram_06CA_cpu_script,X ; 06CA 06CB
C - - - - - 0x03419E 0D:818E: 60 RTS
bra_818F:
C - - - - - 0x03419F 0D:818F: A9 41 LDA #con_шаблон_ai_41
C - - - - - 0x0341A1 0D:8191: D0 E7 BNE bra_817A ; jmp
sub_8193_выбрать_шаблоны_ai_на_основе_комбинации_персов:
LDA #$00 ; шаблон по умолчанию не выбран (con_шаблон_ai_00)
STA ram_0017
C - - - - - 0x0341A3 0D:8193: BD 50 05 LDA ram_obj_id,X ; 0550 0551
C - - - - - 0x0341A6 0D:8196: 20 32 D0 JSR sub_0x03D042_поинтеры_после_JSR
- D 0 - I - 0x0341A9 0D:8199: 11 9C .word ofs_036_9C11_00_leo ; con_fighter_leo
- D 0 - I - 0x0341AB 0D:819B: F6 9C .word ofs_036_9CF6_01_raph ; con_fighter_raph
- D 0 - I - 0x0341AD 0D:819D: 1C 9D .word ofs_036_9D1C_02_mike ; con_fighter_mike
- D 0 - I - 0x0341AF 0D:819F: 64 9D .word ofs_036_9D64_03_don ; con_fighter_don
- D 0 - I - 0x0341B1 0D:81A1: AF 9D .word ofs_036_9DAF_04_casey ; con_fighter_casey
- D 0 - I - 0x0341B3 0D:81A3: E4 9E .word ofs_036_9EE4_05_hot ; con_fighter_hot
- D 0 - I - 0x0341B5 0D:81A5: AF 9F .word ofs_036_9FAF_06_shred ; con_fighter_shred
.if con_новые_персы <> $00
.word ofs_036_9C11_07 ; con_fighter___leo
.word ofs_036_9CF6_08 ; con_fighter___raph
.word ofs_036_9D1C_09 ; con_fighter___mike
.word ofs_036_9D64_0A ; con_fighter___don
.word ofs_036_9DAF_0B ; con_fighter___casey
.word ofs_036_9EE4_0C ; con_fighter___hot
.word ofs_036_9FAF_0D ; con_fighter___shred
.endif
sub_81A7_выбрать_базовые_шаблоны_ai_для_персов:
C - - - - - 0x0341B7 0D:81A7: BD 50 05 LDA ram_obj_id,X ; 0550 0551
C - - - - - 0x0341BA 0D:81AA: 20 32 D0 JSR sub_0x03D042_поинтеры_после_JSR
- D 0 - I - 0x0341BD 0D:81AD: EB 8D .word ofs_035_8DEB_00_leo ; con_fighter_leo
- D 0 - I - 0x0341BF 0D:81AF: BC 90 .word ofs_035_90BC_01_raph ; con_fighter_raph
- D 0 - I - 0x0341C1 0D:81B1: BD 93 .word ofs_035_93BD_02_mike ; con_fighter_mike
- D 0 - I - 0x0341C3 0D:81B3: A4 92 .word ofs_035_92A4_03_don ; con_fighter_don
- D 0 - I - 0x0341C5 0D:81B5: 97 95 .word ofs_035_9597_04_casey ; con_fighter_casey
- D 0 - I - 0x0341C7 0D:81B7: 5C 98 .word ofs_035_985C_05_hot ; con_fighter_hot
- D 0 - I - 0x0341C9 0D:81B9: CA 99 .word ofs_035_99CA_06_shred ; con_fighter_shred
.if con_новые_персы <> $00
.word ofs_035_8DEB_07 ; con_fighter___leo
.word ofs_035_90BC_08 ; con_fighter___raph
.word ofs_035_93BD_09 ; con_fighter___mike
.word ofs_035_92A4_0A ; con_fighter___don
.word ofs_035_9597_0B ; con_fighter___casey
.word ofs_035_985C_0C ; con_fighter___hot
.word ofs_035_99CA_0D ; con_fighter___shred
.endif
sub_81BB:
C - - - - - 0x0341CB 0D:81BB: BD 20 05 LDA ram_obj_state_hi,X ; 0520 0521
C - - - - - 0x0341CE 0D:81BE: C9 01 CMP #con_plr_state_в_прыжке
C - - - - - 0x0341D0 0D:81C0: D0 14 BNE bra_81D6
C - - - - - 0x0341D2 0D:81C2: AD 40 05 LDA ram_obj_state_lo
C - - - - - 0x0341D5 0D:81C5: C9 01 CMP #$01
C - - - - - 0x0341D7 0D:81C7: D0 0D BNE bra_81D6
C - - - - - 0x0341D9 0D:81C9: A5 13 LDA ram_0013
C - - - - - 0x0341DB 0D:81CB: C9 02 CMP #$02
C - - - - - 0x0341DD 0D:81CD: B0 07 BCS bra_81D6
C - - - - - 0x0341DF 0D:81CF: A9 80 LDA #con_btn_A
C - - - - - 0x0341E1 0D:81D1: 95 91 STA ram_btn_hold,X
C - - - - - 0x0341E3 0D:81D3: 95 8E STA ram_btn_press,X
C - - - - - 0x0341E5 0D:81D5: 60 RTS
bra_81D6:
C - - - - - 0x0341EC 0D:81DC: BD DC 06 LDA ram_06DC_cpu_flag,X ; 06DC 06DD
C - - - - - 0x0341EF 0D:81DF: D0 1E BNE bra_81FF
C - - - - - 0x0341F1 0D:81E1: BD D2 06 LDA ram_06D2_cpu_script,X ; 06D2 06D3
C - - - - - 0x0341F4 0D:81E4: C9 03 CMP #$03
C - - - - - 0x0341F6 0D:81E6: F0 17 BEQ bra_81FF
C - - - - - 0x0341F8 0D:81E8: 20 C6 ED JSR sub_EDC6_генератор_рандома_по_сложности_игры_1
C - - - - - 0x0341FB 0D:81EB: C9 60 CMP #$60
C - - - - - 0x0341FD 0D:81ED: B0 0A BCS bra_81F9
C - - - - - 0x0341FF 0D:81EF: BC DE 06 LDY ram_06DE_cpu_индекс_соперника,X ; 06DE 06DF
C - - - - - 0x034202 0D:81F2: B9 20 05 LDA ram_obj_state_hi,Y ; 0520 0521
C - - - - - 0x034205 0D:81F5: C9 03 CMP #con_plr_state_получает_урон
C - - - - - 0x034207 0D:81F7: F0 06 BEQ bra_81FF
bra_81F9:
C - - - - - 0x034209 0D:81F9: BD 10 06 LDA ram_plr_флаг_индекса_атаки,X ; 0610 0611
C - - - - - 0x03420C 0D:81FC: F0 01 BEQ bra_81FF
C - - - - - 0x03420E 0D:81FE: 60 RTS
bra_81FF:
C - - - - - 0x03420F 0D:81FF: BD D2 06 LDA ram_06D2_cpu_script,X ; 06D2 06D3
C - - - - - 0x034212 0D:8202: 20 32 D0 JSR sub_0x03D042_поинтеры_после_JSR
- D 0 - I - 0x034215 0D:8205: 43 82 .word ofs_034_8243_00
- D 0 - I - 0x034217 0D:8207: 0D 82 .word ofs_034_820D_01
- D 0 - I - 0x034219 0D:8209: 28 82 .word ofs_034_8228_02
- D 0 - I - 0x03421B 0D:820B: 97 84 .word ofs_034_8497_03
ofs_034_820D_01:
C - - J - - 0x03421D 0D:820D: BD C4 06 LDA ram_06C4_cpu_timer,X ; 06C4 06C5
C - - - - - 0x034220 0D:8210: D0 07 BNE bra_8219
C - - - - - 0x034222 0D:8212: A9 00 LDA #$00
C - - - - - 0x034224 0D:8214: 9D D2 06 STA ram_06D2_cpu_script,X ; 06D2 06D3
C - - - - - 0x034227 0D:8217: F0 03 BEQ bra_821C ; jmp
bra_8219:
C - - - - - 0x034229 0D:8219: DE C4 06 DEC ram_06C4_cpu_timer,X ; 06C4 06C5
bra_821C:
C - - - - - 0x03422C 0D:821C: BD C6 06 LDA ram_06C6_cpu_btn,X ; 06C6 06C7
C - - - - - 0x03422F 0D:821F: 1D C8 06 ORA ram_06C8_cpu_btn,X ; 06C8 06C9
C - - - - - 0x034232 0D:8222: 95 91 STA ram_btn_hold,X
C - - - - - 0x034234 0D:8224: 9D C6 06 STA ram_06C6_cpu_btn,X ; 06C6 06C7
C - - - - - 0x034237 0D:8227: 60 RTS
ofs_034_8228_02:
C - - J - - 0x034238 0D:8228: BD CC 06 LDA ram_06CC_cpu_flag,X ; 06CC 06CD
C - - - - - 0x03423B 0D:822B: D0 0D BNE bra_823A
C - - - - - 0x03423D 0D:822D: A9 00 LDA #$00
C - - - - - 0x03423F 0D:822F: 9D D2 06 STA ram_06D2_cpu_script,X ; 06D2 06D3
C - - - - - 0x034242 0D:8232: 9D C6 06 STA ram_06C6_cpu_btn,X ; 06C6 06C7
C - - - - - 0x034245 0D:8235: 9D C8 06 STA ram_06C8_cpu_btn,X ; 06C8 06C9
C - - - - - 0x034248 0D:8238: F0 09 BEQ bra_8243 ; jmp
bra_823A:
C - - - - - 0x03424A 0D:823A: DE CC 06 DEC ram_06CC_cpu_flag,X ; 06CC 06CD
C - - - - - 0x03424D 0D:823D: BD C6 06 LDA ram_06C6_cpu_btn,X ; 06C6 06C7
C - - - - - 0x034250 0D:8240: 95 91 STA ram_btn_hold,X
C - - - - - 0x034252 0D:8242: 60 RTS
bra_8243:
ofs_034_8243_00:
C - - J - - 0x034253 0D:8243: 20 B8 A3 JSR sub_A3B8
C - - - - - 0x034256 0D:8246: F0 26 BEQ bra_826E
sub_8248:
C - - - - - 0x034259 0D:8249: 0A ASL
C - - - - - 0x03425A 0D:824A: A8 TAY
C - - - - - 0x03425B 0D:824B: B9 0B 8B LDA tbl_8B0B_шаблоны_ai,Y
C - - - - - 0x03425E 0D:824E: 85 0A STA ram_000A
C - - - - - 0x034260 0D:8250: B9 0C 8B LDA tbl_8B0B_шаблоны_ai + $01,Y
C - - - - - 0x034263 0D:8253: 85 0B STA ram_000B
C - - - - - 0x034265 0D:8255: A0 00 LDY #$00
bra_8257_loop:
C - - - - - 0x034267 0D:8257: B1 0A LDA (ram_000A),Y
C - - - - - 0x034269 0D:8259: 20 E3 83 JSR sub_83E3
C - - - - - 0x03426C 0D:825C: 20 14 ED JSR sub_ED14_запись_поведения_cpu
C - - - - - 0x03426F 0D:825F: C8 INY
C - - - - - 0x034270 0D:8260: C9 FF CMP #$FF
C - - - - - 0x034272 0D:8262: D0 F3 BNE bra_8257_loop
; FF
C - - - - - 0x034274 0D:8264: A9 00 LDA #$00 ; con_шаблон_ai_00 ???
C - - - - - 0x034276 0D:8266: 9D C0 06 STA ram_cpu_шаблон_ai,X ; 06C0 06C1
C - - - - - 0x034279 0D:8269: 9D C2 06 STA ram_06C2_cpu_индекс_поведения,X ; 06C2 06C3
C - - - - - 0x03427C 0D:826C: 85 17 STA ram_0017
bra_826E:
loc_826E:
C D 0 - - - 0x03427E 0D:826E: BD C2 06 LDA ram_06C2_cpu_индекс_поведения,X ; 06C2 06C3
C - - - - - 0x034281 0D:8271: A8 TAY
C - - - - - 0x034282 0D:8272: FE C2 06 INC ram_06C2_cpu_индекс_поведения,X ; 06C2 06C3
C - - - - - 0x034285 0D:8275: 20 20 ED JSR sub_ED20_чтение_поведения_cpu
C - - - - - 0x034288 0D:8278: C9 D0 CMP #$D0
C - - - - - 0x03428A 0D:827A: B0 25 BCS bra_82A1_D0_FF
; 00-CF
C - - - - - 0x03428C 0D:827C: 85 10 STA ram_0010
C - - - - - 0x03428E 0D:827E: 3D C6 06 AND ram_06C6_cpu_btn,X ; 06C6 06C7
C - - - - - 0x034291 0D:8281: 45 10 EOR ram_0010
C - - - - - 0x034293 0D:8283: 95 8E STA ram_btn_press,X
C - - - - - 0x034295 0D:8285: A5 10 LDA ram_0010
C - - - - - 0x034297 0D:8287: 29 CF AND #con_btns_AB + con_btns_Dpad
C - - - - - 0x034299 0D:8289: 1D C8 06 ORA ram_06C8_cpu_btn,X ; 06C8 06C9
C - - - - - 0x03429C 0D:828C: 95 91 STA ram_btn_hold,X
C - - - - - 0x03429E 0D:828E: 9D C6 06 STA ram_06C6_cpu_btn,X ; 06C6 06C7
C - - - - - 0x0342A1 0D:8291: BD D2 06 LDA ram_06D2_cpu_script,X ; 06D2 06D3
C - - - - - 0x0342A4 0D:8294: D0 0A BNE bra_82A0_RTS
C - - - - - 0x0342A6 0D:8296: A9 01 LDA #$01
C - - - - - 0x0342A8 0D:8298: 9D D2 06 STA ram_06D2_cpu_script,X ; 06D2 06D3
C - - - - - 0x0342AB 0D:829B: A9 00 LDA #$00
C - - - - - 0x0342AD 0D:829D: 9D C4 06 STA ram_06C4_cpu_timer,X ; 06C4 06C5
bra_82A0_RTS:
C - - - - - 0x0342B0 0D:82A0: 60 RTS
bra_82A1_D0_FF:
SEC
SBC #$D0
JSR sub_0x03D042_поинтеры_после_JSR
.word $FFFF ; D0
.word $FFFF ; D1
.word $FFFF ; D2
.word $FFFF ; D3
.word ofs_083_82ED_D4
.word ofs_083_832C_D5
.word ofs_083_837D_D6
.word ofs_083_839F_D7
.word ofs_083_83B2_D8
.word ofs_083_82C1_D9
.word ofs_083_835A_DA
.word ofs_083_835A_DB
.word ofs_083_8364_DC
.word ofs_083_8346_DD
.word $FFFF ; DE
.word $FFFF ; DF
.word $FFFF ; E0
.word $FFFF ; E1
.word $FFFF ; E2
.word $FFFF ; E3
.word $FFFF ; E4
.word $FFFF ; E5
.word $FFFF ; E6
.word $FFFF ; E7
.word $FFFF ; E8
.word $FFFF ; E9
.word $FFFF ; EA
.word $FFFF ; EB
.word $FFFF ; EC
.word $FFFF ; ED
.word $FFFF ; EE
.word $FFFF ; EF
.word $FFFF ; F0
.word $FFFF ; F1
.word $FFFF ; F2
.word $FFFF ; F3
.word $FFFF ; F4
.word $FFFF ; F5
.word $FFFF ; F6
.word $FFFF ; F7
.word $FFFF ; F8
.word $FFFF ; F9
.word $FFFF ; FA
.word $FFFF ; FB
.word ofs_083_82B2_FC
.word ofs_083_82D2_FD
.word ofs_083_8310_FE
.word ofs_083_82A5_FF
ofs_083_82ED_D4:
C - - - - - 0x0342FD 0D:82ED: 20 9A A1 LDA ram_obj_id,X ; 0550 0551
C - - - - - 0x034300 0D:82F0: 0A ASL
C - - - - - 0x034301 0D:82F1: 0A ASL
C - - - - - 0x034302 0D:82F2: 18 CLC
C - - - - - 0x034303 0D:82F3: 6D 25 01 ADC ram_option_difficulty
C - - - - - 0x034306 0D:82F6: A8 TAY
C - - - - - 0x034307 0D:82F7: B9 B5 8D LDA tbl_8DB5,Y
C - - - - - 0x03430A 0D:82FA: F0 09 BEQ bra_8305
C - - - - - 0x03430C 0D:82FC: 9D C4 06 STA ram_06C4_cpu_timer,X ; 06C4 06C5
C - - - - - 0x03430F 0D:82FF: A9 01 LDA #$01
C - - - - - 0x034311 0D:8301: 9D D2 06 STA ram_06D2_cpu_script,X ; 06D2 06D3
C - - - - - 0x034314 0D:8304: 60 RTS
bra_8305:
C - - - - - 0x034315 0D:8305: 4C 6E 82 JMP loc_826E
ofs_083_832C_D5:
C - - - - - 0x03433C 0D:832C: BD C6 06 LDA ram_06C6_cpu_btn,X ; 06C6 06C7
C - - - - - 0x03433F 0D:832F: 29 03 AND #con_btns_LR
C - - - - - 0x034341 0D:8331: 9D C6 06 STA ram_06C6_cpu_btn,X ; 06C6 06C7
C - - - - - 0x034344 0D:8334: 9D C8 06 STA ram_06C8_cpu_btn,X ; 06C8 06C9
C - - - - - 0x034347 0D:8337: 9D 24 06 STA ram_0624_plr,X ; 0624 0625
C - - - - - 0x03434A 0D:833A: A9 02 LDA #$02
C - - - - - 0x03434C 0D:833C: 9D 26 06 STA ram_0626_plr,X ; 0626 0627
C - - - - - 0x03434F 0D:833F: 4C 6E 82 JMP loc_826E
ofs_083_837D_D6:
C - - - - - 0x03438D 0D:837D: FE C2 06 INC ram_06C2_cpu_индекс_поведения,X ; 06C2 06C3
LDY ram_0004
C - - - - - 0x034390 0D:8380: C8 INY
C - - - - - 0x034391 0D:8381: 20 20 ED JSR sub_ED20_чтение_поведения_cpu
; A = 01 02
C - - - - - 0x034394 0D:8384: 84 17 STY ram_0017
C - - - - - 0x034396 0D:8386: 85 16 STA ram_0016
C - - - - - 0x034398 0D:8388: 8A TXA
C - - - - - 0x034399 0D:8389: 0A ASL
C - - - - - 0x03439A 0D:838A: 0A ASL
C - - - - - 0x03439B 0D:838B: 18 CLC
C - - - - - 0x03439C 0D:838C: 65 16 ADC ram_0016
C - - - - - 0x03439E 0D:838E: A8 TAY
C - - - - - 0x03439F 0D:838F: B9 E8 06 LDA ram_06E8,Y ; 06E9 06EA 06ED 06EE
C - - - - - 0x0343A2 0D:8392: 9D DA 06 STA ram_06DA_cpu_script,X ; 06DA 06DB
C - - - - - 0x0343A5 0D:8395: A4 17 LDY ram_0017
C - - - - - 0x0343A7 0D:8397: A9 0A LDA #con_06D4_0A ; bzk optimize, в 0x03437E уже есть такой LDA
C - - - - - 0x0343A9 0D:8399: D0 D5 JMP loc_8370
ofs_083_839F_D7:
C - - - - - 0x0343AF 0D:839F: FE C2 06 INC ram_06C2_cpu_индекс_поведения,X ; 06C2 06C3
LDY ram_0004
C - - - - - 0x0343B2 0D:83A2: C8 INY
C - - - - - 0x0343B3 0D:83A3: 20 20 ED JSR sub_ED20_чтение_поведения_cpu
C - - - - - 0x0343B6 0D:83A6: 9D DA 06 STA ram_06DA_cpu_script,X
C - - - - - 0x0343B9 0D:83A9: A9 15 LDA #con_06D4_15
C - - - - - 0x0343BB 0D:83AB: 4C 70 83 JMP loc_8370
ofs_083_83B2_D8:
C - - - - - 0x0343C2 0D:83B2: FE C2 06 INC ram_06C2_cpu_индекс_поведения,X ; 06C2 06C3
LDY ram_0004
C - - - - - 0x0343C5 0D:83B5: C8 INY
C - - - - - 0x0343C6 0D:83B6: 20 20 ED JSR sub_ED20_чтение_поведения_cpu
C - - - - - 0x0343C9 0D:83B9: 9D C0 06 STA ram_cpu_шаблон_ai,X
C - - - - - 0x0343CC 0D:83BC: 9D E2 06 STA ram_06E2_cpu,X ; 06E2 06E3
C - - - - - 0x0343CF 0D:83BF: 20 48 82 JSR sub_8248
C D 3 - - - 0x03ED15 0F:ED05: BD C6 06 LDA ram_06C6_cpu_btn,X ; 06C6 06C7
C - - - - - 0x03ED18 0F:ED08: 1D C8 06 ORA ram_06C8_cpu_btn,X ; 06C8 06C9
C - - - - - 0x03ED1B 0F:ED0B: 95 91 STA ram_btn_hold,X
C - - - - - 0x03ED1D 0F:ED0D: 9D C6 06 STA ram_06C6_cpu_btn,X ; 06C6 06C7
C - - - - - 0x03ED20 0F:ED10: 9D C8 06 STA ram_06C8_cpu_btn,X ; 06C8 06C9
C - - - - - 0x03ED23 0F:ED13: 60 RTS
ofs_083_82C1_D9:
C - - - - - 0x0342D1 0D:82C1: A9 00 LDA #$00
C - - - - - 0x0342D3 0D:82C3: 95 91 STA ram_btn_hold,X
C - - - - - 0x0342D5 0D:82C5: 95 8E STA ram_btn_press,X
C - - - - - 0x0342D7 0D:82C7: 9D C6 06 STA ram_06C6_cpu_btn,X ; 06C6 06C7
C - - - - - 0x0342DA 0D:82CA: 9D C8 06 STA ram_06C8_cpu_btn,X ; 06C8 06C9
C - - - - - 0x0342DD 0D:82CD: 60 RTS
ofs_083_835A_DA:
LDA #$DA
C - - - - - 0x03436A 0D:835A: 9D E6 06 STA ram_06E6_cpu,X ; 06E6 06E7
C - - - - - 0x03436D 0D:835D: 4C 6E 82 JMP loc_826E
ofs_083_835A_DB:
C - - - - - 0x034368 0D:8358: A9 00 LDA #$00 ; con_шаблон_ai_00 ???
STA ram_06E6_cpu,X ; 06E6 06E7
JMP loc_826E
ofs_083_8364_DC:
C - - - - - 0x034374 0D:8364: FE C2 06 INC ram_06C2_cpu_индекс_поведения,X ; 06C2 06C3
LDY ram_0004
C - - - - - 0x034377 0D:8367: C8 INY
C - - - - - 0x034378 0D:8368: 20 20 ED JSR sub_ED20_чтение_поведения_cpu
C - - - - - 0x03437B 0D:836B: 9D DA 06 STA ram_06DA_cpu_script,X
C - - - - - 0x03437E 0D:836E: A9 0A LDA #con_06D4_0A
loc_8370:
C D 0 - - - 0x034380 0D:8370: 9D D4 06 STA ram_06D4_cpu_script,X ; 06D4 06D5
C - - - - - 0x034383 0D:8373: A9 03 LDA #$03
C - - - - - 0x034385 0D:8375: 9D D2 06 STA ram_06D2_cpu_script,X ; 06D2 06D3
C - - - - - 0x034388 0D:8378: 60 RTS
ofs_083_8346_DD:
C - - - - - 0x034356 0D:8346: FE DC 06 INC ram_06DC_cpu_flag,X ; 06DC 06DD
C - - - - - 0x034359 0D:8349: A9 40 LDA #con_btn_B
C - - - - - 0x03435B 0D:834B: 95 8E STA ram_btn_press,X
C - - - - - 0x03435D 0D:834D: 95 91 STA ram_btn_hold,X
C - - - - - 0x03435F 0D:834F: 60 RTS
ofs_083_82B2_FC:
- - - - - - 0x0342C2 0D:82B2: A9 01 LDA #$01
- - - - - - 0x0342C4 0D:82B4: 9D D2 06 STA ram_06D2_cpu_script,X
- - - - - - 0x0342C7 0D:82B7: A9 00 LDA #$00
- - - - - - 0x0342C9 0D:82B9: 9D C4 06 STA ram_06C4_cpu_timer,X
- - - - - - 0x0342CC 0D:82BC: 60 RTS
ofs_083_82D2_FD:
C - - - - - 0x0342E2 0D:82D2: FE C2 06 INC ram_06C2_cpu_индекс_поведения,X ; 06C2 06C3
LDY ram_0004
C - - - - - 0x0342E5 0D:82D5: C8 INY
C - - - - - 0x0342E6 0D:82D6: 20 20 ED JSR sub_ED20_чтение_поведения_cpu
C - - - - - 0x0342E9 0D:82D9: 9D D4 06 STA ram_06D4_cpu_script,X ; 06D4 06D5
C - - - - - 0x0342EC 0D:82DC: A9 00 LDA #$00
C - - - - - 0x0342EE 0D:82DE: 9D DA 06 STA ram_06DA_cpu_script,X
C - - - - - 0x0342F1 0D:82E1: A9 03 LDA #$03
C - - - - - 0x0342F3 0D:82E3: 9D D2 06 STA ram_06D2_cpu_script,X ; 06D2 06D3
C - - - - - 0x0342F6 0D:82E6: 4C 6E 82 JMP loc_826E
ofs_083_8310_FE:
LDA #con_06D4_17
STA ram_06D4_cpu_script,X
LDA #$03
STA ram_06D2_cpu_script,X
JMP loc_826E
ofs_083_82A5_FF:
C - - - - - 0x0342B5 0D:82A5: A9 00 LDA #$00 ; con_шаблон_ai_00 ???
C - - - - - 0x0342B7 0D:82A7: 9D E6 06 STA ram_06E6_cpu,X ; 06E6 06E7
C - - - - - 0x0342BA 0D:82AA: 4C 96 ED JMP loc_ED96_очистка_адресов_cpu_при_необходимости
sub_83E3:
CMP #$D0
BCC bra_83E4_RTS
; bzk optimize, в некоторых обработчиках указаны кнопки, пометить как con_btn
SEC
SBC #$D0
JSR sub_83E5
; восстановить Y после обработки управляющих байтов
LDY ram_0004
bra_83E4_RTS:
RTS
sub_83E5:
; bzk optimize, очень много случаев где просто грузится индекс
; можно сделать проверку если поинтер FFFF и пропустить обработчик
JSR sub_0x03D042_поинтеры_после_JSR
.word $FFFF ; D0
.word $FFFF ; D1
.word $FFFF ; D2
.word $FFFF ; D3
.word ofs_084_83E2_D4
.word ofs_084_83E2_D5
.word ofs_084_83E2_D6
.word ofs_084_83E2_D7
.word ofs_084_83E2_D8
.word ofs_084_83E2_D9
.word ofs_084_83E2_DA
.word ofs_084_83E2_DB
.word ofs_084_83E2_DC
.word ofs_084_83E2_DD
.word ofs_084_83EF_DE
.word ofs_084_841A_DF
.word $FFFF ; E0
.word $FFFF ; E1
.word $FFFF ; E2
.word $FFFF ; E3
.word $FFFF ; E4
.word $FFFF ; E5
.word $FFFF ; E6
.word $FFFF ; E7
.word $FFFF ; E8
.word $FFFF ; E9
.word $FFFF ; EA
.word $FFFF ; EB
.word $FFFF ; EC
.word $FFFF ; ED
.word $FFFF ; EE
.word $FFFF ; EF
.word ofs_084_83FF_F0
.word ofs_084_8434_F1
.word ofs_084_8409_F2
.word ofs_084_842A_F3
.word ofs_084_8445_F4
.word ofs_084_8456_F5
.word ofs_084_8460_F6
.word ofs_084_846A_F7
.word $FFFF ; F8
.word $FFFF ; F9
.word $FFFF ; FA
.word $FFFF ; FB
.word $FFFF ; FC
.word ofs_084_847B_FD
.word ofs_084_83E2_FE
.word ofs_084_83E2_FF
ofs_084_83E2_D4:
LDA #$D4
RTS
ofs_084_83E2_D5:
LDA #$D5
RTS
ofs_084_83E2_D6:
LDA #$D6
RTS
ofs_084_83E2_D7:
LDA #$D7
RTS
ofs_084_83E2_D8:
LDA #$D8
RTS
ofs_084_83E2_D9:
LDA #$D9
RTS
ofs_084_83E2_DA:
LDA #$DA
RTS
ofs_084_83E2_DB:
LDA #$DB
RTS
ofs_084_83E2_DC:
LDA #$DC
RTS
ofs_084_83E2_DD:
LDA #$DD
RTS
sub_83EF:
loc_83EF:
ofs_084_83EF_DE:
C - - - - - 0x0343FF 0D:83EF: AD D6 06 LDA ram_дистанция_до_соперника_X_hi
loc_83F2:
C D 0 - - - 0x034402 0D:83F2: 0A ASL
C - - - - - 0x034403 0D:83F3: B0 03 BCS bra_83F8
C - - - - - 0x034405 0D:83F5: A9 01 LDA #$01
C - - - - - 0x034407 0D:83F7: 60 RTS
bra_83F8:
C - - - - - 0x034408 0D:83F8: A9 02 LDA #$02
C - - - - - 0x03440A 0D:83FA: 60 RTS
sub_A49D:
ofs_084_841A_DF:
C D 1 - - - 0x0364AD 0D:A49D: BD 50 05 LDA ram_obj_id,X ; 0550 0551
.if con_новые_персы = $00
C - - - - - 0x0364B0 0D:A4A0: C9 06 CMP #con_fighter_shred
C - - - - - 0x0364B2 0D:A4A2: D0 0A BNE bra_A4AE
.else
CMP #con_fighter_shred
BEQ bra_A4A4_shred
CMP #con_fighter___shred
BNE bra_A4AE
bra_A4A4_shred:
.endif
; con_fighter_shred
; con_fighter___shred
C - - - - - 0x0364B4 0D:A4A4: BD C0 06 LDA ram_cpu_шаблон_ai,X
C - - - - - 0x0364B7 0D:A4A7: C9 40 CMP #con_шаблон_ai_40
C - - - - - 0x0364B9 0D:A4A9: D0 03 BNE bra_A4AE
- - - - - - 0x0364BB 0D:A4AB: 4C EF 83 JMP loc_83EF
bra_A4AE:
C - - - - - 0x0364BE 0D:A4AE: AD D6 06 LDA ram_дистанция_до_соперника_X_hi
C - - - - - 0x0364C1 0D:A4B1: 4C 1D 84 JMP loc_841D
ofs_084_83FF_F0:
C - - - - - 0x03440F 0D:83FF: 20 EF 83 JSR sub_83EF
C - - - - - 0x034412 0D:8402: 09 08 ORA #$08
C - - - - - 0x034414 0D:8404: 60 RTS
ofs_084_8434_F1:
C - - - - - 0x034444 0D:8434: 20 1A 84 JSR sub_A49D
C - - - - - 0x034447 0D:8437: 09 08 ORA #$08
C - - - - - 0x034449 0D:8439: 60 RTS
ofs_084_8409_F2:
C - - - - - 0x034419 0D:8409: 20 EF 83 JSR sub_83EF
C - - - - - 0x03441C 0D:840C: 09 04 ORA #$04
C - - - - - 0x03441E 0D:840E: 60 RTS
ofs_084_842A_F3:
C - - - - - 0x03443A 0D:842A: 20 1A 84 JSR sub_A49D
C - - - - - 0x03443D 0D:842D: 09 04 ORA #$04
C - - - - - 0x03443F 0D:842F: 60 RTS
ofs_084_8445_F4:
C - - - - - 0x034455 0D:8445: AD D8 06 LDA ram_06D8
C - - - - - 0x034458 0D:8448: 4C F2 83 JMP loc_83F2
ofs_084_8456_F5:
- - - - - - 0x034466 0D:8456: AD D8 06 LDA ram_06D8
- - - - - - 0x034469 0D:8459: 4C 1D 84 JMP loc_841D
ofs_084_8460_F6:
C - - - - - 0x034470 0D:8460: 20 EF 83 JSR sub_83EF