Fixes for the Sonic CD remaster?

Discussion in 'Engineering & Reverse Engineering' started by Blue Spikeball, Sep 6, 2019.

  1. Blue Spikeball

    Blue Spikeball

    Member
    479
    0
    16
    I recently started replaying the Steam version of Sonic CD. I haven't kept up with SCD modding, so I was wondering if fans have patched any of the following bugs, and if not, how feasible it would be to fix them:
    - The third act of a zone being occasionally a bad future when it should be a good future.
    - The running time required for time traveling being longer than in the original. This made it harder to time travel, and rendered many of my "time traveling spots" from previous versions unusable in the remaster.
    - The player losing the current time travel powerup for seemingly no reason whenever they visit this section of PP1GF.
    - The slightly squashed screen.
    - Debug mode forgetting the last selected item whenever you switch between Sonic and edit mode.
    - Amy being able to hug you even if you have a shield. In the original, she would attempt to hug you and bounce off the shield. Granted, it's extremely minor, but I thought it was a rather neat detail.
     
    Last edited: Sep 7, 2019
  2. Blue Spikeball

    Blue Spikeball

    Member
    479
    0
    16
    Aww, there are no fixes? That's a real pity, I feel the first two issues are deal-breakers for what would otherwise be the definitive version of Sonic CD. Honestly, it baffles me that Tax and Stealth wrote such superb remasters from scratch, with lots of additions, yet they completely overlooked so many obvious bugs that by all accounts should have been easy to fix.

    Just for the record, I didn't post this as a stealth mod request thread. I was genuinely curious if there were any fixes, and was willing to try my hand at fixing any of the issues if Sonic CD Steam modding had advanced enough to make it feasible.


    Say, @MainMemory. I've noticed that the Sonic CD Steam Mod Manager has an "Instant Time Travel" patch. I tried it, but it doesn't seem to be working. When I touch a time travel signpost, I get no time travel powerup at all, just like with the "Disable Time Travel" patch. Is this due to a bug in the latest version of the manager?

    Anyway, the reason I'm bringing this up is the following. Assuming that the Instant Time Travel patch works by shortening the running time required to the point of making it instantaneous (just making a wild guess here, as like I said, I haven't been able to get it to work), would it be possible to use a modified version of the same code to create a separate patch called something like "Faster Time Travel" that makes time travel work like in the original MCD and Windows 95 versions (ie: shorter running time)?
     
    Last edited: Sep 10, 2019
  3. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,287
    2
    18
    SonLVL
    I didn't make those codes, in fact one could argue that I didn't even make the mod loader. It certainly wasn't working when I last touched it. SuperSonic16 did all the important things.
     
  4. ICEknight

    ICEknight

    Researcher Researcher
    Didn't those two versions have different time travel speeds?
     
  5. Blue Spikeball

    Blue Spikeball

    Member
    479
    0
    16
    I see. SuperSonic16 doesn't have an account here, does s/he?

    Possibly? I haven't played much of the original PC version, and this page doesn't shed any light on the matter. I just know that I find the quicker time travel from the MCD version to work much better compared to the remaster. It feels like the stages were designed around it, with lots of time travel spots. In the remaster, I often have to backtrack and explore the whole freakin' level to find the one spot that is still usable, which ruins the pacing.
     
  6. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,287
    2
    18
    SonLVL
    I don't believe so. He's on Twitter and GameBanana.
     
  7. DigitalDuck

    DigitalDuck

    Arriving four years late. Member
    4,777
    2
    18
    Lincs, UK
    TurBoa, S1RL
    It's funny you say this, because it's the other way around. The Mega CD version takes the same amount of time as it does in the remaster; the PC (and Sonic Gems Collection) version takes less time.
     
  8. Blue Spikeball

    Blue Spikeball

    Member
    479
    0
    16
    Eh? No it doesn't, at least not in the Steam version. The wiki mentions that it takes longer in the remaster, and I just double-checked it in the game to be sure. If you have a time travel powerup and enter the first autoroll tunnel in PP1 without running priorly, then release the controls before exiting from the other side, you warp shortly after you've reached the highest altitude and started falling back down. Meanwhile, doing the same in the remaster lets you fall for a longer time, causing you to bounce on a badnik below before warping.
     
    Last edited: Sep 11, 2019
  9. Cooljerk

    Cooljerk

    NotEqual Tech, Inc - VR & Game Dev Oldbie
    4,275
    1
    18
    You can verify that this isn't true really easily. In palmtree panic act 2, right in the middle of the act there's the big loop with a time post inside:

    http://www.soniczone0.com/games/soniccd/downloads/scd-pp-zone2amap.png

    In the Sega CD version, if you grab that time post and jump down the tube, you will always time travel, it's automatic. The game takes control away from you for long enough that you will fling up into the air and time travel before you hit the ground.

    In the remake, you do not. Unless you bounce on a butterfry to keep yourself in the air, you'll hit the ground before you time travel, because it takes longer to time travel in the remake.
     
  10. Stupid question, but might the disabled speed-cap have anything to do with that? The original, I think, was designed specifically such that the air cap would make the most out of limited available space; Sonic would move slower in the air, but as long as the cap was reached time travel would still be in effect.
     
  11. Blue Spikeball

    Blue Spikeball

    Member
    479
    0
    16
    That's a good point. The removal of the air speed cap was probably one of the factors that "broke" some of the time traveling spots.

    Regardless, I can confirm that the time to time travel was prolonged in the remaster, as the method I mentioned in my previous post isn't affected by the cap, using mostly vertical speed the moment you leave the ground.
     
  12. sonicblur

    sonicblur

    Oldbie
    1,295
    0
    16
    Was this split from another thread or did you just reply to yourself after 3 days because nobody else did?

    There were a number of fixes in the updated mobile releases, which will come to 64-bit Windows and macOS whenever I finish and release those unofficial ports. Or I could just open source the entire thing now if you know C and want to finish it. I posted the video of the Dreamcast version over 2 years ago and have now been sitting on this project for over 7 years and have yet to completely finish because it gets ignored for months at a time until I come back for a few days then ignore it again. The majority of stuff left to do is quality of life, a couple things I messed up, and revisiting the Dreamcast port which needs rendering re-written from scratch to use the DC's color palette support. Having the code won't help with the type of fixes you want because someone still needs to write a script compiler / decompiler, but you can at least use the source code as a reference for what all of the opcodes do.
     
    • Informative Informative x 1
    • List
  13. Cooljerk

    Cooljerk

    NotEqual Tech, Inc - VR & Game Dev Oldbie
    4,275
    1
    18
    Assuming you ever do want to open up your Dreamcast version of Sonic CD or would like help, I'm more than willing to help you with the rendering code, btw. Just an offer.

    Just checking: do you use store queues in your rendering code? I actually was running some tests the other day to see how quickly I could send vertexes to the tile accelerator using both DMA and Store queues, and it seems like SQs are the way to go in terms of speed.
     
    Last edited: Sep 12, 2019
  14. sonicblur

    sonicblur

    Oldbie
    1,295
    0
    16
    I want all versions to be open source, but Dreamcast will be a separate branch because a bunch of stuff can't be shared. All platforms are currently using SDL 1.2 which I picked specifically so Dreamcast would be possible - that was before I realized there was a bunch of stuff that Dreamcast SDL + OpenGL could not do and so much code would need to change that it wouldn't be easy or clean to keep them in the same codebase. (Windows and MacOS are compiled from the same codeset though, I've got a Visual Studio project for Windows and XCode on macOS) There's also the matter of the music and video, which will need to be pre-converted to something other than Ogg since the DC isn't powerful enough to decode it.


    Edit: I granted Cooljerk access to the source code on GitHub, he's going to learn about it when he has time. No plan yet for what's going to happen.
     
    Last edited: Sep 12, 2019
  15. Cooljerk

    Cooljerk

    NotEqual Tech, Inc - VR & Game Dev Oldbie
    4,275
    1
    18
    If you got some time let's hop on a discord server or IRC and chat further, I have some rendering code I'd like to share with you, all native PVR. Been working a long time on getting Sonic 2 levels rendered on the dreamcast using the DC's 4bpp palette mode. Shoot me a PM or email or something whenever you're free and we can schedule a time to talk.

    Check out the GDB dreamcast topic I posted last night, there's a screenshot of a grid of ties being drawn with sine-wave distortion, and a small Sonic sprite that looks like it's one solid color because I've changed all the palette entries on the DC to the same color. In the actual demo I have, the palette rotates so the sonic sprite changes color.

    Matt from BigEvilCorp also has experience with this kind of thing and might be willing to help with some perspective as well if you ask. He's a super nice guy and is generally very willing to talk shop.
     
    Last edited: Sep 12, 2019
  16. DigitalDuck

    DigitalDuck

    Arriving four years late. Member
    4,777
    2
    18
    Lincs, UK
    TurBoa, S1RL
    Huh. I could've sworn that didn't work on the original.
     
  17. Blue Spikeball

    Blue Spikeball

    Member
    479
    0
    16
    Nah, I started the thread because I couldn't find a Sonic CD modding thread. Then when I saw there were no replies after days, I decided to ask MainMemory if one of the patches in the SCD Steam mod manager could be tweaked to speed up time traveling.

    Sounds great, I would be interested in taking a look.
     
    Last edited: Sep 13, 2019 at 6:57 AM
  18. muteKi

    muteKi

    Fuck it Member
    7,544
    0
    16
    Other big thing that would need to be fixed (unless a patch was done since the last time I played the game, which I doubt) is that the air cap with speed shoes under the 'original' spin dash physics should have been disabled but wasn't.
     
  19. Ultrared

    Ultrared

    Member
    10
    5
    3
    Sonic 2 Director's Cut
    Here you go. Put it in the mods folder, replacing the original file. I implemented the requested Faster Time Travel cheat, making it closer to the original. I also fixed the Instant Time Travel cheat while I was at it.

    Not a fix, but here's a workaround. Whenever that happens, quit the game, open the save file (Sdata.bin) with a hex editor, and go to one of the following addresses depending on your current save slot:
    0x0C 1st slot
    0x2C 2nd slot
    0x4C 3rd slot
    0x6C 4th slot
    Then replace the current value, subtracting 1 from it. For example, if it's 0x0A, replace it with 0x09. When you reload the save, you should be in the Good Future.