don't click here

Sonic 1 in Sonic 3 (S.C.E. Version) Source code release

Discussion in 'Engineering & Reverse Engineering' started by TheBlad768, Nov 9, 2024.

  1. TheBlad768

    TheBlad768

    Tech Member
    46
    201
    33
    Sonic 1 in Sonic 3 (S.C.E. Version)
    This is a port of Sonic The Hedgehog (1991) to Sonic Clean Engine (S.C.E.), our heavily modified and improved Sonic 3 & Knuckles engine, which we have been using for a long time for our MD projects (such as Hellfire Saga and Sonic 3 & Knuckles: Epilogue).

    If you want to read up on the history of the project, check out the previous thread:
    https://forums.sonicretro.org/index.php?threads/sonic-1-in-sonic-3-s-c-e-version-shc2024.43151

    Today we finally want to release our project that we've been working on for two years. Hopefully the release of the ROM version for SHC has shown you what to expect.

    This is our attempt to make an alternative Sonic 1 source code that will be useful to people for their future projects. I hope people can get up close and personal with the Sonic 3 & Knuckles Engine.

    I would be happy to see more S.C.E. (S3K Engine) based projects in the future.

    We have done a lot of work here. And we really hope that this framework will be useful for the Sonic ROM hacking community. In addition to using it as a direct base, you can also use this source code as an example on how to port other objects to S3K-based engines.

    Many things from Sonic 1 were rewritten since the original game is very slow, and I just couldn't afford to add code to S.C.E. without some attempt at optimization. Sonic 1's object code was a serious problem and trying to optimize it was my main goal. The entire deformation code of the levels was written from scratch. I couldn't just copy the code from the original game. The game engines are too different.


    This is not the final version of the source code and I will continue to make changes and improvements.


    Release:
    https://github.com/TheBlad768/Sonic-1-in-Sonic-3-S.C.E.-


    Features:

    - New game engine. The original Sonic 1 had serious performance issues, so the game runs much better now;
    - Two-byte IDs chunks support, if 256 (0x100) chunks won't be enough for your ideas. (Uncompressed chunks only);
    - I've seen people try to port levels from S3K to S1, but they only partially succeed. Stock Sonic 1 doesn't allow you to do much.
    But S1S3 will allow you to port any levels you want. It won't be a problem to port S2 or S3K here. Adding Angel Island Zone, Sandopolis Zone or Emerald Hill (for example) will not be a problem.
    Any objects from S2, S3K will not be a problem to port;
    - Some things are kept in the style of Sonic 3 & Knuckles. There is a mix of graphics and music from Sonic 1 and Sonic 3 & Knuckles;
    - Playable Tails and Knuckles. You can play as Sonic and Tails or Knuckles and Tails. The villain switches between Eggman and Eggrobo depending on which character you choose to play;
    - All level layouts have been updated to match Sonic 1 2013 and Sonic Origins. New paths for Tails and Knuckles in MZ3, SYZ2 and SLZ1, new secrets pretty much everywhere else;
    - New artwork for bosses and other stuff;
    - New settings menu, new Level Select (S2/RSDK Style);
    - Seven Special Stages. Special Stages are now only available through Star Posts, but only if you have 50 rings. The player will lose 50 rings for entering the stage.
    - You can get 7 Chaos Emeralds, but unfortunately you can't use Super/Hyper Transformations yet. This may be added in future updates.
    - Many minor improvements in polish, such as added SFX or boss intros.

    Negative aspects:

    - This source code uses the Macro Assembler AS as a base. This can be a serious disadvantage for some people. But I have no problem using that assembler. I have been using the Macro Assembler AS since 2011. Maybe I'm just used to it. And I also tried to maintain the style of the source code from Sonic Retro (Clownacy).
    - It's the S3K Engine. If you love hacking Sonic 1 specifically, then it will be difficult for you to come to terms with the quirks of S3K.


    Screenshots:
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]

    I've also added various additional objects that aren't used in the game as is, but can be placed if you're making your own project using this framework.

    Screenshots:
    [​IMG]
    [​IMG]

    Video:



    Roadmap for the future:

    - Act transitions. Levels have been edited to allow for these, but they're coming later.
    - A fix to Knuckles' socks palette.
    - SRAM.
    - Super/Hyper transformations.
    - It's not a priority for now, but there are plans to implement a linked list-based object system.
    - Flamedriver has some issues that need to be addressed. Music speed-up is reset after 1UP. Continuous SFX have conflicts with other SFX. Continuous flag is not reset when playing normal SFX.
    - Of course all the bugs that are found will be fixed as well.

    We look forward to your feedback!


    Visit our pages to keep up with all the news:

    - Discord: https://discords.com/servers/redmisostudios
    - BlueSky: https://bsky.app/profile/redmiso.studio
    - YouTube: https://www.youtube.com/@RedMisoStudios
    - Twitter: https://x.com/HardLine_Team
    - Website: https://redmiso.studio/

    Russian language only:

    - Telegram channel: https://t.me/red_miso_studios
    - VK: https://vk.com/red_miso_studios

    Base Sonic Clean Engine (S.C.E.) on GitHub (without Sonic 1):

    - https://github.com/TheBlad768/Sonic-Clean-Engine-S.C.E.-
    - https://github.com/TheBlad768/Sonic-Clean-Engine-S.C.E.-Extended-


    Credits:
    Red Miso Studios Staff

    - TheBlad768 -- Project lead, sole programmer, S.C.E. Game Engine
    - kuroya2mouse -- Level art and level design edits, sprite art and other things
    - pixelcat -- Sprite art, UI art and other things
    - FoxConED -- S.C.E. Level Select font art
    - Dolphman -- Robotnik head art

    Testing and other help

    - giovanni.gen, KGL, DeltaW, Narcologer, CatswellMeow, Nintorch, FoxConED, lavagaming1, cuberoot, Vladikcomper, ProjectFM, MarkeyJester, VAdaPEGA

    Special Support

    - cuberoot

    Special Credits

    - Vladikcomper -- Kosinski Plus algorithm, Advanced Error Handler
    - Flamewing -- Kosinski Plus algorithm, Z80 Sound driver (Flamedriver), Ultra DMA Queue
    - Clownacy -- Kosinski Plus algorithm
    - Devon -- Enigma algorithm

    Software Credits

    - MainMemory -- SonLVL, Level Converter and other things
    - ProjectFM -- Modified SonLVL with two-byte layout support
    - kirjavascript -- Flex2

    Additional art Credits:

    - Sonic 1 Mobile (2013), Sonic Origins (2022), Headcannon (Stealth)

    Special Thanks

    - joshyflip for consulting on the artwork
    - Flamewing, devon, RealMalachi and others for bug fixing guides
    - Clownacy for work on the disassemblies
    - SSRG and Sonic Retro

    Release:
    https://github.com/TheBlad768/Sonic-1-in-Sonic-3-S.C.E.-

    Thanks for your attention!
     
    Last edited: Nov 9, 2024
  2. TheBlad768

    TheBlad768

    Tech Member
    46
    201
    33
    Sonic 1 in Sonic 3 (S.C.E. Version)
    Super/Hyper form is here now!

    [​IMG]
    [​IMG]
    [​IMG]
     
  3. sayonararobocop

    sayonararobocop

    Member
    267
    110
    43
    Love the work so far! And what an outstanding technical achievement.