From 0073200bea34ac5539da0483f80035d3a4b10afa Mon Sep 17 00:00:00 2001 From: Chaphi <99685295+CCIGAMES@users.noreply.github.com> Date: Thu, 19 Dec 2024 09:37:28 +0000 Subject: [PATCH] Update README.md --- README.md | 206 ++++++++++++++++++++++++++---------------------------- 1 file changed, 98 insertions(+), 108 deletions(-) diff --git a/README.md b/README.md index 95def349..d5ff8e52 100644 --- a/README.md +++ b/README.md @@ -1,117 +1,107 @@ -# Sonic Hybrid Ultimate - -A project to seamlessly integrate multiple Sonic games into a single cohesive experience, combining RSDK and Oxygen Engine games. Acts as a legal alternative to Sonic Origins for fans. - -## Project Structure - -The project consists of three main components: - -1. **Custom Client**: The core integration layer that manages: - - Engine transitions - - State preservation - - Window/rendering management - - Input handling - -2. **Hybrid-RSDK**: Modified version of RSDK that supports: - - Sonic 1 & 2 (RSDKv4) - - Sonic CD (RSDKv3 with v4 compatibility) - - Seamless game transitions - - State preservation - -3. **Sonic 3 AIR/Oxygen**: Integration with Sonic 3 AIR through: - - Lemonscript integration - - ROM handling - - State synchronization - -## Current Status - -- **Hybrid-RSDK**: - - [x] Basic RSDK integration - - [x] File fetching system - - [x] Memory management fixes - - [x] Sonic 2 completion detection - - [ ] Debugging in progress - -- **Custom Client**: - - [x] Engine interface - - [x] Transition system - - [x] State management - - [x] Window management - - [x] Input system - - [x] Death Egg completion detection - -- **Sonic 3 AIR Integration**: - - [x] Basic Oxygen engine wrapper - - [ ] Lemonscript integration - - [ ] ROM handling - - [ ] State synchronization - -## Setup Instructions - -1. Install required dependencies: - - Visual Studio 2022 with C++ support - - .NET 6.0 SDK or later - - CMake 3.15 or later - -2. Clone the repository: - ```bash - git clone https://github.com/yourusername/Sonic-Hybrid-Ultimate.git - cd Sonic-Hybrid-Ultimate - ``` - -3. Place the following files in `Hybrid-RSDK Main/Data`: - - Sonic 1's `Data.rsdk` as `sonic1.rsdk` - - Sonic 2's `Data.rsdk` as `sonic2.rsdk` - - Sonic CD's `Data.rsdk` as `soniccd.rsdk` - - Sonic 3&K ROM as `sonic3.bin` - -4. Build the project using the provided build script: - ```powershell - # For debug build - .\build.ps1 - - # For release build - .\build.ps1 -Release - - # To clean and rebuild - .\build.ps1 -Clean - ``` - -5. Run the Custom Client: - ```powershell - cd "Custom Client/bin/Debug/net6.0-windows" # or Release instead of Debug - ./SonicHybridUltimate.exe - ``` - -## Development Status - -- **Priority**: Sonic 3 AIR Integration -- **Next Steps**: - 1. Complete Lemonscript integration - 2. Implement ROM handling - 3. Finalize state synchronization - 4. Polish transition animations +# Build Process + +To build the project, ensure that all necessary project files are present in the repository. If you encounter the error `MSB1009: Project file does not exist`, verify the project file paths in the build scripts and ensure all required files are included. + +Run the build command from the project's root directory. + +# Sonic RSDK + Oxygen Engine (Help Needed) + +Aims to mix different Sonic the Hedgehog games into a single big game. Acts as a legal but cheaper version of Sonic Origins for fans that dont want to get scammed. + +![Sonic 1 in Sonic 2](docs/preview.png) + +## How it's gonna work. +Instead of mixing 3 AIR'S Engine (called Oxygen) with the RSDK/Retro engine, or compiling rsdk and 3 air as seperate EXEs to be laucnhed in one window which is what this project gets confused as, the project will have 3 (main) working parts: + +Sonic 3 AIR/Oxygen. + +Sonic Hybrid RSDK plus RSDKV4/RSDKV3 (and maybe RSDKV5U). + +And a custom script runner/executor. + +When sonic 2 ends the Hybrid RSDK entity will send a message to the custom script executing entity which in turn stops running the RSDK stuff & starts running the main script of 3 air + +## Completion Status: +Hybrid-RSDK Debugging/Additons ?% (Hybrid-RSDK is still broken) + + +Sonic 3 AIR (Oxygen) Integration 50% (All the source code is in the repo, but we havent done the neccessary changes yet) +Integration with Hybrid RSDK is in progress, focusing on resolving loading issues and graphical corruption. + + +Custom Client 0% (debugging Hybrid RSDK is the priority) + +## WARNING: DOES NOT WORK YET! +Start from here: + +This guide is useful if you never downloaded the project or if you want to start from scratch. + +1. [Download](https://github.com/Xeeynamo/sonic-hybrid-rsdk/archive/refs/heads/main.zip) the latest release + +1. Unpack the zip file + +1. Paste in the directory `rsdk-source-data` the following files: + + * `Data.rsdk` from Sonic CD as `soniccd.rsdk` + * `Data.rsdk` from Sonic 1 as `sonic1.rsdk` + * `Data.rsdk` from Sonic 2 as `sonic2.rsdk` + * `Rom.bin` from Sonic 3&K as `sonic3.bin` (I doubt this will be addable as Sonic 3 is a ROM unlike the rest which is a RSDK) +1. Install [.NET 6](https://dotnet.microsoft.com/download/dotnet/6.0) + +1. Open a terminal and run the command `dotnet run --project SonicHybridRsdk.Build` + +1. Put the [RSDKv4](https://github.com/Rubberduckycooly/Sonic-1-2-2013-Decompilation/releases/tag/1.3.2) engine in the `sonic-hybrid` folder (still havent decided) + +1. Compile/run the executable and have fun! + +## Perform an update + +This guide is useful if you previously played Sonic Hybrid but you want to perform an update. Please look at the [commit list](https://github.com/Xeeynamo/sonic-hybrid-rsdk/commits/main) to know more info about the changelog through each update. + +1. [Download](https://github.com/Xeeynamo/sonic-hybrid-rsdk/archive/refs/heads/main.zip) the latest release + +1. Unpack the zip file and overwrite all the existing files + +1. Open a terminal and run the command `dotnet run --project SonicHybridRsdk.Build` + +1. Run the executable and have fun! ## Features -- **Seamless Transitions**: Smooth transitions between RSDK and Oxygen engines -- **State Preservation**: Maintains game state (rings, score, etc.) across transitions -- **Death Egg Detection**: Accurate detection of Sonic 2's completion -- **Modern UI**: Clean, user-friendly interface with real-time status updates +* Play Sonic 1, Sonic CD, Sonic 2 and Sonic 3&k a single big game. +* Star Posts in Sonic the Hedgehog 1 and CD will bring you to the Sonic the Hedgehog 2 special stages. +* Completing Sonic the Hedgehog 1's Final Zone will bring you to Palmtree Panic Zone. +* Completing Sonic the Hedgehog CD's Metallic Madness Act 3 will bring you to Emerald Hill Zone. +* Completing Death Egg Zone in Sonic the Hedgehog 2 will bring you to Angel Island Zone. +* The Stage Select in the debug menu will report all the implemented level names. +* Sonic CD stages correctly transitions as the original game. +* Metal Sonic is now a playable character. +* Sonic 3 will be included. + +## Known issues +* **It runs, but when you load a level it only loads the background** +* No Sonic 3 yet. +* Sonic 1 Special Stages are working from the Stage Select, but the graphics is corrupted. +* The main menu of RSDK will report the wrong stage names. +* The Giant Ring from Sonic the Hedgehog 1 will teleport to the Sonic the Hedgehog 2 special stages. +* Collision Chaos and Stardust Speedway are half-implemented. +* Tidal Tempest, Quartz Quadrant, Wacky Workbench and Metallic Madness are barely implemented. +* In Palmtree Panic Zone, the spinner will softlock the player. +* Some Sonic CD's enemies and gimmicks might have the wrong palette. +* Playable Metal Sonic has a "rolling" bugging collision. + -## Contributing +## Resources -Help is welcome! Current areas needing attention: -- Sonic 3 AIR integration -- Lemonscript implementation -- Transition animations -- UI/UX improvements +Xeeynamo has written [some notes](rsdkv3-to-rsdkv4.md) on how to convert RSDKv3 scripts to RSDKv4 scripts without modifying the RSDKv4 engine. -## License +Everything contained in `rsdk/Scripts` is a modified version of [Rubberduckycooly's Sonic 1/2 script decompilation](https://github.com/Rubberduckycooly/Sonic-1-Sonic-2-2013-Script-Decompilation). This project would not exist without it. -This project is for educational purposes only. All Sonic the Hedgehog properties are owned by SEGA. +The function `SonicHybridRsdk.Unpack12/DecryptData` was written by Giuseppe Gatta (nextvolume) from its [Retrun](http://unhaut.epizy.com/retrun/). ## Credits -- RSDK Decompilation by Rubberduckycooly -- Sonic 3 AIR by Eukaryot -- Original games by SEGA +* Decompilation by Rubberduckycooly. +* Hybrid-RSDK by Xeeynamo. +* Sonic 3 AIR by Eukaryot. +* Conceived by Chaphidoesstuff aka @CCIGAMES. +* Main Development By Pixel-1 Games, SomeRandomPerson_, twanvanb1, FGSOFTWARE1 and more.