don't click here

Trying to import some Sonic 3 Nov 1993 music tracks in the final game

Discussion in 'Engineering & Reverse Engineering' started by celebi23, Jan 24, 2021.

  1. celebi23

    celebi23

    Member
    104
    0
    16
    I hope this is the right spot for my hack idea/question (apologies if it's not). So, I've been trying to figure out how to replace musing in Sonic 3. I've been looking at the Sonic and Knuckles Disassembly and I think I know where to start. I wanted to use the 10 Sonic 3 prototype/PC tracks in the final game. I grabbed the Sonic 3 prototype 1993-11-03 SMPS rip and what I tried replacing (for instance) "skdisasm-master/Sound/Music/Sonic 3/Sonic 3 Knuckles.bin" with the "S3Proto_1993-11-03_SMPS-Rip/1F Knuckles' Theme.s3k" file and just rename the .s3k file to "Sonic 3 Knuckles.bin". When I try running "python buildS3.py", I get this:
    Building 's3built.bin'

    Cleaning previous build
    Assembling .p file
    ERROR: Assembler returned 2.
    Finished!

    When I look in the "skdisasm-master/Build/" folder and look at s3builtErrors.txt, I see this:
    > > >s3.asm(120159) ORG(4): error: too much stuff before org $200000 ($7F20 bytes)
    > > > error "too much stuff before org $\{$200000} ($\{(-.diff)} bytes)"

    Am I going about this the complete wrong way?
     
  2. MainMemory

    MainMemory

    Has-Been Modder Tech Member
    4,820
    412
    63
    Myself
    It's probably best to use the Flamedriver disassembly and the ASM versions of the music.
    Edit: oh wait, Sonic 3... Yeah unless you can get flamedriver working in it, you're going to have a really tough time doing anything with the binary blob that is the current S3 sound driver, sorry.
     
    Last edited: Jan 24, 2021
  3. celebi23

    celebi23

    Member
    104
    0
    16
    No worries! Yeah, I'm not skilled enough to get the Flamedriver working.
     
  4. MainMemory

    MainMemory

    Has-Been Modder Tech Member
    4,820
    412
    63
    Myself
    The problem with using the S3 sound driver as a binary file is that the sound driver has pointers to each sound file coded into it, so you either have to keep everything in exactly the same location, which means songs can only be as big as they were originally or smaller, or you have to dig into the binary blob, find the pointers, and update them manually.