Basic Questions and Answers Thread

Discussion in 'Discussion & Q&A' started by Malevolence, Jul 7, 2009.

  1. Crimson Neo

    Crimson Neo I changed a lot. Member

    Joined:
    Sep 9, 2013
    Messages:
    506
    Location:
    Where I didn't wanted to be.
     (error s3&K special stages red splere and very blue splere.

    I'm doing a special stages in my hack s3&K I have only problems (what problems?)well....when I put many red spheres with many blue sphere the game freezes when caught 1 or 2.

    there is some correction for this?

    note:I'm forced to by a few blue spheres in special stages & other plobem why i got free perfect ?

    edit:i tried search in retro no results found for me.

    edit 2:how I am required to put a few blue sphere are obliged to do the special stage that way



    this is example, also am not very good with the special stages.
     
    Last edited by a moderator: Nov 18, 2013
  2. nineko

    nineko I am the Holy Cat Member

    Joined:
    Mar 24, 2008
    Messages:
    1,902
    Location:
    italy
    edit: this post is a reply to MarkeyJester's, I didn't notice kelvin posted inbetween while I was typing.


    I agree with what you're saying as a general concept, but just like it might be wrong to say that Z80 drivers are always better, people should definitely stop to praise and worship the Amazing Clone Driver™ as if it was a new God. Pretending that it is the only cool driver worth to be used is extreme misinformation. In fact, I think the Clone Driver is one of the worst pages in the Sonic hacking history, and everything would have been better if it never existed. Everyone got so obsessed with it that they forgot the other drivers existed, and instead of researching how to improve the other drivers (something which, for example, would have been as simple as setting a flag, as said by Flamewing) it just became the default response to every music problem ever. "Hey I have this issue with music in my hack" -> "Use the Thrilling Clone Driver™, and don't forget to lick its ass while that you're pasting its sacred assembly lines into your pathetic files". Isn't that a wrong approach which unavoidably brings people to be blindfolded instead of being open to alternatives, better or not? I think we all can concur on this.


    That said, I'll stop being objective now and I'll say my personal opinion. I think it's a waste to have the Z80 sitting there doing nothing while the 68k might be struggling to do all the work by its own, and aside from the usual 3 or 4 known people I never heard anyone complaining so much about the quality reduction of the PCM samples, for one I never really noticed nor cared about it, and I bet the casual gamer would prefer to play a hack with smooth responsive controls and no lag rather than a hack which lags every other second "but the drum samples are sooooooooo good!". Technology is meant to get better. Sonic 1 had a certain driver, certain compression formats, certain level drawing routines. Sonic 2 improved on that. Sonic 3 & Knuckles got even better, levels got gigantic and could be drawn faster thanks to the better object management system. Keyword: "better". It's called "evolution", if Darwin could explain why giraffes have a long neck I bet everyone can explain why Sega decided to move on and stop focusing on the obsolete 68k driver. If you play Sonic games because you want to listen to good drum samples I think you're entirely in the wrong place.


    As for kelvin's issue, there you go. There is no known fix for that problem. I was so disappointed when I wrote the Special Stage editor and I found out about that :(
     
    Last edited by a moderator: Nov 18, 2013
  3. Crimson Neo

    Crimson Neo I changed a lot. Member

    Joined:
    Sep 9, 2013
    Messages:
    506
    Location:
    Where I didn't wanted to be.
    nor disassembly powerful and capable of this? ):

    in that case I will strive to make a  bestspecial stage  =P MEH
     
    Last edited by a moderator: Nov 18, 2013
  4. nineko

    nineko I am the Holy Cat Member

    Joined:
    Mar 24, 2008
    Messages:
    1,902
    Location:
    italy
    Yeah, sadly the Special Stage code doesn't do a very good job at that, but you can get quite creative anyway if you know what you shouldn't do :p
     
  5. MarkeyJester

    MarkeyJester ♡ ! Member

    Joined:
    Jun 27, 2009
    Messages:
    2,867
    Although I admit people do tend to do the exaggerated praise, Ralakimus didn't, and yet people are going off thier tits as if he did. He just suggested it for being generally easy to use, I'd hardly call that praising it for being amazing or thrilling, nor is it justify enough to be lectured at either.

    On a side note, the Z80 isn't sitting there doing nothing, in both cases 68k tracker controlled or not, the Z80 is always functioning. The "sitting there" you refer to is actually the "continuing flushing of the sample to prevent the chopping quality". And regarding the complaint of quality, that's not the point I was making. The point I was making is that the decision should be based on use, and not because someone else says so, as I clearly pointed out in my last paragraph. I wish people would read my posts thoroughly.
     
    Last edited by a moderator: Nov 18, 2013
  6. Crimson Neo

    Crimson Neo I changed a lot. Member

    Joined:
    Sep 9, 2013
    Messages:
    506
    Location:
    Where I didn't wanted to be.
    do that and life must go on I like the challengesa simple mistake will not make me give up I will be persistent but still bound ^__^

    edit: meh... this an answer to  nineko.
     
    Last edited by a moderator: Nov 18, 2013
  7. Devon

    Devon I'm a loser, baby, so why don't you kill me? Member

    Joined:
    Aug 26, 2013
    Messages:
    1,376
    Location:
    your mom
    Is MarkeyJester the only one who understands my post? Yes, it was just a simple suggestion. I do NOT worship, praise or promote it in any way. Please, do not just assume that I worship the clone driver because I just simply suggested it. In fact, I hardly even use it at all! So if you don't agree, then how is suggesting it immediately makes me worship it?
     
    Last edited by a moderator: Nov 18, 2013
  8. FFuser

    FFuser a.k.a Darklight Member

    Joined:
    Nov 14, 2013
    Messages:
    88
    Hi. I'm having a small issue with porting music to Sonic 1 and wondering if someone can let me know what I should be looking for/point me in the right direction.

    I'm pretty new to this, but I've been reading MarkeyJester's SMPS guide and Tweaker's music hack guide and understanding it a little bit more each time I look over them.

    What I've managed to do so far is figure out how to take a Z80 song (Marble Garden act 1 from S3) and convert the header/fix the F6 and F7 flags' pointers so it almost matches the one on the repository except for the drums (I noticed the drums in the one Pokepunch posted are different from the original song though, so I assume that means it just needs the notes edited). After that I successfully ported another Z80 song from S3 independently to make sure I had the process down. Again it only seems the drums will need adjusting.

    Now what I'm having trouble with is porting a 68k song from a different game to S1. I thought it would be smoother than z80 since the pointers in the header didn't need to be changed (right?), but I guess it's not gonna be that smooth.

    I tried one song from Shinobi 3 and another from Revenge of Shinobi (since that one wasn't listed as 68k/mod like Shinobi 3 was). But they're both messed up. The song from Shinobi 3 doesn't crash and starts off fine, but then gets distorted over time and I can hear parts of it looping at the wrong places.

    The Revenge of Shinobi song is just all kinds of messed up, playing odd sounds and the "Sega PCM" repeatedly until it eventually crashes. It doesn't even resemble the song it's supposed to (or any song for that matter).

    So my question is for these types of songs, what flags or parts of the song should I be looking for to fix when porting if they are at all possible to fix? 
     
  9. ValleyBell

    ValleyBell Well-Known Member Member

    Joined:
    Dec 23, 2011
    Messages:
    166
    When porting SMPS 68k to Sonic 1 SMPS, you need to take care of a few commands.
    Here is a list of the most important (and commonly used) ones:


    E3  [no parameters] stops a track -> change to F2 (I don't think I've see this used in song though)
    E4  [1 or 5 parameters] Pan Animation -> remove (feature missing in S1)
        Note: If the first parameter is 00, the command ends there. Else there are 4 additional parameter bytes following.
    E9  [2 parameters] set LFO data -> remove (feature missing in S1)
    F1  [2 parameters] set Modulation Type B -> remove or replace with F4 (S1's F4 command has no parameters)
    F4 [1 parameters] set Modulation Type A -> remove or replace with F4
    Note: F4 80 is exactly equal to F1 in Sonic 1, F4 00 is equal to F4.
    F9  [no parameters] return from subroutine (very common!) -> replace with E3
    FA  [1 parameter] set Tempo Modifier -> replace with E5 xx
    FB [1 parameter] change Transpose -> replace with E9 xx
    FC [no parameters] Modulation On -> replace with F1
    FD [no parameters] Modulation Off -> replace with F4

    There are a few other differences (commands EB, ED, EE and FF xx), but you probably won't see them in songs.

    About Revenge of Shinobi: I've had a look at this game a few weeks ago. It's something based on SMPS, considering how PSG instruments are stored in the ROM and how the header of the songs matches SMPS, but unfortunately the sequence format itself is completely different.

    Currently there's no way to port from or to this game.

    Streets of Rage and A Ressha de Ikou MD have the same issue: They're listed as SMPS, but their format completely different. (Now that I look at it, their format seems similar to Revenge of Shinobi though.)
     
  10. FFuser

    FFuser a.k.a Darklight Member

    Joined:
    Nov 14, 2013
    Messages:
    88
    Thanks a lot. I fixed the song from Shinobi 3 with that information and it sounds perfect. One of the things I did make sure of was not to change one of the bytes if they appeared to part of another flag (for example F9 could be a part of "FFF9" which could be a pointer for the F6 or F7 flags).

    Is it safe to assume that I might have to fix the same flags if I tried to port a SMPS Z80 song from a different game to Sonic 1?
     
    Last edited by a moderator: Nov 19, 2013
  11. ValleyBell

    ValleyBell Well-Known Member Member

    Joined:
    Dec 23, 2011
    Messages:
    166
    Most flags match between SMPS 68k and Z80, but there are a few differences.
    Additionally I noticed that there are 2 general versions of SMPS Z80 driver with both having small differences in the coord. flag set.
    Most coordination flags stay the same across all games which use that certain version of the SMPS Z80 driver, but small modifications to the driver seem to be very common.

    Luckily it's pretty easy to distingush between the 2 versions.
    Both versions can be found by searching for "F3 F3 ED 56 18 xx 00 00" in the ROM.
    Version 1 continues (always?) with "3A 00 40 CB", version 2 often with "2A 02 1C 06". Version 2 drivers often have blocks with a C9 byte followed by multiple 00s within the first 0x38 bytes.

    SMPS Z80 Type 1 is present in: Battletoads, Bonanza Bros., OutRun

    SMPS Z80 Type 2 is present in: Dyna Brothers 2, Chaotix, The Hybrid Front, Mega Man, Sonic 3

    (These are just a few examples.)

    Differences are: (first column is SMPS Z80 version)


        E4  [5 parameters] see SMPS 68k (note that it always takes 5 parameters)
    T1  EA  [3 parameters] set sound driver update rate (YM2612 Timer A value), affects music and SFX speed
    T1  EB  [3 parameters] add to YM2612 Timer A value
    T2  EA  [1 parameter] Play DAC sound -> remove
    T2  EB  [3 parameters] Loop Exit (jumps on the last repetition of an F7 loop) -> needs lots of manual editing
        EF  [1 or 2 parameters] set Instrument, but can also reference instruments from another song (see Sonic Retro Wiki)
        FC  [1 parameter] Pitch Slide Mode On/Off (01 enables it, everything else disables it)
            This is a bit difficult and pretty common.
            If this is enabled, every note is followed by a "slide speed" value.
            This value is added to the raw note frequency every frame.
            You can emulate it by inserting these bytes BEFORE the note: F0 00 01 ss FF (ss = slide speed)
    The FD, FE and FF xx flags are pretty much the same as they are on the Retro Wiki, Sonic 3 section, except that SMPS Z80 Type 1 has them all shifted by 1.
    The command FF 00 xx (Type 2)/FF 01 xx (Type 1) is the only interesting one though and is equal to EA xx from Sonic 1.
     

    btw: I recommend SMPSConv for SMPS 68k -> Sonic 1 conversions. SMPS Z80 -> Sonic 1 might work too, but it can't handle the E4 and FC commands in S3K mode. It should be able to handle the EB flag correctly though.

    EDIT: It won't let me use links in the code block, so use this link to the Sonic Retro Wiki.

    EDIT2: I wrote "SMPSOpt" instead of "SMPSConv", sorry.
     
    Last edited by a moderator: Nov 22, 2013
  12. FFuser

    FFuser a.k.a Darklight Member

    Joined:
    Nov 14, 2013
    Messages:
    88
    Thank you. I tried it and can get good results for a Sonic 3 song, but I did compare a SMPSOpt converted Shinobi 3 song to a version of the song I did manually and the manual one was more accurate/identical to the original, so I used that one instead.

    I'm having problems figuring out how to correctly manually edit Ristar songs in general though. The ones I wanted to use are long songs and have a lot of instances of potential coordination flags' pointers to change (and also some ambiguity as to whether the "flag" is just part of a pointer in another flag). Correct me if I'm wrong, but you're only supposed to add $1 to the pointer of the coordination flags right? So for example if the flag was something like "F6 FF A7", then I should change that to "F6 FF A8" if I wanted to go from Ristar to Sonic 1? Does this only apply to flags meant to jump/loop in the song (F6, F7, F8) or more than that?  

    I tried going through a song a few times. First I changed the F6, F7, and F8 pointers (song instantly crashes), then I stepped through and replaced the commands for 68k that ValleyBell listed earlier (which works wonders for Shinobi 3 songs) and it just keeps crashing and I'm no longer sure what to fix with it.

    Then I just put the Ristar songs through the SMPSOpt and some songs are okay, but it presents some glaring errors on the other songs (such as the SegaPCM sound polluting parts of the song and apparently replacing the DAC sample definitions listed in the Music hacking guide didn't help to get rid of it... so I no longer know what causes it) . Also after the conversion it changes the addresses and data too much for me to manually go through it and compare it to an unchanged version of the song so I can figure out what I'm doing wrong.

    Does anyone happen to have a manually ripped song from Ristar so I can try to figure out how to match an unchanged song with it and port it correctly? 
     
  13. MarkeyJester

    MarkeyJester ♡ ! Member

    Joined:
    Jun 27, 2009
    Messages:
    2,867
    http://mrjester.hapisan.com/MUS.bin

    Here's a port of "Ice Scream" I did by hand many years ago. As I recall, yes indeed some pointers are +1 or -1 or something like that, but not all. But it's been about... oh god, 7 years? I'm afraid I don't remember the details sorry...
     
  14. EugenTheBoySecond

    EugenTheBoySecond Newcomer Trialist

    Joined:
    Sep 24, 2013
    Messages:
    6
    Location:
    California,United States
    For my new Sonic 2 hack.




    Porting music in Sonic 2 with its original sound driver is pretty hard. It has a Z80 sound driver that is hard to work with and the music is all compressed and they all have to be within the sound bank limit of $8000.

    What I can recommend is the Sonic 2 Clone Driver. It's a modified version of the Sonic 1 Sound Driver, and it's much easier to work with and the music does not need to be compressed or be within a certain limit.

    Anyways, after you implement it in, you can put music files (.bin extension) without too many problems, even Sonic 1 songs! Just replace the music you are replacing with the music that will replace it.

    NOTE: You can not just change the mp3, wav, mid, ogg, etc. extension to .bin and expect it to work. It MUST be in SMPS format, a music format for the Genesis/Mega Drive.

    If you want to put in your own custom music, this can help. The music uses voices for instruments, in the guide it shows how you can implement them. Many voices can be found in the SMPS archive.

    Sonic 2 Clone Driver: http://info.sonicretro.org/SCHG_How-to:port_the_Sonic_2_Clone_Sound_Driver_to_the_HG_version_of_Sonic_2



    Thanks but is it another post on your post.

    Well.....This is pretty true, but adding in banks isn't too particularly hard, not to mention, I doubt anybody ever goes over the $8000 byte limit. To be fair, using the S2 sound driver is a bitch, but.......

     

    No. No, no no. What is it with you people and your ridiculous massive hard on for the S2 clone driver? It is still at the end of the day the shitty S1 m68k driver. We seriously live in the modern times. Why are we still using the m68k driver to run our music? The MD has a great little chip called the Zilog 80 that can run music processing. Why are we not using it and continue to circle jerk to the S2 clone driver as if it's Angelina Jolie?

     

    Newsflash people, it isn't. Though the m68k driver shows that it doesn't use all that much more processing power as the z80, it still has plenty of drawbacks. You know that lag you get sometimes in the game when it's trying to load so much shit? Using a z80 driver could easily just replace that problem all together. The music lag would basically be nonexistent. 

     

    Though you are correct about the S2 driver being a bitch to work with, the S2B z80 driver and the S3K driver don't have those issues, of course you'd have to learn how to implement either or. That being said, the S2B driver is a bit easier to work with, but that is mainly because it runs uncompressed songs naturally, it's just a matter of figuring out how to use the SMPS properly. The other downside is that there is no public disasm of the z80 driver, and I'm too early in jotting down notes and adding fixing too it to release my own personal version.

     

    The S3K driver on the other hand, well specifically flamewings, doesn't have any of these issues, the only downside is that your disasm has to be AS for it to work properly.

     

    And Skull

     


    Fixed you spelling of "knowledge", dear.

     

    Next off, stop being a lazy cum sucking cunt and use the damn search bar. It's bound to be around somewhere. 



    Thanks for you!On sonic 2 sound driver.And thanks to Ralakimus to another post.A new sonic 2 hack will be comming soon.Maybe in December 6 or not?...I don't know but,it will be putting.
     
  15. nineko

    nineko I am the Holy Cat Member

    Joined:
    Mar 24, 2008
    Messages:
    1,902
    Location:
    italy
    On another topic, since the day you joined I've always been wondering why your profile picture is a BMP with .PNG extension, I never said anything because I wasn't sure where to point that out, but since this is a topic for basic questions, here's mine: why don't you convert your profile picture to a real PNG file? Please note, I'm not saying this as a moderator, as this isn't against any rule. It's just a general question, since using a wrong file extension is bad practice (even when and if it works).
     
  16. โบวี่

    โบวี่ Tsingtao Enjoyer Member

    Joined:
    Dec 27, 2011
    Messages:
    215
    Alright, so I'm having an issue with off-screen items messing up in my Sonic 1 hack. What happens is that if I collect a single ring within GHZ1 all the off-screen rings will disappear and the monitors will act as if they were already busted open. This is quite frustrating as you cannot collect any more rings, use signposts, or use any monitors that were off-screen. All of the other levels behave normally when a ring is collected which points me toward my hypothesis that when I blanked out GHZ1, the removal of some of the stuff caused this. I removed the layout and all the objects besides the Sonic start points and the Signpost and big ring at the end of the level is all. Was there an object I wasn't supposed to delete, and if so what is it so I can add it back in?. 

    I apologize if this is a very noob mistake, and I especially apologize if it has already been answered, I used the search bar and couldn't find anything about this issue.

    Edit: grammar was a bit off...
     
    Last edited by a moderator: Nov 23, 2013
  17. MainMemory

    MainMemory Well-Known Member Member

    Joined:
    Mar 29, 2011
    Messages:
    922
    You probably didn't set the "Remember State" flag on any of the objects. Without it, the game won't remember whether you've collected rings/broken monitors/defeated enemies. SonLVL at least will automatically set the flag on objects that need it (as long as the definitions say so).
     
  18. MarkeyJester

    MarkeyJester ♡ ! Member

    Joined:
    Jun 27, 2009
    Messages:
    2,867
    Hmm, did you remove...

    dc.w ObjPos_SBZ1pf5-ObjPos_Index, ObjPos_SBZ1pf6-ObjPos_Index
    dc.w ObjPos_SBZ1pf1-ObjPos_Index, ObjPos_SBZ1pf2-ObjPos_Index
    dc.b $FF, $FF, 0, 0, 0, 0
    ObjPos_GHZ1: incbin objposghz1.bin
    even
    ObjPos_GHZ2: incbin objposghz2.bin
    evenThat "dc.b $FF, $FF, 0, 0, 0, 0" there? Or any FF FF 00 00 00 00 markers in the layout data "ghz1.bin"?
    That's the only thing I can think of right now... We might need more information.
     
    Last edited by a moderator: Nov 23, 2013
  19. Onapa

    Onapa Newcomer Trialist

    Joined:
    Jul 18, 2013
    Messages:
    5
    Location:
    Michigan
    I have a question, is there a tool that can easily port art from one Sonic game to the next ?
     
  20. FFuser

    FFuser a.k.a Darklight Member

    Joined:
    Nov 14, 2013
    Messages:
    88
    Another music question: For games that only have the offset where the music pointers start and not the song name (e.g. Pulseman or Columns III), is there an easier way to pinpoint and figure out which song I'm ripping within the ROM other than finding out what the song is after I port it to Sonic 1?

    I thought they would be in the order of each game's sound test but I don't think that's the case anymore after I ended up with Scene of Carnage instead of Industrial District when porting from Columns 3. But yeah, I have a few games I'm ripping the songs from that don't have the specific song names and their starting pointers listed and wanted to know which song I'm ripping before I try to port it so I don't have to potentially go through every song in the game.
     
    Last edited by a moderator: Nov 29, 2013