Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- From https://forums.therockmanexezone.com/bn6-cutscene-command-docs-t5292.html
- Breakpoint: 0x0803853C
- 00 - Cmd00
- Routine: 0x080376C4
- if !(FlagIsOn(0x1741))
- call 0x0813C3AC;
- call 0x08036EFE;
- halt;
- 01 p1 - Special01
- p1 = Call offset
- Routine: 0x08037B08
- call [0x08037B24 + p1];
- next;
- 02 p1 p2 - Pause
- p1 = Variable offset
- p2 = Pause length
- Routine: 0x080376F4
- if !([0x02011C7C] & (1 << [0x02011C62]) != 0)
- {
- [0x02011C7C] |= 1 << [0x02011C62];
- if (p1 == 0xFF)
- var = p2;
- else
- var = [0x02011C50+p1];
- [0x02011C5C+[0x02011C62]] = var;
- }
- var = [0x02011C5C+[0x02011C62]];
- var--;
- [0x02011C5C+[0x02011C62]] = var;
- if (var >= 0)
- {
- [0x02011C7C] clear= 1 << [0x02011C62];
- next;
- }
- else
- halt;
- 03 - Halt03
- Routine: 0x080378BE
- halt;
- 04 p1 - Wait04
- Routine: 0x08037790
- r0 = p1 & 0x80
- if ((p1 & 0x80 & [0x02009F38]) == 0 || (p1 & 0x38 & [0x02009F38]) != 0)
- next;
- else
- halt
- 05 p1 - Wait05
- p1 = Value to check
- Routine: 0x080377B6
- if ((call 0x0809E434) != p1)
- next;
- else
- halt;
- 06 - Nop06
- Routine: 0x080377D0
- next;
- 07 - Wait07
- Routine: 0x080377E4
- if ([0x0200A443] != 1)
- next;
- else
- halt;
- 08 - CameraMoveWait
- Routine: 0x080377F6
- if ([0x02011C63] == 0)
- next;
- else
- halt;
- 09 p1 p2 - VarWait
- p1 = Variable number
- p2 = ?
- Routine: 0x08037808
- if ([0x02011C50 + p1] == p2)
- next;
- else
- halt;
- 0A p1 - CallWait
- p1 = Variable number
- Routine: 0x08037826
- if ([[0x02011C50 + p1]] == 0x11)
- next;
- else
- halt;
- 0B - Halt0B
- Routine: 0x080378BE
- halt;
- 0C - Wait0C
- Routine: 0x08037852
- if ([0x0200DF25] & 1 != 0)
- next;
- else
- halt;
- 0D p1 p1 - FlagWait0D
- p1 = Flag number
- Routine: 0x08037866
- if (FlagIsOn(p1))
- next;
- else
- halt;
- 0E p1 p1 - FlagWait0E (exact duplicate of FlagWait0D)
- p1 = Flag number
- Routine: 0x08037880
- if (FlagIsOn(p1))
- next;
- else
- halt;
- 0F - Wait0F
- Routine: 0x0803789A
- if ([0x02000780] == 0)
- next;
- else
- halt;
- 10 - Wait10
- Routine: 0x080378AC
- if ([0x02001010] == 0)
- next;
- else
- halt;
- 11 - Return
- Routine: 0x080378BE
- halt;
- 12 p1 p2 p2 p2 p2 - Cmd12
- p1 = Variable offset and flag
- p2 = Value to write
- Routine: 0x080378C2
- [0x02011C50 + p1] = p2;
- [02011C7C] clear= 1 << ((p1 - 0x1C) >> 2);
- [02011C7C] clear= 1 << (((p1 - 0x1C) >> 2) + 4);
- next;
- 13 p1 - WriteTo13
- p1 = Variable offset
- Routine: 0x080378EE
- [02011C50 + p1] = 0x08037690;
- next;
- 14 p1 p1 p1 p1 = WriteTo14
- p1 = Value to write
- Routine: 0x08037904
- [0x02011C88] = p1;
- next;
- 15 p1 p1 p1 p1 = JumpTo
- p1 = Cutscene pointer
- Routine: 0x08035924
- JumpTo p1;
- next;
- 16 p1 p2 p3 p3 p3 p3 = MainProgressJumpTo
- p1 = Main progress lower bound
- p2 = Main progress upper bound
- p3 = Cutscene pointer
- Routine: 0x08035932
- MainProgress = [0x02001B86]
- if (MainProgress >= p1 && MainProgress <= p2)
- {
- JumpTo p3;
- next;
- }
- else
- next;
- 17 p1 p2 p2 p3 p3 p3 p3 - FlagOnJumpTo
- p1 = Variable offset
- p2 = Flag number
- p3 = Cutscene pointer
- Routine: 0x08035962
- if (p1 != 0xFF)
- var = [0x02011C50 + p1];
- else
- var = p2;
- if (FlagIsOn(var))
- {
- JumpTo p3;
- next;
- }
- else
- next;
- 18 p1 p2 p2 p3 p3 p3 p3 - FlagRangeOnJumpTo
- p1 = Flag range
- p2 = Flag number
- p3 = Cutscene pointer
- Routine: 0x08035992
- var = 0;
- for (n = 0; n < var; n++)
- if (FlagIsOn(p2 + n))
- var++;
- if (var == p1) // if all flags p2 through p2+p1 were on
- {
- JumpTo p3;
- next;
- }
- else
- next;
- 19 p1 p2 p2 p3 p3 p3 p3 - FlagOffJumpTo
- p1 = Variable offset
- p2 = Flag number
- p3 = Cutscene pointer
- Routine: 0x080359BE
- if (p1 != 0xFF)
- var = [0x02011C50 + p1];
- else
- var = p2;
- if !(FlagIsOn(var))
- {
- JumpTo p3;
- next;
- }
- else
- next;
- 1A p1 p2 p2 p3 p3 p3 p3 - FlagRangeOffJumpTo
- p1 = Flag range
- p2 = Flag number
- p3 = Cutscene pointer
- Routine: 0x080359EE
- var = 0;
- for (n = 0; n < var; n++)
- if (FlagIsOn(p2 + n))
- var++;
- if (var == p1) // if all flags p2 through p2+p1 were on
- {
- JumpTo p3;
- next;
- }
- else
- next;
- 1B p1 p2 p2 p2 p2 p3 p3 p3 p3 p3 p4 p4 p4 p4 - RAMCheckJumpTo
- p1 = p4 amount of bits (0=8, 1=16, 2=32)
- p2 = ?
- p3 = Cutscene pointer
- p4 = ?
- Routine: 0x08035A1A
- r0 = p2
- r1 = p3
- switch (p1)
- {
- default:
- if ([p2] == p4 & 0xFF)
- {
- JumpTo p3;
- next;
- }
- else
- next;
- case 1:
- if ([p2] == p4 & 0xFFFF)
- {
- JumpTo p3;
- next;
- }
- else
- next;
- case 2:
- if ([p2] == p4)
- {
- JumpTo p3;
- next;
- }
- else
- next;
- }
- 1C p1 p2 p3 p3 p3 p3 - VarCheckJumpTo
- p1 = Variable offset
- p2 = Value to check for
- p3 = Cutscene pointer
- Routine: 0x08037914
- if ([0x02011C50 + p1] == p2)
- {
- JumpTo p3;
- next;
- }
- else
- next;
- 1D p1 p2 p3 p4 p4 p4 p4 - NaviCustValueJumpTo
- p1 = NaviCust value to get count of
- p2 = NaviCust value lower bound
- p3 = NaviCust value upper bound
- p4 = Cutscene pointer
- Routine: 0x08035A74
- if (GetNaviCustValue(p1) >= p2 && GetNaviCustValue(p1) <= p3)
- {
- JumpTo p4;
- next;
- }
- else
- next;
- 1E p1 p1 p2 p3 p4 p5 p5 p5 p5 - ChipCountValueJumpTo
- p1 = Chip number
- p2 = Chip code
- p3 = Chip count lower bound
- p4 = Chip count upper bound
- p5 = Cutscene pointer
- Routine: 0x08035AAA
- if (p2 == 0xFF)
- ChipCount = GetTotalChipCount(p1);
- else
- ChipCount = GetChipCountOfCode(p1,p2);
- if (ChipCount >= p3 && ChipCount <= p4)
- {
- JumpTo p5;
- next;
- }
- else
- next;
- 1F p1 p2 p2 p2 p2 - IfJumpTo1F
- p1 = ?
- p2 = Cutscene pointer
- Routine: 0x0803793A
- if ([0x0200A009] == p1)
- {
- JumpTo p2;
- next;
- }
- else
- next;
- 20 p1 p2 p2 p2 p2 - IfJumpTo20
- p1 = ?
- p2 = Cutscene pointer
- Routine: 0x0803795C
- if ([0x0200A009] != p1)
- {
- JumpTo p2;
- next;
- }
- else
- next;
- 21 p1 p2 p3 p3 p3 p3 - IfJumpTo21
- p1 = ?
- p2 = ? (signed)
- p3 = Cutscene pointer
- Routine: 0x08035AFA
- result = call 0x08031A7A, [r0]=[0x02009F5C], [r0+4]=[0x02009F60], [r0+8]=[0x02009F64]+(p2<<0x10);
- var = result[0];
- if (result[0] == 0)
- var = result[1]
- if (var == p1)
- {
- JumpTo p3;
- next;
- }
- else
- next;
- 22 p1 p2 p3 p3 p3 p3 - IfJumpTo22
- p1 = ?
- p2 = ? (signed)
- p3 = Cutscene pointer
- Routine: 0x08035B44
- result = call 0x08031A7A, [r0]=[0x02009F5C], [r0+4]=[0x02009F60], [r0+8]=[0x02009F64]+(p2<<0x10);
- var = result[0];
- if (result[0] == 0)
- var = result[1]
- if (var != p1)
- {
- JumpTo p3;
- next;
- }
- else
- next;
- 23 p1 p2 p2 p2 p2 - NaviJumpTo
- p1 = Navi value
- p2 = Cutscene pointer
- Routine: 0x0803797E
- if (GetCurrentNavi() == p1)
- {
- JumpTo p2;
- next;
- }
- else
- next;
- 24 p1 p2 p2 p2 p2 - NotNaviJumpTo
- p1 = Navi value
- p2 = Cutscene pointer
- Routine: 0x0803797E
- if (GetCurrentNavi() != p1)
- {
- JumpTo p2;
- next;
- }
- else
- next;
- 25 p1 p2 p2 p2 p2 - TitleScreenIconJumpTo
- p1 = Title Screen icon count
- p2 = Cutscene pointer
- Routine: 0x080379C2
- if (GetTitleScreenIconCount() == p1)
- {
- JumpTo p2;
- next;
- }
- else
- next;
- 26 p1 p2 p2 p2 p2 - NotTitleScreenIconJumpTo
- p1 = Title Screen icon count
- p2 = Cutscene pointer
- Routine: 0x080379C2
- if (GetTitleScreenIconCount() != p1)
- {
- JumpTo p2;
- next;
- }
- else
- next;
- 27 p1 p2 p3 - FadeScreen
- p1 = Variable offset
- p2 = ?
- p3 = ?
- Routine: 0x08035D6A
- if (p1 != 0xFF)
- {
- var0 = [0x02011C50 + p1];
- var1 = [0x02011C50 + p1 + 1];
- }
- else
- {
- var0 = p2;
- var1 = p3;
- }
- FadeScreen(var0, var1);
- next;
- 28 p1 p2 - Cmd28
- p1 = ?
- p2 = ?
- Routine: 0x08035D98
- [02001B96] = p1;
- [02001B97] = p2;
- next;
- 29 p1 p2 p2 - SetFlag
- p1 = Variable offset
- p2 = Flag number
- Routine: 0x08035DB4
- if (p1 != 0xFF)
- var = [0x02011C50 + p1];
- else
- var = p2;
- SetFlag(var);
- next;
- 2A p1 p2 p2 - ClearFlag
- p1 = Variable offset
- p2 = Flag number
- Routine: 0x08035DD6
- if (p1 != 0xFF)
- var = [0x02011C50 + p1];
- else
- var = p2;
- ClearFlag(var);
- next;
- 2B p1 p2 p2 - SetFlagRange
- p1 = Flag range
- p2 = Flag number
- Routine: 0x08035DF8
- for (n = 0; n < p1; n++)
- SetFlag(p1 + n);
- next;
- 2C p1 p2 p2 - ClearFlagRange
- p1 = Flag range
- p2 = Flag number
- Routine: 0x08035E16
- for (n = 0; n < p1; n++)
- ClearFlag(p1 + n);
- next;
- 2D p1 p1 p1 p1 - SetCustomFlagRange
- p1 = Flag number array pointer (terminated by a flag number less than 0)
- Routine: 0x08035E34
- while ([p1] >= 0)
- {
- SetFlag([p1]);
- p1 += 2;
- }
- next;
- 2E p1 p1 p1 p1 - ClearCustomFlagRange
- p1 = Flag number array pointer (terminated by a flag number less than 0)
- Routine: 0x08035E54
- while ([p1] >= 0)
- {
- ClearFlag([p1]);
- p1 += 2;
- }
- next;
- 2F p1 p1 p1 p1 p2 - Write8Bit
- p1 = Address
- p2 = Value to write
- Routine: 0x08035EAA
- [p1] = p2;
- next;
- 30 p1 p1 p1 p1 p2 p2 - Write16Bit
- p1 = Address
- p2 = Value to write
- Routine: 0x08035EC2
- [p1] = p2;
- next;
- 31 p1 p1 p1 p1 p2 p2 p2 p2 - Write32Bit
- p1 = Address
- p2 = Value to write
- Routine: 0x08035EC2
- [p1] = p2;
- next;
- 32 p1 p2 - WriteProgress
- p1 = Progress data offset
- p2 = Value to write
- Routine: 0x08035EF2
- [0x02001B80 + p1] = p2;
- next;
- 33 p1 p2 - Write33
- p1 = ??? data offset
- p2 = Value to write
- Routine: 0x08035F0E
- [0x02001C04 + p1] = p2;
- next;
- 34 p1 p2 p3 - Write34
- p1 = ?
- p2 = ?
- p3 = Value to write
- Routine: 0x08037A06
- [[0x02011C50 + p1 * 4 + 0x44] + p2] = p3;
- next;
- 35 p1 p2 - SetVar
- p1 = Variable offset
- p2 = Value to write
- Routine: 0x08037A2A
- [0x02011C50 + p1] = p2;
- next;
- 36 p1 p1 p1 p1 - Cmd36
- p1 = Pointer to data?
- Routine: 0x08035F2A
- call 0x08001B1C, r0=p1;
- next;
- 37 p1 p1 p1 p1 - Cmd37
- p1 = Pointer to data?
- Routine: 0x08035F3E
- call 0x08002354, r0=p1;
- next;
- 38 - Cmd38
- Routine: 0x08035F52
- call 0x08030A30, r0=[0x02001B84], r1=[0x02001B85];
- call 0x08035194;
- next;
- 39 p1 - Cmd39
- p1 = ?
- Routine: 0x08035F6A
- if (p1 == 0xFF)
- {
- for (n = 0; n < 0x12; n++)
- call 0x08001B6C, r0=n;
- next;
- }
- else
- {
- call 0x08001B6C, r0=p1;
- next;
- }
- 3A p1 - Cmd3A
- p1 = Variable offset; not 0xFF
- Routine: 0x08037A42
- call 0x08040384, r0=[0x02011C80], r1=[0x02011C50 + p1];
- next;
- 3A FF p1 - Cmd3AFF
- p1 = ?
- Routine: 0x08037A5C
- call 0x08040384, r0=[0x02011C80], r1=p1;
- next;
- 3B - Cmd3B
- Routine: 0x08037A70
- call 0x08040818;
- next;
- 3C p1 p2 - Cmd3C
- p1 = ?
- p2 = ?
- Routine: 0x08037A7C
- if (p1 != 1)
- call 0x08045F1C, r0=p2;
- else
- call 0x08045F2C, r0=p2;
- next;
- 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
- p1 = Cutscene pointer
- p2 = Cutscene pointer
- p3 = Cutscene pointer
- p4 = Cutscene pointer
- p5 = Cutscene pointer
- p6 = Cutscene pointer
- p7 = Cutscene pointer
- p8 = Cutscene pointer
- Routine: 0x08037AA0
- switch (([0x02009F38] & 0x7) * 4)
- {
- case 0:
- JumpTo p1;
- default;
- case 1:
- JumpTo p2;
- default;
- case 2:
- JumpTo p3;
- default;
- case 3:
- JumpTo p4;
- default;
- case 4:
- JumpTo p5;
- default;
- case 5:
- JumpTo p6;
- default;
- case 6:
- JumpTo p7;
- default;
- case 7:
- JumpTo p8;
- default;
- }
- next;
- 3E p1 p1 p1 p1 - TryDecompBin
- p1 = pointer to compressed or RAW bin
- Routine: 0x08037AB6
- if (p1 & 0x80000000 != 0)
- {
- LZ77UnCompWram(p1 & 0x7FFFFFFF, 0x02034A00);
- var = 0x02034A04;
- }
- else
- var = p1;
- [0x02011C80] = p1;
- next;
- 3F p1 - Special3F
- p1 = Call offset
- Routine: 0x08037B08
- call [0x08037B24 + p1];
- next;
- 40 p1 p2 p3 - Cmd40
- p1 = Call offset
- p2 = Variable offset
- p3 = Call variable
- Routine: 0x08037B6C
- if (p2 != 0xFF)
- var = [0x02011C50];
- else
- var = p3;
- call [0x08037B9C + p1], r0=var;
- next;
- 41 p1 p2 p3 p4 p4 p5 p5 p6 p6 - Cmd41
- p1 = ?
- p2 = Variable offset
- p3 = ?
- p4 = ? (signed)
- p5 = ? (signed)
- p6 = ? (signed)
- Routine: 0x08037BB4
- if (p1 >= 8)
- if ([0x02011C62] == 0)
- halt;
- if (([0x02011C7C] & 0x100) == 0)
- {
- [0x02011C7C] |= 0x100;
- if (p2 != 0xFF)
- var0 = [0x02011C50 + p2];
- else
- var0 = p3;
- [0x02011C60] = var;
- }
- call [0x08037C34 + p1], r0=p4<<0xC, r1=p5<<0xC, r2=p6<<0xC;
- var1 = [0x02011C60];
- var1--;
- [0x02011C60] = var1;
- if (var <= 0)
- {
- [0x02011C7C] clear= 0x100;
- next;
- }
- else
- halt;
- 42 p1 p2 p3 p3 - MovePlayer
- p1 = Variable offset
- p2 = Amount of frames
- p3 = Movement per frame (signed)
- Routine: 0x08037C44
- if ([0x02011C62] != 0)
- {
- if (([0x02011C7C] & 0x100) == 0)
- {
- [0x02011C7C] |= 0x100;
- if (p1 != 0xFF)
- var0 = [0x02011C50];
- else
- var0 = p2;
- [0x02011C60] = var;
- }
- var1 = (p3 << 8) * [0x08037CB4 + [0x02009F50] * 2];
- var2 = (p3 << 8) * [0x08037CB4 + [0x02009F50] * 2 + 1];
- call 0x0809E1FA, r0=var1, r1,=var2, r2=0;
- var3 = [0x02011C60];
- var3--;
- [0x02011C60] = var3;
- if (var3 <= 0)
- {
- [0x02011C7C] clear= 0x100;
- next;
- }
- }
- halt;
- 43 p1 p2 - Cmd43
- p1 = Variable offset
- p2 = ?
- Routine: 0x08037CC4
- if (p1 != 0xFF)
- var = [0x02011C50 + p1];
- else
- var = p2;
- if ([0x0200ACF5] != 0)
- [0x0200ACFA] = var;
- next;
- 44 p1 p1 p1 p1 - Cmd44
- p1 = ?
- Routine : 0x08037CE4
- [0x0200AD00] = p1;
- next;
- 45 00 p1 p2 p3 - Cmd4500
- p1 = ?
- p2 = ?
- p3 = ?
- Routine: 0x08037D0A
- [0x02000AA0] = p1;
- [0x02000AA1] = p2;
- [0x02000AA2] = p3;
- next;
- 45 01 - Cmd4501
- Routine: 0x08037D2C
- [0x02000AA0] = 0x40;
- [0x02000AA1] = 0x40;
- [0x02000AA2] = 0;
- next;
- 45 02 p1 p2 p3 p4 - Cmd4502
- p1 = ?
- p2 = ? (signed)
- p3 = ? (signed)
- p4 = ? (signed)
- Routine: 0x08037D36
- if (([0x02011C7C] & 0x200) == 0)
- {
- [0x02011C7C] |= 0x200;
- [0x02011C61] = p1;
- }
- [0x02000AA0] += p2;
- [0x02000AA1] += p3;
- [0x02000AA2] += p4;
- var = [0x02011C61];
- var--;
- [0x02011C61] = var;
- if (var <= 0)
- {
- [0x02011C7C] clear= 0x200;
- next;
- }
- else
- halt;
- 46 00 p1 p1 - Cmd4600
- p1 = ?
- Routine: 0x08037D90
- [0x02000AA6] = p1;
- next;
- 46 01
- Routine: 0x08037DA2
- [0x02000AA6] = 0;
- next;
- 47 p1 p2 p3 - SetPlayerAnimation
- p1 = Add to current
- p2 = Variable offset
- p3 = Animation
- Routine: 0x08037DAC
- if (p2 != 0xFF)
- var = [0x02011C50 + p2];
- else
- var = p3;
- if (p1 == 1)
- var += [0x02009F50];
- [0x0200ACE2] = var;
- SetFlag(0x1719);
- next;
- 48 p1 p2 - Cmd48
- p1 = ?
- p2 = ?
- Routine: 0x08037DE0
- [0x0200ACE8] = [0x020057B0 + p1 * 0xD8 + 0x24];
- [0x0200ACEC] = [0x020057B0 + p1 * 0xD8 + 0x28];
- [0x0200ACF0] = [0x020057B0 + p1 * 0xD8 + 0x2C];
- [0x0200ACE2] = [0x020057B0 + p1 * 0xD8 + 0x14];
- SetFlag(0x1719);
- [0x02009F50] = p2;
- next;
- 49 p1 p2 p3 p3 p4 p4 p5 p5 p6 p6 p6 p6 - Cmd490N
- p1 = ? (= 0x0N)
- p2 = ?
- p3 = ?
- p4 = ?
- p5 = ?
- p6 = ?
- Routine: 0x08037E4C
- [0x02011C50 + ((p1 & 0xF) << 2) + 0x44] = call 0x080047E0, r0=p2, r1=p3<<0x10, r2=p4<<0x10, r3=p5<<0x10, r4=p6;
- next;
- 49 p1 p2 p3 p3 p4 p4 p5 p5 p6 p6 p6 p6 - Cmd491N
- p1 = ? (= 0x1N)
- p2 = ?
- p3 = ?
- p4 = ?
- p5 = ?
- p6 = ?
- Routine: 0x08037E96
- [0x02011C50 + ((p1 & 0xF) << 2) + 0x44] = call 0x080047E0, r0=p2, r1=(p3<<0x10)+[0x02001B9C], r2=(p4<<0x10)+[0x02001BA0], r3=(p5<<0x10)+[0x02001BA4], r4=p6;
- next;
- 49 p1 p2 p3 p4 p4 p5 p5 p6 p6 p7 p7 p7 p7 - Cmd492N
- p1 = ? (=0x2N)
- p2 = ?
- p3 = ?
- p4 = ?
- p5 = ?
- p6 = ?
- p7 = ?
- Routine: 0x08037EFA
- [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;
- next;
- 49 p1 - Cmd493N
- p1 = ? (=0x3N)
- Routine: 0x08037F6E
- if ([0x02011C94 + ((p1 & 0xF) << 2)] != 0)
- {
- [0x02011C94 + ((p1 & 0xF) << 2)] = 0;
- [0x02011E94 + (([0x02011C50 + ((p1 & 0xF) << 2) + 0x3] >> 5) << 2)] clear= 0x80000000 rotateright [0x02011C94 + ((p1 & 0xF) << 2) + 0x3];
- [0x02011C94 + ((p1 & 0xF) << 2)] = 0;
- call 0x08002D52, r5=[0x02011C94+((p1&0xF)<<2)];
- }
- next;
- 49 p1 - Cmd494N
- p1 = ? (=0x4N)
- Routine: 0x08037F90
- for (n = 0x44; n <= 0x6C; n += 4)
- if ([0x02011C50 + n] != 0)
- {
- [0x02011C50 + n] == 0;
- [0x02011E50 + n + (([0x02011C50 + ((p1 & 0xF) << 2) + 0x3] >> 5) << 2)] clear= 0x80000000 rotateright [0x02011C50 + n + ((p1 & 0xF) << 2) + 0x3];
- [0x02011C50 + n + ((p1 & 0xF) << 2)] = 0;
- call 0x08002D52, r5=[0x02011C50+n+((p1&0xF)<<2)];
- }
- next;
- 4A 00 p1 p1 p1 p1 - Cmd4A00
- p1 = ?
- Routine: 0x08037FD4
- call 0x08003570, r0=p1;
- next;
- 4A 01 p1 - Cmd4A01
- p1 = ?
- Routine: 0x08037FE6
- call 0x080035A2, r0=p1;
- next;
- 4A 02 p1 p1 p1 p1 - Cmd4A02
- p1 = ?
- Routine: 0x08037FF8
- call 0x08030A60, r0=p1;
- next;
- 4A 03 - Cmd4A03
- Routine: 0x0803800A
- call 0x08035134;
- next;
- 4A 04 - Cmd4A04
- Routine: 0x08038014
- call 0x0803516C;
- next;
- 4A 05 - Cmd4A05
- Routine: 0x0803801E
- call 0x080351B4;
- next;
- 4B p1 p1 p1 p1 - Call
- p1 = ASM pointer
- Routine: 0x08038028
- if (call p1)
- next;
- else
- halt;
- 4C p1 - Cmd4C4N
- p1 = n/a (=& 0x40)
- Routine: 0x08038098
- call 0x08005F00, r0=[0x02011BC4], r1=[0x02011BC1]-1, r2=[0x02011BC2];
- next;
- 4C p1 p2 p2 p2 p2 - Cmd4C2N
- p1 = n/a (=& 0x20)
- p2 = ?
- Routine: 0x080380A6
- [0x02011C84] = p2;
- next;
- 4C p1 p2 p3 p3 p3 p3 - Cmd4C
- p1 = n/a (!=& 0x60)
- p2 = ?
- p3 = ?
- Routine: 0x08038056
- if ((p1 & 0x80) != 0)
- var = [0x02011C84];
- else
- var = p3;
- if ((p1 & 1) == 0)
- {
- call 0x08005F00, r0=var, r1=0, r2=p2;
- next;
- }
- else
- {
- call 0x08005F14, r0=var, r1=0, r2=p2;
- next;
- }
- 4D p1 p1 - PlayNewSound
- p1 = Sound number
- Routine: 0x080380B4
- PlayNewSound(p1);
- next;
- 4E p1 p1 - PlaySound (?)
- p1 = Sound number (signed)
- Routine: 0x080380C8
- if (p1 < 0)
- {
- call 0x08036E44;
- call 0x08036E78;
- next;
- }
- else
- {
- PlaySound(p1);
- next;
- }
- 4F p1 p1 p2 p3 - SoundCmd4F
- p1 = Sound number
- p2 = ?
- p3 = ?
- Routine: 0x080380EA
- call 0x080006A2, r0=p1, r1=p2, r2=p3;
- next;
- 50 p1 p2 - SoundCmd50
- p1 = ?
- p2 = ?
- Routine: 0x0803810E
- call 0x0800068A, r0=p2, r1=p1;
- [0x02001B8F] = 0x63;
- next;
- 51 - StopSound
- Routine: 0x08038132
- StopSound;
- next;
- 52 p1 p2 p3 - Cmd52
- p1 = ?
- p2 = ?
- p3 = ?
- Routine: 0x0803813E
- if (p1 == 1)
- call 0x0803CE08, r0=p2, r1=p3;
- else
- call 0x0803CD98, r0=p2, r1=p3;
- next;
- 53 p1 p2 - Cmd53
- p1 = Variable offset
- p2 = ?
- Routine: 0x08035F98
- if (p1 != 0xFF)
- var = [0x02011C50 + p1];
- else
- var = p2;
- call 0x08033FC0, r0=var;
- next;
- 54 00 p1 p1 p1 p1 - MoveCamera
- p1 = Camera movement data pointer
- Routine: 0x08038176
- [0x02011C84] = p1;
- call 0x08036F98, r0=p1;
- [0x02011C63] = 1;
- next;
- 54 p1 - ResetCamera
- p1 = n/a (!= 0)
- Routine: 0x0803818E
- [0x02011C84] = 0;
- call 0x08036FAA;
- [0x02011C63] = 0;
- next;
- 55 p1 p1 - StartFreeBattle;
- p1 = Freefight number
- Routine: 0x080381A0
- if ([0x02001B84] < 0x80)
- {
- SetBeastTimeToMax;
- call 0x08015C32;
- }
- call 0x08005BC8, r0=GetFreeFightOffset(p1), r1=1;
- call 0x0803522E, r0=GetFreeFightOffset(p1);
- call 0x08006270, r0=0x2C, r1=0x10;
- next;
- 56 - StartRandomBattle
- Routine: 0x080381E0
- call 0x08005BC8, r0=(call 0x080AA5E4), r1=1;
- call 0x08006270, r0=0x2C, r1=0x10;
- next;
- 58 p1 p1 p1 p1 p2 p2 p2 p2 p3 p3 p3 p3 - Cmd58
- Routine: 0x080381FA
- call 0x08002468, r0=p1, r1=p2, r2=p3;
- next;
- 59 - Cmd59
- Routine: 0x0803821E
- call 0x08002484;
- next;
- 5A p1 p2 p3 - Cmd5A
- p1 = ?
- p2 = ?
- p3 = unused
- Routine: 0x0803822A
- call 0x080302A8, r0=p1, r1=p2;
- next;
- 5B p1 - Nop5B
- p1 = unused
- Routine: 0x08038246
- next;
- 5C - Nop5C
- Routine: 0x08038256
- next;
- 5D - Nop5D
- Routine: 0x0803825E
- next;
- 5E - Nop5E
- Routine: 0x08038266
- next;
- 5F - Cmd5F
- Routine: 0x0803826E
- call 0x08001974;
- next;
- 60 p1 - Cmd60
- p1 = ?
- Routine: 0x0803827A
- call 0x08003914, r0=p1;
- next;
- 61 - Cmd61
- Routine: 0x0803828E
- call 0x08003940;
- next;
- 62 p1 - Cmd62
- p1 = ?
- Routine: 0x0803829A
- call 0x08003A64, r0=p1;
- next;
- 63 - Cmd63
- Routine: 0x080382AE
- call 0x08003A90;
- next;
- 67 p1 p1 p2 - Cmd67
- p1 = ?
- p2 = ?
- Routine: 0x080382BA
- for (n = 0; n < p2; n++)
- call 0x0813E5DC, r0=p1+n;
- next;
- 68 p1 p1 - Cmd68
- p1 = ?
- Routine: 0x080382DE
- call 0x08006E70, r0=p1;
- next;
- 69 - Cmd69
- Routine: 0x080382F2
- call 0x080340F6;
- next;
- 6A p1 - Cmd6A
- p1 = ?
- Routine: 0x080382FE
- [0x02001C0B] = [0x02001B81];
- [0x02001B81] = p1;
- call 0x08120DF0;
- call 0x0813C3AC;
- call 0x0803CEB8;
- next;
- 6B p1 p1 p2 - Cmd6B
- p1 = ?
- p2 = ?
- Routine: 0x08038322
- for (n = 0; n < p2; n++)
- call 0x0802F238, r0=p1+n;
- next;
- 6C p1 p1 p1 p1 p2 p2 p2 p2 - Cmd6C
- p1 = ?
- p2 = ?
- Routine: 0x08038346
- call 0x080356F8, r0=p1, r1=p2;
- next;
- 6F p1 p2 p2 - Cmd6F
- p1 = ?
- p2 = ?
- Routine: 0x08038362
- if (p1 != 1)
- call 0x0803CFF8, r0=p2;
- else
- call 0x0803D040, r0=p2;
- next;
- 70 p1 p2 p2 - Cmd70
- p1 = ?
- p2 = ?
- Routine: 0x08038386
- if (p1 != 1)
- call 0x0803D080, r0=p2;
- else
- call 0x0803D0C8, r0=p2;
- next;
- 73 p1 p2 p2 p3 p4 - Cmd73
- p1 = ?
- p2 = ?
- p3 = ?
- p4 = ?
- Routine: 0x080383AA
- if (p1 != 1)
- call 0x08021AEE, r0=p2, r1=p3, r2=p4;
- else
- call 0x08021B92, r0=p2, r1=p3, r2=p4;
- next;
- 74 p1 p2 p2 p3 p4 - Cmd74
- p1 = ?
- p2 = ?
- p3 = ?
- p4 = ?
- Routine: 0x080383DE
- if (p1 != 1)
- call 0x0803D108, r0=p2, r1=p3, r2=p4;
- else
- call 0x0803D128, r0=p2, r1=p3, r2=p4;
- next;
- 75 00 p1 p1 p1 p1 - Cmd7500
- p1 = ?
- Routine: 0x08038420
- [0x02011E70] = p1;
- next;
- 75 01 - Cmd7501
- Routine: 0x0803842E
- [0x02011E70] = 0;
- next;
- 76 p1 p2 - Cmd76
- p1 = ?
- p2 = ?
- Routine: 0x0803843C
- if (p1 == 0)
- {
- [0x020010F0 + p2] = [0x02001B86];
- [0x02001B86] = 0xFF;
- }
- else
- [0x02001B86] = [0x020010F0 + p2];
- next;
- 77 p1 - Cmd77
- p1 = ?
- Routine: 0x08038466
- ClearFlag(0x682);
- ClearFlag(0x85F);
- ClearFlag(0xABA);
- ClearFlag(0xCDC);
- ClearFlag(0xCE0);
- SetFlag(0x120);
- if (p1 == 0)
- {
- if (FlagIsOn(0x67B))
- SetFlag(0x682);
- if (FlagIsOn(0x856))
- SetFlag(0x85F);
- if (FlagIsOn(0xA44))
- SetFlag(0xABA);
- if (FlagIsOn(0xC6D))
- SetFlag(0xCDC);
- if (FlagIsOn(0xCA7))
- SetFlag(0xCE0);
- ClearFlag(0x120);
- }
- next;
- 78 p1 p1 p2 - Cmd78
- p1 = ?
- p2 = ?
- Routine: 0x08038484
- for (n = 0; n < p2; n++)
- call 0x0813F9A0, r0=p1+n;
- next;
- 79 p1 p2 p3 p4 p4 p4 p4 - IfJumpTo79
- p1 = unused
- p2 = unused
- p3 = unused
- p4 = Cutscene pointer
- if ((call 0x0803CE28, r0=0x2C))
- if (([0x0200A270] & 1) != 0)
- {
- JumpTo p4;
- next;
- }
- next;
- 7A - SetBeastTimeToMax
- Routine: 0x080384D0
- SetBeastTimeToMax;
- next;
- 7B p1 p2 p3 p4 p4 p4 p4 - IfJumpTo7B
- p1 = unused
- p2 = unused
- p3 = unused
- p4 = Cutscene pointer
- Routine: 0x080384DC
- if ([0x0200578E] == 4)
- {
- JumpTo p4;
- next;
- }
- else
- next;
- 7C p1 p2 p3 p4 p4 p4 p4 p5 p5 p5 p5 - LanMegaManJumpTo
- p1 = unused
- p2 = unused
- p3 = unused
- p4 = Cutscene pointer (if controlling Lan)
- p5 = Cutscene pointer (if controlling MegaMan)
- Routine: 0x080384F8
- if ([0x02001B84) < 0x80)
- {
- JumpTo p4;
- next;
- }
- else
- {
- JumpTo p5;
- next;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement