{"id":1410,"date":"2024-08-19T12:00:00","date_gmt":"2024-08-19T19:00:00","guid":{"rendered":"https:\/\/letsbuildroboticswithshadow8472.com\/?p=1410"},"modified":"2024-08-19T03:28:07","modified_gmt":"2024-08-19T10:28:07","slug":"sonic-3-air-linux-wii-mega-collection-method","status":"publish","type":"post","link":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/2024\/08\/19\/sonic-3-air-linux-wii-mega-collection-method\/","title":{"rendered":"Sonic 3 AIR (Linux, Wii\/Mega Collection Method)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Good Morning from my Robotics Lab! This is Shadow_8472 and today I am using a hacked Wii and Linux to rip Sonic Mega Collection for a ROM to play Sonic 3 AIR. Let\u2019s get started!<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">I am not a lawyer, nothing in this blog post is legal advice.<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Say what you like about the GameCube, it was my sister\u2019s and my first video game console. Among our initial collection was Sonic Mega Collection, a library of Sonic\u2019s Sega Genesis titles. The games played poorly with an analogue stick, and I lost interest after never getting past a second zone.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Years later, a university friend re-introduced me to classic Sonic games through the world of emulation. I found myself browsing Sonic Retro and trying out several ROM hacks of base games I owned back home. Of note: fan content is a legal gray area some companies like Sega happily leave gray \u2013 letting fans explore their IP (Free advertising, anyone?) while leaving themselves room to threaten troublemakers. That said, the unwritten code of conduct for handling hacked\/leaked prototypes is:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>No selling hacks.<\/li>\n\n\n\n<li>No advocating piracy.<\/li>\n\n\n\n<li>No redistributing raw ROM\u2019s.<\/li>\n\n\n\n<li>Don\u2019t ask, don\u2019t tell.<\/li>\n\n\n\n<li>Own a legit copy if available.<\/li>\n\n\n\n<li>Support quality official ports.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">That said: Sega has hired Sonic Retro talent to port their classic games.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sonic 3 Fan Projects<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Most ROM hacks on Sonic Retro are outright love letters to their respective base games, but my hands-down favorite was Sonic 3 Complete (S3C) [1]. This hack aimed to restore the game\u2019s original vision before time constraints split it into Sonic 3 (S3) and Sonic &amp; Knuckles (S&amp;K) with the option to combine their cartridges into Sonic 3 &amp; Knuckles (S3&amp;K). S3C added a game select, custom level transitions, fine tweaks to revert assets, and an option to move Flying Battery Zone to just before Ice Cap so Sonic can snowboard down on a hatch he knocked off in a cutscene. Polishing continued until it approached the Genesis&#8217;s ROM size limit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When the S3C team signed off in 2013, they named another project as their successor: Sonic 3 Angel Island Revisited (Sonic 3 AIR\/S3AIR). In addition to similar polish to S3C, Sonic 3 AIR uses a newer engine with widescreen and 60 fps support. Mods are also supported. The catch is it requires an original S3&amp;K ROM for game files. This used to be available from Steam, but I had to dump my physical copy using the Wii I hacked last week.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Following a tutorial as can be found on GameBananna (linked in Works Cited) [2], I installed CleanRip and backed up four of my GameCube disks \u2013 Sonic Mega Collection among them. Each game gave me three files: GAME-dumpinfo.txt, GAME.bca (data about the copy protection), and GMAE.iso (the game data itself). The .iso doesn\u2019t mount, but Dolphin emulator lets you browse its file system anyway. I located S3&amp;K\u2019s .dat file and set that aside.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">GameBananna\u2019s tutorial breaks on the next step. It calls for a converter by GreyRouge [3], but the link is broken and the forum has been abandoned since early 2023.<\/p>\n\n\n\n<pre class=\"wp-block-verse\"><a href=\"https:\/\/zenhax.com\/viewtopic.php?t=695\">https:\/\/zenhax.com\/viewtopic.php?t=695<\/a><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Instead of finding four good captures on WaybackMachine, I the topic number into a working URL [3]:<\/p>\n\n\n\n<pre class=\"wp-block-verse\"><a href=\"https:\/\/zenhax.com\/viewtopic.php@t=695.html\">https:\/\/zenhax.com\/viewtopic.php@t=695.html<\/a><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">But I wasn\u2019t done yet. GrayRouge used an old version of Visual Studo, but some research, I got it working in normal C++ by making the following changes:<\/p>\n\n\n\n<pre class=\"wp-block-verse\">Replace: #include \"stdafx.h\"<br>with: #include &lt;iostream&gt;<br>and #include &lt;string&gt;<br><br>Replace: int _tmain(int argc, _TCHAR* argv[])<br>with: int main(int argc, char* argv[])<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The compiled program worked got S3&amp;K loading in an emulator. I posted my modifications to Reddit where my hope is to be of help to someone. S3AIR was stubborn about looking for the ROM in my Steam files, so I gave it a link.<\/p>\n\n\n\n<pre class=\"wp-block-verse\">~\/path\/to\/Sega\\ Classics\/uncompressed\\ ROMS\/Sonic_Knuckles_wSonic3.bin<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Takeaway<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">My original motive for following through on this project was on the off chance my PinePhone could run it on the go. Yeah, no. I tried my best on a time crunch, but I did spot a warning in S3AIR\u2019s documentation that it wasn\u2019t going to run on ARM processors.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Also: the full program code is on Reddit. Someone re-uploaded it after the original link broke, but I lost the link to that.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Final Question<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Are you on a journey similar to mine? If I was of any help, please feel free to let me know in the comments below or on my <a href=\"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/discord-invite\/\" target=\"_blank\" rel=\"noreferrer noopener\">Socials<\/a>!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Works Cited<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a><\/a> [1] Sonic Retro, \u201cSonic 3 Complete,\u201d<em>Sonic Retro<\/em>, Jan 12, 2022.[Online]. Available: <a href=\"https:\/\/info.sonicretro.org\/Sonic_3_Complete\">https:\/\/info.sonicretro.org\/Sonic_3_Complete<\/a>. [Accessed: Aug. 19, 2024].<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a><\/a> [2] Tyranger, NickyFan7, \u201cWays to get a Sonic 3 &amp; Knuckles ROM (Post-Delist),\u201d <em>gamebananna.com<\/em>, Apr. 30, 2022. [Online]. Available: <a href=\"https:\/\/gamebanana.com\/tuts\/14939\">https:\/\/gamebanana.com\/tuts\/14939<\/a>. [Accessed: Aug. 19, 2024].<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[3] GrayRouge, \u201cSonic Mega Collection (GC) dat files,\u201d <em>zenhax.com<\/em>, Mar. 7, 2015. [Online]. Available: <a href=\"https:\/\/zenhax.com\/viewtopic.php@t=695.html\">https:\/\/zenhax.com\/viewtopic.php@t=695.html<\/a>. [Accessed: Aug. 19, 2024].<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Good Morning from my Robotics Lab! This is Shadow_8472 and today I am using a hacked Wii and Linux to rip Sonic Mega Collection for a ROM to play Sonic 3 AIR. Let\u2019s get started! I am not a lawyer, nothing in this blog post is legal advice. Say what you like about the GameCube, &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/2024\/08\/19\/sonic-3-air-linux-wii-mega-collection-method\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Sonic 3 AIR (Linux, Wii\/Mega Collection Method)&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_forum_subforum_count":0,"footnotes":""},"categories":[1],"tags":[401,402,399,396,395,397,398,400],"class_list":["post-1410","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-cleanrip","tag-grayrouges-converter","tag-s3air","tag-sonic-knuckles","tag-sonic-3","tag-sonic-3-knuckles","tag-sonic-3-air","tag-sonic-mega-collection"],"_links":{"self":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/1410","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/comments?post=1410"}],"version-history":[{"count":1,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/1410\/revisions"}],"predecessor-version":[{"id":1411,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/1410\/revisions\/1411"}],"wp:attachment":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/media?parent=1410"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/categories?post=1410"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/tags?post=1410"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}