Sonic 1 and 2 3DS: Difference between revisions

From GameBrew
(Created page with "{{Infobox 3DS homebrew | title = Sonic 1 and 2 | image = https://dlhb.gamebrew.org/3dshomebrew/Sonic12.jpg|250px | type = Platform | version = v1.1.1.2 | licence = Mixed | aut...")
 
m (Text replacement - "Category:3DS homebrew games" to "")
 
(28 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Infobox 3DS homebrew
{{Infobox 3DS Homebrews
| title = Sonic 1 and 2
|title=Sonic 1 and 2
| image = https://dlhb.gamebrew.org/3dshomebrew/Sonic12.jpg|250px
|image=Sonic1and22.png
| type = Platform
|description=Sonic 1 & 2 (2013) port for New 3DS.
| version = v1.1.1.2
|author=JeffRuLz
| licence = Mixed
|lastupdated=2022/11/04
| author = JeffRuLz
|type=Platform
| website = https://github.com/JeffRuLz/Sonic-1-2-2013-Decompilation
|version=1.3
| download = https://dlhb.gamebrew.org/3dshomebrew/Sonic12.rar
|license=Mixed
| source = https://dlhb.gamebrew.org/3dshomebrew/Sonic12.rar
|download=https://dlhb.gamebrew.org/3dshomebrews/sonic1and2.7z?k33p0fil35
|website=https://github.com/JeffRuLz/Sonic-1-2-2013-Decompilation
|source=https://github.com/JeffRuLz/Sonic-1-2-2013-Decompilation
}}
}}
<youtube>hfAmktT3hXI</youtube>
This is a port of Sonic 1 and 2 to the 3DS, based on Rubberduckycooly's [https://github.com/Rubberduckycooly/Sonic-1-2-2013-Decompilation Sonic 1/2 (2013) decompilation]. A New 3DS is required for these games to play smoothly.


= Sonic 1/2 2013 Decompilation =
'''Note:''' You will need the assets from the official releases to run this decompilation.


A Full Decompilation of Sonic 1 &amp; 2 (2013)
==Installation==
Release contains 3DSX and CIA builds.
* 3DSX - Place them in sd:/3ds/Sonic1/ and sd:/3ds/Sonic2/.
* CIA - Install it with the CIA manager of your choice.
* Rev01 - Use this versions only if you encounter problems with the regular versions.


= '''SUPPORT THE OFFICIAL RELEASE OF SONIC 1 &amp; SONIC 2''' =
Before you can play you need to extract the data.rsdk files from your copy of Sonic 1 and 2 (2013). Do this once for each game:
* Rename the .apk file extension into a .zip.
* Open it, and navigate go into the assets folder.
* Extract the Data.rsdk.xmf file and rename it to Data.rsdk.
* Place them in sd:/3ds/Sonic1/ and sd:/3ds/Sonic2/.


