Adding an extra character to Sonic 3 and Knuckles

Discussion in 'Discussion and Q&A Archive' started by Sheeracali, Sep 17, 2016.

  1. Sheeracali

    Sheeracali Newcomer Trialist

    Joined:
    Sep 4, 2016
    Messages:
    9
    I have the latest disassembly, and I've seen many guides and documentation on getting additional characters into both Sonic 1 and 2. I haven't come across anything like that for Sonic 3. Anyway, I'm trying to get an additional character into my hack and I'm not really sure where to start.How can I do this and have my character selectable from the Data Select screen?
     
  2. Pacca

    Pacca Having an online identity crisis since 2019 Member

    Joined:
    Jul 5, 2014
    Messages:
    1,170
    Location:
    Limbo
    Most people don't work with S3K because the code is more complex then the other dissasemblies, and still needs some labeling work (last time I checked, anyways, the github disassembly could have been improved by now). I imagine that adding a new character would be similar to Sonic 2 though; implementing copy of the Sonic object, add in to the various character selection and loading rountines, and changing what you like from there. If your just starting out, I reccomend starting out a little easier. S3K requires some serious skills to hack it beyond simple color and level edits.
     
    HackGame and Chaotix like this.
  3. Sheeracali

    Sheeracali Newcomer Trialist

    Joined:
    Sep 4, 2016
    Messages:
    9
    Where would the object pointers be located in the s3k.asm?
     
  4. Clownacy

    Clownacy Retired Staff lolololo Member

    Joined:
    Aug 15, 2014
    Messages:
    962
    Levels/Misc/Object list - Sonic & Knuckles.asm
    Levels/Misc/Object list - Sonic 3.asm

    S3K only bothers with object IDs for object layouts: internally, objects are referred to by absolute address.
     
    astroblema and Sheeracali like this.
  5. Sheeracali

    Sheeracali Newcomer Trialist

    Joined:
    Sep 4, 2016
    Messages:
    9
    So, I've been messing around in the disassembly and have been able to accomplish the following things.
    1. Added brand new title screen art and animations
    2. Replaced sprites for Sonic, Tails, and Knuckles
    3. Inserted brand new level art and layout for AIZ1
    4. Removed Sonic's intro from AIZ1
    5. Disabled the ability to skip the SEGA screen

    I'm very excited about everything I've learned and where this hack is going. My goals are to learn to accomplish the following
    1. Add a character
    2. Add a homing shield of sorts
    3. Edit level events/transitions

    ATM the most important thing is to get an extra character. I have seen how this is done in Sonic 2 and have replicated it with understanding, but it seems to be a bit different here in Sonic 3. I have added this

    Code:
    loc_6B63:
            subq.w    #1,d0
            move.l    #Obj_Amy,(Player_1).w
            move.l    #Obj_DashDust,(Dust).w
            move.l    #Obj_Insta_Shield,(Shield).w
            rts
    It would be great if I could get some assistance with this. Thanks so much in advance.