Remote linking to avatars
Do not link to Suikosource images on forums, webpages, or anyplace else. If you wish to use the images, place them in your own webspace. We do not allow you to use them from our server.
Chaco can be recruited at level 1.
Chaco Bug
Bug Details
System(s) Playstation,
PSP,
PSN (POPS)
Bug TypeGameplay
Region Introduced
Patch Version2.01.065b

Regions Affected
After successfully defending Two River, Chaco will automatically join your army. You are given a fake option to refuse him, and if you do, the event goes into a loop. This will continue until you allow him to join. When you acquiesce he should join at level 29, but at one unsafe point it is possible to bypass the setting of his level. Chaco will then remain at level 1, the level he was initialized to at the beginning of the game.

Triggering
To trigger the bug, you must not let Chaco join when he first asks. Then continue refusing until Fitcher says, "Lord %Hero%, please let him come with us. I think his intentions are good, and besides that, he's got my wallet." Immediately following this line, the choice is presented again. If you choose, "Sure. Okay.", now, Chaco will be at level 1.

Cause
This bug is caused by a simple omission in the event script. When you let Chaco come with you, the script should set him to level 29, and then send Chaco, Ridley, and Fitcher to your castle. At this one spot in the script, the developers neglected the command to set Chaco's level.

RAM:80110CC4 unk_80110CC4:   .byte 0x49  # I          # DATA XREF: RAM:801114DC
RAM:80110CC5                 .byte 0x14               # This is the part of the script that runs after Fitcher complans about his wallet.
RAM:80110CC6                 .byte 0x28  # (          # Hero's decision
RAM:80110CC7                 .byte    0
RAM:80110CC8                 .byte    0
RAM:80110CC9                 .byte    2               # Two choices
RAM:80110CCA                 .byte    3               # Dialog table [0x3][0x6B]
RAM:80110CCB                 .byte 0x6B  # k          # "Okay Sure" (something like that)
RAM:80110CCC                 .byte    3               # [0x3][0x6C]
RAM:80110CCD                 .byte 0x6C  # l          # "Absolutely not!"
RAM:80110CCE                 .byte 0x29  # )          # Handle choice
RAM:80110CCF                 .byte    2
RAM:80110CD0                 .byte    0
RAM:80110CD1                 .byte    1
RAM:80110CD2                 .byte 0xFF
RAM:80110CD3                 .byte    0
RAM:80110CD4 recruit_err:    .byte 0x54  # T          # Let him join.
RAM:80110CD4                                          # There should be a 0x73 0x36 0x1D here so Chaco (0x36) will be recruited at level 29.
RAM:80110CD4                                          # His level in the array of charas is set at 1 right now. Minus the script, he's stuck there.
RAM:80110CD5                 .byte 0x36  # 6
RAM:80110CD6                 .byte 0x1F
RAM:80110CD7                 .byte 0x54  # T          # This command and the two surrounding it send charas to castle.
RAM:80110CD8                 .byte 0x75  # u          # This one is 0x75 - Ridley. 0x36 - Chaco. 0x58 - Fitcher.
RAM:80110CD9                 .byte 0x1F
RAM:80110CDA                 .byte 0x54  # T
RAM:80110CDB                 .byte 0x58  # X
RAM:80110CDC                 .byte 0x1F
RAM:80110CDD                 .byte    5               # Hero spin jumps...
RAM:80110CDE                 .byte    0
RAM:80110CDF                 .byte    0
RAM:80110CE0                 .byte    0
RAM:80110CE1                 .byte    5
RAM:80110CE2                 .byte  0xF
RAM:80110CE3                 .byte 0x1E 

Fix
The fix is simply to add the necessary script command, which is 0x76 (Set Level) followed by the character identifier 0x36 (Chaco) and the desired level. This requires inserting three bytes into the script. Luckily, the game aligns scripts to a 32-bit boundary, and there are three bytes of unused space in this particular sequence. The remaining commands, starting with the 0x54 command that sends Chaco to the castle, can be shifted down 3 bytes. That allows the Set Level command to be inserted, without the need to realign everything else in the file, or some other work around