Advertisement
luckytyphlosion

BN6 Cutscene Command docs (just for readability)

Nov 21st, 2018
544
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.45 KB | None | 0 0
  1. From https://forums.therockmanexezone.com/bn6-cutscene-command-docs-t5292.html
  2.  
  3. Breakpoint: 0x0803853C
  4.  
  5.  
  6.  
  7. 00 - Cmd00
  8. Routine: 0x080376C4
  9.  
  10. if !(FlagIsOn(0x1741))
  11. call 0x0813C3AC;
  12. call 0x08036EFE;
  13. halt;
  14.  
  15.  
  16.  
  17. 01 p1 - Special01
  18. p1 = Call offset
  19. Routine: 0x08037B08
  20.  
  21. call [0x08037B24 + p1];
  22. next;
  23.  
  24.  
  25.  
  26. 02 p1 p2 - Pause
  27. p1 = Variable offset
  28. p2 = Pause length
  29. Routine: 0x080376F4
  30.  
  31. if !([0x02011C7C] & (1 << [0x02011C62]) != 0)
  32. {
  33. [0x02011C7C] |= 1 << [0x02011C62];
  34.  
  35. if (p1 == 0xFF)
  36. var = p2;
  37. else
  38. var = [0x02011C50+p1];
  39.  
  40. [0x02011C5C+[0x02011C62]] = var;
  41. }
  42.  
  43. var = [0x02011C5C+[0x02011C62]];
  44. var--;
  45. [0x02011C5C+[0x02011C62]] = var;
  46.  
  47. if (var >= 0)
  48. {
  49. [0x02011C7C] clear= 1 << [0x02011C62];
  50. next;
  51. }
  52. else
  53. halt;
  54.  
  55.  
  56.  
  57. 03 - Halt03
  58. Routine: 0x080378BE
  59.  
  60. halt;
  61.  
  62.  
  63.  
  64. 04 p1 - Wait04
  65. Routine: 0x08037790
  66.  
  67. r0 = p1 & 0x80
  68. if ((p1 & 0x80 & [0x02009F38]) == 0 || (p1 & 0x38 & [0x02009F38]) != 0)
  69. next;
  70. else
  71. halt
  72.  
  73.  
  74.  
  75.  
  76. 05 p1 - Wait05
  77. p1 = Value to check
  78. Routine: 0x080377B6
  79.  
  80. if ((call 0x0809E434) != p1)
  81. next;
  82. else
  83. halt;
  84.  
  85.  
  86.  
  87. 06 - Nop06
  88. Routine: 0x080377D0
  89.  
  90. next;
  91.  
  92.  
  93.  
  94. 07 - Wait07
  95. Routine: 0x080377E4
  96.  
  97. if ([0x0200A443] != 1)
  98. next;
  99. else
  100. halt;
  101.  
  102.  
  103.  
  104. 08 - CameraMoveWait
  105. Routine: 0x080377F6
  106.  
  107. if ([0x02011C63] == 0)
  108. next;
  109. else
  110. halt;
  111.  
  112.  
  113.  
  114. 09 p1 p2 - VarWait
  115. p1 = Variable number
  116. p2 = ?
  117. Routine: 0x08037808
  118.  
  119. if ([0x02011C50 + p1] == p2)
  120. next;
  121. else
  122. halt;
  123.  
  124.  
  125.  
  126. 0A p1 - CallWait
  127. p1 = Variable number
  128. Routine: 0x08037826
  129.  
  130. if ([[0x02011C50 + p1]] == 0x11)
  131. next;
  132. else
  133. halt;
  134.  
  135.  
  136.  
  137. 0B - Halt0B
  138. Routine: 0x080378BE
  139.  
  140. halt;
  141.  
  142.  
  143.  
  144. 0C - Wait0C
  145. Routine: 0x08037852
  146.  
  147. if ([0x0200DF25] & 1 != 0)
  148. next;
  149. else
  150. halt;
  151.  
  152.  
  153.  
  154. 0D p1 p1 - FlagWait0D
  155. p1 = Flag number
  156. Routine: 0x08037866
  157.  
  158. if (FlagIsOn(p1))
  159. next;
  160. else
  161. halt;
  162.  
  163.  
  164.  
  165. 0E p1 p1 - FlagWait0E (exact duplicate of FlagWait0D)
  166. p1 = Flag number
  167. Routine: 0x08037880
  168.  
  169. if (FlagIsOn(p1))
  170. next;
  171. else
  172. halt;
  173.  
  174.  
  175.  
  176. 0F - Wait0F
  177. Routine: 0x0803789A
  178.  
  179. if ([0x02000780] == 0)
  180. next;
  181. else
  182. halt;
  183.  
  184.  
  185.  
  186. 10 - Wait10
  187. Routine: 0x080378AC
  188.  
  189. if ([0x02001010] == 0)
  190. next;
  191. else
  192. halt;
  193.  
  194.  
  195.  
  196. 11 - Return
  197. Routine: 0x080378BE
  198.  
  199. halt;
  200.  
  201.  
  202.  
  203. 12 p1 p2 p2 p2 p2 - Cmd12
  204. p1 = Variable offset and flag
  205. p2 = Value to write
  206. Routine: 0x080378C2
  207.  
  208. [0x02011C50 + p1] = p2;
  209. [02011C7C] clear= 1 << ((p1 - 0x1C) >> 2);
  210. [02011C7C] clear= 1 << (((p1 - 0x1C) >> 2) + 4);
  211. next;
  212.  
  213.  
  214.  
  215. 13 p1 - WriteTo13
  216. p1 = Variable offset
  217. Routine: 0x080378EE
  218.  
  219. [02011C50 + p1] = 0x08037690;
  220. next;
  221.  
  222.  
  223.  
  224. 14 p1 p1 p1 p1 = WriteTo14
  225. p1 = Value to write
  226. Routine: 0x08037904
  227.  
  228. [0x02011C88] = p1;
  229. next;
  230.  
  231.  
  232.  
  233. 15 p1 p1 p1 p1 = JumpTo
  234. p1 = Cutscene pointer
  235. Routine: 0x08035924
  236.  
  237. JumpTo p1;
  238. next;
  239.  
  240.  
  241.  
  242. 16 p1 p2 p3 p3 p3 p3 = MainProgressJumpTo
  243. p1 = Main progress lower bound
  244. p2 = Main progress upper bound
  245. p3 = Cutscene pointer
  246. Routine: 0x08035932
  247.  
  248. MainProgress = [0x02001B86]
  249. if (MainProgress >= p1 && MainProgress <= p2)
  250. {
  251. JumpTo p3;
  252. next;
  253. }
  254. else
  255. next;
  256.  
  257.  
  258.  
  259. 17 p1 p2 p2 p3 p3 p3 p3 - FlagOnJumpTo
  260. p1 = Variable offset
  261. p2 = Flag number
  262. p3 = Cutscene pointer
  263. Routine: 0x08035962
  264.  
  265. if (p1 != 0xFF)
  266. var = [0x02011C50 + p1];
  267. else
  268. var = p2;
  269.  
  270. if (FlagIsOn(var))
  271. {
  272. JumpTo p3;
  273. next;
  274. }
  275. else
  276. next;
  277.  
  278.  
  279.  
  280. 18 p1 p2 p2 p3 p3 p3 p3 - FlagRangeOnJumpTo
  281. p1 = Flag range
  282. p2 = Flag number
  283. p3 = Cutscene pointer
  284. Routine: 0x08035992
  285.  
  286. var = 0;
  287. for (n = 0; n < var; n++)
  288. if (FlagIsOn(p2 + n))
  289. var++;
  290. if (var == p1) // if all flags p2 through p2+p1 were on
  291. {
  292. JumpTo p3;
  293. next;
  294. }
  295. else
  296. next;
  297.  
  298.  
  299.  
  300. 19 p1 p2 p2 p3 p3 p3 p3 - FlagOffJumpTo
  301. p1 = Variable offset
  302. p2 = Flag number
  303. p3 = Cutscene pointer
  304. Routine: 0x080359BE
  305.  
  306. if (p1 != 0xFF)
  307. var = [0x02011C50 + p1];
  308. else
  309. var = p2;
  310. if !(FlagIsOn(var))
  311. {
  312. JumpTo p3;
  313. next;
  314. }
  315. else
  316. next;
  317.  
  318.  
  319.  
  320. 1A p1 p2 p2 p3 p3 p3 p3 - FlagRangeOffJumpTo
  321. p1 = Flag range
  322. p2 = Flag number
  323. p3 = Cutscene pointer
  324. Routine: 0x080359EE
  325.  
  326. var = 0;
  327. for (n = 0; n < var; n++)
  328. if (FlagIsOn(p2 + n))
  329. var++;
  330. if (var == p1) // if all flags p2 through p2+p1 were on
  331. {
  332. JumpTo p3;
  333. next;
  334. }
  335. else
  336. next;
  337.  
  338.  
  339.  
  340. 1B p1 p2 p2 p2 p2 p3 p3 p3 p3 p3 p4 p4 p4 p4 - RAMCheckJumpTo
  341. p1 = p4 amount of bits (0=8, 1=16, 2=32)
  342. p2 = ?
  343. p3 = Cutscene pointer
  344. p4 = ?
  345. Routine: 0x08035A1A
  346.  
  347. r0 = p2
  348. r1 = p3
  349.  
  350. switch (p1)
  351. {
  352. default:
  353. if ([p2] == p4 & 0xFF)
  354. {
  355. JumpTo p3;
  356. next;
  357. }
  358. else
  359. next;
  360. case 1:
  361. if ([p2] == p4 & 0xFFFF)
  362. {
  363. JumpTo p3;
  364. next;
  365. }
  366. else
  367. next;
  368. case 2:
  369. if ([p2] == p4)
  370. {
  371. JumpTo p3;
  372. next;
  373. }
  374. else
  375. next;
  376. }
  377.  
  378.  
  379.  
  380. 1C p1 p2 p3 p3 p3 p3 - VarCheckJumpTo
  381. p1 = Variable offset
  382. p2 = Value to check for
  383. p3 = Cutscene pointer
  384. Routine: 0x08037914
  385.  
  386. if ([0x02011C50 + p1] == p2)
  387. {
  388. JumpTo p3;
  389. next;
  390. }
  391. else
  392. next;
  393.  
  394.  
  395.  
  396. 1D p1 p2 p3 p4 p4 p4 p4 - NaviCustValueJumpTo
  397. p1 = NaviCust value to get count of
  398. p2 = NaviCust value lower bound
  399. p3 = NaviCust value upper bound
  400. p4 = Cutscene pointer
  401. Routine: 0x08035A74
  402.  
  403. if (GetNaviCustValue(p1) >= p2 && GetNaviCustValue(p1) <= p3)
  404. {
  405. JumpTo p4;
  406. next;
  407. }
  408. else
  409. next;
  410.  
  411.  
  412.  
  413. 1E p1 p1 p2 p3 p4 p5 p5 p5 p5 - ChipCountValueJumpTo
  414. p1 = Chip number
  415. p2 = Chip code
  416. p3 = Chip count lower bound
  417. p4 = Chip count upper bound
  418. p5 = Cutscene pointer
  419. Routine: 0x08035AAA
  420.  
  421. if (p2 == 0xFF)
  422. ChipCount = GetTotalChipCount(p1);
  423. else
  424. ChipCount = GetChipCountOfCode(p1,p2);
  425.  
  426. if (ChipCount >= p3 && ChipCount <= p4)
  427. {
  428. JumpTo p5;
  429. next;
  430. }
  431. else
  432. next;
  433.  
  434.  
  435.  
  436. 1F p1 p2 p2 p2 p2 - IfJumpTo1F
  437. p1 = ?
  438. p2 = Cutscene pointer
  439. Routine: 0x0803793A
  440.  
  441. if ([0x0200A009] == p1)
  442. {
  443. JumpTo p2;
  444. next;
  445. }
  446. else
  447. next;
  448.  
  449.  
  450.  
  451. 20 p1 p2 p2 p2 p2 - IfJumpTo20
  452. p1 = ?
  453. p2 = Cutscene pointer
  454. Routine: 0x0803795C
  455.  
  456. if ([0x0200A009] != p1)
  457. {
  458. JumpTo p2;
  459. next;
  460. }
  461. else
  462. next;
  463.  
  464.  
  465.  
  466. 21 p1 p2 p3 p3 p3 p3 - IfJumpTo21
  467. p1 = ?
  468. p2 = ? (signed)
  469. p3 = Cutscene pointer
  470. Routine: 0x08035AFA
  471.  
  472. result = call 0x08031A7A, [r0]=[0x02009F5C], [r0+4]=[0x02009F60], [r0+8]=[0x02009F64]+(p2<<0x10);
  473. var = result[0];
  474. if (result[0] == 0)
  475. var = result[1]
  476.  
  477. if (var == p1)
  478. {
  479. JumpTo p3;
  480. next;
  481. }
  482. else
  483. next;
  484.  
  485.  
  486.  
  487. 22 p1 p2 p3 p3 p3 p3 - IfJumpTo22
  488. p1 = ?
  489. p2 = ? (signed)
  490. p3 = Cutscene pointer
  491. Routine: 0x08035B44
  492.  
  493. result = call 0x08031A7A, [r0]=[0x02009F5C], [r0+4]=[0x02009F60], [r0+8]=[0x02009F64]+(p2<<0x10);
  494. var = result[0];
  495. if (result[0] == 0)
  496. var = result[1]
  497.  
  498. if (var != p1)
  499. {
  500. JumpTo p3;
  501. next;
  502. }
  503. else
  504. next;
  505.  
  506.  
  507.  
  508. 23 p1 p2 p2 p2 p2 - NaviJumpTo
  509. p1 = Navi value
  510. p2 = Cutscene pointer
  511. Routine: 0x0803797E
  512.  
  513. if (GetCurrentNavi() == p1)
  514. {
  515. JumpTo p2;
  516. next;
  517. }
  518. else
  519. next;
  520.  
  521.  
  522.  
  523. 24 p1 p2 p2 p2 p2 - NotNaviJumpTo
  524. p1 = Navi value
  525. p2 = Cutscene pointer
  526. Routine: 0x0803797E
  527.  
  528. if (GetCurrentNavi() != p1)
  529. {
  530. JumpTo p2;
  531. next;
  532. }
  533. else
  534. next;
  535.  
  536.  
  537.  
  538. 25 p1 p2 p2 p2 p2 - TitleScreenIconJumpTo
  539. p1 = Title Screen icon count
  540. p2 = Cutscene pointer
  541. Routine: 0x080379C2
  542.  
  543. if (GetTitleScreenIconCount() == p1)
  544. {
  545. JumpTo p2;
  546. next;
  547. }
  548. else
  549. next;
  550.  
  551.  
  552.  
  553. 26 p1 p2 p2 p2 p2 - NotTitleScreenIconJumpTo
  554. p1 = Title Screen icon count
  555. p2 = Cutscene pointer
  556. Routine: 0x080379C2
  557.  
  558. if (GetTitleScreenIconCount() != p1)
  559. {
  560. JumpTo p2;
  561. next;
  562. }
  563. else
  564. next;
  565.  
  566.  
  567.  
  568. 27 p1 p2 p3 - FadeScreen
  569. p1 = Variable offset
  570. p2 = ?
  571. p3 = ?
  572. Routine: 0x08035D6A
  573.  
  574. if (p1 != 0xFF)
  575. {
  576. var0 = [0x02011C50 + p1];
  577. var1 = [0x02011C50 + p1 + 1];
  578. }
  579. else
  580. {
  581. var0 = p2;
  582. var1 = p3;
  583. }
  584. FadeScreen(var0, var1);
  585. next;
  586.  
  587.  
  588.  
  589. 28 p1 p2 - Cmd28
  590. p1 = ?
  591. p2 = ?
  592. Routine: 0x08035D98
  593.  
  594. [02001B96] = p1;
  595. [02001B97] = p2;
  596. next;
  597.  
  598.  
  599.  
  600. 29 p1 p2 p2 - SetFlag
  601. p1 = Variable offset
  602. p2 = Flag number
  603. Routine: 0x08035DB4
  604.  
  605. if (p1 != 0xFF)
  606. var = [0x02011C50 + p1];
  607. else
  608. var = p2;
  609. SetFlag(var);
  610. next;
  611.  
  612.  
  613.  
  614. 2A p1 p2 p2 - ClearFlag
  615. p1 = Variable offset
  616. p2 = Flag number
  617. Routine: 0x08035DD6
  618.  
  619. if (p1 != 0xFF)
  620. var = [0x02011C50 + p1];
  621. else
  622. var = p2;
  623. ClearFlag(var);
  624. next;
  625.  
  626.  
  627.  
  628. 2B p1 p2 p2 - SetFlagRange
  629. p1 = Flag range
  630. p2 = Flag number
  631. Routine: 0x08035DF8
  632.  
  633. for (n = 0; n < p1; n++)
  634. SetFlag(p1 + n);
  635. next;
  636.  
  637.  
  638.  
  639. 2C p1 p2 p2 - ClearFlagRange
  640. p1 = Flag range
  641. p2 = Flag number
  642. Routine: 0x08035E16
  643.  
  644. for (n = 0; n < p1; n++)
  645. ClearFlag(p1 + n);
  646. next;
  647.  
  648.  
  649.  
  650. 2D p1 p1 p1 p1 - SetCustomFlagRange
  651. p1 = Flag number array pointer (terminated by a flag number less than 0)
  652. Routine: 0x08035E34
  653.  
  654. while ([p1] >= 0)
  655. {
  656. SetFlag([p1]);
  657. p1 += 2;
  658. }
  659. next;
  660.  
  661.  
  662.  
  663. 2E p1 p1 p1 p1 - ClearCustomFlagRange
  664. p1 = Flag number array pointer (terminated by a flag number less than 0)
  665. Routine: 0x08035E54
  666.  
  667. while ([p1] >= 0)
  668. {
  669. ClearFlag([p1]);
  670. p1 += 2;
  671. }
  672. next;
  673.  
  674.  
  675.  
  676. 2F p1 p1 p1 p1 p2 - Write8Bit
  677. p1 = Address
  678. p2 = Value to write
  679. Routine: 0x08035EAA
  680.  
  681. [p1] = p2;
  682. next;
  683.  
  684.  
  685.  
  686. 30 p1 p1 p1 p1 p2 p2 - Write16Bit
  687. p1 = Address
  688. p2 = Value to write
  689. Routine: 0x08035EC2
  690.  
  691. [p1] = p2;
  692. next;
  693.  
  694.  
  695.  
  696. 31 p1 p1 p1 p1 p2 p2 p2 p2 - Write32Bit
  697. p1 = Address
  698. p2 = Value to write
  699. Routine: 0x08035EC2
  700.  
  701. [p1] = p2;
  702. next;
  703.  
  704.  
  705.  
  706. 32 p1 p2 - WriteProgress
  707. p1 = Progress data offset
  708. p2 = Value to write
  709. Routine: 0x08035EF2
  710.  
  711. [0x02001B80 + p1] = p2;
  712. next;
  713.  
  714.  
  715.  
  716. 33 p1 p2 - Write33
  717. p1 = ??? data offset
  718. p2 = Value to write
  719. Routine: 0x08035F0E
  720.  
  721. [0x02001C04 + p1] = p2;
  722. next;
  723.  
  724.  
  725.  
  726. 34 p1 p2 p3 - Write34
  727. p1 = ?
  728. p2 = ?
  729. p3 = Value to write
  730. Routine: 0x08037A06
  731.  
  732. [[0x02011C50 + p1 * 4 + 0x44] + p2] = p3;
  733. next;
  734.  
  735.  
  736.  
  737. 35 p1 p2 - SetVar
  738. p1 = Variable offset
  739. p2 = Value to write
  740. Routine: 0x08037A2A
  741.  
  742. [0x02011C50 + p1] = p2;
  743. next;
  744.  
  745.  
  746.  
  747. 36 p1 p1 p1 p1 - Cmd36
  748. p1 = Pointer to data?
  749. Routine: 0x08035F2A
  750.  
  751. call 0x08001B1C, r0=p1;
  752. next;
  753.  
  754.  
  755.  
  756. 37 p1 p1 p1 p1 - Cmd37
  757. p1 = Pointer to data?
  758. Routine: 0x08035F3E
  759.  
  760. call 0x08002354, r0=p1;
  761. next;
  762.  
  763.  
  764.  
  765. 38 - Cmd38
  766. Routine: 0x08035F52
  767.  
  768. call 0x08030A30, r0=[0x02001B84], r1=[0x02001B85];
  769. call 0x08035194;
  770. next;
  771.  
  772.  
  773.  
  774. 39 p1 - Cmd39
  775. p1 = ?
  776. Routine: 0x08035F6A
  777.  
  778. if (p1 == 0xFF)
  779. {
  780. for (n = 0; n < 0x12; n++)
  781. call 0x08001B6C, r0=n;
  782. next;
  783. }
  784. else
  785. {
  786. call 0x08001B6C, r0=p1;
  787. next;
  788. }
  789.  
  790.  
  791.  
  792. 3A p1 - Cmd3A
  793. p1 = Variable offset; not 0xFF
  794. Routine: 0x08037A42
  795.  
  796. call 0x08040384, r0=[0x02011C80], r1=[0x02011C50 + p1];
  797. next;
  798.  
  799.  
  800.  
  801. 3A FF p1 - Cmd3AFF
  802. p1 = ?
  803. Routine: 0x08037A5C
  804.  
  805. call 0x08040384, r0=[0x02011C80], r1=p1;
  806. next;
  807.  
  808.  
  809.  
  810. 3B - Cmd3B
  811. Routine: 0x08037A70
  812.  
  813. call 0x08040818;
  814. next;
  815.  
  816.  
  817.  
  818. 3C p1 p2 - Cmd3C
  819. p1 = ?
  820. p2 = ?
  821. Routine: 0x08037A7C
  822.  
  823. if (p1 != 1)
  824. call 0x08045F1C, r0=p2;
  825. else
  826. call 0x08045F2C, r0=p2;
  827. next;
  828.  
  829.  
  830.  
  831. 3D p1 p1 p1 p1 p2 p2 p2 p2 p3 p3 p3 p3 p4 p4 p4 p4 p5 p5 p5 p5 p6 p6 p6 p6 p7 p7 p7 p7 p8 p8 p8 p8 - Cmd3D
  832. p1 = Cutscene pointer
  833. p2 = Cutscene pointer
  834. p3 = Cutscene pointer
  835. p4 = Cutscene pointer
  836. p5 = Cutscene pointer
  837. p6 = Cutscene pointer
  838. p7 = Cutscene pointer
  839. p8 = Cutscene pointer
  840. Routine: 0x08037AA0
  841.  
  842. switch (([0x02009F38] & 0x7) * 4)
  843. {
  844. case 0:
  845. JumpTo p1;
  846. default;
  847. case 1:
  848. JumpTo p2;
  849. default;
  850. case 2:
  851. JumpTo p3;
  852. default;
  853. case 3:
  854. JumpTo p4;
  855. default;
  856. case 4:
  857. JumpTo p5;
  858. default;
  859. case 5:
  860. JumpTo p6;
  861. default;
  862. case 6:
  863. JumpTo p7;
  864. default;
  865. case 7:
  866. JumpTo p8;
  867. default;
  868. }
  869. next;
  870.  
  871.  
  872.  
  873. 3E p1 p1 p1 p1 - TryDecompBin
  874. p1 = pointer to compressed or RAW bin
  875. Routine: 0x08037AB6
  876.  
  877. if (p1 & 0x80000000 != 0)
  878. {
  879. LZ77UnCompWram(p1 & 0x7FFFFFFF, 0x02034A00);
  880. var = 0x02034A04;
  881. }
  882. else
  883. var = p1;
  884. [0x02011C80] = p1;
  885. next;
  886.  
  887.  
  888.  
  889. 3F p1 - Special3F
  890. p1 = Call offset
  891. Routine: 0x08037B08
  892.  
  893. call [0x08037B24 + p1];
  894. next;
  895.  
  896.  
  897.  
  898. 40 p1 p2 p3 - Cmd40
  899. p1 = Call offset
  900. p2 = Variable offset
  901. p3 = Call variable
  902. Routine: 0x08037B6C
  903.  
  904. if (p2 != 0xFF)
  905. var = [0x02011C50];
  906. else
  907. var = p3;
  908. call [0x08037B9C + p1], r0=var;
  909. next;
  910.  
  911.  
  912.  
  913. 41 p1 p2 p3 p4 p4 p5 p5 p6 p6 - Cmd41
  914. p1 = ?
  915. p2 = Variable offset
  916. p3 = ?
  917. p4 = ? (signed)
  918. p5 = ? (signed)
  919. p6 = ? (signed)
  920. Routine: 0x08037BB4
  921.  
  922. if (p1 >= 8)
  923. if ([0x02011C62] == 0)
  924. halt;
  925. if (([0x02011C7C] & 0x100) == 0)
  926. {
  927. [0x02011C7C] |= 0x100;
  928. if (p2 != 0xFF)
  929. var0 = [0x02011C50 + p2];
  930. else
  931. var0 = p3;
  932. [0x02011C60] = var;
  933. }
  934. call [0x08037C34 + p1], r0=p4<<0xC, r1=p5<<0xC, r2=p6<<0xC;
  935. var1 = [0x02011C60];
  936. var1--;
  937. [0x02011C60] = var1;
  938. if (var <= 0)
  939. {
  940. [0x02011C7C] clear= 0x100;
  941. next;
  942. }
  943. else
  944. halt;
  945.  
  946.  
  947.  
  948. 42 p1 p2 p3 p3 - MovePlayer
  949. p1 = Variable offset
  950. p2 = Amount of frames
  951. p3 = Movement per frame (signed)
  952. Routine: 0x08037C44
  953.  
  954. if ([0x02011C62] != 0)
  955. {
  956. if (([0x02011C7C] & 0x100) == 0)
  957. {
  958. [0x02011C7C] |= 0x100;
  959. if (p1 != 0xFF)
  960. var0 = [0x02011C50];
  961. else
  962. var0 = p2;
  963. [0x02011C60] = var;
  964. }
  965. var1 = (p3 << 8) * [0x08037CB4 + [0x02009F50] * 2];
  966. var2 = (p3 << 8) * [0x08037CB4 + [0x02009F50] * 2 + 1];
  967. call 0x0809E1FA, r0=var1, r1,=var2, r2=0;
  968.  
  969. var3 = [0x02011C60];
  970. var3--;
  971. [0x02011C60] = var3;
  972. if (var3 <= 0)
  973. {
  974. [0x02011C7C] clear= 0x100;
  975. next;
  976. }
  977. }
  978. halt;
  979.  
  980.  
  981.  
  982. 43 p1 p2 - Cmd43
  983. p1 = Variable offset
  984. p2 = ?
  985. Routine: 0x08037CC4
  986.  
  987. if (p1 != 0xFF)
  988. var = [0x02011C50 + p1];
  989. else
  990. var = p2;
  991. if ([0x0200ACF5] != 0)
  992. [0x0200ACFA] = var;
  993. next;
  994.  
  995.  
  996.  
  997. 44 p1 p1 p1 p1 - Cmd44
  998. p1 = ?
  999. Routine : 0x08037CE4
  1000.  
  1001. [0x0200AD00] = p1;
  1002. next;
  1003.  
  1004.  
  1005.  
  1006. 45 00 p1 p2 p3 - Cmd4500
  1007. p1 = ?
  1008. p2 = ?
  1009. p3 = ?
  1010. Routine: 0x08037D0A
  1011.  
  1012. [0x02000AA0] = p1;
  1013. [0x02000AA1] = p2;
  1014. [0x02000AA2] = p3;
  1015. next;
  1016.  
  1017.  
  1018.  
  1019. 45 01 - Cmd4501
  1020. Routine: 0x08037D2C
  1021.  
  1022. [0x02000AA0] = 0x40;
  1023. [0x02000AA1] = 0x40;
  1024. [0x02000AA2] = 0;
  1025. next;
  1026.  
  1027.  
  1028.  
  1029. 45 02 p1 p2 p3 p4 - Cmd4502
  1030. p1 = ?
  1031. p2 = ? (signed)
  1032. p3 = ? (signed)
  1033. p4 = ? (signed)
  1034. Routine: 0x08037D36
  1035.  
  1036. if (([0x02011C7C] & 0x200) == 0)
  1037. {
  1038. [0x02011C7C] |= 0x200;
  1039. [0x02011C61] = p1;
  1040. }
  1041. [0x02000AA0] += p2;
  1042. [0x02000AA1] += p3;
  1043. [0x02000AA2] += p4;
  1044.  
  1045. var = [0x02011C61];
  1046. var--;
  1047. [0x02011C61] = var;
  1048. if (var <= 0)
  1049. {
  1050. [0x02011C7C] clear= 0x200;
  1051. next;
  1052. }
  1053. else
  1054. halt;
  1055.  
  1056.  
  1057.  
  1058. 46 00 p1 p1 - Cmd4600
  1059. p1 = ?
  1060. Routine: 0x08037D90
  1061.  
  1062. [0x02000AA6] = p1;
  1063. next;
  1064.  
  1065.  
  1066.  
  1067. 46 01
  1068. Routine: 0x08037DA2
  1069.  
  1070. [0x02000AA6] = 0;
  1071. next;
  1072.  
  1073.  
  1074.  
  1075. 47 p1 p2 p3 - SetPlayerAnimation
  1076. p1 = Add to current
  1077. p2 = Variable offset
  1078. p3 = Animation
  1079. Routine: 0x08037DAC
  1080.  
  1081. if (p2 != 0xFF)
  1082. var = [0x02011C50 + p2];
  1083. else
  1084. var = p3;
  1085. if (p1 == 1)
  1086. var += [0x02009F50];
  1087. [0x0200ACE2] = var;
  1088. SetFlag(0x1719);
  1089. next;
  1090.  
  1091.  
  1092.  
  1093. 48 p1 p2 - Cmd48
  1094. p1 = ?
  1095. p2 = ?
  1096. Routine: 0x08037DE0
  1097.  
  1098. [0x0200ACE8] = [0x020057B0 + p1 * 0xD8 + 0x24];
  1099. [0x0200ACEC] = [0x020057B0 + p1 * 0xD8 + 0x28];
  1100. [0x0200ACF0] = [0x020057B0 + p1 * 0xD8 + 0x2C];
  1101. [0x0200ACE2] = [0x020057B0 + p1 * 0xD8 + 0x14];
  1102. SetFlag(0x1719);
  1103. [0x02009F50] = p2;
  1104. next;
  1105.  
  1106.  
  1107.  
  1108. 49 p1 p2 p3 p3 p4 p4 p5 p5 p6 p6 p6 p6 - Cmd490N
  1109. p1 = ? (= 0x0N)
  1110. p2 = ?
  1111. p3 = ?
  1112. p4 = ?
  1113. p5 = ?
  1114. p6 = ?
  1115. Routine: 0x08037E4C
  1116.  
  1117. [0x02011C50 + ((p1 & 0xF) << 2) + 0x44] = call 0x080047E0, r0=p2, r1=p3<<0x10, r2=p4<<0x10, r3=p5<<0x10, r4=p6;
  1118. next;
  1119.  
  1120.  
  1121.  
  1122. 49 p1 p2 p3 p3 p4 p4 p5 p5 p6 p6 p6 p6 - Cmd491N
  1123. p1 = ? (= 0x1N)
  1124. p2 = ?
  1125. p3 = ?
  1126. p4 = ?
  1127. p5 = ?
  1128. p6 = ?
  1129. Routine: 0x08037E96
  1130.  
  1131. [0x02011C50 + ((p1 & 0xF) << 2) + 0x44] = call 0x080047E0, r0=p2, r1=(p3<<0x10)+[0x02001B9C], r2=(p4<<0x10)+[0x02001BA0], r3=(p5<<0x10)+[0x02001BA4], r4=p6;
  1132. next;
  1133.  
  1134.  
  1135.  
  1136. 49 p1 p2 p3 p4 p4 p5 p5 p6 p6 p7 p7 p7 p7 - Cmd492N
  1137. p1 = ? (=0x2N)
  1138. p2 = ?
  1139. p3 = ?
  1140. p4 = ?
  1141. p5 = ?
  1142. p6 = ?
  1143. p7 = ?
  1144. Routine: 0x08037EFA
  1145.  
  1146. [0x02011C50 + ((p1 & 0xF) << 2) + 0x44] = call 0x080047E0, r0=p3, r1=(p4<<0x10)+[0x020057B0+p2*0xD8+0x24], r2=(p5<<0x10)+[0x020057B0+p2*0xD8+0x28], r3=(p6<<0x10)+[0x020057B0+p2*0xD8+0x2C], r4=p7;
  1147. next;
  1148.  
  1149.  
  1150.  
  1151. 49 p1 - Cmd493N
  1152. p1 = ? (=0x3N)
  1153. Routine: 0x08037F6E
  1154.  
  1155. if ([0x02011C94 + ((p1 & 0xF) << 2)] != 0)
  1156. {
  1157. [0x02011C94 + ((p1 & 0xF) << 2)] = 0;
  1158. [0x02011E94 + (([0x02011C50 + ((p1 & 0xF) << 2) + 0x3] >> 5) << 2)] clear= 0x80000000 rotateright [0x02011C94 + ((p1 & 0xF) << 2) + 0x3];
  1159. [0x02011C94 + ((p1 & 0xF) << 2)] = 0;
  1160. call 0x08002D52, r5=[0x02011C94+((p1&0xF)<<2)];
  1161. }
  1162. next;
  1163.  
  1164.  
  1165.  
  1166. 49 p1 - Cmd494N
  1167. p1 = ? (=0x4N)
  1168. Routine: 0x08037F90
  1169.  
  1170. for (n = 0x44; n <= 0x6C; n += 4)
  1171. if ([0x02011C50 + n] != 0)
  1172. {
  1173. [0x02011C50 + n] == 0;
  1174. [0x02011E50 + n + (([0x02011C50 + ((p1 & 0xF) << 2) + 0x3] >> 5) << 2)] clear= 0x80000000 rotateright [0x02011C50 + n + ((p1 & 0xF) << 2) + 0x3];
  1175. [0x02011C50 + n + ((p1 & 0xF) << 2)] = 0;
  1176. call 0x08002D52, r5=[0x02011C50+n+((p1&0xF)<<2)];
  1177. }
  1178. next;
  1179.  
  1180.  
  1181.  
  1182. 4A 00 p1 p1 p1 p1 - Cmd4A00
  1183. p1 = ?
  1184. Routine: 0x08037FD4
  1185.  
  1186. call 0x08003570, r0=p1;
  1187. next;
  1188.  
  1189.  
  1190.  
  1191. 4A 01 p1 - Cmd4A01
  1192. p1 = ?
  1193. Routine: 0x08037FE6
  1194.  
  1195. call 0x080035A2, r0=p1;
  1196. next;
  1197.  
  1198.  
  1199.  
  1200. 4A 02 p1 p1 p1 p1 - Cmd4A02
  1201. p1 = ?
  1202. Routine: 0x08037FF8
  1203.  
  1204. call 0x08030A60, r0=p1;
  1205. next;
  1206.  
  1207.  
  1208.  
  1209. 4A 03 - Cmd4A03
  1210. Routine: 0x0803800A
  1211.  
  1212. call 0x08035134;
  1213. next;
  1214.  
  1215.  
  1216.  
  1217. 4A 04 - Cmd4A04
  1218. Routine: 0x08038014
  1219.  
  1220. call 0x0803516C;
  1221. next;
  1222.  
  1223.  
  1224.  
  1225. 4A 05 - Cmd4A05
  1226. Routine: 0x0803801E
  1227.  
  1228. call 0x080351B4;
  1229. next;
  1230.  
  1231.  
  1232.  
  1233. 4B p1 p1 p1 p1 - Call
  1234. p1 = ASM pointer
  1235. Routine: 0x08038028
  1236.  
  1237. if (call p1)
  1238. next;
  1239. else
  1240. halt;
  1241.  
  1242.  
  1243.  
  1244. 4C p1 - Cmd4C4N
  1245. p1 = n/a (=& 0x40)
  1246. Routine: 0x08038098
  1247.  
  1248. call 0x08005F00, r0=[0x02011BC4], r1=[0x02011BC1]-1, r2=[0x02011BC2];
  1249. next;
  1250.  
  1251.  
  1252.  
  1253. 4C p1 p2 p2 p2 p2 - Cmd4C2N
  1254. p1 = n/a (=& 0x20)
  1255. p2 = ?
  1256. Routine: 0x080380A6
  1257.  
  1258. [0x02011C84] = p2;
  1259. next;
  1260.  
  1261.  
  1262.  
  1263. 4C p1 p2 p3 p3 p3 p3 - Cmd4C
  1264. p1 = n/a (!=& 0x60)
  1265. p2 = ?
  1266. p3 = ?
  1267. Routine: 0x08038056
  1268.  
  1269. if ((p1 & 0x80) != 0)
  1270. var = [0x02011C84];
  1271. else
  1272. var = p3;
  1273. if ((p1 & 1) == 0)
  1274. {
  1275. call 0x08005F00, r0=var, r1=0, r2=p2;
  1276. next;
  1277. }
  1278. else
  1279. {
  1280. call 0x08005F14, r0=var, r1=0, r2=p2;
  1281. next;
  1282. }
  1283.  
  1284.  
  1285.  
  1286. 4D p1 p1 - PlayNewSound
  1287. p1 = Sound number
  1288. Routine: 0x080380B4
  1289.  
  1290. PlayNewSound(p1);
  1291. next;
  1292.  
  1293.  
  1294.  
  1295. 4E p1 p1 - PlaySound (?)
  1296. p1 = Sound number (signed)
  1297. Routine: 0x080380C8
  1298.  
  1299. if (p1 < 0)
  1300. {
  1301. call 0x08036E44;
  1302. call 0x08036E78;
  1303. next;
  1304. }
  1305. else
  1306. {
  1307. PlaySound(p1);
  1308. next;
  1309. }
  1310.  
  1311.  
  1312.  
  1313. 4F p1 p1 p2 p3 - SoundCmd4F
  1314. p1 = Sound number
  1315. p2 = ?
  1316. p3 = ?
  1317. Routine: 0x080380EA
  1318.  
  1319. call 0x080006A2, r0=p1, r1=p2, r2=p3;
  1320. next;
  1321.  
  1322.  
  1323.  
  1324. 50 p1 p2 - SoundCmd50
  1325. p1 = ?
  1326. p2 = ?
  1327. Routine: 0x0803810E
  1328.  
  1329. call 0x0800068A, r0=p2, r1=p1;
  1330. [0x02001B8F] = 0x63;
  1331. next;
  1332.  
  1333.  
  1334.  
  1335. 51 - StopSound
  1336. Routine: 0x08038132
  1337.  
  1338. StopSound;
  1339. next;
  1340.  
  1341.  
  1342.  
  1343. 52 p1 p2 p3 - Cmd52
  1344. p1 = ?
  1345. p2 = ?
  1346. p3 = ?
  1347. Routine: 0x0803813E
  1348.  
  1349. if (p1 == 1)
  1350. call 0x0803CE08, r0=p2, r1=p3;
  1351. else
  1352. call 0x0803CD98, r0=p2, r1=p3;
  1353. next;
  1354.  
  1355.  
  1356.  
  1357. 53 p1 p2 - Cmd53
  1358. p1 = Variable offset
  1359. p2 = ?
  1360. Routine: 0x08035F98
  1361.  
  1362. if (p1 != 0xFF)
  1363. var = [0x02011C50 + p1];
  1364. else
  1365. var = p2;
  1366. call 0x08033FC0, r0=var;
  1367. next;
  1368.  
  1369.  
  1370.  
  1371. 54 00 p1 p1 p1 p1 - MoveCamera
  1372. p1 = Camera movement data pointer
  1373. Routine: 0x08038176
  1374.  
  1375. [0x02011C84] = p1;
  1376. call 0x08036F98, r0=p1;
  1377. [0x02011C63] = 1;
  1378. next;
  1379.  
  1380.  
  1381.  
  1382. 54 p1 - ResetCamera
  1383. p1 = n/a (!= 0)
  1384. Routine: 0x0803818E
  1385.  
  1386. [0x02011C84] = 0;
  1387. call 0x08036FAA;
  1388. [0x02011C63] = 0;
  1389. next;
  1390.  
  1391.  
  1392.  
  1393. 55 p1 p1 - StartFreeBattle;
  1394. p1 = Freefight number
  1395. Routine: 0x080381A0
  1396.  
  1397. if ([0x02001B84] < 0x80)
  1398. {
  1399. SetBeastTimeToMax;
  1400. call 0x08015C32;
  1401. }
  1402. call 0x08005BC8, r0=GetFreeFightOffset(p1), r1=1;
  1403. call 0x0803522E, r0=GetFreeFightOffset(p1);
  1404. call 0x08006270, r0=0x2C, r1=0x10;
  1405. next;
  1406.  
  1407.  
  1408.  
  1409. 56 - StartRandomBattle
  1410. Routine: 0x080381E0
  1411.  
  1412. call 0x08005BC8, r0=(call 0x080AA5E4), r1=1;
  1413. call 0x08006270, r0=0x2C, r1=0x10;
  1414. next;
  1415.  
  1416.  
  1417.  
  1418. 58 p1 p1 p1 p1 p2 p2 p2 p2 p3 p3 p3 p3 - Cmd58
  1419. Routine: 0x080381FA
  1420.  
  1421. call 0x08002468, r0=p1, r1=p2, r2=p3;
  1422. next;
  1423.  
  1424.  
  1425.  
  1426. 59 - Cmd59
  1427. Routine: 0x0803821E
  1428.  
  1429. call 0x08002484;
  1430. next;
  1431.  
  1432.  
  1433.  
  1434. 5A p1 p2 p3 - Cmd5A
  1435. p1 = ?
  1436. p2 = ?
  1437. p3 = unused
  1438. Routine: 0x0803822A
  1439.  
  1440. call 0x080302A8, r0=p1, r1=p2;
  1441. next;
  1442.  
  1443.  
  1444.  
  1445. 5B p1 - Nop5B
  1446. p1 = unused
  1447. Routine: 0x08038246
  1448.  
  1449. next;
  1450.  
  1451.  
  1452.  
  1453. 5C - Nop5C
  1454. Routine: 0x08038256
  1455.  
  1456. next;
  1457.  
  1458.  
  1459.  
  1460. 5D - Nop5D
  1461. Routine: 0x0803825E
  1462.  
  1463. next;
  1464.  
  1465.  
  1466.  
  1467. 5E - Nop5E
  1468. Routine: 0x08038266
  1469.  
  1470. next;
  1471.  
  1472.  
  1473.  
  1474. 5F - Cmd5F
  1475. Routine: 0x0803826E
  1476.  
  1477. call 0x08001974;
  1478. next;
  1479.  
  1480.  
  1481.  
  1482. 60 p1 - Cmd60
  1483. p1 = ?
  1484. Routine: 0x0803827A
  1485.  
  1486. call 0x08003914, r0=p1;
  1487. next;
  1488.  
  1489.  
  1490.  
  1491. 61 - Cmd61
  1492. Routine: 0x0803828E
  1493.  
  1494. call 0x08003940;
  1495. next;
  1496.  
  1497.  
  1498.  
  1499. 62 p1 - Cmd62
  1500. p1 = ?
  1501. Routine: 0x0803829A
  1502.  
  1503. call 0x08003A64, r0=p1;
  1504. next;
  1505.  
  1506.  
  1507.  
  1508. 63 - Cmd63
  1509. Routine: 0x080382AE
  1510.  
  1511. call 0x08003A90;
  1512. next;
  1513.  
  1514.  
  1515.  
  1516. 67 p1 p1 p2 - Cmd67
  1517. p1 = ?
  1518. p2 = ?
  1519. Routine: 0x080382BA
  1520.  
  1521. for (n = 0; n < p2; n++)
  1522. call 0x0813E5DC, r0=p1+n;
  1523. next;
  1524.  
  1525.  
  1526.  
  1527. 68 p1 p1 - Cmd68
  1528. p1 = ?
  1529. Routine: 0x080382DE
  1530.  
  1531. call 0x08006E70, r0=p1;
  1532. next;
  1533.  
  1534.  
  1535.  
  1536. 69 - Cmd69
  1537. Routine: 0x080382F2
  1538.  
  1539. call 0x080340F6;
  1540. next;
  1541.  
  1542.  
  1543.  
  1544. 6A p1 - Cmd6A
  1545. p1 = ?
  1546. Routine: 0x080382FE
  1547.  
  1548. [0x02001C0B] = [0x02001B81];
  1549. [0x02001B81] = p1;
  1550. call 0x08120DF0;
  1551. call 0x0813C3AC;
  1552. call 0x0803CEB8;
  1553. next;
  1554.  
  1555.  
  1556.  
  1557. 6B p1 p1 p2 - Cmd6B
  1558. p1 = ?
  1559. p2 = ?
  1560. Routine: 0x08038322
  1561.  
  1562. for (n = 0; n < p2; n++)
  1563. call 0x0802F238, r0=p1+n;
  1564. next;
  1565.  
  1566.  
  1567.  
  1568. 6C p1 p1 p1 p1 p2 p2 p2 p2 - Cmd6C
  1569. p1 = ?
  1570. p2 = ?
  1571. Routine: 0x08038346
  1572.  
  1573. call 0x080356F8, r0=p1, r1=p2;
  1574. next;
  1575.  
  1576.  
  1577.  
  1578. 6F p1 p2 p2 - Cmd6F
  1579. p1 = ?
  1580. p2 = ?
  1581. Routine: 0x08038362
  1582.  
  1583. if (p1 != 1)
  1584. call 0x0803CFF8, r0=p2;
  1585. else
  1586. call 0x0803D040, r0=p2;
  1587. next;
  1588.  
  1589.  
  1590.  
  1591. 70 p1 p2 p2 - Cmd70
  1592. p1 = ?
  1593. p2 = ?
  1594. Routine: 0x08038386
  1595.  
  1596. if (p1 != 1)
  1597. call 0x0803D080, r0=p2;
  1598. else
  1599. call 0x0803D0C8, r0=p2;
  1600. next;
  1601.  
  1602.  
  1603.  
  1604. 73 p1 p2 p2 p3 p4 - Cmd73
  1605. p1 = ?
  1606. p2 = ?
  1607. p3 = ?
  1608. p4 = ?
  1609. Routine: 0x080383AA
  1610.  
  1611. if (p1 != 1)
  1612. call 0x08021AEE, r0=p2, r1=p3, r2=p4;
  1613. else
  1614. call 0x08021B92, r0=p2, r1=p3, r2=p4;
  1615. next;
  1616.  
  1617.  
  1618.  
  1619. 74 p1 p2 p2 p3 p4 - Cmd74
  1620. p1 = ?
  1621. p2 = ?
  1622. p3 = ?
  1623. p4 = ?
  1624. Routine: 0x080383DE
  1625.  
  1626. if (p1 != 1)
  1627. call 0x0803D108, r0=p2, r1=p3, r2=p4;
  1628. else
  1629. call 0x0803D128, r0=p2, r1=p3, r2=p4;
  1630. next;
  1631.  
  1632.  
  1633.  
  1634. 75 00 p1 p1 p1 p1 - Cmd7500
  1635. p1 = ?
  1636. Routine: 0x08038420
  1637.  
  1638. [0x02011E70] = p1;
  1639. next;
  1640.  
  1641.  
  1642.  
  1643. 75 01 - Cmd7501
  1644. Routine: 0x0803842E
  1645.  
  1646. [0x02011E70] = 0;
  1647. next;
  1648.  
  1649.  
  1650.  
  1651. 76 p1 p2 - Cmd76
  1652. p1 = ?
  1653. p2 = ?
  1654. Routine: 0x0803843C
  1655.  
  1656. if (p1 == 0)
  1657. {
  1658. [0x020010F0 + p2] = [0x02001B86];
  1659. [0x02001B86] = 0xFF;
  1660. }
  1661. else
  1662. [0x02001B86] = [0x020010F0 + p2];
  1663. next;
  1664.  
  1665.  
  1666.  
  1667. 77 p1 - Cmd77
  1668. p1 = ?
  1669. Routine: 0x08038466
  1670.  
  1671. ClearFlag(0x682);
  1672. ClearFlag(0x85F);
  1673. ClearFlag(0xABA);
  1674. ClearFlag(0xCDC);
  1675. ClearFlag(0xCE0);
  1676. SetFlag(0x120);
  1677.  
  1678. if (p1 == 0)
  1679. {
  1680. if (FlagIsOn(0x67B))
  1681. SetFlag(0x682);
  1682. if (FlagIsOn(0x856))
  1683. SetFlag(0x85F);
  1684. if (FlagIsOn(0xA44))
  1685. SetFlag(0xABA);
  1686. if (FlagIsOn(0xC6D))
  1687. SetFlag(0xCDC);
  1688. if (FlagIsOn(0xCA7))
  1689. SetFlag(0xCE0);
  1690. ClearFlag(0x120);
  1691. }
  1692. next;
  1693.  
  1694.  
  1695.  
  1696. 78 p1 p1 p2 - Cmd78
  1697. p1 = ?
  1698. p2 = ?
  1699. Routine: 0x08038484
  1700.  
  1701. for (n = 0; n < p2; n++)
  1702. call 0x0813F9A0, r0=p1+n;
  1703. next;
  1704.  
  1705.  
  1706.  
  1707. 79 p1 p2 p3 p4 p4 p4 p4 - IfJumpTo79
  1708. p1 = unused
  1709. p2 = unused
  1710. p3 = unused
  1711. p4 = Cutscene pointer
  1712.  
  1713. if ((call 0x0803CE28, r0=0x2C))
  1714. if (([0x0200A270] & 1) != 0)
  1715. {
  1716. JumpTo p4;
  1717. next;
  1718. }
  1719. next;
  1720.  
  1721.  
  1722.  
  1723. 7A - SetBeastTimeToMax
  1724. Routine: 0x080384D0
  1725.  
  1726. SetBeastTimeToMax;
  1727. next;
  1728.  
  1729.  
  1730.  
  1731. 7B p1 p2 p3 p4 p4 p4 p4 - IfJumpTo7B
  1732. p1 = unused
  1733. p2 = unused
  1734. p3 = unused
  1735. p4 = Cutscene pointer
  1736. Routine: 0x080384DC
  1737.  
  1738. if ([0x0200578E] == 4)
  1739. {
  1740. JumpTo p4;
  1741. next;
  1742. }
  1743. else
  1744. next;
  1745.  
  1746.  
  1747.  
  1748. 7C p1 p2 p3 p4 p4 p4 p4 p5 p5 p5 p5 - LanMegaManJumpTo
  1749. p1 = unused
  1750. p2 = unused
  1751. p3 = unused
  1752. p4 = Cutscene pointer (if controlling Lan)
  1753. p5 = Cutscene pointer (if controlling MegaMan)
  1754. Routine: 0x080384F8
  1755.  
  1756. if ([0x02001B84) < 0x80)
  1757. {
  1758. JumpTo p4;
  1759. next;
  1760. }
  1761. else
  1762. {
  1763. JumpTo p5;
  1764. next;
  1765. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement