don't click here

Attempting to replace Kid Chameleon GEMS sound driver with XGM

Discussion in 'Engineering & Reverse Engineering' started by van0014, Mar 21, 2019.

  1. van0014

    van0014

    Member
    3
    0
    1
    Greetings,

    For a while, me and a friend on Discord have contemplated having custom music in Kid Chameleon.
    The game has been disassembled, and the assembly well documented by Qiuu. Modding it has come very far.
    After trying to work with GEMS, as a somewhat lazy hobby programmer, I thought there must be a better way to mod music without the old GEMS software.
    After a little bit of research, it seemed that changing the sound driver would be a good choice for versatility. One good candidate is the XGM driver from the SGDK.

    The pieces slowly come together as I collect and study the resources we have at hand. With the SGDK, there is a brilliant method of handling sound.
    I had trouble finding documentation for XGM driver interfacing, and resorted to disassembling an XGM player for reference.
    Without documentation on the ASM implementation, there will be some trial and error. There is some code written and established in BEX format, making this a little more feasible.

    At this point, it is unclear if this is worth me trying, because I know very little about ASM.
    What I understand comes from all I learned from Game Maker, and so I manage to follow memory addresses that relate to the 68000.
    That's the Limit I reach, and understanding driver interfacing or what code to use is difficult for me without documentation.
    This is a project that I want to slowly work away at, unless I find out the project is too big for me as an amateur. So hopefully, somebody could offer some advice on this.
    Until then, I will try and document some of the XGM driver ASM implementation, until either succeeding or loosing interest due to lack of skill.

    I have collected some Files relevant to the XGM driver and player, and disassembled to a .txt file (should be renamed .asm).
    From memory, the player.txt is a blank player ROM. And the VGM_Play.txt is the same player with some music data. All other files except the .vgm came from the SGDK