User:Yoshi2

From Pikmin Technical Knowledge Base
Jump to navigation Jump to search

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.