Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Sonic 1 and 2 3DS: Difference between revisions

From GameBrew
No edit summary
No edit summary
Line 2: Line 2:
|title=Sonic 1 and 2
|title=Sonic 1 and 2
|image=Sonic12.jpg
|image=Sonic12.jpg
|description=Sonic 1 & 2 (2013) New 3DS port.
|description=Sonic 1 & 2 (2013) port for New 3DS.
|author=JeffRuLz
|author=JeffRuLz
|lastupdated=2021/02/13
|lastupdated=2021/02/13
Line 8: Line 8:
|version=1.1.1.2
|version=1.1.1.2
|license=Mixed
|license=Mixed
|download=https://dlhb.gamebrew.org/3dshomebrew/Sonic12.rar
|download=https://dlhb.gamebrew.org/3dshomebrews/sonic1and2.7z
|website=https://github.com/JeffRuLz/Sonic-1-2-2013-Decompilation
|website=https://github.com/JeffRuLz/Sonic-1-2-2013-Decompilation
|source=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.


== '''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://apps.apple.com/au/app/sonic-the-hedgehog-classic/id316050001 Sonic 1 (iOS, Via the App Store)].
<youtube>gzIfRW91IxE</youtube>
* [https://apps.apple.com/au/app/sonic-the-hedgehog-2-classic/id347415188 Sonic 2 (iOS, Via the App Store)].
* You can get the official release of sonic 1 &amp; sonic 2 from:
* [https://play.google.com/store/apps/details?id=com.sega.sonic1px&hl=en_AU&gl=US Sonic 1 (Android, Via Google Play)].
* [https://apps.apple.com/au/app/sonic-the-hedgehog-classic/id316050001 Sonic 1 (iOS, Via the App Store)]
* [https://play.google.com/store/apps/details?id=com.sega.sonic2.runner&hl=en_AU&gl=US Sonic 2 (Android, Via Google Play)].
* [https://apps.apple.com/au/app/sonic-the-hedgehog-2-classic/id347415188 Sonic 2 (iOS, Via the App Store)]
* [https://www.amazon.com.au/Sega-of-America-Sonic-Hedgehog/dp/B00D74DVKM Sonic 1 (Android, Via Amazon)].
* [https://play.google.com/store/apps/details?id=com.sega.sonic1px&hl=en_AU&gl=US Sonic 1 (Android, Via Google Play)]
* [https://www.amazon.com.au/Sega-of-America-Sonic-Hedgehog/dp/B00HAPRVWS Sonic 2 (Android, Via Amazon)]  
* [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 ==
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.


* added a built in script compiler, similar to CD, but tweaked up to match the new syntax for the scripts used in RSDKv4
==User guide==
* There is now a settings.ini file that the game uses to load all settings, similar to Sonic Mania
Additional tweaks that have been made to the 3DS port:
* Dev menu can now be accessed from anywhere by pressing the <code>ESC</code> key if enabled in the config
* Added a built in script compiler, similar to CD, but tweaked up to match the new syntax for the scripts used in RSDKv4.
* 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
* There is now a <code>settings.ini</code> file that the game uses to load all settings, similar to Sonic Mania.
* 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
* 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.


== TODOs: ==
===FAQ===
'''Q. The screen is tearing, how do I fix it?'''


* 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
Try turning on vsync (tested on mac).
* 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: ==
'''Q. I found a bug/I have a feature request!'''


=== Windows: ===
Submit an issue in the issues tab.


* 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
'''Q. Will you do a decompilation for Sonic CD (2011)?'''
* or grab a prebuilt executable from the releases section


=== Windows via MSYS2 (64-bit Only): ===
Already did! you can find it [https://github.com/Rubberduckycooly/Sonic-CD-11-Decompilation here]!


* Download the newest version of the MSYS2 installer from [https://www.msys2.org/ here] and install it.
'''Q: Will you do a decompilation for Sonic Mania?'''
* 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.
* 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>
* 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 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)


=== Windows UWP (Phone, Xbox, etc.): ===
No. Sonic Mania is a ton bigger and requires to decompile not only how the (far more complex) RSDKv5 works, but also all 600+ objects work.


* 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>
==Screenshots==
* 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.
https://dlhb.gamebrew.org/3dshomebrews/sonic1and3.png
https://dlhb.gamebrew.org/3dshomebrews/sonic1and4.png


=== Linux: ===
==Media==
'''Tutorial on how to find your legally obtained Data.rsdk''' ([https://www.youtube.com/watch?v=gzIfRW91IxE Axanery]) <br>
<youtube>gzIfRW91IxE</youtube>


* To setup your build enviroment and library dependecies run the following commands:
'''Sonic 1 and 2 (Genesis) - Longplay''' ([https://www.youtube.com/watch?v=hfAmktT3hXI Amy Rose Longplays]) <br>
* Ubuntu (Mint, Pop!_OS, etc...): <code>sudo apt install build-essential git libsdl2-dev libvorbis-dev libogg-dev libgbm-dev</code>
<youtube>hfAmktT3hXI</youtube>
* 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: ===
 
* 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
* 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 ===
 
* For Vita installation, [https://github.com/xeeynamo/Sonic-1-2-2013-Decompilation Xeeynamo's vita branch] has you covered.
 
=== Switch: ===
 
* 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.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.


=== Q: Will you do a decompilation for Sonic Mania? ===
'''v1.1.1.1'''
* Fixed data folder mode not working with cia builds.
* Added music and sound to the main menu.


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'''
* 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.


== Special Thanks ==
'''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.


* [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
==Credits==
* 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
* [https://github.com/MGRich RMGRich].
* Everyone in the [https://dc.railgun.works/retroengine Retro Engine Modding Server].


== Contact: ==
==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


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
[[Category:3DS homebrew games]]
[[Category:Homebrew platform games on 3DS]]

Revision as of 07:33, 22 December 2021

Sonic 1 and 2
File:Sonic12.jpg
General
AuthorJeffRuLz
TypePlatform
Version1.1.1.2
LicenseMixed
Last Updated2021/02/13
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.

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, you can go to Android/data/com.sega.sonic1 or 2/SGame.bin and copy it to the SData.bin in the EXE folder.

User guide

Additional tweaks that have been made to the 3DS port:

  • 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.

FAQ

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

Try turning on vsync (tested on mac).

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

Submit an issue in the issues tab.

Q. Will you do a decompilation for Sonic CD (2011)?

Already did! you can find it here!

Q: Will you do a decompilation for Sonic Mania?

No. Sonic Mania is a ton bigger and requires to decompile not only how the (far more complex) RSDKv5 works, but also all 600+ objects work.

Screenshots

sonic1and3.png sonic1and4.png

Media

Tutorial on how to find your legally obtained Data.rsdk (Axanery)

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.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: