Badeaux fails to appear in the castle after being recruited.
After you recruit most characters, they can be found in certain rooms, or wandering about your headquarters as dictated by events. Most minor characters occupy a particular room, and are only moved when the castle upgrades. In Badeaux's case, he is mysteriously absent from all rooms and never appears in any version of the castle. This has been a mystery for several years. People have searched every room, behind trees and around out-buildings, trying to find him. Eventually, his absence was written off as another of Konami's glitches.
Badeaux is semi-present in the southwest corner of the castle grounds, in the area handled by the /CDROM/110_ARK/VK11.BIN
module. His art assets are there; he is set up as a map object; his recruit status is evaluated; and the active party is checked for his presence. In short, everything is there for him to be perfectly functional, except one tiny thing: He is never placed in the room as an active object by any script that actually runs. The bug is two missing bytes of data, and there is actually a correct version of the script in the file. Only the defective version seems to run. It looks as though the error-free script was intended for a time prior to when it's possible to recruit Badeaux.
This is the correct script. The bytes omitted from the bad copy are at addresses 0x8015F250 and 0x8015F251.
RAM:8015F248 LoadBadeaux_Good:.byte 0x2E # . # DATA XREF: RAM:8015FA50o
RAM:8015F248 # Take execution token?
RAM:8015F249 .byte 2 # Set position of room object 0xE (Badeaux)
RAM:8015F24A .byte 0xE
RAM:8015F24B .byte 0x13 # X-pos
RAM:8015F24C .byte 0x27 # Y-pos
RAM:8015F24D .byte 3 # Turn Badeaux up/north by default
RAM:8015F24E .byte 0xE
RAM:8015F24F .byte 1 # 1 is typically a north-facing sprite.
RAM:8015F250 .byte 0 # Place object on map (this command 0, 0xE is what's missing in the bad script)
RAM:8015F251 .byte 0xE
RAM:8015F252 .byte 0x2F # / # Relinquish token?
RAM:8015F253 .byte 0xFF # Script terminators.
RAM:8015F254 .byte 0xFE
RAM:8015F255 .byte 0
RAM:8015F256 .byte 0
RAM:8015F257 .byte 0 # padding
The bad script only has one byte of padding, so it cannot be easily expanded. Fortunately, it is identical to the good script, aside from the omitted command and parameter. The glitch can be fixed by simply changing the script that is referenced and run in the control data.