Random Planet Destructions [Vega] Press your Activator to execute a Planet Destruction. The map you will end up at is random. Works on any time during match with any character on any map. NTSC-U Rev1 C0000000 00000004 3D808000 896C0CD4 396B0001 280B0023 41A00008 39600000 996C0CD4 4E800020 0408F7B4 7C7F1B78 0405E9A8 40820190 0405E9B4 40800014 0405EB14 41820024 0408F834 4080000C 283BXXXX YYYYZZZZ C208F7B4 00000002 3FE08000 8BFF0CD4 60000000 00000000 0405E9A8 60000000 0405E9B4 4800003C 0405EB14 4800000C 0408F834 48000020 E0000000 80008000 Code creator: Vega Sources~ Source for C0 ASM: #Load Map Value and Increment lis r12, 0x8000 lbz r11, 0x0CD4 (r12) addi r11, r11, 1 #Check Map value, cannot be higher than 0x22 cmplwi r11, 0x23 blt+ update_map_value #Over 0x22, reset to 0 li r11, 0 #Update Map Value update_map_value: stb r11, 0x0CD4 (R12) #End C0 #blr #Uncomment if not using pyiiasmh Source 1st RAM Write: 'bne- 0x190 changed to a nop. Not sure what this check is for but if it fails then planet destructions can't be called. So disable the check. FYI: There's a check right after this checking to see if r26 is a valid pointer (which was r3 from function call of 0x8005F354 located a bit earlier at 0x8005E984. We cannot remove this specific check because if the pointer is null and we bypass other check(s), then a DSI will occur because later on, r26 is used for loading instructions. Source 2nd RAM Write: 'bge- 0x14' replaced with 'b to 0x3C' at address 0x8005E9B4. Not entirely sure what this check is. Maybe this is an Game Mode check? Example the check fails if you use Goku (Early) in Ultimate Training on Wasteland Noon. The change of bge to b always tells the game that the check is successful. The branch amount is changed up to 0x3C because there is two more unknown checks right below, but its not anything pointer related, so they are both bypassed. Execution of CPU will land at 8005E9F0 Source 3rd RAM Write: 'beq 0x24' instruction is replaced with 'b 0xC' at address 0x8005EB14. This will disable the beq branch of an r31 comparison, and will also jump over a r29 comparison. The execution of the CPU will be forced to land at 0x8005EB20 which will call the function 0x80031020 (void/no-args). This function is what causes the planet destruction to occur, however there is a child function with various checks that will addressed in the other sources. Source 4th RAM Write: 'bge- 0xC' instruction is replaced with 'b 0x20' at address 0x8008F834. First there are 3 previous checks above this, but if I skip these it can cause double or triple consecutive cut scenes of the planet destruction, so I can't mess with these. Anyway, this new branch skips over the check of previous function return (can't be negative), and the check of current Map vs new Map. Source for C2 ASM: (default instruction via RAM Write written when not activated) #Address #NTSC-U = 8008F7B4 #Set EVA lis r31, 0x8000 #Load Map Value from EVA; no need for default instruction of 'mr r31, r3' lbz r31, 0x0CD4 (r31)