Difference between revisions of "User:Yoshi2"
m (10 revisions imported) |
|||
(7 intermediate revisions by one other user not shown) | |||
Line 5: | Line 5: | ||
Here's a bunch of random addresses I have found which I will write down here so they don't get lost so easily | Here's a bunch of random addresses I have found which I will write down here so they don't get lost so easily | ||
+ | |||
80d914ac - 80d914b4 XYZ coordinates of olimar in Pikmin 1, first level, PAL | 80d914ac - 80d914b4 XYZ coordinates of olimar in Pikmin 1, first level, PAL | ||
+ | |||
80D193A4 - 80D193AC XYZ coordinates of a 20 pikmin pellet in Pikmin 1, first level, PAL | 80D193A4 - 80D193AC XYZ coordinates of a 20 pikmin pellet in Pikmin 1, first level, PAL | ||
+ | |||
+ | Pikmin 2 PAL | ||
+ | 80DF7B68 - Index of the level the rocket is standing on, can be between 0 and 4 but only 0-3 will work fine, 4 will crash the game (if you disable panic handlers, you will be stuck on a "Valley of Repose" loading screen. Seems the game tries to start newtest if you check Dolphin logs) | ||
+ | |||
+ | 80DF7B6C some sort of counter on how long the rocket has been flying, resets to 0 when you stop. Setting this to high values (e.g. FFFF0000) caused the game to stutter in Dolphin for me once, but later on neither me nor Espyo were able to reproduce the stutter. Maybe emulation-related weirdness or use of an external ram watcher (dolphin memory engine) causes this. | ||
+ | |||
+ | 80454234 function that creates GUI elements in P2. At 804542e4 it uses memcpy to copy data around, e.g. pikmin limits in case it opens the onion screen | ||
+ | |||
+ | 801561cc debug entry point that is triggered when GUI elements are created and destroyed? Has access to the current gui element object in r3 | ||
+ | |||
+ | <pre> | ||
+ | Gecko codes for fixing Printf functionality in Pikmin 2's sequenced music format: | ||
+ | $Fix BMS Printf (Pikmin 2 PAL, Yoshi2) | ||
+ | C209DC14 00000007 | ||
+ | 3861001C 8081000C | ||
+ | 80A10010 80C10014 | ||
+ | 80E10018 7F6902A6 | ||
+ | 3F80800E 639CD750 | ||
+ | 7F8903A6 4CC63182 | ||
+ | 4E800421 7F6903A6 | ||
+ | BB6100AC 00000000 | ||
+ | |||
+ | Untested yet, if you test it please report if it works or doesn't: | ||
+ | $Fix BMS Printf (Pikmin 2 NTSC, Yoshi2) | ||
+ | C209db54 00000007 | ||
+ | 3861001C 8081000C | ||
+ | 80A10010 80C10014 | ||
+ | 80E10018 7F6902A6 | ||
+ | 3F80800E 639Cd6ec | ||
+ | 7F8903A6 4CC63182 | ||
+ | 4E800421 7F6903A6 | ||
+ | BB6100AC 00000000 | ||
+ | </pre> | ||
+ | |||
+ | Thoughts about the STB format of pikmin 2: | ||
+ | controls the cutscenes in pikmin 2 | ||
+ | description of the basic structure written here: https://github.com/LordNed/WindEditor/wiki/STB | ||
+ | It's possible to have a blank cutscene by leaving only the 32 byte big header. In that case set the unsigned integer for size at offset 0x8 to 00000020 | ||
+ | and the unsigned integer for object count at 0xC ot 00000000. | ||
+ | |||
+ | Message boxes are triggered by a combination of JMSG objects and an object with its type set to 0xFFFFFFFF. Having only the JMSG seems to not play the message at all, while having only the 0xFFFFFFFF object makes you never leave the cutscene, but both work together | ||
+ | In the JMSG, the 4 byte unsigned value coming after 00 04 08 59 seems to be for specifying the index of the message being played. This is not the same as the ID of the message because there are gaps in the message IDs. For example, the "AquickbrownFoxJumpsoverthelazy" message is played with the index 0x7F8. |
Latest revision as of 05:19, 5 April 2018
I will write down a bunch of things I know before moving them over to the right place on the wiki
http://pikmintkb.shoutwiki.com/wiki/User:Yoshi2/SZS_archive_packing
Here's a bunch of random addresses I have found which I will write down here so they don't get lost so easily
80d914ac - 80d914b4 XYZ coordinates of olimar in Pikmin 1, first level, PAL
80D193A4 - 80D193AC XYZ coordinates of a 20 pikmin pellet in Pikmin 1, first level, PAL
Pikmin 2 PAL 80DF7B68 - Index of the level the rocket is standing on, can be between 0 and 4 but only 0-3 will work fine, 4 will crash the game (if you disable panic handlers, you will be stuck on a "Valley of Repose" loading screen. Seems the game tries to start newtest if you check Dolphin logs)
80DF7B6C some sort of counter on how long the rocket has been flying, resets to 0 when you stop. Setting this to high values (e.g. FFFF0000) caused the game to stutter in Dolphin for me once, but later on neither me nor Espyo were able to reproduce the stutter. Maybe emulation-related weirdness or use of an external ram watcher (dolphin memory engine) causes this.
80454234 function that creates GUI elements in P2. At 804542e4 it uses memcpy to copy data around, e.g. pikmin limits in case it opens the onion screen
801561cc debug entry point that is triggered when GUI elements are created and destroyed? Has access to the current gui element object in r3
Gecko codes for fixing Printf functionality in Pikmin 2's sequenced music format: $Fix BMS Printf (Pikmin 2 PAL, Yoshi2) C209DC14 00000007 3861001C 8081000C 80A10010 80C10014 80E10018 7F6902A6 3F80800E 639CD750 7F8903A6 4CC63182 4E800421 7F6903A6 BB6100AC 00000000 Untested yet, if you test it please report if it works or doesn't: $Fix BMS Printf (Pikmin 2 NTSC, Yoshi2) C209db54 00000007 3861001C 8081000C 80A10010 80C10014 80E10018 7F6902A6 3F80800E 639Cd6ec 7F8903A6 4CC63182 4E800421 7F6903A6 BB6100AC 00000000
Thoughts about the STB format of pikmin 2: controls the cutscenes in pikmin 2 description of the basic structure written here: https://github.com/LordNed/WindEditor/wiki/STB It's possible to have a blank cutscene by leaving only the 32 byte big header. In that case set the unsigned integer for size at offset 0x8 to 00000020 and the unsigned integer for object count at 0xC ot 00000000.
Message boxes are triggered by a combination of JMSG objects and an object with its type set to 0xFFFFFFFF. Having only the JMSG seems to not play the message at all, while having only the 0xFFFFFFFF object makes you never leave the cutscene, but both work together In the JMSG, the 4 byte unsigned value coming after 00 04 08 59 seems to be for specifying the index of the message being played. This is not the same as the ID of the message because there are gaps in the message IDs. For example, the "AquickbrownFoxJumpsoverthelazy" message is played with the index 0x7F8.