S1 Simple Music Guide

Discussion in 'Tutorials Archive' started by M3k, Jul 29, 2008.

Thread Status:
Not open for further replies.
  1. M3k

    M3k h4x Member

    Joined:
    Jul 28, 2008
    Messages:
    37
    Title: Sonic 1 Simple music guide


    Edition: 4th


    Author:Master3k


    About


    How to fix and port musics.


    Also general some explanation.


    -------------------------------------------------------------------


    Intro:


    You want to edit or port musics. But, you checked Tweaker's or other guide and didn't understand about...nothing. The world isn't over. I did this guide for you.


    So...Let's go!


    (Please note: Some hex knowledge is required to understand this guide).


    -------------------------------------------------------------------


    Pitch:


    The music Pitch is normally the 4th and 5th from the song. The higher the byte, faster the music. The lower the byte, the music gets more slow.


    Let's give a example. The first music bytes are 01 02 03 04 05 06. Want the music faster? Change to 01 02 03 04 05 0A, or if you want it slower, change to 01 02 03 04 05 03. I guess that you've got it. =P


    -------------------------------------------------------------------


    Voice pointers:


    Without them, you just got drums and PSG in the music ... their pointers are the first 2 bytes in the music. Edit them, and magic is done. ZOMFGTOOEASYFORME? Not so fast. They are pointing to a location in the music, not on the driver. That makes things harder. Bytes bigger than the music lenght, will make either the ROM crash or make the music have no instruments, just drums. Of course, this isn't true if you're using a Disassembly, as the data doesn't have to be at a fixed locations.


    -------------------------------------------------------------------


    DAC:


    DAC are the voices (GO!, WOO! from S3) and drums that you can hear on ther music. Check the $06-$07 byte of music. It is pointing to the DAC in the music (not on driver, again). That means that you can easily edit them, but be careful...


    -------------------------------------------------------------------


    MUSIC OFFSETS(POINTERS):


    [note:Ignore this if you're using a disasm, as it uses separate files for each song]


    Green Hill -> 071A9D


    Labyrinth -> 071AA1


    Marble -> 071AA5


    Star Light -> 071AA9


    Spring Yard -> 071AAD


    Scrap Brain -> 071AB1


    Invencibility -> 071AB5


    Extra Life -> 071AB9


    Special Stage -> 071ABD


    Title Screen -> 071AC1


    Presented by Sega (Ending Sequence) -> 071AC5


    Boss -> 071AC9


    Final Zone -> 071ACD


    Level Results -> 071AD1


    Game Over -> 071AD5


    Continue -> 071AD9


    Ending -> 071ADD


    UnderWater Timing -> 071AE1


    Emeralds -> 071AE5


    -------------------------------------------------------------------


    HEADER:


    $00-$01 - Voice pointer. It points to the instruments and drums you hear in the music.


    $02-$03 - A 06 03, meaning that we got 5 FM channels, 1 DAC and 3 PSG. Changing the 3th byte to 00 will deactivate the PSG, as an example. If you change the 06 to 05, either the DAC will stop working or FM5 will stop working.


    $04-$05- Music pitch. The lower the value, the faster the music will play.


    $06-$07 - DAC pointer. Points to the drums you listen to in the music.


    $08-$09 - Unused


    -------------------------------------------------------------------


    MUSIC PORTING:


    THell did a good guide for this, but he used MusicPointerFixer, and you normally must change samples like drums, snares and etc manually. I'll use ESEII SOUND IMPORTER 0.01 (the best one =P), making a port to a new file. If you want to give a try at porting with MusicPointerFixer, I recommend it! Ports are far more accurate than with ESE sound porter


    Firstly, pick it on Esrael's site, then launch the program. Click on "Source" then choose a S2B/S2F/S3K (it MUST be S3K, not S3 or SK) ROM. Click on destination, and select destination file . Then on "Conversion type", select "Sonic 2 to Sonic 1" if you loaded a S2F ROM, "Sonic 2 Beta to Sonic 1" if you picked a S2B ROM or "Sonic 3K to Sonic 1'' if you choosed S3K. Then, on Sound ID, select the music you want to port. Selected? Then on "Save to Offset", put up "000000" instead of whatever is there (normally 100000). Congratulations, ported music. But I recommend manual ports for those who know how to do that.


    Now, some S2B ports are glitched! ONOES! Calm down, very easy to fix.


    Check the DAC location (6th and 7th byte), and go there. You'll probably see the bytes 8C,8D,8E and 8F.


    Transform these bytes into a kick (81) or a timpani (83, 88, 89, 8A, 8B).


    -------------------------------------------------------------------


    THE END.


    Good luck.
     
    Last edited by a moderator: May 18, 2011
  2. Selbi

    Selbi The Euphonic Mess Member

    Joined:
    Jul 20, 2008
    Messages:
    2,429
    Location:
    Northern Germany
    Thank´s for that help! :D
     
  3. M3k

    M3k h4x Member

    Joined:
    Jul 28, 2008
    Messages:
    37
    I've corrected some info, if anyone wants to check it again... :D
     
  4. FireRat

    FireRat Do Not Interact With This User, Anywhere!!! Exiled

    Joined:
    Oct 31, 2009
    Messages:
    535
    Recenctly I readed this guide, but instead of MusicPointerFixer and ESEII Sound importer, I recommend the ESE ASM EDIT, because you can configure the DAC table, and things like the flags $F9 and $FB from S3.


    Anyway, my ports are done manually, but anyway thanks for that ^^
     
  5. EMK-20218

    EMK-20218 The Fuss Maker Exiled

    Joined:
    Aug 8, 2008
    Messages:
    1,067
    Location:
    Jardim Capelinha, São Paulo
    Hm... I admit that this is a lot useful. For BIN-to-BIN, it is. But...

    I think that this guide would be called as a guide for beginners. (This is just a suggestion, mates!)


    Because, at least for me, these Music porter tools are a lot obsolete. I do usually use ESE's porter sometimes, and yes, it is in fact less accurate for port music than Music Pointer fixer. But for work with pointer flags I definitely recommend the Cinossu's SMPS2ASM converter. No byte pointers: Much easier method.


    You did a great work, though. The only strange point is that this guide basically steps how to use a tool. (?)


    For the future, I recommend you to add information for make ports between a ROM directly into the other using a hex editor, instead of tools.
     
    Last edited by a moderator: May 19, 2011
  6. M3k

    M3k h4x Member

    Joined:
    Jul 28, 2008
    Messages:
    37
    Oh, I didn't know about that.

    You would be amazed at how many people ask me how to use Sound Porter.


    And MarkeyJester already wrote a guide on how to port using Hex, I believe.
     
  7. c1owd

    c1owd Previously 'CarrascoZX0' Member

    Joined:
    Dec 13, 2008
    Messages:
    364
    Not exactly, he wrote a step by step tutorial on how SMPS works. Not how to port from tracks from other games.


    But, reading his guide is very helpful and gives you a great understanding on how SMPS works. Which is essential if you want perfect music ports from other games.


    Now, as for using tools to port music. I myself use to use tools back then when I had hardly any knowledge of SMPS. The ports that come out of those music porting tools like ESE and Music Pointer Fixer aren't really that great. But, there decent I guess. =P

    I agree with EK on this completely. I myself, do all music ports using just a hex editor.


    Even though it takes a good while for music ports to be done using just a hexadecimal editor. In the end, the ports that are done with using a hexadecimal editor will always be better than the ones done with tools. =)
     
    Last edited by a moderator: May 19, 2011
Thread Status:
Not open for further replies.