12-23-2021, 11:41 AM
I'm pretty sure this is whats being done in Super Mario Galaxy in the transformations code.
Press a button repeatedly to cycle through Mario's different iterations, and then another to make the transformation take place.
What I had in mind when making the splits code.
I'll check this out in the next couple of days while I have some time to digest.
In the meantime, I managed to to eliminate 50 writes in the pin configurations. Woohoo!!!
Got rid of the 0x0000 offsets in the ASM.
I also decided to change the conditionals values, so that instead of playing the "push the button just right to make the configurations change game," you can just hold down
(-) and when the splits configuration you want to practice appears (pins now have plenty of time to set), you just release the button.
Here's the much abbreviated code:
C201D30C 00000004
A0050000 2C071000
40820014 3D6080AF
818B6000 398C1000
918B6000 00000000
E0000000 80000000
28AF6000 00000020
01269C35 00000001
0126A1B1 00000001
0126A72D 00000001
0126ACA9 00000001
0126B225 00000001
0126B7A1 00000001
0126BD1D 00000001
0126C299 00000001
0126C815 00000001
0126CD91 00000001
E0000000 80000000
28AF6000 00000040
01269C35 00000000
0126A1B1 00000000
0126A72D 00000000
0126B225 00000000
0126C815 00000000
E0000000 80000000
28AF6000 00000060
0126C299 00000000
E0000000 80000000
28AF6000 00000080
0126BD1D 00000000
E0000000 80000000
28AF6000 000000A0
0126BD1D 00000001
0126CD91 00000000
E0000000 80000000
28AF6000 000000C0
0126A1B1 00000001
0126ACA9 00000000
0126B7A1 00000000
0126BD1D 00000000
0126C299 00000001
0126CD91 00000001
E0000000 80000000
28AF6000 000000E0
0126A1B1 00000000
0126A72D 00000001
0126BD1D 00000001
0126C299 00000000
0126C815 00000001
0126CD91 00000000
E0000000 80000000
28AF6000 00000100
0126A72D 00000000
0126ACA9 00000001
0126B7A1 00000001
0126BD1D 00000000
0126C815 00000000
E0000000 80000000
28AF6000 00000120
0126ACA9 00000000
0126B7A1 00000000
0126BD1D 00000001
0126C815 00000001
E0000000 80000000
28AF6000 00000140
02AF6000 00000020
E0000000 00000000
28708D40 00000100
0401D30C A0050000
02AF6000 00000000
E0000000 80008000
With corrected ASM:
lhz r0, 0(r5)
cmpwi r7, 0x1000
bne- the_end
lis r11, 0x80AF
lwz r12, 0x6000 (r11)
addi r12, r12, 0x1000
stw r12, 0x6000 (r11)
the_end:
Cheers!!!
Press a button repeatedly to cycle through Mario's different iterations, and then another to make the transformation take place.
What I had in mind when making the splits code.
I'll check this out in the next couple of days while I have some time to digest.
In the meantime, I managed to to eliminate 50 writes in the pin configurations. Woohoo!!!
Got rid of the 0x0000 offsets in the ASM.
I also decided to change the conditionals values, so that instead of playing the "push the button just right to make the configurations change game," you can just hold down
(-) and when the splits configuration you want to practice appears (pins now have plenty of time to set), you just release the button.
Here's the much abbreviated code:
C201D30C 00000004
A0050000 2C071000
40820014 3D6080AF
818B6000 398C1000
918B6000 00000000
E0000000 80000000
28AF6000 00000020
01269C35 00000001
0126A1B1 00000001
0126A72D 00000001
0126ACA9 00000001
0126B225 00000001
0126B7A1 00000001
0126BD1D 00000001
0126C299 00000001
0126C815 00000001
0126CD91 00000001
E0000000 80000000
28AF6000 00000040
01269C35 00000000
0126A1B1 00000000
0126A72D 00000000
0126B225 00000000
0126C815 00000000
E0000000 80000000
28AF6000 00000060
0126C299 00000000
E0000000 80000000
28AF6000 00000080
0126BD1D 00000000
E0000000 80000000
28AF6000 000000A0
0126BD1D 00000001
0126CD91 00000000
E0000000 80000000
28AF6000 000000C0
0126A1B1 00000001
0126ACA9 00000000
0126B7A1 00000000
0126BD1D 00000000
0126C299 00000001
0126CD91 00000001
E0000000 80000000
28AF6000 000000E0
0126A1B1 00000000
0126A72D 00000001
0126BD1D 00000001
0126C299 00000000
0126C815 00000001
0126CD91 00000000
E0000000 80000000
28AF6000 00000100
0126A72D 00000000
0126ACA9 00000001
0126B7A1 00000001
0126BD1D 00000000
0126C815 00000000
E0000000 80000000
28AF6000 00000120
0126ACA9 00000000
0126B7A1 00000000
0126BD1D 00000001
0126C815 00000001
E0000000 80000000
28AF6000 00000140
02AF6000 00000020
E0000000 00000000
28708D40 00000100
0401D30C A0050000
02AF6000 00000000
E0000000 80008000
With corrected ASM:
lhz r0, 0(r5)
cmpwi r7, 0x1000
bne- the_end
lis r11, 0x80AF
lwz r12, 0x6000 (r11)
addi r12, r12, 0x1000
stw r12, 0x6000 (r11)
the_end:
Cheers!!!