Pachinko 365 Days Debug Restoration Patch
This relatively horrible pachinko game happens to have some debug features built in, as well as a few things built out. This patch enables the debug features that are left and restores everything that is no longer linked.
The readme contains details of the various different debugger features and their controls.
Xdelta can apply xdelta patches. Apply to an unbyteswapped ROM. You should get a checksum mismatch error if you try to apply it to a byteswapped one.
Pachinko 365 Days Debug Restoration Patch
This relatively horrible pachinko game happens to have some debug features built in, as well as a few things built out. This patch enables the debug features that are left and restores everything that is no longer linked.
First feature is a HUD and interaction debugger. Hold [+ Left] during walkaround mode to display it.
Some of the display will change based on context. Location name and NPC data will be displayed. If an NPC is nearby, their current animation will appear on the second line. Otherwise, ERROR is displayed. The next line refers to nearby objects, including the pachinko machine types, attributes, and their index. The value in "msgnum" is the most recently displayed message index. The value on the "status" line refers to the current interface (for instance, 3 for the prompt to leave, 8 for the machine c-button display, 9 for the NPC c-button display).
The function responsible for this is 800E7174, which appears to be completely unlinked. The access key, however, has not been modified.
Second a position display. Hold [+ Right] during walkaround mode to display it.
A screen will appear with the current FPS (sad how low that is), location, position, speed, etc.
This was linked into the retail game but was normally unaccessible. It could be actived via GameShark/PAR by setting the 00000010 flag at 8014C720. It was either on or off, and unlike the above function would display over dialog.
Besides normal runtime features, there's a couple other flags of interest on that register. 00000020 turns off collisions, including stairs. 00000001 disables all interaction.
Third is a dialog debugger. Hold [+ Up] when the walkaround mode is loading to access it. (For example, when entering a parlor from the parlor select menu.)
The top line is which dialog set to load dialog from. The bottom entry lists which entry out of the total entries in that bank to view (For example, 1/5 would be the first of five messages).
Use [+ Left] and [+ Right] to select different banks or entries. Press [+ Up] and [+ Down] to move between the top and bottom lines. Press the [A Button] to display the current line of dialog. Use the [B Button] to cancel reading multi-page messages immediately.
There is no known way to return to the main game from this menu. Press [Reset] to restart the game.
Entries past "K5ABCD_10_KI_B" are not real. Selecting one will probably crash the game.
Fourth is an additional debug menu. Hold [+ Down] while the game is booting to access it. (The same time you'd normally hold [Start] to bring up the mempak manager.)
You can view the menu in retail with a GameShark/PAR by setting 800B55E0 to 8 during a scene change. This block of code is also used to display the credits and PachiRobo screen, when certain registers are set appropriately.
The options are as follows:
ホール テスト 1 Hall Test 1
ホール テスト 2 Hall Test 2
サウンド テスト Sound Test
キャラ テスト Character Test
ホール オープニング Hall Opening
ホール エンディング Hall Ending
Unfortunately, these are not linked to their original code anymore. All options are unhandled, and you'll wind up on the PachiRobo screen instead.
Of these entries, only two still have code and messages: "Hall Test 2" and "Sound Test". The patch reattaches the two valid entries, and the rest remain unhandled. Selecting any of the other options will bring up the PachiRobo screen, exactly like the uneditted ROM.
Hall Test 2 Controls:
[+ Up] and [+ Down] select between the "model", "dl", and "Mag" lines. Use [+ Left] and [+ Right] to change the settings of each.
There are 19 different models to choose from.
"dl" is short for display list. They hook a display list with stock lighting and texturing commands and apply it to each model. Use this option to select which settings are applied.
"Mag" (magnification) changes the model's scale in increments of 10%.
Use the [C Buttons] to pan the object up, down, left, and right. The current position is displayed on the "MyX" and "MyY" lines.
The [R Button] (effectively) zooms in and [L Button] zooms out. The current position is given by "MyZ".
Use left and right on the [Control Stick] to rotate the model laterally. "Rot" displays the current rotation. There doesn't appear to be a way to rotate vertically.
There is no known way to return to the debug menu. Press [Reset] to restart the game.
Sound Test Controls:
Use [+ Up] and [+ Down] to move between the various options. [+ Left] and [+ Right] changes the values of each option.
Pressing the [A Button] on the "BGM", "SFX", and "Option Multi SE" lines to play the corresponding sounds. Multiple sound effects can be played at one time; "veSE_Cnt" displays the number of simultaneous sounds. It might be possible to overflow the buffers by playing too many at one time; try not to break the game.
Pressing the [A Button] on the "BGM STOP" and "SFX STOP" stops the corresponding output.
The volume settings for sound are initially set ~the halfway point. Pressing the [A Button] on either "VOL" line will set that channel to the displayed level.
"Option BGM Tempo" is a multiplier. At 2.0 it plays the track twice as slow, 1.0 at normal speed, and 0.0 at breakneck speed. While background music is playing, press the [A Button] on this line to apply the tempo change.
There is no known way to return to the debug menu. Press [Reset] to restart the game.
There are additional debug features not activated by this patch!
*) The attract demo set in the parlor is effectively a copy of the normal game interface. If normal controls were activated, it would be possible to also activate the same debug features found in walkaround mode. Didn't seem to be much of a point in doing that though. Try not to feel too disappointed.
*) There's a command line parser at 800107E0. They feed it a NULL pointer, but given a typical args string (program name + arguments) it would set a series of registers if certain arguments are found. It appears only one of these, -d, is still read.
Possible arguments are:
-v sets 8009F520; no known use
-d sets 8009F524; inhibits the game thread from automaticly executing if found
-s sets 8009F528; no known use
-l sets 8009F52C; no known use
*) After the video mode changes, such as switching between low and high resolution for the statistics pages, there's a test if the [Z Button] is held. If so, a flag at 8003D90C is set. There is no known use for this value.
How to patch:
Xdelta can apply xdeltas.
Apply to an unbyteswapped ROM. You should get a checksum mismatch error if you try to apply it to a byteswapped one.
-Zoinkity
Pachinko 365 Nichi
Internal Checksum 74554B3B F4AEBCB5
MD5 D60046C23400BFEBD5B051F89E7F2F07
SHA512 6E47C9F04CF4FC9677BFD0B506DD0568861B0A9790133A6697B24C4DC319EA4E12C28CD0261C25DAD2F2596C8F881CF72E8E058F54D40B357CE2CE942B958D04