don't click here

Sonic 3 Complete

Discussion in 'Engineering & Reverse Engineering' started by Tiddles, Dec 25, 2009.

  1. flamewing

    flamewing

    Emerald Hunter Tech Member
    1,161
    68
    28
    France
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    There are a few things that might be relevant here:
    1. Tails's AI aims a point 32 pixels to the left of Sonic's position as it was a few frames ago (16, if memory serves);
    2. Tails has the same position cap as Sonic;
    3. Loop code does not change Sonic's position array, just his current position.
    So maybe Tails starts to run and catches up to the position it wants to get close to Sonic. Then, a loop point comes along and Tails thinks Sonic is suddenly far to the right; Tails now aims to catch up with Sonic. He will run up to the position cap. His desired position catches up to the post-loop positions, and he realizes he is now ahead of Sonic; so he slows down.

    This is a theory; I'd need to look through the code to made sure all of these factors are really relevant. But maybe only the position cap would be enough, and Tails may need to be lower than Sonic's. Or maybe just change Tails' AI so that it does not aim for 32 pixels behind Sonic during the battleship scene.

    If Tiddles and Neo want, I can port over the prototype I made for SCH. It is compatible with insta-shield and other shield abilities, although the latter may be a bit redundant with fire shield dash.
     
  2. Liliam

    Liliam

    Oldbie
    1,563
    117
    43
    Actually, I had already programmed the drop dash on my own prior to Mania's release. But it doesn't matter what I want because I no longer work on S3C.
     
  3. flamewing

    flamewing

    Emerald Hunter Tech Member
    1,161
    68
    28
    France
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    Oh, yeah, I had forgotten about that (both counts).
     
  4. EterTC

    EterTC

    Member
    12
    0
    0
    First I'd like to say that I really enjoyed this hack. It makes the Sonic 3 & Knuckles experience more fulfilling. Lots of added features and fixes, and I also love the many customization options, it allows you to play the game to your liking.

    This may not be the right place, but I'd like to say something. It's not actually a bug report, but something odd that I noticed about the music. If I choose the "Classic" themes, and then choose the "Special Theme" for Super Sonic, it will play the Super Sonic theme from Sonic 2 instead of the unused theme from S&K Collection. Wouldn't it make more sense if that was a separate option? Like having "Classic" as an option in Super theme?

    Also, would it be possible to add the Sonic 2 Beta sprites to the customizer page? Or the Blue Knuckles palette for Knuckles?
     
  5. JigenD

    JigenD

    Member
    95
    19
    8
    Without wanting to sound overly insistent I'd like to - once again - draw your attention towards the possibility of bringing this project to the Mega CD, similarly to how it happened with Sonic Megamix. SEGA is not going to give us the S3K re-release anytime soon, and even if it did, there would be a fairly big chance of it never seeing an actual home release, staying instead in the tiny screens of iOS and Android devices, similarly to hpw it happened with Sonic 1 and Sonic 2.

    I have read the latest entries of this tread, regarding the supposed forking of the project with Neo and Tiddles, both having their own unique ideas as to how to move the project forward. Now, about that I know as much as anyone else browsing the forum, and even though I could not code to save my life, I'd like to still, use the little influence I have to bring a simple idea into the attention of everyone. Please do keep in mind that I'm not trying to be patronizing towards anyone. This project has been an absolute godsend thus far, but to see it move forward is the wish of everyone, I believe.

    With this said, I'd like to ask about the possibility of doing the following in future releases. I believe my suggestions are not that far fetched, and have been suggested by other people, at one time or another, but never came into fruition.

    - Adding a few more inbetween sprites for the 3 playable characters (smooth sprite rotation): This has been done before, in MarkeyJester's Pana Der Hejhog, and Sonic 1 Smooth Edition, so it is not out of the scope of Mega Drive project such as this one. It dramatically improves the feeling and fluidity of the game, as we saw in Sonic Mania (even though this game is lacking in smooth rotation for the spinning animation, which is a shame IMHO).
    -Porting the project into the Mega CD: This is an obvious one. Sonic Megamix was ported into the CD and I see no reason as to not do this for this project. The CD quality music would avoid those interruptions in the instrumentality when too much stuff is happening, and would even allow for people to replace the soundtrack with higher quality/ remixed versions of the same songs.

    I don't see any cons to doing any of the 2 above suggestions, nor do I find them to be a "betrayal" of sorts of the original spirit of this project. It would deliver the purest, most unadultered Sonic 3 experience possible, which I'm all for. Heck, if I was some sort of coding God, we'd be seeing this project find a new home in Sonic Jam's Sonic 3 version, and a bunch of new small details would be included, perhaps even for all classic games in there (in line with what taxman did for the mobile ports of Sonic 1, 2 and CD).

    I am mostly putting these 2 ideas out there, hoping to get people interested in it. I know that if I knew anything about engineering and reverse engineering, I'd try to do it myself, but no luck thus far. Either way, all I can hope is to inspire the devs to do something similar in pushing this project forward. So many great things have been done with this project, we all want for it to get even better.
     
  6. Flygon

    Flygon

    Member
    I'm really not entirely sure how much you understand the difficulty of porting over to the MEGA CD. The lack of RAM alone is a serious kick in the balls.

    Sure. Maybe Mode 1 shenanigans? But running from a CD alone sounds like an awful idea.
     
  7. JigenD

    JigenD

    Member
    95
    19
    8
    Oh yes, I didn't assume it to be easy, quite the contrary. But it has been done before in Sonic Megamix.

    My 2 main points were bringing CD or near CD quality music and smoother animations to this project.

    Whatever route is taken doesn't mean much, just follow the path of least resistant and greater results. Heck, if porting to the 32x would give us better audio and graphical possibilities (and it has been done before with Sonic 1 as a proof of concept) then by all means, if it is more feasible, do it. Now I don't wanna sound like I'm patronizing, let me emphasize that again. But any idea which pushes this project further should be taken, because as it stands, SEGA willl leave S3K in a limbo for god knows how long.
     
  8. flamewing

    flamewing

    Emerald Hunter Tech Member
    1,161
    68
    28
    France
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    Porting to the Mega CD is probably impossible for S3&K: stock S3&K art for Sonic and Tails, plus mappings, take up about 256kB of space. This is all of word RAM in 1M mode, and you still need to fit all code and assets required for the entire zone (Sonic CD and Megamix do this per act) into the 0kB remaining. This means no space left for code and all other assets. You can probably get by with a lot of trickery (compressing frames of at for Sonic and Tails and decompressing as needed), but the game would be much slower on the end.

    Porting S3&K to 32x would be a less unrealistic thing to ask for than porting to Mega CD.
     
  9. redhotsonic

    redhotsonic

    Also known as RHS Tech Member
    1,587
    10
    18
    United Kingdom
    YouTuber
    Unless I am missing the point... why would you want to port it to the MCD (or even 32x)? It runs perfectly fine on the MD. Just a waste of time and effort if you ask me.
     
  10. JigenD

    JigenD

    Member
    95
    19
    8
    The point with porting S3 Complete to either the Mega CD (or even the 32x) would be vastly improved audio. In short, doing for this project the same that Sonic Jam did for the games in that collection. The 32X in particular could allow for some neat effects here and there; possibly helping with the extra inbetween sprites for added smoothness that I suggested,something which some proof of concept projects have already done. All I'm doing doing is suggesting things that will propel this project further, into a perfect Sonic 3 experience.
     
  11. Clownacy

    Clownacy

    Tech Member
    1,094
    669
    93
    Moving to CD would break a lot of audio, too. For example, in Sonic Jam the speed shoes monitor causes the music to restart. Also, on the Mega CD there would be pauses while the disc seeks to start a new song, leaving awkward periods of silence. The 1UP jingle would also probably not work properly, considering how Sonic CD removed it entirely. That doesn't sound like the perfect Sonic 3 experience, to me.

    You also have the issue of emulator support: just about every Mega Drive emulator can run S3C, but not many support the Mega CD, or especially the 32X.
     
  12. Liliam

    Liliam

    Oldbie
    1,563
    117
    43
    I am always hesitant about posting in topic because S3C isn't my baby, but I feel there are a few points I should address.

    Are you willing to draw the inbetween sprites yourself? Remember, Sonic alone has about 200 frames while Tails and Knuckles are closer to 250 each, so I expect about 700 new frames to bump the smoothness up by just one factor. As for adding extra angles to the running animation, you could just rotate and clean up the existing frames, but that's still about 70 new frames for just one extra factor of rotation, and about 200 frames for two.

    And add much more disruptive interruptions when the CD has to stop and rewind to the beginning of the track?

    Citation needed. I like the original Mega Drive compositions.

    This is the point in your post where you should have reconsidered your approach.

    Your claim is that you're not trying to be patronizing or pushy, but then you admit you don't have the knowledge to identify problems with your obvious improvements. It's understandable that you don't know the rubs of Mega CD development; hell, I only know the broad strokes. Most folks look at the 4 MB and 700 MB figures and immediately pick out a winner, with CD-quality audio to boot! What could possibly go wrong?

    The short story is, reading from the CD is agonizingly slow, whereas reading from a cartridge is lightning fast. So fast, in fact, that you can execute code, and even read huge swathes of data such as all the character sprites directly from the cartridge. Not so with the CD: everything needs to be preemptively loaded to a region of memory called

    work RAM, which as flamewing points out is tiny, and as such only grants you access to a very small slice of the CD at any given time, much smaller than the maximum capacity of a Mega Drive cartridge. This backwards-ass design meant it was actually easier for Sonic CD's developers to essentially include 70 standalone ROMs in the CD, each with a single stage, and load them one at a time whenever you clear the stage or travel in time. Ironically, carrying round 70 copies of Sonic's sprites is cheap on the Mega CD, but fitting them in work RAM is nigh impossible.

    Having said that, the Mega CD has another mode in which the the cartridge slot and the CD drive can be used in tandem. I am not opposed to this, so long as the game can still be played using the cartridge alone: I once half-jokingly suggested that given all the classic music options already in the menu, S3C should also detect any official version of Sonic CD in the drive, and add that game's jingles to the list of options.

    I'm not sure this is a worthwhile endeavor if you don't intend on making radical changes to the game's graphics.
     
  13. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,789
    370
    63
    SonLVL
    If you want improved audio, you should be asking to port it to Sonic & Knuckles Collection (which I would still love to try btw).
     
  14. Liliam

    Liliam

    Oldbie
    1,563
    117
    43
    This is a much more compelling argument, to which my only counter is that I like programming against arbitrary hardware limitations.
     
  15. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,789
    370
    63
    SonLVL
    I said I would love to try it, meaning that you would give me the relevant code and data (or just directions on what needs to be changed), and I would attempt to translate it into a mod or series of mods.

    But this is perhaps a discussion that should be happening in a more private location.
     
  16. JigenD

    JigenD

    Member
    95
    19
    8
    If it can be done on the S&K collection, then it'd be great if one day it comes to fruition. And thanks for the clarifications on the Mega CD ram, which I was unaware of. Regarding the sprites, I am sure that they exist, at least for the S1 sonic and tails. Either way, my main point with all this back and forth was mostly trying to gather some interest regarding improving the audio and animation, with no compromises for the whole experience (which, as I now realize, the Mega CD has).

    One day there may be alternatives. This project has already done lots of great things regarding bug fixes, color correction, object placement, level order, and even a certain degree of customization. My greatest wish regarding this particular game is for us to one day have our widescreen, superbly animated experience with CD quality audio, and maybe even a few extra small 32-bit-esque graphical goodies, akin to mania. But that, only time will tell. The best we can do is keep pushing this thing forward.
     
  17. Flygon

    Flygon

    Member
    You don't even need any additional hardware to help render additional animation frames. The limitation was always about ROM space, more than anything else.

    While I'm sure we appreciate your enthusiasm, the boisterousness really does feel quite misplaced. For the things you're discussing, they aren't even really coding limitations. They're largely not even hardware problems.
    They're financial problems.

    Take it from my own perspective. I'm working on a script for a Master System game project. Now here's the thing. My main problem isn't actually hardware limitations - as much as those do very much factor in. It's financial.

    Artists cost money. Musicians cost money. Even for a project that's very much labor of love, like Sonic 3 Complete, it's not going to be easy to find artists and musicians that can produce works up to the caliber of Sonic Team of the era. And the best are going to want money, if you want these things done in any reasonable amount of time.


    Sonic 3 Complete could very much have overhauled artwork without switching platforms at all. But are you willing to donate the hundreds of dollars to get that ball rolling?
    Music is another story, of course. - But even if you allow usage of the MEGA CD sound hardware, or 32x, producing something up to the standards - for every single track - set by Sonic Team aint gonna be easy.


    Don't get me wrong, we would all very much love to make a new-and-improved Sonic 3 & Knuckles experience. We all secretly do. It's even a childhood dream for most of us.
    But to avoid your enthusiasm being crushed much harder, much later, I really do need to make you understand that the problem isn't a lack of motivational speaking. It's a lack of money.

    Money will always be the biggest problem.

    also doing these sort of enhancements based on a pc port makes a whole lot more sense than working on 25 year old garapagos hardware anyway tbh
     
  18. Liliam

    Liliam

    Oldbie
    1,563
    117
    43
    I don't think you appreciate the point I was making with the first part of my post. You're not pushing anything forward.

    Do you really think no one has thought about adding extra rotation sprites and developing for the Mega CD before? Clearly they have, because you cited two projects which already implemented those ideas!

    Suggesting such basic, yet extremely demanding features, without putting any of your own effort into making them happen is, to me, more than useless; it is outright insulting. Do you think skill and knowledge just comes naturally to a few people? I spent my first ten years in this community without so much as reading a single line of code. One day a couple of years ago I posted a picture I drew in Paint, a few months later I was sending Tiddles art and sprite mappings authored in SonMapEd, then I was editing animation scripts, and before I knew it, I had programmed the drop dash from Sonic Mania and the boost mode from Sonic Advance 2, and now I'm writing a blog about bad subroutines leaving behind dirty object RAM which triggers otherwise unused hangover code from Sonic 2. And I'm still messing around with art and sprite mappings in SonMapEd.

    Saying "it would be nice if we had so and so" doesn't really help anything unless you're willing to work towards that goal in some way. If you can't program, you can produce assets. If you're not an artist, you can design storyboards and animatics. If you have none of those skills but still have a vision, then hone those skills so you can one day deliver on that vision.
     
  19. JigenD

    JigenD

    Member
    95
    19
    8
    Well, you think wrong regarding appreciation. And also I humbly disagree, regarding what pushes things forward. Any contribution, or idea has the potential of pushing trends and ideas into any given direction, even if just by a bit.

    Just as I am a member of this community, I am also a member of a bunch of others. And just as with any other place, in all communities, there's an interdependent dialectic, established between modders, fans, admins, etc.

    Once in a while, someone will present something new. Sometimes it's a vague concept, others it's a piece of memorabilia. Sometimes it can be a 3d model, other times it will be a convoluted new concept, or a piece of previously unknown trivia. And just like any other place, sometimes these threads pick up steam and get people talking. People that had spent time working in small pieces of content will publish them if it's topic related. Volunteers will appear. New projects are born. Trends in the modding scene are created. After all, a community is a place to where ideas and concepts are shared. When users actually talk sometimes people that have had the same idea for months or years will join in, and start cooperating. Even in the last few entries of this thread I'm proven right, for the sole fact of mainmemory showing up, and dropping an idea tangent to mine. For cooperation to take place, a dialogue must first get started. It's not a hard concept to understand.

    I am not really sure what you mean with the "insulting" part. If everything depended on you, would you rather have users not talk? No one is putting you down, there's no need for you to be so pent up over a false, perceived sense of being devalued. I have already apologized (when maybe I shouldn't have, because I didn't insult anyone) for not knowing about the RAM limitations of the Mega CD. If I was really being unappreciative, I'd probably just drop one or two lines of text when I made my initial suggestion (which is actual true dismissal). But I actually dropped 3 paragraphs, where I explained my point of view based on the things I knew. Now if you think that average users should actually be apprehensive before posting a suggestion or idea, well, all I have to say is that I do not agree with that.
     
  20. flamewing

    flamewing

    Emerald Hunter Tech Member
    1,161
    68
    28
    France
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    I also thought about saying something along those lines, but I decided against it since the technical limitations of the Mega CD were already enough for my point.

    But since you mentioned this, I want to add that those 700-1000 frames you estimate are a small part of what would be needed: there are the alternate sprite sheets to account for, as well as Super Sonic.

    And why stop at the normal game? Don't the special stages deserve some love? And maybe Mecha Sonic too? Eggman? At which point does it stop?

    Yeah, it is a lot of work for slightly smoother animations. It is workable when you have a team of artists being paid to do it, not when you have individual volunteer artists doing it on their free time.

    True. That is not what happened in this case. Converting SCH to Mega CD has been suggested several times over at it's thread and in other locations, and shot down as many times. It is likely that other popular hacks have received similar requests over the years.

    Smooth animations are also not a new thing: Pana had smooth animations way before Mania came about, and yet most hacks don't post-Pana also don't have that level of smoothness — for pretty much the same reasons.

    You are not suggesting new things, you are rehashing old often seen things and combining them in a single post.