* Without assets from the official releases this decompilation will not run.
You can get the official release of Sonic 1 and Sonic 2 from:
* Video tutorial on how to find your legally obtained data.rsdk file: https://www.youtube.com/watch?v=gzIfRW91IxE
* [https://apps.apple.com/au/app/sonic-the-hedgehog-classic/id316050001 Sonic 1 (iOS, Via the App Store)].
* You can get the official release of sonic 1 &amp; sonic 2 from:
* [https://apps.apple.com/au/app/sonic-the-hedgehog-2-classic/id347415188 Sonic 2 (iOS, Via the App Store)].
* [https://play.google.com/store/apps/details?id=com.sega.sonic1px&hl=en_AU&gl=US Sonic 1 (Android, Via Google Play)].
* [https://play.google.com/store/apps/details?id=com.sega.sonic2.runner&hl=en_AU&gl=US Sonic 2 (Android, Via Google Play)].
* [https://www.amazon.com.au/Sega-of-America-Sonic-Hedgehog/dp/B00D74DVKM Sonic 1 (Android, Via Amazon)].
* [https://www.amazon.com.au/Sega-of-America-Sonic-Hedgehog/dp/B00HAPRVWS Sonic 2 (Android, Via Amazon)]


* [https://apps.apple.com/au/app/sonic-the-hedgehog-classic/id316050001 Sonic 1 (iOS, Via the App Store)]
Even if your platform isn't supported by the official releases, buy it for the assets (you don't need to run the official release, you just need the game assets).  
* [https://apps.apple.com/au/app/sonic-the-hedgehog-2-classic/id347415188 Sonic 2 (iOS, Via the App Store)]
* [https://play.google.com/store/apps/details?id=com.sega.sonic1px&hl=en_AU&gl=US Sonic 1 (Android, Via Google Play)]
* [https://play.google.com/store/apps/details?id=com.sega.sonic2.runner&hl=en_AU&gl=US Sonic 2 (Android, Via Google Play)]
* [https://www.amazon.com.au/Sega-of-America-Sonic-Hedgehog/dp/B00D74DVKM Sonic 1 (Android, Via Amazon)]
* [https://www.amazon.com.au/Sega-of-America-Sonic-Hedgehog/dp/B00HAPRVWS Sonic 2 (Android, Via Amazon)] Even if your platform isn't supported by the official releases, buy it for the assets (you don't need to run the official release, you just need the game assets) If you want to transfer your save from the '''Android pre-forever versions,''' you can go to <code>Android/data/com.sega.sonic1 or 2/SGame.bin</code> and copy it to the <code>SData.bin</code> in the EXE folder.


= Additional Tweaks =
If you want to transfer your save from the Android pre-forever versions, go to <code>Android/data/com.sega.sonic1 or 2/SGame.bin</code> and copy it to the <code>SData.bin</code> in the EXE folder.


* added a built in script compiler, similar to CD, but tweaked up to match the new syntax for the scripts used in RSDKv4
===Mods===
* There is now a settings.ini file that the game uses to load all settings, similar to Sonic Mania
Follow these steps if you want to use mods:
* Dev menu can now be accessed from anywhere by pressing the <code>ESC</code> key if enabled in the config
* Download the [https://github.com/Rubberduckycooly/Sonic-1-Sonic-2-2013-Script-Decompilation decompiled scripts] and place them in the game folders.
* The <code>f12</code> pause, <code>f11</code> step over &amp; fast forward debug features from sonic mania have all be ported and are enabled if devMenu is enabled in the config
* Create a mods folder inside of the game folders. Your mods go there.
* If <code>devMenu</code> is enabled in the config, pressing <code>f10</code> will activate a palette overlay that shows the game's 8 internal palettes in real time


= TODOs: =
Your Sonic1 folder should look something like this:


* the &quot;native object&quot; system has been implimented, but the objects (aside from RetroGameLoop and a temporary pause menu) and the proper HW rendering system have yet to be added
https://dlhb.gamebrew.org/3dshomebrews/sonic1and2folder.png
* probably some more bug fixes, because there always are a few stragglers
* create a <code>cmakelists.txt</code> file for windows compiling so builds can be added automatically via git actions
* S2 networking code, we attempted to write code to handle the 2PVS mode in S2 but we couldn't finish for many reasons, we did leave our WIP code in the game, so if you think you could do it by all means give it a shot!


= How to build: =
There are many outdated mods that do not work on v1.3.0. Make sure they work on the PC version before reporting they do not work on the 3DS port.
* Some mods are simply missing a mod.ini file.
* Other mods are based on outdated scripts and need a lot more work to fix.


== Windows: ==
Some mods need to be loaded before others. Edit the mods/modconfig.ini file to change the order mods are loaded in. Mods higher on the list will have higher priority.


* Clone the repo, then follow the instructions in the [[./dependencies/windows/dependencies.txt|depencencies readme for windows]] to setup dependencies, then build via the visual studio solution
Lastly, not all mods are compatible with each other. Remember your modding common sense.
* or grab a prebuilt executable from the releases section


== Windows via MSYS2 (64-bit Only): ==
==User guide==
===3DS specific features===
* Added a built in script compiler, similar to CD, but tweaked up to match the new syntax for the scripts used in RSDKv4.
* There is now a <code>settings.ini</code> file that the game uses to load all settings, similar to Sonic Mania.
* Dev menu can now be accessed from anywhere by pressing the <code>ESC</code> key if enabled in the config.
* The <code>f12</code> pause, <code>f11</code> step over & fast forward debug features from sonic mania have all be ported and are enabled if devMenu is enabled in the config.
* If <code>devMenu</code> is enabled in the config, pressing <code>f10</code> will activate a palette overlay that shows the game's 8 internal palettes in real time.


* Download the newest version of the MSYS2 installer from [https://www.msys2.org/ here] and install it.
===Limitations===
* Run the MINGW64 prompt (from the windows Start Menu/MSYS2 64-bit/MSYS2 MinGW 64-bit), when the program starts enter <code>pacman -Syuu</code> in the prompt and hit Enter. Press <code>Y</code> when it asks if you want to update packages. If it asks you to close the prompt, do so, then restart it and run the same command again. This updates the packages to their latest versions.
* A New 3DS is required. It does not run (well) on an old 3DS.
* Now install the dependencies with the following command: <code>pacman -S make git mingw-w64-i686-gcc mingw-w64-x86_64-gcc mingw-w64-x86_64-SDL2 mingw-w64-x86_64-libogg mingw-w64-x86_64-libvorbis</code>
* These do not feature the fancy 3D menus.
* Clone the repo with the following command: <code>git clone https://github.com/Rubberduckycooly/Sonic-1-2-2013-Decompilation.git</code>
* The Sonic 2 special stages run at a low frame rate.
* Go into the repo you just cloned with <code>cd Sonic-1-2-2013-Decompilation</code>
* It does not support the data files from Sonic Origins.
* Then run <code>make CXX=x86_64-w64-mingw32-g++ CXXFLAGS=-static -j4</code> (-j switch is optional but will make building faster, it's based on the number of cores you have +1 so 8 cores wold be -j9)
* Load times are a bit slow. Most notably, the Sonic 1 credits scene will go out of sync.
* There are no multiplayer or networking features.
* There is no 3D effect of any kind.


== Windows UWP (Phone, Xbox, etc.): ==
===FAQ===
'''Q. The screen is tearing, how do I fix it?'''


* Clone the repo, then follow the instructions in the [[./dependencies/windows/dependencies.txt|depencencies readme for Windows]] and [[./dependencies/windows-uwp/dependencies.txt|depencencies readme for UWP]] to setup dependencies, copy your <code>Data.rsdk</code> folder into <code>Sonic1Decomp.UWP</code> or <code>Sonic2Decomp.UWP</code> depending on the game, then build and deploy via <code>Sonic12Decomp.UWP.sln</code>
Try turning on vsync.
* You may also need to generate visual assets, to do so, open the Package.appxmanifest file in the designer, under the Visual Assets tab, select an image of your choice and click generate.


== Linux: ==
'''Q. I found a bug/I have a feature request!'''


* To setup your build enviroment and library dependecies run the following commands:
Submit an issue in the issues tab.
* Ubuntu (Mint, Pop!_OS, etc...): <code>sudo apt install build-essential git libsdl2-dev libvorbis-dev libogg-dev libgbm-dev</code>
* Arch Linux: <code>sudo pacman -S base-devel git sdl2 libvorbis libogg</code>
* Clone the repo with the following command: <code>git clone https://github.com/Rubberduckycooly/Sonic-1-2-2013-Decompilation.git</code>
* Go into the repo you just cloned with <code>cd Sonic-1-2-2013-Decompilation</code>
* Then run <code>make -j4</code> (-j switch is optional but will make building faster, it's based on the number of cores you have +1 so 8 cores wold be -j9)


== Mac: ==
'''Q. Is there a port of the Sonic CD (2011) decompilation?'''


* Clone the repo, then follow the instructions in the [[./dependencies/mac/dependencies.txt|depencencies readme for mac]] to setup dependencies, then build via the xcode project
Yes! You can check out [[Sonic_CD_2011_3DS|SaturnSH2x2's port]].
* a mac build of v1.0.0 by sappharad can be found [https://github.com/Sappharad/Sonic-1-2-2013-Decompilation/releases/tag/1.0.0mac here]


== Vita ==
==Screenshots==
https://dlhb.gamebrew.org/3dshomebrews/sonic1and23.png
https://dlhb.gamebrew.org/3dshomebrews/sonic1and24.png


* For Vita installation, [https://github.com/xeeynamo/Sonic-1-2-2013-Decompilation Xeeynamo's vita branch] has you covered.
==Media==
 
'''Sonic 1 and 2 (Genesis) - Longplay''' ([https://www.youtube.com/watch?v=hfAmktT3hXI Amy Rose Longplays]) <br>
== Switch: ==
<youtube>hfAmktT3hXI</youtube>
 
* head on over to [https://github.com/heyjoeway/Sonic-1-2-2013-Decompilation heyjoeway's fork] and follow the installation instructions in the readme
 
== 3DS: ==
 
* Ensure you have devkitARM installed. Refer to the [https://devkitpro.org/wiki/Getting_Started devkitPro wiki] for more information on getting the package installer set up.
* Make sure you have all dependencies installed: <code>sudo (dkp-)pacman -S 3ds-dev 3ds-libvorbisidec 3ds-sdl</code>
* Go into ./Sonic1Decomp.3DS or ./Sonic2Decomp.3DS (depending on which game you want to compile) and run <code>make</code>.
* Optionally, after running <code>make</code>, run <code>make cia</code> to build a CIA.
 
== Other platforms: ==
 
Currently the only supported platforms are the ones listed above, however the backend uses libogg, libvorbis &amp; SDL2 to power it, so the codebase is very multiplatform. if you've cloned this repo and ported it to a platform not on the list or made some changes you'd like to see added to this repo, submit a pull request and it'll most likely be added
 
= FAQ =
 
=== Q: The screen is tearing, how do I fix it? ===
 
A: Try turning on vsync, that worked for me (tested on mac)
 
=== Q: I found a bug/I have a feature request! ===


A: Submit an issue in the issues tab and I'll fix/add (if possible) it as soon as I can
==Compatibility==
On a New 3DS they run at full speed almost all of the time outside of special stages. Special stages are playable, but run at a low frame rate.


=== Q: Will you do a decompilation for Sonic CD (2011)? ===
On an old 3DS the games are too slow to be enjoyable.


A: I already have! you can find it [https://github.com/Rubberduckycooly/Sonic-CD-11-Decompilation here]!
==Changelog==
'''v1.3'''
* Now based on RSDKv4 version 1.3.0.
* Mods can now be used.
* REV01 builds are now provided.
** Adds compatibility for certain data files.
** Only use if you're having issues with the normal builds.
* Audio processing is now done in a separate thread on a separate core.
* Performance boost to special stages, due to the new audio thread.
** Sonic 1 special stages run at 30-60fps.
** Sonic 2 special stages run 15-30fps.
* Added warning screens for some common user errors.
* Hotfix October 9th: Fixed a bug that prevented multiple mods from loading.
*October 11th: Debug text is no longer displayed when debug mode is disabled. (Except for specific situations.)
*November 4th: Fixed game options not working properly (Thanks to @MegAmi24)


=== Q: Will you do a decompilation for Sonic Mania? ===
'''v1.1.1.2'''
* Button mapping in 'settings.ini' now works (important: if you're updating from an older version you must delete your old 'settings.ini' file otherwise inputs may not work.)
* The bottom screen can be used if 'ScreenWidth' is set to 320.


A: No. Sonic Mania is a ton bigger and requires that I'd decompile not only how the (far more complex) RSDKv5 works, but also all ''600''+ objects work
'''v1.1.1.1'''
* Fixed data folder mode not working with cia builds.
* Added music and sound to the main menu.


= Special Thanks =
'''v1.1.1'''
* Merged changes from the v1.1.1 update from the main project.
* Optimized screen drawing thanks to @hax0kartik. Gives a slight performance boost in special stages.
* Disabled the useless touch screen buttons from the main menu.
* The select button can now pause the game.


* [https://github.com/MGRich RMGRich]: for helping me fix bugs, tweaking up my sometimes sloppy code and generally being really helpful and fun to work with on this project
'''v1.0'''
* Everyone in the [https://dc.railgun.works/retroengine Retro Engine Modding Server]: for being supportive of me and for giving me a place to show off these things that I've found
* First release of this 3DS port, based on v1.1.0 of the main project.
* A New 3DS is required for these games to play smoothly.


= Contact: =
==Credits==
* [https://github.com/MGRich RMGRich].
* Everyone in the [https://dc.railgun.works/retroengine Retro Engine Modding Server].


you can join the [https://dc.railgun.works/retroengine Retro Engine Modding Discord Server] for any extra questions you may need to know about the decompilation or modding it
==External links==
* GitHub - https://github.com/JeffRuLz/Sonic-1-2-2013-Decompilation
* GBAtemp - https://gbatemp.net/threads/release-n3ds-sonic-1-2-2013-decompilation-port.581905

Latest revision as of 06:33, 6 May 2024

Sonic 1 and 2
Sonic1and22.png
General
AuthorJeffRuLz
TypePlatform
Version1.3
LicenseMixed
Last Updated2022/11/04
Links
Download
Website
Source

This is a port of Sonic 1 and 2 to the 3DS, based on Rubberduckycooly's Sonic 1/2 (2013) decompilation. A New 3DS is required for these games to play smoothly.

Note: You will need the assets from the official releases to run this decompilation.

Installation

Release contains 3DSX and CIA builds.

  • 3DSX - Place them in sd:/3ds/Sonic1/ and sd:/3ds/Sonic2/.
  • CIA - Install it with the CIA manager of your choice.
  • Rev01 - Use this versions only if you encounter problems with the regular versions.

Before you can play you need to extract the data.rsdk files from your copy of Sonic 1 and 2 (2013). Do this once for each game:

  • Rename the .apk file extension into a .zip.
  • Open it, and navigate go into the assets folder.
  • Extract the Data.rsdk.xmf file and rename it to Data.rsdk.
  • Place them in sd:/3ds/Sonic1/ and sd:/3ds/Sonic2/.

You can get the official release of Sonic 1 and Sonic 2 from:

Even if your platform isn't supported by the official releases, buy it for the assets (you don't need to run the official release, you just need the game assets).

If you want to transfer your save from the Android pre-forever versions, go to Android/data/com.sega.sonic1 or 2/SGame.bin and copy it to the SData.bin in the EXE folder.

Mods

Follow these steps if you want to use mods:

  • Download the decompiled scripts and place them in the game folders.
  • Create a mods folder inside of the game folders. Your mods go there.

Your Sonic1 folder should look something like this:

sonic1and2folder.png

There are many outdated mods that do not work on v1.3.0. Make sure they work on the PC version before reporting they do not work on the 3DS port.

  • Some mods are simply missing a mod.ini file.
  • Other mods are based on outdated scripts and need a lot more work to fix.

Some mods need to be loaded before others. Edit the mods/modconfig.ini file to change the order mods are loaded in. Mods higher on the list will have higher priority.

Lastly, not all mods are compatible with each other. Remember your modding common sense.

User guide

3DS specific features

  • Added a built in script compiler, similar to CD, but tweaked up to match the new syntax for the scripts used in RSDKv4.
  • There is now a settings.ini file that the game uses to load all settings, similar to Sonic Mania.
  • Dev menu can now be accessed from anywhere by pressing the ESC key if enabled in the config.
  • The f12 pause, f11 step over & fast forward debug features from sonic mania have all be ported and are enabled if devMenu is enabled in the config.
  • If devMenu is enabled in the config, pressing f10 will activate a palette overlay that shows the game's 8 internal palettes in real time.

Limitations

  • A New 3DS is required. It does not run (well) on an old 3DS.
  • These do not feature the fancy 3D menus.
  • The Sonic 2 special stages run at a low frame rate.
  • It does not support the data files from Sonic Origins.
  • Load times are a bit slow. Most notably, the Sonic 1 credits scene will go out of sync.
  • There are no multiplayer or networking features.
  • There is no 3D effect of any kind.

FAQ

Q. The screen is tearing, how do I fix it?

Try turning on vsync.

Q. I found a bug/I have a feature request!

Submit an issue in the issues tab.

Q. Is there a port of the Sonic CD (2011) decompilation?

Yes! You can check out SaturnSH2x2's port.

Screenshots

sonic1and23.pngsonic1and24.png

Media

Sonic 1 and 2 (Genesis) - Longplay (Amy Rose Longplays)

Compatibility

On a New 3DS they run at full speed almost all of the time outside of special stages. Special stages are playable, but run at a low frame rate.

On an old 3DS the games are too slow to be enjoyable.

Changelog

v1.3

  • Now based on RSDKv4 version 1.3.0.
  • Mods can now be used.
  • REV01 builds are now provided.
    • Adds compatibility for certain data files.
    • Only use if you're having issues with the normal builds.
  • Audio processing is now done in a separate thread on a separate core.
  • Performance boost to special stages, due to the new audio thread.
    • Sonic 1 special stages run at 30-60fps.
    • Sonic 2 special stages run 15-30fps.
  • Added warning screens for some common user errors.
  • Hotfix October 9th: Fixed a bug that prevented multiple mods from loading.
  • October 11th: Debug text is no longer displayed when debug mode is disabled. (Except for specific situations.)
  • November 4th: Fixed game options not working properly (Thanks to @MegAmi24)

v1.1.1.2

  • Button mapping in 'settings.ini' now works (important: if you're updating from an older version you must delete your old 'settings.ini' file otherwise inputs may not work.)
  • The bottom screen can be used if 'ScreenWidth' is set to 320.

v1.1.1.1

  • Fixed data folder mode not working with cia builds.
  • Added music and sound to the main menu.

v1.1.1

  • Merged changes from the v1.1.1 update from the main project.
  • Optimized screen drawing thanks to @hax0kartik. Gives a slight performance boost in special stages.
  • Disabled the useless touch screen buttons from the main menu.
  • The select button can now pause the game.

v1.0

  • First release of this 3DS port, based on v1.1.0 of the main project.
  • A New 3DS is required for these games to play smoothly.

Credits

External links

Advertising: