This repository has been archived by the owner on Jul 18, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 4
/
GoA Practice.lua
3701 lines (3685 loc) · 129 KB
/
GoA Practice.lua
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
--RAM Version
--Last Update: Code Optimization & Very-old Version Deprecation
--Todo: GoA portal color & Popup Rewards
LUAGUI_NAME = "GoA RAM Practice Build"
LUAGUI_AUTH = "SonicShadowSilver2 (Ported by Num)"
LUAGUI_DESC = "A GoA build to let you practice various events."
function _OnInit()
local VersionNum = 'GoA Version 1.52.14'
if (GAME_ID == 0xF266B00B or GAME_ID == 0xFAF99301) and ENGINE_TYPE == "ENGINE" then --PCSX2
if ENGINE_VERSION < 3.0 then
print('LuaEngine is Outdated. Things might not work properly.')
end
print(VersionNum)
OnPC = false
Now = 0x032BAE0 --Current Location
Sve = 0x1D5A970 --Saved Location
BGM = 0x0347D34 --Background Music
Save = 0x032BB30 --Save File
Obj0 = 0x1C94100 --00objentry.bin
Sys3 = 0x1CCB300 --03system.bin
Btl0 = 0x1CE5D80 --00battle.bin
Pause = 0x0347E08 --Ability to Pause
React = 0x1C5FF4E --Reaction Command
Cntrl = 0x1D48DB8 --Sora Controllable
Timer = 0x0349DE8
Combo = 0x1D49080
Songs = 0x035DAC4 --Atlantica Stuff
GScre = 0x1F8039C --Gummi Score
GMdal = 0x1F803C0 --Gummi Medal
GKill = 0x1F80856 --Gummi Kills
CamTyp = 0x0348750 --Camera Type
GamSpd = 0x0349E0C --Game Speed
CutNow = 0x035DE20 --Cutscene Timer
CutLen = 0x035DE28 --Cutscene Length
CutSkp = 0x035DE08 --Cutscene Skip
BtlTyp = 0x1C61958 --Battle Status (Out-of-Battle, Regular, Forced)
BtlEnd = 0x1D490C0 --Something about end-of-battle camera
TxtBox = 0x1D48D54 --Last Displayed Textbox
DemCln = 0x1D48DEC --Demyx Clone Status
ARDLoad = 0x034ECF4 --ARD Pointer Address
MSNLoad = 0x04FA440 --Base MSN Address
Slot1 = 0x1C6C750 --Unit Slot 1
NextSlot = 0x268
Point1 = 0x1D48EFC
NxtPoint = 0x38
Gauge1 = 0x1D48FA4
NxtGauge = 0x34
Menu1 = 0x1C5FF18 --Menu 1 (main command menu)
NextMenu = 0x4
print('Cycle through growth abilities by pressing Square with cursor in their respective form')
print('Add all boosts by pressing Hyena combination (L2+R2+Triangle) with cursor in Attack on 1st page')
print("The computer does nothing. You'll figure out how to get to CoR.")
elseif GAME_ID == 0x431219CC and ENGINE_TYPE == 'BACKEND' then --PC
if ENGINE_VERSION < 5.0 then
ConsolePrint('LuaBackend is Outdated. Things might not work properly.',2)
end
ConsolePrint(VersionNum,0)
OnPC = true
Now = 0x0714DB8 - 0x56454E
Sve = 0x2A09C00 - 0x56450E
BGM = 0x0AB8504 - 0x56450E
Save = 0x09A7070 - 0x56450E
Obj0 = 0x2A22B90 - 0x56450E
Sys3 = 0x2A59DB0 - 0x56450E
Btl0 = 0x2A74840 - 0x56450E
Pause = 0x0AB9038 - 0x56450E
React = 0x2A0E822 - 0x56450E
Cntrl = 0x2A148A8 - 0x56450E
Timer = 0x0AB9010 - 0x56450E
Songs = 0x0B63534 - 0x56450E
GScre = 0x0728E90 - 0x56454E
GMdal = 0x0729024 - 0x56454E
GKill = 0x0AF4906 - 0x56450E
CamTyp = 0x0716A58 - 0x56454E
GamSpd = 0x07151D4 - 0x56454E
CutNow = 0x0B62758 - 0x56450E
CutLen = 0x0B62774 - 0x56450E
CutSkp = 0x0B6275C - 0x56450E
BtlTyp = 0x2A0EAC4 - 0x56450E
BtlEnd = 0x2A0D3A0 - 0x56450E
TxtBox = 0x074BC70 - 0x56454E
DemCln = 0x2A0CF74 - 0x56450E
ARDLoad = 0x2A0CEE8 - 0x56450E
MSNLoad = 0x0BF08C0 - 0x56450E
Slot1 = 0x2A20C58 - 0x56450E
NextSlot = 0x278
Point1 = 0x2A0D108 - 0x56450E
NxtPoint = 0x50
Gauge1 = 0x2A0D1F8 - 0x56450E
NxtGauge = 0x48
Menu1 = 0x2A0E7D0 - 0x56450E
NextMenu = 0x8
ConsolePrint('Cycle through growth abilities by pressing Square with cursor in their respective form')
ConsolePrint('Add all boosts by pressing Hyena combination (L2+R2+Triangle) with cursor in Attack on 1st page')
ConsolePrint("The computer does nothing. You'll figure out how to get to CoR.")
end
Slot2 = Slot1 - NextSlot
Slot3 = Slot2 - NextSlot
Slot4 = Slot3 - NextSlot
Slot5 = Slot4 - NextSlot
Slot6 = Slot5 - NextSlot
Slot7 = Slot6 - NextSlot
Slot8 = Slot7 - NextSlot
Slot9 = Slot8 - NextSlot
Slot10 = Slot9 - NextSlot
Slot11 = Slot10 - NextSlot
Slot12 = Slot11 - NextSlot
Point2 = Point1 + NxtPoint
Point3 = Point2 + NxtPoint
Gauge2 = Gauge1 + NxtGauge
Gauge3 = Gauge2 + NxtGauge
Menu2 = Menu1 + NextMenu
Menu3 = Menu2 + NextMenu
pi = math.pi
end
function Warp(W,R,D,M,B,E) --Warp into the appropriate World, Room, Door, Map, Btl, Evt
WriteByte(Now+0x00,W)
WriteByte(Now+0x01,R)
WriteShort(Now+0x02,D)
WriteShort(Now+0x04,M)
WriteShort(Now+0x06,B)
WriteShort(Now+0x08,E)
--Record Location in Save File
WriteByte(Save+0x000C,W)
WriteByte(Save+0x000D,R)
WriteShort(Save+0x000E,D)
end
function Events(M,B,E) --Check for Map, Btl, and Evt
return ((Map == M or not M) and (Btl == B or not B) and (Evt == E or not E))
end
function Spawn(Type,Subfile,Offset,Value)
local Subpoint = ARD + 0x08 + 0x10*Subfile
local Address
--Detect errors
if ReadInt(ARD,OnPC) ~= 0x01524142 then --Header mismatch
return
elseif Subfile > ReadInt(ARD+4,OnPC) then --Subfile over count
return
elseif Offset >= ReadInt(Subpoint+4,OnPC) then --Offset exceed subfile length
return
end
--Get address
if not OnPC then
Address = ReadInt(Subpoint) + Offset
else
local x = ARD&0xFFFFFF000000 --Calculations are wrong if done in one step for some reason
local y = ReadInt(Subpoint,true)&0xFFFFFF
Address = x + y + Offset
end
--Change value
if Type == 'Short' then
WriteShort(Address,Value,OnPC)
elseif Type == 'Float' then
WriteFloat(Address,Value,OnPC)
elseif Type == 'Int' then
WriteInt(Address,Value,OnPC)
elseif Type == 'String' then
WriteString(Address,Value,OnPC)
end
end
function BitOr(Address,Bit,Abs)
WriteByte(Address,ReadByte(Address)|Bit,Abs and OnPC)
end
function BitNot(Address,Bit,Abs)
WriteByte(Address,ReadByte(Address)&~Bit,Abs and OnPC)
end
function DriveRefill(Guaranteed)
if (Place ~= PrevPlace or ReadByte(Cntrl) == 3) and (ReadShort(Save+0x3524) ~= 0 or Guaranteed) then
WriteShort(Save+0x3524,0) --Revert/Dismiss
WriteByte(Save+0x3528,100) --Restore Drive
WriteByte(Save+0x3529,ReadByte(Save+0x352A))
end
end
function Increment(Address,Value,Min,Max)
local InitValue = ReadByte(Address)
if Buttons() == 'L2' and InitValue > Min then
WriteByte(Address,InitValue-Value)
WriteByte(Save+0x3599,1)
elseif Buttons() == 'R2' and InitValue < Max then
WriteByte(Address,InitValue+Value)
WriteByte(Save+0x3599,1)
end
end
function Menu(Pointer)
local CurMenu
if not OnPC then
CurMenu = ReadByte(ReadInt(Pointer))
else
CurMenu = ReadByteA(ReadLong(Pointer))
end
return CurMenu
end
function Buttons()
local Input
if not OnPC then
Input = ReadShort(0x034D45C)
if Input == 0xFEFF then
return 'L2'
elseif Input == 0xFDFF then
return 'R2'
elseif Input == 0x7FFF then
return 'Square'
elseif Input == 0xECFF then
return 'Hyena'
end
else
Input = ReadLong(0x29F89B0-0x56450E)
if Input == 0x400000000 then
return 'L2'
elseif Input == 0x900000000 then
return 'R2'
elseif Input == 0x4000200 then
return 'Square'
elseif Input == 0xD02000400 then
return 'Hyena'
end
end
return false
end
function _OnFrame()
if true then --Define current values for common addresses
World = ReadByte(Now+0x00)
Room = ReadByte(Now+0x01)
Place = ReadShort(Now+0x00)
Door = ReadShort(Now+0x02)
Map = ReadShort(Now+0x04)
Btl = ReadShort(Now+0x06)
Evt = ReadShort(Now+0x08)
PrevPlace = ReadShort(Now+0x30)
MSN = MSNLoad + (ReadInt(MSNLoad+4)+1) * 0x10
if not OnPC then
ARD = ReadInt(ARDLoad) --Base ARD Address
else
ARD = ReadLong(ARDLoad) --Base ARD Address
end
end
NewGame()
GoA()
Return()
end
function NewGame()
--Before New Game
if ReadShort(Btl0+0x2EB4C) == 1000 then --MCP Vanilla HP
WriteShort(Btl0+0x312E6,0x01A1) --Auto Limit (Auron)
WriteShort(Btl0+0x314EA,0x01A1) --Auto Limit (Beast)
WriteShort(Btl0+0x315EA,0x01A1) --Auto Limit (Simba)
WriteShort(Btl0+0x2EB4C,500) --Fast MCP (50% Base HP)
WriteShort(Btl0+0x2EB8C,300) --Double Max Damage %
WriteShort(Btl0+0x2EB8E,100) --Double Min Damage %
-- FAKE
WriteShort(Sys3+0x140F6,0x19E) --Ability: Defender
WriteShort(Sys3+0x140F8,0x0103) --Magic:1 Strength:3
-- Detection Saber
WriteShort(Sys3+0x13F06,0x08A) --Ability: Scan
WriteShort(Sys3+0x13F08,0x0204) --Magic:2 Strength:4
-- Edge of Ultima
WriteShort(Sys3+0x13F16,0x1A5) --Ability: MP Hastera
WriteShort(Sys3+0x13F18,0x0405) --Magic:4 Strength:5
end
if ReadShort(Btl0+0x31A6C) == 0 then --Vanilla Lion Sora Abilities
WriteShort(Btl0+0x31A6C,0x820E) --Dash
WriteShort(Btl0+0x31A6E,0x820D) --Running Tackle
WriteString(Obj0+0x13450,'SHOP_POINT\0') --Wallace -> Moogle
WriteString(Obj0+0x13470,'N_EX960_RTN.mset\0')
WriteShort(Sys3+0x16F40,0x001) --Stock Potion
WriteShort(Sys3+0x16F42,0x003) --Stock Ether
--Party EXP Requirement
for Member = 0,12 do
local EXPAddress = Btl0 + 0x25928 + Member*0x634
for Level = 0,98 do
WriteInt(EXPAddress + 0x10*Level,99999)
end
end
--Form EXP Requirement
for Form = 0,5 do
local EXPAddress = Btl0 + 0x34470 + Form*0x38
for Level = 0,5 do
WriteInt(EXPAddress + 0x8*Level,99999)
end
end
end
--Start New Game 1
if Place == 0x0102 and Events(0x34,0x34,0x34) then --Opening Cutscene
WriteShort(Save+0x03D0,0x01) --Station of Serenity MAP (Dream Weapons)
WriteShort(Save+0x03D4,0x01) --Station of Serenity EVT
if not OnPC then
Warp(0x02,0x20,0x32,0x01,0x00,0x01) --Not warping here on PS2 causes freeze after skipping GoA Activation scene
else
Spawn('Short',0x03,0x300,0x01) --Day 1 Start -> Station of Serenity Weapons
Spawn('Short',0x03,0x304,0x20)
Spawn('Short',0x03,0x306,0x32)
Spawn('Short',0x03,0x308,0x00)
WriteByte(CutSkp,1) --Warping earlier on PC causes SoS Wallpaper
end
end
--Start New Game 2
if Place == 0x2002 then
Spawn('Short',0x0A,0x0E0,0x01) --Station of Serenity Nobodies -> Garden of Assemblage
Spawn('Short',0x0A,0x0E2,0x04)
Spawn('Short',0x0A,0x0E4,0x1A)
Spawn('Short',0x0A,0x0E6,0x32)
Spawn('Short',0x0A,0x0E8,0x00)
Spawn('Short',0x0E,0x034,0x745) --Dusk -> Mickey
Spawn('Short',0x0E,0x074,0x433) --Dusk -> Donald
Spawn('Short',0x0E,0x0B4,0x434) --Dusk -> Goofy
if Events(0x01,Null,0x01) then --Station of Serenity Weapons
BitNot(Save+0x1CD2,0x80) --TT_SCENARIO_1_START (Show Gameplay Elements)
BitOr(Save+0x1CEB,0x08) --TT_ROXAS_START (Prepare Roxas' Flag)
BitOr(Save+0x1CEA,0x01) --TT_ROXAS_END (Play as Sora)
BitOr(Save+0x1CEA,0x02) --TT_SORA_OLD_END (Play as KH2 Sora)
BitOr(Save+0x239E,0x08) --Show Journal
WriteByte(Pause,2) --Disable Pause
if ReadInt(CutLen) == 0x246 then --Dusks attack
WriteByte(CutSkp,1)
end
--Starting Stats
if true then --Sora
WriteByte(Save+0x24F8,100) --AP Boost
WriteByte(Save+0x2500,4) --Armor Slot
WriteByte(Save+0x2501,4) --Accessory Slot
WriteByte(Save+0x2502,8) --Item Slot
WriteShort(Save+0x2544,0x052) --Guard
WriteShort(Save+0x2546,0x089) --Upper Slash
WriteShort(Save+0x2548,0x10F) --Horizontal Slash
WriteShort(Save+0x254A,0x10B) --Finishing Leap
WriteShort(Save+0x254C,0x111) --Retaliating Slash
WriteShort(Save+0x254E,0x106) --Slapshot
WriteShort(Save+0x2550,0x107) --Dodge Slash
WriteShort(Save+0x2552,0x22F) --Flash Step
WriteShort(Save+0x2554,0x108) --Slide Dash
WriteShort(Save+0x2556,0x232) --Vicinity Break
WriteShort(Save+0x2558,0x109) --Guard Break
WriteShort(Save+0x255A,0x10A) --Explosion
WriteShort(Save+0x255C,0x10D) --Aerial Sweep
WriteShort(Save+0x255E,0x230) --Aerial Dive
WriteShort(Save+0x2560,0x10E) --Aerial Spiral
WriteShort(Save+0x2562,0x110) --Aerial Finish
WriteShort(Save+0x2564,0x231) --Magnet Burst
WriteShort(Save+0x2566,0x10C) --Counterguard
WriteShort(Save+0x2568,0x181) --Auto Valor
WriteShort(Save+0x256A,0x182) --Auto Wisdom
WriteShort(Save+0x256C,0x238) --Auto Limit
WriteShort(Save+0x256E,0x183) --Auto Master
WriteShort(Save+0x2570,0x184) --Auto Final
WriteShort(Save+0x2572,0x185) --Auto Summon
WriteShort(Save+0x2574,0x0C6) --Trinity Limit
WriteShort(Save+0x2576,0x05E) --High Jump LV1
WriteShort(Save+0x2578,0x062) --Quick Run LV1
WriteShort(Save+0x257A,0x234) --Dodge Roll LV1
WriteShort(Save+0x257C,0x066) --Aerial Dodge LV1
WriteShort(Save+0x257E,0x06A) --Glide LV1
WriteShort(Save+0x2580,0x08A) --Scan
WriteShort(Save+0x2582,0x09E) --Aerial Recovery
WriteShort(Save+0x2584,0x21B) --Combo Master
WriteShort(Save+0x2586,0x0A2) --Combo Plus
WriteShort(Save+0x2588,0x0A2) --Combo Plus
WriteShort(Save+0x258A,0x0A3) --Air Combo Plus
WriteShort(Save+0x258C,0x0A3) --Air Combo Plus
WriteShort(Save+0x258E,0x186) --Combo Boost
WriteShort(Save+0x2590,0x187) --Air Combo Boost
WriteShort(Save+0x2592,0x188) --Reaction Boost
WriteShort(Save+0x2594,0x188) --Reaction Boost
WriteShort(Save+0x2596,0x189) --Finishing Plus
WriteShort(Save+0x2598,0x189) --Finishing Plus
WriteShort(Save+0x259A,0x18A) --Negative Combo
WriteShort(Save+0x259C,0x18B) --Berserk Charge
WriteShort(Save+0x259E,0x18C) --Damage Drive
WriteShort(Save+0x25A0,0x18D) --Drive Boost
WriteShort(Save+0x25A2,0x18E) --Form Boost
WriteShort(Save+0x25A4,0x18E) --Form Boost
WriteShort(Save+0x25A6,0x18F) --Summon Boost
WriteShort(Save+0x25A8,0x190) --Combination Boost
WriteShort(Save+0x25AA,0x191) --Experience Boost
WriteShort(Save+0x25AC,0x192) --Leaf Bracer
WriteShort(Save+0x25AE,0x193) --Magic Lock-On
WriteShort(Save+0x25B0,0x195) --Draw
WriteShort(Save+0x25B2,0x195) --Draw
WriteShort(Save+0x25B4,0x195) --Draw
WriteShort(Save+0x25B6,0x196) --Jackpot
WriteShort(Save+0x25B8,0x197) --Lucky Lucky
WriteShort(Save+0x25BA,0x197) --Lucky Lucky
WriteShort(Save+0x25BC,0x197) --Lucky Lucky
WriteShort(Save+0x25BE,0x21C) --Drive Converter
WriteShort(Save+0x25C0,0x198) --Fire Boost
WriteShort(Save+0x25C2,0x199) --Blizzard Boost
WriteShort(Save+0x25C4,0x19A) --Thunder Boost
WriteShort(Save+0x25C6,0x19B) --Item Boost
WriteShort(Save+0x25C8,0x19C) --MP Rage
WriteShort(Save+0x25CA,0x19D) --MP Haste
WriteShort(Save+0x25CC,0x1A5) --MP Hastera
WriteShort(Save+0x25CE,0x19E) --Defender
WriteShort(Save+0x25D0,0x21E) --Damage Control
WriteShort(Save+0x25D2,0x19F) --Second Chance
WriteShort(Save+0x25D4,0x1A0) --Once More
WriteShort(Save+0x25D6,0x194) --No Experience
end
if true then --Donald
WriteByte(Save+0x260C,100) --AP Boost
WriteByte(Save+0x2614,2) --Armor Slot
WriteByte(Save+0x2615,3) --Accessory Slot
WriteByte(Save+0x2616,4) --Item Slot
WriteShort(Save+0x2658,0x0A5) --Donald Fire
WriteShort(Save+0x265A,0x0A6) --Donald Blizzard
WriteShort(Save+0x265C,0x80A7)--Donald Thunder
WriteShort(Save+0x265E,0x80A8)--Donald Cure
WriteShort(Save+0x2660,0x0C7) --Fantasia
WriteShort(Save+0x2662,0x0C8) --Flare Force
WriteShort(Save+0x2664,0x195) --Draw
WriteShort(Save+0x2666,0x196) --Jackpot
WriteShort(Save+0x2668,0x197) --Lucky Lucky
WriteShort(Save+0x266A,0x198) --Fire Boost
WriteShort(Save+0x266C,0x199) --Blizzard Boost
WriteShort(Save+0x266E,0x19A) --Thunder Boost
WriteShort(Save+0x2670,0x19C) --MP Rage
WriteShort(Save+0x2672,0x1A5) --MP Hastera
WriteShort(Save+0x2674,0x1A1) --Auto Limit
WriteShort(Save+0x2676,0x1A3) --Hyper Healing
WriteShort(Save+0x2678,0x1A4) --Auto Healing
end
if true then --Goofy
WriteByte(Save+0x2720,100) --AP Boost
WriteByte(Save+0x2728,3) --Armor Slot
WriteByte(Save+0x2729,2) --Accessory Slot
WriteByte(Save+0x272A,6) --Item Slot
WriteShort(Save+0x276C,0x1A7) --Goofy Tornado
WriteShort(Save+0x276E,0x81AD)--Goofy Bash
WriteShort(Save+0x2770,0x1A9) --Goofy Turbo
WriteShort(Save+0x2772,0x0C9) --Tornado Fusion
WriteShort(Save+0x2774,0x0CA) --Teamwork
WriteShort(Save+0x2776,0x195) --Draw
WriteShort(Save+0x2778,0x196) --Jackpot
WriteShort(Save+0x277A,0x197) --Lucky Lucky
WriteShort(Save+0x277C,0x819B)--Item Boost
WriteShort(Save+0x277E,0x19C) --MP Rage
WriteShort(Save+0x2780,0x19E) --Defender
WriteShort(Save+0x2782,0x21E) --Damage Control
WriteShort(Save+0x2784,0x19F) --Second Chance
WriteShort(Save+0x2786,0x1A0) --Once More
WriteShort(Save+0x2788,0x1A1) --Auto Limit
WriteShort(Save+0x278A,0x1A2) --Auto Change
WriteShort(Save+0x278C,0x1A3) --Hyper Healing
WriteShort(Save+0x278E,0x1A4) --Auto Healing
end
if true then --Mulan
WriteByte(Save+0x2A5C,8) --AP Boost
WriteShort(Save+0x2AAC,0x1A3) --Hyper Healing
WriteShort(Save+0x2AAE,0x80CF)--Dragonblaze
WriteShort(Save+0x2AB0,0x81B2)--Mushu Fire
WriteShort(Save+0x2AB2,0x81B3)--Flametongue
WriteShort(Save+0x2AB4,0x1A1) --Auto Limit
WriteShort(Save+0x2AB6,0x198) --Fire Boost
end
if true then --Tron
WriteByte(Save+0x30D4,8) --AP Boost
WriteShort(Save+0x3126,0x80D3)--Complete Compilement
WriteShort(Save+0x3128,0x81BC)--Scouting Disk
WriteShort(Save+0x312A,0x80D7)--Pulsing Thunder
WriteShort(Save+0x312C,0x1A1) --Auto Limit
WriteShort(Save+0x312E,0x19A) --Thunder Boost
WriteShort(Save+0x3130,0x19D) --MP Haste
end
--Starting Items
WriteByte(Save+0x3666,99) --Power Boost
WriteByte(Save+0x3667,99) --Magic Boost
WriteByte(Save+0x3668,99) --Defense Boost
WriteByte(Save+0x3669,99) --AP Boost
if true then --Magic, Forms, Summons
BitOr(Save+0x36C0,0x5F) --Forms & Summons
BitOr(Save+0x36C4,0x30) --Genie & Peter Pan
BitOr(Save+0x36CA,0x08) --Limit Form
WriteByte(Save+0x3594,1) --Fire
WriteByte(Save+0x3595,1) --Blizzard
WriteByte(Save+0x3596,1) --Thunder
WriteByte(Save+0x3597,1) --Cure
WriteByte(Save+0x35CF,1) --Magnet
WriteByte(Save+0x35D0,1) --Reflect
end
if true then --Keyblades
WriteByte(Save+0x35A2,1) --Oathkeeper
WriteByte(Save+0x35A3,1) --Oblivion
WriteByte(Save+0x367B,1) --Star Seeker
WriteByte(Save+0x367C,1) --Hidden Dragon
WriteByte(Save+0x367F,1) --Hero's Crest
WriteByte(Save+0x3680,1) --Monochrome
WriteByte(Save+0x3681,1) --Follow the Wind
WriteByte(Save+0x3682,1) --Circle of Life
WriteByte(Save+0x3683,1) --Photon Debugger
WriteByte(Save+0x3684,1) --Gull Wing
WriteByte(Save+0x3685,1) --Rumbling Rose
WriteByte(Save+0x3686,1) --Guardian Soul
WriteByte(Save+0x3687,1) --Wishing Lamp
WriteByte(Save+0x3688,1) --Decisive Pumpkin
WriteByte(Save+0x368A,1) --Sweet Memories
WriteByte(Save+0x368B,1) --Mysterious Abyss
WriteByte(Save+0x3689,1) --Sleeping Lion
WriteByte(Save+0x368D,1) --Bond of Flame
WriteByte(Save+0x3698,1) --Two Become One
WriteByte(Save+0x368C,1) --Fatal Crest
WriteByte(Save+0x368E,1) --Fenrir
WriteByte(Save+0x368F,1) --Ultima Weapon
WriteByte(Save+0x3699,1) --Winner's Proof
WriteByte(Save+0x3651,1) --Struggle Sword
WriteByte(Save+0x3690,1) --Struggle Wand
WriteByte(Save+0x3691,1) --Struggle Hammer
end
if true then --Staves
WriteByte(Save+0x35EF,1) --Hammer Staff
WriteByte(Save+0x35F0,1) --Victory Bell
WriteByte(Save+0x35F2,1) --Comet Staff
WriteByte(Save+0x35F3,1) --Lord's Broom
WriteByte(Save+0x35F4,1) --Wisdom Wand
WriteByte(Save+0x35F1,1) --Meteor Staff
WriteByte(Save+0x35F5,1) --Rising Dragon
WriteByte(Save+0x35F7,1) --Shaman's Relic
WriteByte(Save+0x36B6,1) --Shaman's Relic+
WriteByte(Save+0x35F6,1) --Nobody Lance
WriteByte(Save+0x369A,1) --Centurion
WriteByte(Save+0x369B,1) --Centurion+
WriteByte(Save+0x367D,1) --Save the Queen
WriteByte(Save+0x3692,1) --Save the Queen+
WriteByte(Save+0x369C,1) --Plain Mushroom
WriteByte(Save+0x369D,1) --Plain Mushroom+
WriteByte(Save+0x369E,1) --Precious Mushroom
WriteByte(Save+0x369F,1) --Precious Mushroom+
WriteByte(Save+0x36A0,1) --Premium Mushroom
end
if true then --Shields
WriteByte(Save+0x35E6,1) --Adamant Shield
WriteByte(Save+0x35E7,1) --Chain Gear
WriteByte(Save+0x35E9,1) --Falling Star
WriteByte(Save+0x35EA,1) --Dreamcloud
WriteByte(Save+0x35EB,1) --Knight Defender
WriteByte(Save+0x35E8,1) --Ogre Shield
WriteByte(Save+0x35EC,1) --Genji Shield
WriteByte(Save+0x35ED,1) --Akashic Record
WriteByte(Save+0x36B7,1) --Akashic Record+
WriteByte(Save+0x35EE,1) --Nobody Guard
WriteByte(Save+0x36A1,1) --Frozen Pride
WriteByte(Save+0x36A2,1) --Frozen Pride+
WriteByte(Save+0x367E,1) --Save the King
WriteByte(Save+0x3693,1) --Save the King+
WriteByte(Save+0x36A3,1) --Joyous Mushroom
WriteByte(Save+0x36A4,1) --Joyous Mushroom+
WriteByte(Save+0x36A5,1) --Majestic Mushroom
WriteByte(Save+0x36A6,1) --Majestic Mushroom+
WriteByte(Save+0x36A7,1) --Ultimate Mushroom
end
if true then --Armor
WriteByte(Save+0x35BC,69) --Elven Bandanna
WriteByte(Save+0x35BD,69) --Divine Bandanna
WriteByte(Save+0x35C7,1) --Protect Belt
WriteByte(Save+0x35CA,1) --Gaia Belt
WriteByte(Save+0x35BE,69) --Power Band
WriteByte(Save+0x35C6,69) --Buster Band
WriteByte(Save+0x35D1,1) --Cosmic Belt
WriteByte(Save+0x35D7,69) --Fire Bangle
WriteByte(Save+0x35D8,69) --Fira Bangle
WriteByte(Save+0x35D9,69) --Firaga Bangle
WriteByte(Save+0x35DA,69) --Firagun Bangle
WriteByte(Save+0x35DC,69) --Blizzard Armlet
WriteByte(Save+0x35DD,69) --Blizzara Armlet
WriteByte(Save+0x35DE,69) --Blizzaga Armlet
WriteByte(Save+0x35DF,69) --Blizzagun Armlet
WriteByte(Save+0x35E2,69) --Thunder Trinket
WriteByte(Save+0x35E3,69) --Thundara Trinket
WriteByte(Save+0x35E4,69) --Thundaga Trinket
WriteByte(Save+0x35E5,69) --Thundagun Trinket
WriteByte(Save+0x35D2,69) --Shock Charm
WriteByte(Save+0x35D3,69) --Shock Charm+
WriteByte(Save+0x35F9,69) --Shadow Anklet
WriteByte(Save+0x35FB,69) --Dark Anklet
WriteByte(Save+0x35FC,69) --Midnight Anklet
WriteByte(Save+0x35FD,69) --Chaos Anklet
WriteByte(Save+0x3603,1) --Champion Belt
WriteByte(Save+0x35FF,69) --Abas Chain
WriteByte(Save+0x3600,69) --Aegis Chain
WriteByte(Save+0x3601,69) --Acrisius
WriteByte(Save+0x3605,69) --Acrisius+
WriteByte(Save+0x3606,1) --Cosmic Chain
WriteByte(Save+0x3604,69) --Petite Ribbon
WriteByte(Save+0x3602,69) --Ribbon
WriteByte(Save+0x35D4,1) --Grand Ribbon
end
if true then --Accessory
WriteByte(Save+0x3587,69) --Ability Ring
WriteByte(Save+0x3588,69) --Engineer's Ring
WriteByte(Save+0x3589,69) --Technician's Ring
WriteByte(Save+0x359F,1) --Skill Ring
WriteByte(Save+0x35A0,1) --Skillful Ring
WriteByte(Save+0x358A,69) --Expert's Ring
WriteByte(Save+0x359B,69) --Master's Ring
WriteByte(Save+0x35AD,1) --Cosmic Ring
WriteByte(Save+0x36B5,1) --Executive's Ring
WriteByte(Save+0x358B,69) --Sardonyx Ring
WriteByte(Save+0x358C,69) --Tourmaline Ring
WriteByte(Save+0x358D,69) --Aquamarine Ring
WriteByte(Save+0x358E,69) --Garnet Ring
WriteByte(Save+0x358F,69) --Diamond Ring
WriteByte(Save+0x3590,69) --Silver Ring
WriteByte(Save+0x3591,69) --Gold Ring
WriteByte(Save+0x3592,69) --Platinum Ring
WriteByte(Save+0x3593,69) --Mythril Ring
WriteByte(Save+0x359A,69) --Orichalcum Ring
WriteByte(Save+0x35A6,69) --Soldier Earring
WriteByte(Save+0x35A7,69) --Fencer Earring
WriteByte(Save+0x35A8,69) --Mage Earring
WriteByte(Save+0x35AC,69) --Slayer Earring
WriteByte(Save+0x35B0,1) --Medal
WriteByte(Save+0x359C,69) --Moon Amulet
WriteByte(Save+0x359E,69) --Star Charm
WriteByte(Save+0x35B1,1) --Cosmic Arts
WriteByte(Save+0x35B2,69) --Shadow Archive
WriteByte(Save+0x35B7,69) --Shadow Archive+
WriteByte(Save+0x35B9,69) --Full Bloom
WriteByte(Save+0x35BB,69) --Full Bloom+
WriteByte(Save+0x35BA,69) --Draw Ring
WriteByte(Save+0x35B8,69) --Lucky Ring
end
--Tutorial Flags & Form Weapons
BitOr(Save+0x239E,0x0F) --Pause Menu (1=Items, 2=Party, 4=Customize, 8=Journal)
BitNot(Save+0x239E,0x80) --Show Struggle Bats Outside STT
BitOr(Save+0x36E8,0x01) --Enable Item in Command Menu
WriteShort(Save+0x32F4,0x051) --Valor Form equips FAKE
WriteShort(Save+0x339C,0x02C) --Master Form equips Detection Saber
WriteShort(Save+0x33D4,0x02D) --Final Form equips Edge of Ultima
WriteShort(Save+0x4270,0x1FF) --Pause Menu Tutorial Prompts Seen Flags
WriteShort(Save+0x4274,0x1FF) --Status Form & Summon Seen Flags
BitOr(Save+0x49F0,0x03) --Shop Tutorial Prompt Flags (1=Big Shops, 2=Small Shops)
--Unlock Data Portals
WriteShort(Save+0x06AC,0x02) --Garden of Assemblage MAP (Before Computer)
WriteShort(Save+0x06B0,0x02) --Garden of Assemblage EVT
BitOr(Save+0x1D35,0x01) --BB_216_END (Xaldin)
BitOr(Save+0x1D23,0x08) --HB_FM_COM_VEX_END (Vexen)
BitOr(Save+0x1D23,0x10) --HB_FM_COM_LEX_END (Lexaeus)
BitOr(Save+0x1D23,0x40) --HB_FM_COM_ZEX_END (Zexion)
BitOr(Save+0x1CE9,0x04) --TT_013_END (Axel)
BitOr(Save+0x1D15,0x08) --HB_418_END (Demyx)
BitOr(Save+0x1D23,0x80) --HB_FM_COM_MAR_END (Marluxia)
BitOr(Save+0x1D23,0x20) --HB_FM_COM_LAR_END (Larxene)
BitOr(Save+0x1ED9,0x01) --EH_GAME_COMPLETE (TWtNW Members)
--Bonus Level Flag
BitOr(Save+0x3704,0xFC)
BitOr(Save+0x3705,0x97)
BitOr(Save+0x3706,0xFF)
BitOr(Save+0x3707,0xF7)
BitOr(Save+0x3708,0xEF)
BitOr(Save+0x3709,0xED)
BitOr(Save+0x370A,0x46)
BitOr(Save+0x370B,0xFF)
BitOr(Save+0x370C,0xFF)
BitOr(Save+0x370D,0x03)
--Atlantica
WriteShort(Save+0x1094,0x12) --Triton's Throne EVT
WriteShort(Save+0x10A0,0x0D) --Undersea Courtyard EVT
BitOr(Save+0x2393,0x20) --Part of Your World
BitOr(Save+0x2393,0x40) --Under the Sea
BitOr(Save+0x2393,0x80) --Ursula's Revenge
BitOr(Save+0x2394,0x01) --A New Day is Dawning
--100 Acre Wood
WriteShort(Save+0x0D9A,0x02) --Starry Hill EVT
WriteShort(Save+0x0DA6,0x03) --Rabbit's House EVT
WriteShort(Save+0x0DAC,0x03) --Piglet's House EVT
WriteShort(Save+0x0DB2,0x03) --Kanga's House EVT
WriteShort(Save+0x0DCA,0x02) --Spooky Cave EVT
BitOr(Save+0x1DB1,0x40) --PO_MS101_END_L
BitOr(Save+0x1DB2,0x40) --PO_MS201_END_L
BitOr(Save+0x1DB3,0x40) --PO_MS301_END_L
BitOr(Save+0x1DB4,0x20) --PO_MS401_END_L
BitOr(Save+0x1DB5,0x10) --PO_MS501_END_L
end
end
end
function GoA()
PrevBtl = ReadShort(Now+0x36)
if Place == 0x1A04 then
DriveRefill()
Spawn('Short',0x07,0x034,0x4A1) --Right Chest -> Moogle Shop
Spawn('Short',0x07,0x060,0x0D1) --RC
Spawn('Short',0x07,0x074,0x23A) --Left Chest -> Save Point
Spawn('Short',0x07,0x094,0x032) --Save Door
Spawn('Short',0x03,0x024,0x0022) --Door to Transport to Remembrance -> Destiny Islands
Spawn('Short',0x04,0x024,0x0021) --Door to Restoration Site (Destroyed) -> Station of Remembrance
WriteShort(Save+0x06DA,0x80) --Station of Remembrance EVT
WriteShort(Save+0x06E0,0x7C) --Destiny Islands EVT
local RNG = ReadByte(Save+0x1CF8)
local Music = Sys3 + 0x0D28C
local Costume = Sys3 + 0x159A0
local Party = Save + 0x3544
local Textbox = ReadShort(TxtBox)
local GuestHP
local Visit
local BtlLv = Save + 0x3724
if RNG == 0 then
WriteByte(Save+0x1CF8,math.random(2))
end
WriteShort(Music+2,0)
if Btl == 0 then
WriteShort(Music,0x89) --A Twinkle in the Sky
WriteInt(Party,0x12020100)
if Textbox == 0x761 then
Visit = 1
elseif Textbox == 0x762 then
Visit = 2
elseif Textbox == 0x763 then
Visit = 3
elseif Textbox == 0x764 then
Visit = 4
elseif Textbox == 0x765 then
Visit = 5
elseif Textbox == 0x766 then
Visit = 6
elseif Textbox == 0x767 then
Visit = 7
elseif Textbox == 0x768 then
Visit = 8
elseif Textbox == 0x769 then
Visit = 9
elseif Textbox == 0x76A then
Visit = 10
elseif Textbox == 0x76B then
Visit = 11
elseif Textbox == 0x76C then
Visit = 12
elseif Textbox == 0x76D then
Visit = 13
end
if Visit then
WriteShort(Save+0x06AE,Visit) --Garden of Assemblage BTL
end
if true then --Portal Warp Pointers
Spawn('Short',0x0A,0x048,0x01) --Data Xemnas -> The World that Never Was
Spawn('Short',0x0A,0x04A,0x04)
Spawn('Short',0x0A,0x04C,0x1A)
Spawn('Short',0x0A,0x04E,0x00)
Spawn('Short',0x0A,0x050,0x00)
Spawn('Short',0x0A,0x068,0x01) --Data Xigbar -> Land of Dragons
Spawn('Short',0x0A,0x06A,0x04)
Spawn('Short',0x0A,0x06C,0x1A)
Spawn('Short',0x0A,0x06E,0x00)
Spawn('Short',0x0A,0x070,0x00)
Spawn('Short',0x0A,0x088,0x01) --Data Xaldin -> Beast's Castle
Spawn('Short',0x0A,0x08A,0x04)
Spawn('Short',0x0A,0x08C,0x1A)
Spawn('Short',0x0A,0x08E,0x00)
Spawn('Short',0x0A,0x090,0x00)
Spawn('Short',0x0A,0x0A8,0x01) --Data Vexen -> Halloween Town
Spawn('Short',0x0A,0x0AA,0x04)
Spawn('Short',0x0A,0x0AC,0x1A)
Spawn('Short',0x0A,0x0AE,0x00)
Spawn('Short',0x0A,0x0B0,0x00)
Spawn('Short',0x0A,0x0C8,0x01) --Data Lexaeus -> Agrabah
Spawn('Short',0x0A,0x0CA,0x04)
Spawn('Short',0x0A,0x0CC,0x1A)
Spawn('Short',0x0A,0x0CE,0x00)
Spawn('Short',0x0A,0x0D0,0x00)
Spawn('Short',0x0A,0x0E8,0x01) --Data Zexion -> Olympus Coliseum
Spawn('Short',0x0A,0x0EA,0x04)
Spawn('Short',0x0A,0x0EC,0x1A)
Spawn('Short',0x0A,0x0EE,0x00)
Spawn('Short',0x0A,0x0F0,0x00)
Spawn('Short',0x0A,0x108,0x01) --Data Saix -> Pride Lands
Spawn('Short',0x0A,0x10A,0x04)
Spawn('Short',0x0A,0x10C,0x1A)
Spawn('Short',0x0A,0x10E,0x00)
Spawn('Short',0x0A,0x110,0x00)
Spawn('Short',0x0A,0x128,0x01) --Data Axel -> Twilight Town
Spawn('Short',0x0A,0x12A,0x04)
Spawn('Short',0x0A,0x12C,0x1A)
Spawn('Short',0x0A,0x12E,0x00)
Spawn('Short',0x0A,0x130,0x00)
Spawn('Short',0x0A,0x148,0x01) --Data Demyx -> Hollow Bastion/Radiant Garden
Spawn('Short',0x0A,0x14A,0x04)
Spawn('Short',0x0A,0x14C,0x1A)
Spawn('Short',0x0A,0x14E,0x00)
Spawn('Short',0x0A,0x150,0x00)
Spawn('Short',0x0A,0x168,0x01) --Data Luxord -> Port Royal
Spawn('Short',0x0A,0x16A,0x04)
Spawn('Short',0x0A,0x16C,0x1A)
Spawn('Short',0x0A,0x16E,0x00)
Spawn('Short',0x0A,0x170,0x00)
Spawn('Short',0x0A,0x188,0x01) --Data Marluxia -> Disney Castle & Timeless River
Spawn('Short',0x0A,0x18A,0x04)
Spawn('Short',0x0A,0x18C,0x1A)
Spawn('Short',0x0A,0x18E,0x00)
Spawn('Short',0x0A,0x190,0x00)
Spawn('Short',0x0A,0x1A8,0x01) --Data Larxene -> Space Paranoids
Spawn('Short',0x0A,0x1AA,0x04)
Spawn('Short',0x0A,0x1AC,0x1A)
Spawn('Short',0x0A,0x1AE,0x00)
Spawn('Short',0x0A,0x1B0,0x00)
Spawn('Short',0x0A,0x1C8,0x01) --Data Roxas -> Simulated Twilight Town
Spawn('Short',0x0A,0x1CA,0x04)
Spawn('Short',0x0A,0x1CC,0x1A)
Spawn('Short',0x0A,0x1CE,0x00)
Spawn('Short',0x0A,0x1D0,0x00)
end
elseif Btl == 1 then
WriteShort(Music,0x36) --Sacred Moon
WriteInt(Party,0x83020100)
WriteInt(BtlLv,0x157D79) --Battle Level
GuestHP = Save+0x31E5
if Textbox == 0x761 then
WriteByte(GuestHP,100)
elseif Textbox == 0x763 then
WriteByte(GuestHP,100)
elseif Textbox == 0x765 then
WriteByte(GuestHP,100)
elseif Textbox == 0x767 then
WriteByte(GuestHP,100)
elseif Textbox == 0x769 then
WriteByte(GuestHP,125)
elseif Textbox == 0x76B then
WriteByte(GuestHP,125)
end
if true then --Portal Warp Pointers
Spawn('Short',0x0A,0x048,0x02) --Data Xemnas -> Core
Spawn('Short',0x0A,0x04A,0x12)
Spawn('Short',0x0A,0x04C,0x00)
Spawn('Short',0x0A,0x04E,0x00)
Spawn('Short',0x0A,0x050,0x46)
Spawn('Short',0x0A,0x068,0x02) --Data Xigbar -> Xemnas I
Spawn('Short',0x0A,0x06A,0x12)
Spawn('Short',0x0A,0x06C,0x00)
Spawn('Short',0x0A,0x06E,0x00)
Spawn('Short',0x0A,0x070,0x3B)
Spawn('Short',0x0A,0x088,0x02) --Data Xaldin -> Armor Xemnas I
Spawn('Short',0x0A,0x08A,0x12)
Spawn('Short',0x0A,0x08C,0x00)
Spawn('Short',0x0A,0x08E,0x00)
Spawn('Short',0x0A,0x090,0x47)
Spawn('Short',0x0A,0x0A8,0x02) --Data Vexen -> Saix
Spawn('Short',0x0A,0x0AA,0x12)
Spawn('Short',0x0A,0x0AC,0x00)
Spawn('Short',0x0A,0x0AE,0x00)
Spawn('Short',0x0A,0x0B0,0x38)
Spawn('Short',0x0A,0x0C8,0x02) --Data Lexaeus -> Armor Xemnas II
Spawn('Short',0x0A,0x0CA,0x12)
Spawn('Short',0x0A,0x0CC,0x00)
Spawn('Short',0x0A,0x0CE,0x00)
Spawn('Short',0x0A,0x0D0,0x49)
Spawn('Short',0x0A,0x0E8,0x02) --Data Zexion -> Luxord
Spawn('Short',0x0A,0x0EA,0x12)
Spawn('Short',0x0A,0x0EC,0x00)
Spawn('Short',0x0A,0x0EE,0x00)
Spawn('Short',0x0A,0x0F0,0x3A)
Spawn('Short',0x0A,0x108,0x02) --Data Saix -> Xemnas II
Spawn('Short',0x0A,0x10A,0x12)
Spawn('Short',0x0A,0x10C,0x00)
Spawn('Short',0x0A,0x10E,0x00)
Spawn('Short',0x0A,0x110,0x4A)
Spawn('Short',0x0A,0x128,0x02) --Data Axel -> Xigbar
Spawn('Short',0x0A,0x12A,0x12)
Spawn('Short',0x0A,0x12C,0x00)
Spawn('Short',0x0A,0x12E,0x00)
Spawn('Short',0x0A,0x130,0x39)
Spawn('Short',0x0A,0x148,0x02) --Data Demyx -> Data Xemnas I
Spawn('Short',0x0A,0x14A,0x12)
Spawn('Short',0x0A,0x14C,0x00)
Spawn('Short',0x0A,0x14E,0x00)
Spawn('Short',0x0A,0x150,0x61)
Spawn('Short',0x0A,0x168,0x02) --Data Luxord -> Roxas
Spawn('Short',0x0A,0x16A,0x12)
Spawn('Short',0x0A,0x16C,0x00)
Spawn('Short',0x0A,0x16E,0x00)
Spawn('Short',0x0A,0x170,0x41)
Spawn('Short',0x0A,0x188,0x02) --Data Marluxia -> Data Xemnas II
Spawn('Short',0x0A,0x18A,0x12)
Spawn('Short',0x0A,0x18C,0x00)
Spawn('Short',0x0A,0x18E,0x00)
Spawn('Short',0x0A,0x190,0x62)
Spawn('Short',0x05,0x2F4,0x000) --Data Larxene
Spawn('Short',0x05,0x334,0x000) --Data Roxas
end
elseif Btl == 2 then
WriteShort(Music,0x74) --The Home of Dragons
WriteArray(Costume,ReadArray(Sys3+0x15DB0,18))
WriteInt(Party,0x83020100)
GuestHP = Save+0x2A59
if Textbox == 0x761 then
Visit = 1
WriteByte(GuestHP,55)
elseif Textbox == 0x762 then
Visit = 1
WriteByte(GuestHP,40)
BitNot(Save+0x1D93,0x01) --MU_MULAN_START
elseif Textbox == 0x763 then
Visit = 1
WriteByte(GuestHP,55)
WriteShort(Save+0x0C46,0x00) --Palace Gate MAP
WriteShort(Save+0x0C48,0x00) --Palace Gate BTL
WriteShort(Save+0x0C4A,0x01) --Palace Gate EVT
BitNot(Save+0x3555,0x80) --Ping not forced
BitOr(Save+0x1D93,0x01) --MU_MULAN_START
elseif Textbox == 0x764 then
Visit = 1
WriteByte(GuestHP,40)
BitNot(Save+0x1D93,0x01) --MU_MULAN_START
elseif Textbox == 0x765 then
Visit = 1
WriteByte(GuestHP,55)
elseif Textbox == 0x766 then
Visit = 1
WriteByte(GuestHP,40)
BitNot(Save+0x1D93,0x01) --MU_MULAN_START
elseif Textbox == 0x767 then
Visit = 2
elseif Textbox == 0x768 then
Visit = 1
WriteByte(GuestHP,40)
BitNot(Save+0x1D93,0x01) --MU_MULAN_START
elseif Textbox == 0x769 then
Visit = 2
WriteByte(GuestHP,75)
elseif Textbox == 0x76A then
Visit = 1
WriteByte(GuestHP,40)
BitNot(Save+0x1D93,0x01) --MU_MULAN_START
elseif Textbox == 0x76B then
Visit = 2
WriteByte(GuestHP,75)
elseif Textbox == 0x76C then
Visit = 1
WriteByte(GuestHP,40)
BitNot(Save+0x1D93,0x01) --MU_MULAN_START
elseif Textbox == 0x76D then
Visit = 2
WriteByte(GuestHP,75)
end
if Visit == 1 then --Battle Level
WriteInt(BtlLv,0x141C01)
elseif Visit == 2 then
WriteInt(BtlLv,0x147D19)
end
if true then --Portal Warp Pointers
Spawn('Short',0x0A,0x048,0x02) --Data Xemnas -> Imperial Square Heartless I
Spawn('Short',0x0A,0x04A,0x08)
Spawn('Short',0x0A,0x04C,0x00)
Spawn('Short',0x0A,0x04E,0x00)
Spawn('Short',0x0A,0x050,0x4A)
Spawn('Short',0x0A,0x068,0x02) --Data Xigbar -> Village Cave Heartless
Spawn('Short',0x0A,0x06A,0x08)
Spawn('Short',0x0A,0x06C,0x00)
Spawn('Short',0x0A,0x06E,0x00)
Spawn('Short',0x0A,0x070,0x48)
Spawn('Short',0x0A,0x088,0x01) --Data Xaldin -> Shan Yu Skip
Spawn('Short',0x0A,0x08A,0x08)
Spawn('Short',0x0A,0x08C,0x09)
Spawn('Short',0x0A,0x08E,0x00)
Spawn('Short',0x0A,0x090,0x00)
Spawn('Short',0x0A,0x0A8,0x02) --Data Vexen -> Mountain Trail Run
Spawn('Short',0x0A,0x0AA,0x08)
Spawn('Short',0x0A,0x0AC,0x00)
Spawn('Short',0x0A,0x0AE,0x00)
Spawn('Short',0x0A,0x0B0,0x47)
Spawn('Short',0x0A,0x0C8,0x02) --Data Lexaeus -> Shan Yu
Spawn('Short',0x0A,0x0CA,0x08)
Spawn('Short',0x0A,0x0CC,0x00)
Spawn('Short',0x0A,0x0CE,0x00)
Spawn('Short',0x0A,0x0D0,0x4B)
Spawn('Short',0x0A,0x0E8,0x02) --Data Zexion -> Mission 3
Spawn('Short',0x0A,0x0EA,0x08)
Spawn('Short',0x0A,0x0EC,0x00)
Spawn('Short',0x0A,0x0EE,0x00)
Spawn('Short',0x0A,0x0F0,0x46)
Spawn('Short',0x0A,0x108,0x02) --Data Saix -> Riku
Spawn('Short',0x0A,0x10A,0x08)
Spawn('Short',0x0A,0x10C,0x00)
Spawn('Short',0x0A,0x10E,0x00)
Spawn('Short',0x0A,0x110,0x4C)
Spawn('Short',0x0A,0x128,0x02) --Data Axel -> Mission 2
Spawn('Short',0x0A,0x12A,0x08)
Spawn('Short',0x0A,0x12C,0x00)
Spawn('Short',0x0A,0x12E,0x00)
Spawn('Short',0x0A,0x130,0x50)
Spawn('Short',0x0A,0x148,0x02) --Data Demyx -> Imperial Square Heartless II
Spawn('Short',0x0A,0x14A,0x08)
Spawn('Short',0x0A,0x14C,0x00)
Spawn('Short',0x0A,0x14E,0x00)
Spawn('Short',0x0A,0x150,0x51)
Spawn('Short',0x0A,0x168,0x02) --Data Luxord -> Mission 1
Spawn('Short',0x0A,0x16A,0x08)
Spawn('Short',0x0A,0x16C,0x00)
Spawn('Short',0x0A,0x16E,0x00)
Spawn('Short',0x0A,0x170,0x45)
Spawn('Short',0x0A,0x188,0x02) --Data Marluxia -> Antechamber Nobodies
Spawn('Short',0x0A,0x18A,0x08)