<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://www.gc-forever.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lumina33</id>
	<title>GC-Forever Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://www.gc-forever.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lumina33"/>
	<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=Special:Contributions/Lumina33"/>
	<updated>2026-04-10T01:19:21Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=Phantasy_Star_Online_Episode_I_%26_II&amp;diff=8223</id>
		<title>Phantasy Star Online Episode I &amp; II</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=Phantasy_Star_Online_Episode_I_%26_II&amp;diff=8223"/>
		<updated>2024-08-21T05:41:09Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: bolded title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox VG&lt;br /&gt;
|title=Phantasy Star Online&lt;br /&gt;
|image=[[File:Phantasy Star Online.jpg|266px|Phantasy Star Online art]]&lt;br /&gt;
|developer=[[Sonic Team]]&lt;br /&gt;
|publisher=[[Sega]]&lt;br /&gt;
|director= Takao Miyoshi&lt;br /&gt;
|producer= [[Yuji Naka]] &lt;br /&gt;
|series= &#039;&#039;[[Phantasy Star]]&#039;&#039;&lt;br /&gt;
|artist=Satoshi Sakai&lt;br /&gt;
|composer=[[Hideaki Kobayashi (composer)|Hideaki Kobayashi]] &amp;lt;br&amp;gt; Fumie Kumatani&lt;br /&gt;
|engine=&lt;br /&gt;
|released = &#039;&#039;Sega Dreamcast&#039;&#039;&amp;lt;br&amp;gt;&#039;&#039;&#039;Phantasy Star Online&#039;&#039;&#039;&amp;lt;br&amp;gt;{{vgrelease|JP=December 21, 2000}}{{vgrelease|NA=January 29, 2001}}{{vgrelease|EU=February 23, 2001}}&#039;&#039;&#039;Phantasy Star Online Ver 2&#039;&#039;&#039;&amp;lt;br&amp;gt;{{vgrelease|JP= June 7, 2001}}{{vgrelease|NA= September 24, 2001}}{{vgrelease|EU= March 1, 2002}}&lt;br /&gt;
&lt;br /&gt;
|genre=[[Action-RPG]], &amp;lt;br&amp;gt; [[Massively multiplayer online role-playing game|Multiplayer online RPG]]&lt;br /&gt;
|modes=[[Single player]], [[multiplayer game|multiplayer]]&lt;br /&gt;
|ratings= {{vgratings|CERO=All ages|ESRB=T|PEGI=12+}}&lt;br /&gt;
|platforms=[[Dreamcast]], [[Microsoft Windows]], [[Nintendo GameCube]] (PSO Ep I&amp;amp;II), [[Xbox]] (PSO Ep I&amp;amp;II)&lt;br /&gt;
|media=[[GD-ROM]], [[CD-ROM]], [[DVD]], [[Nintendo optical disc|GameCube Optical Disc]]&lt;br /&gt;
|requirements=&lt;br /&gt;
|input=[[Gamepad]], [[Computer keyboard|Keyboard]] and [[Mouse (computing)|Mouse]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Phantasy Star Online&#039;&#039;&#039; (Japanese: ファンタシースターオンライン Hepburn: Fantashī sutā Onrain) is a series of Massively multiplayer online role-playing game|online multiplayer Action role-playing game|action RPG video games released by Sega. It is a subset of Sega&#039;s [[Phantasy Star|&#039;&#039;Phantasy Star&#039;&#039; series]] of games that began in 1987.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;PSO&#039;&#039; series began with the release of &#039;&#039;Phantasy Star Online&#039;&#039; on the Dreamcast in 2000, and was followed in 2001 by &#039;&#039;Phantasy Star Online ver. 2&#039;&#039;, also initially released for the Dreamcast and later ported to Microsoft Windows. In 2002, &#039;&#039;Phantasy Star Online Episode I &amp;amp; II&#039;&#039; was released for the [[Nintendo GameCube]] and Microsoft Xbox. Subsequently, &#039;&#039;[[Phantasy Star Online Episode III: C.A.R.D. Revolution]]&#039;&#039; was released for the GameCube in 2003, using gameplay mechanics that were different from the preceding titles. &#039;&#039;Phantasy Star Online: Blue Burst&#039;&#039;, a port of the Xbox version of &#039;&#039;Episode I &amp;amp; II&#039;&#039; with the addition of a new &#039;&#039;Episode IV&#039;&#039;, was released for Microsoft Windows in 2004 through digital distribution. &#039;&#039;[[Phantasy Star Online 2]]&#039;&#039; was released in Japan for Windows in July 2012, and released for the iOS and Android (operating system)|Android in late 2012 and is due to be released for the PlayStation Vita in 2013.&lt;br /&gt;
&lt;br /&gt;
With the exception of &#039;&#039;Episode III&#039;&#039;, the &#039;&#039;PSO&#039;&#039; games are hack and slash role-playing games in which the player slays monsters, levels up, buys new equipment, etc. The &#039;&#039;PSO&#039;&#039; games differ from earlier &#039;&#039;Phantasy Star&#039;&#039; titles by offering a real-time &amp;amp;ndash; rather than turn-based &amp;amp;ndash; approach to combat, seamlessly integrating this with exploration and plot developments.&lt;br /&gt;
&lt;br /&gt;
==Development==&lt;br /&gt;
Development of Phantasy Star Online began after the completion of Sonic Adventure. Sega&#039;s Chairman Isao Okawa had a strong belief that internet gaming would come to be important, and the company&#039;s Sonic Team division was instructed to develop an online title. As there was no precedent for online gaming on console, the developers looked to Blizzard&#039;s PC RPG Diablo for inspiration on the game&#039;s mechanics. During development, the game was initially known as The Third World and had a vague sci-fi theme, before art director Satoshi Sakai produced a piece of concept art featuring a dragon and the decision was made to link it to the Phantasy Star series.&lt;br /&gt;
Phantasy Star Online was released bundled with a demo disc for Sonic Adventure 2.&lt;br /&gt;
&lt;br /&gt;
==Plot==&lt;br /&gt;
Endless warring on the homeworld of Coral is so devastating to the environment, it becomes uninhabitable. The Alliance of Nations bands together to plan a mass exodus to another planet, eventually deciding on Ragol. They then construct and launch the first of the colonization vessels, Pioneer 1. Hearing favorable results, they follow it with a second vessel, Pioneer 2. When Pioneer 2 arrives, however, they witness an enormous explosion on Ragol&#039;s surface and find that the colony&#039;s entire population has apparently vanished.&lt;br /&gt;
&lt;br /&gt;
===Episode 1===&lt;br /&gt;
When the citizens on Pioneer 2 observe the explosion on Ragol, the Principal sends down a team of Hunters - the player characters - to the surface to investigate what happened. The investigation takes them through a forest, which is teeming with native animals (such as Gray wolf|wolves), then to the base of the &amp;quot;Dome&amp;quot; that Pioneer 1&#039;s inhabitants lived in. Eventually, the hunters enter the dome and find a dragon. Once the hunters defeat the dragon, they enter a series of caves which go below the Dome, filled with heavily mutated lifeforms. At the end of the caves, the hunters defeat &amp;quot;De Rol Le&amp;quot;, a large mutant that was infected by Dark Falz cells and by the scientists of Pioneer 1. &amp;quot;De Rol Le&amp;quot; had escaped from the pioneer 1&#039;s lab via a sewer system into the rest of the world. &amp;quot;De Rol Le&amp;quot; is responsible for mutating the wildlife in the forests into the wildlife found in the caves by poisoning and infecting the wildlife with its tentacles. At the end of the caves the hunters delve deeper into the planet, to an automated mining complex, which is filled with machines that attack the hunters on sight. After battling through the levels of the mine, the hunters defeat &amp;quot;Vol Opt&amp;quot;, a sentient Artificial Intelligence that corrupted and took over the machines in the mines. At the end of the mines, the hunters find an entrance to the ruins of an ancient, living spaceship. Inside the spaceship, the hunters combat slightly demonic lifeforms. Throughout the entire game the hunters follow the story of Red Ring Rico, a hunter from Pioneer 1 that had followed the same path previously and left various messages of advice. Rico had found the source of the monsters that had destroyed the colony on Ragol, only to be devoured by Dark Falz, a godlike entity which the players defeat in the final battle of the episode, which was the end of the game&#039;s single-player video game|single-player mode in the original Dreamcast version.&amp;lt;ref&amp;gt;http://www.phantasy-star.net/pso/pso.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Episode 2===&lt;br /&gt;
Episode 2 takes place after the ancient spaceship is discovered. The Chief of the Government Lab of Pioneer 2 asks the hunters to go down to Ragol and investigate a secret laboratory that had recently been discovered on Gal Da Val Island. Before leaving on the mission, however, the player characters are required to complete a pair of training simulations. The first simulates a maze of ruins, the second a space station, and both stages feature enemies based on those seen in Episode 1.&lt;br /&gt;
&lt;br /&gt;
Once the training is complete, the hunters are sent to the planet&#039;s surface with the task of finding the security terminals that grant access to the facility. The search is broken up into three stages: a seaside region, a mountain region, and a jungle region, in no particular order. Along the way, the hunters come across a number of data terminals, which contain details about the new enemy creatures that they are fighting as well as several entries by Heathcliff Flowen. A military commander from the Pioneer 1 colony, Heathcliff, was injured while fighting alongside Rico and had apparently become infected by the life form that had turned the local wildlife into monsters. Believing himself to be dying, he admitted his body to the custody of one Dr. Osto for research purposes.&lt;br /&gt;
&lt;br /&gt;
Having deactivated the security terminals, the hunters finally manage to get inside and begin investigating the facility, which is home to its own automated security system as well as a new set of monsters. The investigation turns up more of Heathcliff&#039;s entries, including more details on the events that led to the colony&#039;s destruction. Rather than warning anybody about the hazard the life form posed, Dr. Osto used samples from Heathcliff&#039;s wound to create mutant creatures and other biological weapons, eventually merging Heathcliff&#039;s body with an artificial intelligence and allowing it to be consumed by the wound. The result became Olga Flow, the final monster encountered in the game.&lt;br /&gt;
&lt;br /&gt;
==Gameplay==&lt;br /&gt;
Players choose one of three classes - Hunter, Ranger or Force.  Hunters are adept with close-range weapons such as sabers, two-handed swords, dual daggers, halberds, and are more suited for up-close and personal confrontations.  Rangers are best at ranged combat and excel with weapons such as pistols, rifles, shotguns, and machine guns.  Forces are the magic class of the game and are able to learn a variety of attack and support techniques.&lt;br /&gt;
&lt;br /&gt;
There are three races in Phantasy Star Online:  Human, Newman (bio-engineered &#039;elves&#039;), and CASTs (androids). Each type of race have advantages and disadvantages, such as CASTs being physically stronger than the other two races, but unable to use techs (magic). Gender choice is also a factor, which slightly affects stats and can affect the types of techniques able to be learned.&lt;br /&gt;
&lt;br /&gt;
===Offline mode===&lt;br /&gt;
In Offline mode, players fight through a number of levels spread over four distinct areas. Each area has a Boss (video gaming)|boss at the end. The four areas are (in order) the forest, the caves, the mines, and the ruins. Upon defeating the final boss, Dark Falz, the credits roll and in some cases, an extra feature will be unlocked.&lt;br /&gt;
&lt;br /&gt;
In addition to the main story, players can also take Hunters&#039; Guild sidequests, which explore the lives of Pioneer 2&#039;s citizens and further delve into the backstory of the game. The rewards for these sidequests include a payment of meseta for the job, the chance to explore the stories behind Pioneer 2&#039;s Non-playable character|NPC residents, the opportunity to obtain special weapons that can&#039;t be found anywhere else (such as the Soul Eater and Akiko&#039;s Frying Pan), and whatever weapons, experience, and meseta one can get while fighting on these missions.&lt;br /&gt;
&lt;br /&gt;
In Phantasy Star Online, normal mode is available to play at four different difficulty levels. Normal is available from the start, while Hard, Very Hard and Ultimate become available once Dark Falz has been defeated on the previous difficulty. Ultimate mode, however, was not included in the Version 1 release of PSO on Dreamcast.&lt;br /&gt;
&lt;br /&gt;
===Online mode===&lt;br /&gt;
For online gameplay, instead of having the final boss be defeated in order to select a higher difficulty, there is a specific minimum experience level required to join or create a game. For Hard mode, it is level 20. For Very Hard mode, it is level 40. And for Ultimate, the minimum level requirement is 80.&lt;br /&gt;
&lt;br /&gt;
In Blue Burst, the game&#039;s main story is broken down into separate missions, accessed via a special desk in the Principals Office or Lab. Each area of the game is divided into three or four missions that must be completed for the story to progress. Items such as weapons and techniques are awarded after certain missions are completed. Other players are able to join the mission at any time, even if the mission is in progress or finished. The final mission in each area is a standard run through the level&#039;s areas to the boss battle, essentially &#039;clearing&#039; the area and unlocking the next one.&lt;br /&gt;
&lt;br /&gt;
===Challenge mode===&lt;br /&gt;
Challenge mode sets all participants to a set level with set equipment at the beginning of each mission, lasting only until the end of the mission, and requires the team to reach a predefined goal in a series of specially designed levels that are modified versions of areas seen in normal mode. The aim is to complete the missions in the shortest time possible. New level objects can include laser barriers, buttons, and so on, and sometimes strategically placed enemies/types of enemies. If anyone on the team dies, then the challenge is immediately terminated and the team is returned to the Hunter&#039;s Guild, so teamwork is essential if the levels are to be completed successfully. Everyone starts with a &#039;Scape Doll&#039; revival item in their inventory, enabling them to die once without consequence (the harder the stage, the more scape dolls one receives).  Once all stages have been completed, players are given a rank based on their total time, with &amp;quot;S rank&amp;quot; being the best. If they achieve this in online mode, players are awarded rare weapons which can be customized and named. Challenge mode is available for Episodes 1 and 2.&lt;br /&gt;
&lt;br /&gt;
===Battle mode===&lt;br /&gt;
This is a deathmatch (gaming)|deathmatch mode. In this mode, players are permitted to attack each other. A team may play while being able to attack each other and monsters to fulfill their goals, or they may play one of several predefined sets of battle rules, including goals of meseta, points, or time limitations.&lt;br /&gt;
&lt;br /&gt;
===1-Player mode===&lt;br /&gt;
1-Player mode allows Blue Burst players to play the offline mode online, complete with Episode I &amp;amp; II&#039;s side story quests. Two official 1-player quests are available for the Blue Burst-exclusive Episode 4.&lt;br /&gt;
&lt;br /&gt;
A number of gestures can be performed by holding down the Alt (alternate) key and pressing certain letter, number, or function keys.  Holding down the Shift key at the same time allows players to perform the gestures of the opposite sex, but only while they are in any of the online lobby areas.&lt;br /&gt;
&lt;br /&gt;
===Communication system===&lt;br /&gt;
[[File:Pso cover.jpg|thumb|right|150px|Phantasy Star Online PC boxart]]&lt;br /&gt;
Communication between players is achieved via a combination of direct 2-line text entry, &#039;&#039;Symbol Chat&#039;&#039;, &#039;&#039;Word Select&#039;&#039;, and/or by keyboard (optional.)  As PSO servers support international co-operative play, the &#039;&#039;Symbol Chat&#039;&#039; and &#039;&#039;Word Select&#039;&#039; features encourage players to attempt communication with others regardless of [[language]]. Symbol Chat allows the player to define a collection of symbols within a speech bubble, in order to convey an emotion or simple instruction.  These symbols can be used by the press of a key, or accessed via an in-game menu. Word Select acts as a limited phrasebook, allowing sentences to be constructed through a hierarchy of menus.  Once complete, a sentence is automatically translated into the configured language of other nearby players, thus bridging the language gap encountered in cross-cultural multiplayer games.&lt;br /&gt;
&lt;br /&gt;
==Releases==&lt;br /&gt;
[[File:Phantasy Star Online Ver.2.PNG|thumb|right|230px|Phantasy Star Online ver.2 Dreamcast boxart]]&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Phantasy Star Online ver. 2&#039;&#039;&#039;&#039;&#039; is a [[video game]] that was released for [[Dreamcast]] and [[Personal Computer|PC]] on July 6, 2001 in [[Japan]], on September 24, 2001 in [[North America]] and on March 1, 2002 in [[Europe]]. This version features battle mode allowing other members to battle one another, a new difficulty titled &amp;quot;Ultimate Mode&amp;quot;, a new soccer game within the lobby, and allowing Players to reach a maximum level of 200.&amp;lt;ref&amp;gt;{{cite web| url = http://www.gamespot.com/news/phantasy-star-online-version-2-unveiled-2697096| title = Phantasy Star Online Version 2 unveiled| publisher=Gamespot| accessdate = 2012-10-05}}&amp;lt;/ref&amp;gt; Official servers have since been taken offline.&lt;br /&gt;
&lt;br /&gt;
A [[Nintendo GameCube]] version titled &#039;&#039;&#039;Phantasy Star Online Episode I &amp;amp; II&#039;&#039;&#039; was released in 2002. An online [[role-playing video game]], its focus is online gameplay with a strong offline storyline, offering diverse online and offline gameplay. Offline mode is available for single player and multiplayer. Multiplayer split-screen mode can be played with up to four players. Official servers have since been taken offline, however it is still possible to connect to private servers thanks to an individual named SCHTHACK. More info on connecting to a private server can be obtained at his site.&lt;br /&gt;
&lt;br /&gt;
http://www.schtserv.com/info.php&lt;br /&gt;
&lt;br /&gt;
An upgraded version of the Nintendo Gamecube version titled &#039;&#039;&#039;Phantasy Star Online Episode I &amp;amp; II Plus&#039;&#039;&#039; was released for the [[Nintendo GameCube]] on November 27, 2003 in [[Japan]] and on September 15, 2004 in [[North America]]. This version added various quests to Offline Mode that were originally available exclusively to Online Mode, while also fixing certain bugs and exploits that could be used in the previous release, such as being able duplicate various items from one&#039;s inventory.&amp;lt;ref&amp;gt;{{cite web| url = http://www.ign.com/articles/2004/07/13/pso-episode-iii-plus| title = PSO Episode I&amp;amp;II Plus| publisher=IGN| accessdate = 2012-10-05}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Version&lt;br /&gt;
!Platform&lt;br /&gt;
!Release Date  &lt;br /&gt;
|- &lt;br /&gt;
|  Phantasy Star Online Episode I &amp;amp; II (ver 1.0) &lt;br /&gt;
|  [[Nintendo GameCube]] &lt;br /&gt;
|  September 12, 2002 (Japan)&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
|  Phantasy Star Online Episode I &amp;amp; II (ver 1.1) &lt;br /&gt;
|  [[Nintendo GameCube]] &lt;br /&gt;
|  October 29, 2002 (North America), November 2002 (Japan)&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;, March 7, 2003 (Europe), March 14, 2003 (Sweden)&lt;br /&gt;
|- &lt;br /&gt;
|  Phantasy Star Online Episode I &amp;amp; II Plus &lt;br /&gt;
|  [[Nintendo GameCube]] &lt;br /&gt;
|  November 27, 2003 (Japan), September 15, 2004 (North America) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Sequels===&lt;br /&gt;
{{Main|Phantasy Star Online Episode III: C.A.R.D. Revolution|Phantasy Star Online 2}}&lt;br /&gt;
&lt;br /&gt;
==Reception==&lt;br /&gt;
 {{VG series reviews&lt;br /&gt;
|game1 = Phantasy Star Online&lt;br /&gt;
|gr1 = 89.87%&amp;lt;ref&amp;gt;{{cite web| url = http://www.gamerankings.com/dreamcast/198288-phantasy-star-online/index.html| title = Phantasy Star Online| work = [[GameRankings]] | publisher=CBS Interactive | accessdate = 2012-06-20}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|mc1 = 89 of 100&amp;lt;ref&amp;gt;{{cite web| work = [[Metacritic]] | publisher=CBS Interactive | title = Phantasy Star Online Reviews at Metacritic.com | url = http://www.metacritic.com/game/dreamcast/phantasy-star-online | accessdate = 2012-06-20}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|game2 = Phantasy Star Online Ver.2&lt;br /&gt;
|gr2 = 83.96%&amp;lt;ref&amp;gt;{{cite web| url = http://www.gamerankings.com/dreamcast/472540-phantasy-star-online-ver-2/index.html | title = Phantasy Star Online Ver.2| work = [[GameRankings]] | publisher=CBS Interactive | accessdate = 2012-06-20}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|mc2 = 80 of 100&amp;lt;ref&amp;gt;{{cite web| work = [[Metacritic]] | publisher=CBS Interactive | title = Phantasy Star Online Ver.2 Reviews at Metacritic.com | url = http://www.metacritic.com/game/dreamcast/phantasy-star-online-ver-2 | accessdate = 2012-06-20}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|game3 = Episode I &amp;amp; II&lt;br /&gt;
|gr3 = 81.80%&amp;lt;ref&amp;gt;{{cite web| url = http://www.gamerankings.com/gamecube/516243-phantasy-star-online-episode-i-and-ii/index.html | title = Phantasy Star Online Episode I &amp;amp; II| work = [[GameRankings]] | publisher=CBS Interactive | accessdate = 2012-06-20}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|mc3 = 85 of 100&amp;lt;ref&amp;gt;{{cite web| work = [[Metacritic]] | publisher=CBS Interactive | title = Phantasy Star Online Episode I and II Reviews at Metacritic.com | url = http://www.metacritic.com/game/gamecube/phantasy-star-online-episode-i-ii | accessdate = 2012-06-20}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|game4 = Episode III:C.A.R.D. Revolution&lt;br /&gt;
|gr4 = 74.03%&amp;lt;ref&amp;gt;{{cite web| url = http://www.gamerankings.com/gamecube/914716-/index.html | title = Phantasy Star Online III:C.A.R.D. Revolution| work = [[GameRankings]] | publisher=CBS Interactive | accessdate = 2012-06-20}}&amp;lt;/ref&amp;gt; &lt;br /&gt;
|mc4 = 71 of 100&amp;lt;ref&amp;gt;{{cite web| work = [[Metacritic]] | publisher=CBS Interactive| title = Phantasy Star Online Episode III:C.A.R.D. Revolution Reviews at Metacritic.com | url = http://www.metacritic.com/game/gamecube/phantasy-star-online-episode-iii-card-revolution | accessdate = 2012-06-20 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
The game was number 21 on [[1UP.com|1UP]]&#039;s &#039;The Greatest Games of Their Time&#039; list, making it the highest ranking RPG on that list. It has an aggregrated score of 89.87% on the [[Gamerankings]] website. [[IGN]] gave it a 9.3 out of 10, [[Eurogamer]] a 9 and [[GameSpot]] an 8.2, also out of 10. In Japan, &#039;&#039;[[Famitsu]]&#039;&#039; magazine scored the original Dreamcast version of the game a 37 out of 40,&amp;lt;ref&amp;gt;&#039;&#039;ドリームキャスト - ファンタシースターオンライン&#039;&#039;. Weekly Famitsu. No.915 Pt.2. Pg.44. 30 June 2006.&amp;lt;/ref&amp;gt; and gave the GameCube re-release a 35 out of 40.&amp;lt;ref&amp;gt;&#039;&#039;ニンテンドーゲームキューブ - ファンタシースターオンライン エピソード1&amp;amp;2&#039;&#039;. Weekly Famitsu. No.915 Pt.2. Pg.100. 30 June 2006.&amp;lt;/ref&amp;gt; The game&#039;s graphics were praised, with IGN stating that &amp;quot;This is among the best games, visually, across all platforms. There&#039;s really nothing that compares to the visual quality of PSO.&amp;quot;&amp;lt;ref&amp;gt;Chau, Anthony, [http://www.ign.com/articles/2001/02/01/phantasy-star-online-2 Phantasy Star Online Review], IGN, January 31, 2001.&amp;lt;/ref&amp;gt; GameSpot stated: &amp;quot;The main draw of the game is the ability to get online, hook up with three other players in one of the game&#039;s many lobbies, and take on the planet Ragol as a team. Obviously, this is where the game shines.&amp;quot; 1UP likened aspects of &#039;&#039;Phantasy Star Online&#039;&#039; to &#039;&#039;[[Diablo (video game)|Diablo]]&#039;&#039;, but described &#039;&#039;Phantasy Star Online&#039;&#039; as more of &amp;quot;a reinvention of an established PC adventure concept into something perfectly suited for the tastes and demands of console gamers.&amp;quot;&amp;lt;ref name=&amp;quot;1up_essential_pso&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The userbase for the game reached over 200,000 in 2001 and 600,000 in 2003.&amp;lt;ref&amp;gt;{{cite web|url=http://www.gamespot.com/news/phantasy-star-online-worldwide-user-base-surpasses-200000-2705689|title=Phantasy Star Online worldwide user base surpasses 200,000|last=Ike Sato|first=Yukiyoshi|date=6 April 2001|publisher=[[GameSpot]]|accessdate=11 January 2013}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web|url=http://www.rpgfan.com/news/2003/2174.html|title=Phantasy Star Online Reaches Userbase of 600,000 Worldwide|last=Winkler|first=Chris|date=23 November 2003|publisher=RPGFan|accessdate=11 January 2013}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Legacy==&lt;br /&gt;
Hiroshi Matsuyama, president of [[CyberConnect2]] and developer of the &#039;&#039;[[.hack (video game series)|.hack]]&#039;&#039; series, cited &#039;&#039;Phantasy Star Online&#039;&#039; as an influence for the MMORPG world of &#039;&#039;.hack&#039;&#039;.&amp;lt;ref&amp;gt;{{cite web|title=E3 2003: .hack Interview|url=http://ps2.ign.com/articles/403/403483p2.html|date=May 16, 2003|publisher=[[IGN]]|author=IGNPS2|accessdate=July 1, 2010}}&amp;lt;/ref&amp;gt; [[1UP.com]] ranked the game at #3 in its list of &amp;quot;15 Games Ahead of Their Time,&amp;quot; due to its introduction of online gaming to consoles and for pushing console gamers &amp;quot;to dial up with the Dreamcast to play online and to experience a new style of play.&amp;quot;&amp;lt;ref&amp;gt;{{cite web|last=Furfari|first=Paul|title=15 Games Ahead of Their Time|url=http://www.1up.com/features/15-games-time?pager.offset=2|publisher=[[1UP.com]]|accessdate=26 September 2011|page=2}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1UP also included &#039;&#039;Phantasy Star Online&#039;&#039; in their list of five &amp;quot;Essential Newcomers&amp;quot; of the decade, describing it as one of &amp;quot;five revolutionary new games&amp;quot; of the past 10 years, for its impact in taking &amp;quot;consoles online&amp;quot; and defining &amp;quot;small-scale multiplayer RPGs.&amp;quot; It was the first console game to bring [[Massively multiplayer online game|MMO]] gaming to consoles on a smaller-scale, paving the way for larger-scale [[Massively multiplayer online role-playing game|MMORPG]] efforts such as &#039;&#039;[[Final Fantasy XI]]&#039;&#039;. The small-scale template established by &#039;&#039;Phantasy Star Online&#039;&#039; was later copied by [[Capcom]]&#039;s &#039;&#039;[[Monster Hunter]]&#039;&#039; series, which in turn influenced every major [[History of Eastern role-playing video games|Japanese RPG]] franchise, including &#039;&#039;[[Dragon Quest]]&#039;&#039; and  &#039;&#039;[[Final Fantasy]]&#039;&#039;. &#039;&#039;Phantasy Star Online&#039;&#039; also gave rise to &amp;quot;an entire pantheon of multiplayer [[dungeon crawl]]ers that continue to dominate the Japanese sales charts.&amp;quot; More generally, the game was responsible for making &amp;quot;both online gaming and the concept of fee-based services a reality for consoles,&amp;quot; paving the way for the online gaming services later provided by all three of the [[History of video game consoles (seventh generation)|seventh-generation consoles]].&amp;lt;ref name=&amp;quot;1up_essential_pso&amp;quot;&amp;gt;{{cite web|last=Parish|first=Jeremy|title=Phantasy Star Online|work=The Decade That Was: Essential Newcomers - We close our look back at the {{sic|the}} past 10 years with five revolutionary new games|url=http://www.1up.com/do/feature?pager.offset=1&amp;amp;cId=3178082|page=2|publisher=[[1UP.com]]|accessdate=23 September 2011|month=February|year=2010}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
{{Phantasy Star series}}&lt;br /&gt;
&lt;br /&gt;
[[Category:2000 video games]]&lt;br /&gt;
[[Category:Action role-playing video games]]&lt;br /&gt;
[[Category:Cooperative video games]]&lt;br /&gt;
[[Category:Free online games]]&lt;br /&gt;
[[Category:Nintendo GameCube games]]&lt;br /&gt;
[[Category:Nintendo GameCube role-playing games]]&lt;br /&gt;
[[Category:Inactive massively multiplayer online games]]&lt;br /&gt;
[[Category:Multiplayer online games]]&lt;br /&gt;
[[Category:Phantasy Star video games]]&lt;br /&gt;
[[Category:Sega video games]]&lt;br /&gt;
[[Category:Singleplayer online games]]&lt;br /&gt;
[[Category:Sonic Team games]]&lt;br /&gt;
[[Category:Yuji Naka games]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=Broadband_Adapter&amp;diff=8222</id>
		<title>Broadband Adapter</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=Broadband_Adapter&amp;diff=8222"/>
		<updated>2024-08-21T05:27:30Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: /* Closure */ shorten paragraph&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gcbba.jpg|thumb|The GameCube BBA, attached to a GameCube]]&lt;br /&gt;
The &#039;&#039;&#039;Nintendo GameCube Broadband Adapter&#039;&#039;&#039; is a network adapter for the [[Nintendo GameCube]]. They were produced by [[Conexant]] and made in the Philippines. The adapters fit flush into &amp;quot;Serial Port 1&amp;quot; on the underside of the GameCube and add a RJ-45 port to the side of the console.&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
There is a custom 100 pin MX98730EC IC and a TDK TLA-6T118 (10/100BASE-TX Pulse Transformer) which make up the BBA.&lt;br /&gt;
[[Image:Gcbbatop.jpg|thumb|The GameCube BBA populated PCB - top]]&lt;br /&gt;
[[Image:Gcbbatop2.jpg|thumb|The GameCube BBA populated PCB - top angled]]&lt;br /&gt;
[[Image:Gcbbabottom.jpg|thumb|The GameCube BBA populated PCB - bottom]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Games Supported==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title&lt;br /&gt;
! Developer(s)&lt;br /&gt;
! Online/LAN Play&lt;br /&gt;
|-&lt;br /&gt;
| [[Homeland]]&lt;br /&gt;
| [[Chunsoft]]&lt;br /&gt;
| Online&lt;br /&gt;
|-&lt;br /&gt;
| [[Phantasy Star Online Episode I &amp;amp; II]]&lt;br /&gt;
| [[Sonic Team]]&lt;br /&gt;
| Online&lt;br /&gt;
|-&lt;br /&gt;
| [[Phantasy Star Online Episode I &amp;amp; II Plus]]&lt;br /&gt;
| [[Sonic Team]]&lt;br /&gt;
| Online&lt;br /&gt;
|-&lt;br /&gt;
| [[Mario Kart: Double Dash!!]]&lt;br /&gt;
| [[Nintendo]]&lt;br /&gt;
| LAN&lt;br /&gt;
|-&lt;br /&gt;
| [[1080° Avalanche]]&lt;br /&gt;
| [[NST]]&lt;br /&gt;
| LAN&lt;br /&gt;
|-&lt;br /&gt;
| [[Kirby Air Ride]]&lt;br /&gt;
| [[HAL Laboratory]]&lt;br /&gt;
| LAN&lt;br /&gt;
|}&lt;br /&gt;
Note: LAN games can be played online with third-party PC applications such as [[Warp Pipe]] and [[XLink Kai]] that allows online play of these three games by tunneling the network traffic through a computer and across the Internet. &lt;br /&gt;
&lt;br /&gt;
==Possibilities for running unsigned code==&lt;br /&gt;
Soon after &#039;&#039;PSO I &amp;amp; II&#039;&#039; was released for the GameCube, it was discovered that a PC could be made to simulate the conditions of the server that the game would connect to. This information started as a method of tunneling the online service. When simulating this server, unsigned code can be streamed back to the GameCube, allowing [[homebrew]], or information could be streamed back, allowing one to play copied games. This was also implemented to allow online gameplay in games for which it is not intended. Early dumps of GameCube games were created using this technique. From there, methods of running the games off of a computer through a GameCube were created. Nintendo and Sega responded by releasing the [[Phantasy Star Online Episode I &amp;amp; II Plus|&#039;&#039;Plus&#039;&#039;]] version of the game.&lt;br /&gt;
&lt;br /&gt;
==Closure==&lt;br /&gt;
Nintendo officially discontinued the online gaming service in April 2007 to focus more on the Gamecube&#039;s successor: the Wii and its online gaming service.  Nevertheless, games can still be played online via private servers. Game that supported LAN mutiplayer can still be played on LAN mode as well and can be played online with tunneling software.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[[Warp Pipe]]&lt;br /&gt;
*[[XLink Kai]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Nintendo_GameCube_Broadband_Adapter_and_Modem_Adapter http://en.wikipedia.org/wiki/Nintendo_GameCube_Broadband_Adapter_and_Modem_Adapter]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/File:Gcbba.jpg Picture of BBA by Ben Wood]&lt;br /&gt;
* [http://www.nintendo.com/consumer/downloads/broadband_english.pdf Broadband Adapter instruction booklet by Nintendo (PDF)]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://www.nintendo.com/ Nintendo of America&#039;s Online Support page]&lt;br /&gt;
* [http://www.nintendo.co.uk/ Nintendo of Europe (UK) Online Support page]&lt;br /&gt;
* [http://gear.ign.com/articles/306/306366p1.html IGN&#039;s look at the adapter]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:MiscHardware]]&lt;br /&gt;
[[Category:Nintendo Hardware]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=Nintendo_GameCube&amp;diff=8194</id>
		<title>Nintendo GameCube</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=Nintendo_GameCube&amp;diff=8194"/>
		<updated>2024-08-09T18:42:08Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: more technical details&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Nintendo GameCube&#039;&#039;&#039; is a disc-based game console.  It is the successor to the Nintendo 64 and predecessor to the Wii.&lt;br /&gt;
&lt;br /&gt;
It has four controller ports and two [[memory card]] slots.&lt;br /&gt;
&lt;br /&gt;
The CPU is called the Gekko.  The GPU is called the Flipper.  It is actively cooled by a fan and has 64-hole grids on the left and right sides of the cube for ventilation.&lt;br /&gt;
&lt;br /&gt;
We really should have a page on this.&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=Write_Gather_Pipe&amp;diff=8158</id>
		<title>Write Gather Pipe</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=Write_Gather_Pipe&amp;diff=8158"/>
		<updated>2024-08-02T20:32:37Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: init page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Gekko has a 128-byte &#039;&#039;&#039;Write Gather Pipe&#039;&#039;&#039; that buffers data until it is 25% full.&lt;br /&gt;
&lt;br /&gt;
=== Reference ===&lt;br /&gt;
* https://www.copetti.org/writings/consoles/gamecube&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=DVDFormat&amp;diff=8157</id>
		<title>DVDFormat</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=DVDFormat&amp;diff=8157"/>
		<updated>2024-08-02T11:42:52Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: touching grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GameCube Disc Format&lt;br /&gt;
&lt;br /&gt;
Please Note this is a work in progress doc&lt;br /&gt;
&lt;br /&gt;
XOR Encryption is done using discID and a random seed by the Disc Controller Firmware, Panasonic MN103S and is controlled by the System Controller MN102H.&lt;br /&gt;
&lt;br /&gt;
== Data Frame ==&lt;br /&gt;
    u32 id; // PSN(Physical Sector Number)&lt;br /&gt;
    u16 ied; // ID Error Detection Code, CRC16&lt;br /&gt;
    u8 userdata[2048]; // Data&lt;br /&gt;
    u8 cpr_mai[6]; // Copyright Management Information(Not used)&lt;br /&gt;
    u32 edc; // Error Detection Code, CRC32&lt;br /&gt;
    // 2064B&lt;br /&gt;
&lt;br /&gt;
== Random Seed List ==&lt;br /&gt;
    0 0x0003&lt;br /&gt;
    8 0x0030&lt;br /&gt;
    1 0x7f00&lt;br /&gt;
    9 0x7001&lt;br /&gt;
    2 0x0006&lt;br /&gt;
    A 0x0060&lt;br /&gt;
    3 0x7e00&lt;br /&gt;
    B 0x6003&lt;br /&gt;
    4 0x000c&lt;br /&gt;
    C 0x00c0&lt;br /&gt;
    5 0x7c00&lt;br /&gt;
    D 0x4007&lt;br /&gt;
    6 0x0018&lt;br /&gt;
    E 0x0180&lt;br /&gt;
    7 0x7800&lt;br /&gt;
    F 0x000f&lt;br /&gt;
&lt;br /&gt;
== Burst Cutting Area ==&lt;br /&gt;
    // UserData(64 Bytes)&lt;br /&gt;
    u8 optionalInfo[52];&lt;br /&gt;
    u8 manufacturerCode[2];&lt;br /&gt;
    u8 recorderDeviceCode[2];&lt;br /&gt;
    u8 APMRecorderDeviceCode;&lt;br /&gt;
    u8 discManufactureDate[2];&lt;br /&gt;
    u8 discManufactureTime[2];&lt;br /&gt;
    u8 discNumber[3];&lt;br /&gt;
    // KeyData(16 Bytes)&lt;br /&gt;
    u8 bcakey[8];&lt;br /&gt;
    u8 bcaSerial[8];&lt;br /&gt;
    // Encrypted(48 Bytes)&lt;br /&gt;
    u64 psn[6]; //BCA mark positions&lt;br /&gt;
    // 188 Total Bytes&lt;br /&gt;
&lt;br /&gt;
== Disc Physical Format ==&lt;br /&gt;
    // Leadin Area&lt;br /&gt;
    PhysicalFormatInfo m_pfi;&lt;br /&gt;
    DiscManufacturingInfo m_dmi;&lt;br /&gt;
&lt;br /&gt;
PhysicalFormatInfo&lt;br /&gt;
    u8 reversed[6];&lt;br /&gt;
    u8 discMagic; // value is -1.&lt;br /&gt;
    u8 discSizeMinTransferRate; // The value is fixed on 16.&lt;br /&gt;
    u8 discStructure; // The value is fixed on 1.&lt;br /&gt;
    u8 recordedDensity; // The value is fixed on 1.&lt;br /&gt;
    DataAreaAllocation m_dataAreaAllocation;&lt;br /&gt;
    u8 reversed2[2026];&lt;br /&gt;
    u8 reversed3[6];&lt;br /&gt;
&lt;br /&gt;
DiscManufacturingInfo&lt;br /&gt;
    u8 reversed[6];&lt;br /&gt;
    u8 unknown1[6];&lt;br /&gt;
    u8 randomNumber2[6];&lt;br /&gt;
    u8 unknown2[6];&lt;br /&gt;
    u8 randomNumber3[6];&lt;br /&gt;
    char mediaId[19]; // &amp;quot;Nintendo Game Disk&amp;quot;&lt;br /&gt;
    u8 randomNumber4[6];&lt;br /&gt;
    u8 bookTypePartVersion; // value must be 1.&lt;br /&gt;
    u8 discSizeMinReadoutRate; // The value is fixed on 16.&lt;br /&gt;
    u8 discStructure; // The value is fixed on 1.&lt;br /&gt;
    u8 recordedDensity; // The value is fixed on 0.&lt;br /&gt;
    DataAreaAllocation m_dataAreaAllocation;&lt;br /&gt;
    u8 bcaDescriptor; // The value is fixed on 128.&lt;br /&gt;
    u8 reversed2[1983];&lt;br /&gt;
    u8 reversed3[6];&lt;br /&gt;
&lt;br /&gt;
DataAreaAllocation&lt;br /&gt;
    u8 reversed;&lt;br /&gt;
    u16 startSector; // 196608&lt;br /&gt;
    u8 reversed2;&lt;br /&gt;
    u16 endSector; // 909487&lt;br /&gt;
    u8 reversed3[3];&lt;br /&gt;
    // 12 Bytes&lt;br /&gt;
&lt;br /&gt;
== Disc Image Format ==&lt;br /&gt;
    BootHeader m_header; // boot.bin&lt;br /&gt;
    BootHeaderInfo m_bi; // bi2.bin&lt;br /&gt;
    AppLoader m_apploader; // appldr.img&lt;br /&gt;
    FileSystemTable m_fst; // fst.bin&lt;br /&gt;
    u8 userdata[0]; // application is stored here, including boot file&lt;br /&gt;
&lt;br /&gt;
BootHeader&lt;br /&gt;
    u8 ConsoleID; // G = Gamecube, R = Wii.&lt;br /&gt;
    u8 Gamecode[2];&lt;br /&gt;
    u8 CountryCode;    //J=JAP . P=PAL . E=USA . D=OoT MasterQuest&lt;br /&gt;
    u8 MakerCode[2];&lt;br /&gt;
    u8 DiscID;&lt;br /&gt;
    u8 Version;&lt;br /&gt;
    u8 AudioStreaming; //01 = Enable it. 00 = Don&#039;t&lt;br /&gt;
    u8 StreamBufSize; // For the AudioEnable.&lt;br /&gt;
    u8 unused_1[18];    &lt;br /&gt;
    u32 DVDMagicWord; // 3258163005&lt;br /&gt;
    char GameName[64];&lt;br /&gt;
    u8 unused_2[416];&lt;br /&gt;
    u32 NKitMagicWord;&lt;br /&gt;
    u32 NKitVersion;&lt;br /&gt;
    u32 ImageCRC;&lt;br /&gt;
    u32 ForceCRC;&lt;br /&gt;
    u32 ImageSize;&lt;br /&gt;
    u32 JunkID;&lt;br /&gt;
    u8 unused_3[488];&lt;br /&gt;
    u32 ApploaderSize;&lt;br /&gt;
    u32 ApploaderInit;&lt;br /&gt;
    u32 ApploaderMain;&lt;br /&gt;
    u32 ApploaderExit;&lt;br /&gt;
    u8 unused_4[16];&lt;br /&gt;
    u32 DOLOffset;&lt;br /&gt;
    u32 FSTOffset;&lt;br /&gt;
    u32 FSTSize;&lt;br /&gt;
    u32 MaxFSTSize;&lt;br /&gt;
    u32 FSTAddress;&lt;br /&gt;
    u32 UserPos;&lt;br /&gt;
    u32 UserLength;&lt;br /&gt;
    u32 unused_5;&lt;br /&gt;
&lt;br /&gt;
BootHeaderInfo&lt;br /&gt;
    u32 DebugMonSize;&lt;br /&gt;
    u32 SimMemSize;&lt;br /&gt;
    u32 ArgOffset;&lt;br /&gt;
    u32 DebugFlag;&lt;br /&gt;
    u32 DebugOffset;&lt;br /&gt;
    u32 DebugSize;&lt;br /&gt;
    u32 RegionCode;&lt;br /&gt;
    u32 TotalDisc;&lt;br /&gt;
    u32 LongFileName;&lt;br /&gt;
    u32 PADSpec;&lt;br /&gt;
    u32 DOLLimit;&lt;br /&gt;
    u8 unused_6[8148];&lt;br /&gt;
    // 8192 Bytes&lt;br /&gt;
&lt;br /&gt;
AppLoader&lt;br /&gt;
    char revision[16]; // Revision compile date (example &amp;quot;2001/12/17&amp;quot;)&lt;br /&gt;
    u32 entryPoint; // Apploader&#039;s entrypoint&lt;br /&gt;
    u32 size; // Size of apploader code&lt;br /&gt;
    u32 rebootSize; // Size of reboot code&lt;br /&gt;
    u8 pad[4]; // zeroes&lt;br /&gt;
    u8 code[0]; // PPC code&lt;br /&gt;
&lt;br /&gt;
FileSystemTable&lt;br /&gt;
    u32 entityCount;&lt;br /&gt;
    FileSystemEntity* m_entity;&lt;br /&gt;
    StringTable* m_string;&lt;br /&gt;
&lt;br /&gt;
FileSystemEntity&lt;br /&gt;
    u8 flags;&lt;br /&gt;
    u16 filenameOffset;&lt;br /&gt;
    u32 fileOffset;&lt;br /&gt;
    u32 fileSize;&lt;br /&gt;
&lt;br /&gt;
StringTable&lt;br /&gt;
    char name[0];&lt;br /&gt;
    char dummy;&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=MacroME&amp;diff=8156</id>
		<title>MacroME</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=MacroME&amp;diff=8156"/>
		<updated>2024-08-01T18:15:13Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: init page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;MacroME&#039;&#039;&#039; is a programmable [[GameCube]] controller.&lt;br /&gt;
&lt;br /&gt;
=== Source ===&lt;br /&gt;
* https://courses.grainger.illinois.edu/ece445/getfile.asp?id=18160&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=Apploader&amp;diff=8155</id>
		<title>Apploader</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=Apploader&amp;diff=8155"/>
		<updated>2024-08-01T18:12:21Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: /* Gamecube apploader reverse engineering for CubeDocumented project */ apostrophe&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Gamecube apploader reverse engineering for CubeDocumented project ==&lt;br /&gt;
&lt;br /&gt;
This reversing is not pretending to be compilable, and can be used for&lt;br /&gt;
education purposes only. I don&#039;t hold any responsibility for damage of your&lt;br /&gt;
Gamecube clock settings or memory card saves or else, produced from using&lt;br /&gt;
code/information represented in this document.&lt;br /&gt;
&lt;br /&gt;
Documented by Andrei Chestakov (org). Version 1.1. (26 Apr 2005)&lt;br /&gt;
Additions and corrections by tmbinc.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Complete Luigi&#039;s &#039;&#039;&#039;Apploader&#039;&#039;&#039;. Reverse work by org &amp;lt;kvzorganic_at_mail_dot_ru&amp;gt;&lt;br /&gt;
Other games seems to contain the same code with minor changes due to revision, so you may think, that apploader is the same for all games. Except [https://www.datel.co.uk/ Datel]&#039;s FreeLoader and ActionReplay DVDs, which are using custom apploader binary (simplified Nintendo&#039;s apploader).&lt;br /&gt;
&lt;br /&gt;
Apploader is a small program layer between GC bootrom and main application. Since main application&#039;s executable binary format may vary, apploader is needed to boot executable in main memory, using bootrom&#039;s low-level DVD read routines. In practice, all known game apploaders are using Nintendo&#039;s DOL format for executable files.&lt;br /&gt;
&lt;br /&gt;
Format of apploader binary is simple. First goes apploader header, and then actual apploader code.&lt;br /&gt;
&lt;br /&gt;
=== Apploader header ===&lt;br /&gt;
&lt;br /&gt;
 typedef struct&lt;br /&gt;
 {&lt;br /&gt;
    char    revision[16];       // Revision compile date (example &amp;quot;2001/12/17&amp;quot;)&lt;br /&gt;
    u32     entryPoint;         // Apploader&#039;s entrypoint&lt;br /&gt;
    s32     size;               // Size of apploader code&lt;br /&gt;
    s32     trailerSize;        // Size of safe trailer&lt;br /&gt;
    u8      padding[4];         // zeroes&lt;br /&gt;
 } LDRImage;&lt;br /&gt;
&lt;br /&gt;
Full apploader size is sum of size and trailerSize, rounded up to 32 bytes.&lt;br /&gt;
Trailer is need for future apploader versions.&lt;br /&gt;
&lt;br /&gt;
Apploader is located at 0x2440 offset on DVD and loaded by bootrom at 0x81200000 address. Then bootrom jumps to apploader&#039;s entrypoint:&lt;br /&gt;
&lt;br /&gt;
 void AplEntry(&lt;br /&gt;
    void    (**Init)(void (*OSReportCallback)(char *msg, ...)),&lt;br /&gt;
    BOOL    (**Main)(void **addr, s32 *length, s32 *offset),&lt;br /&gt;
    void*   (**Close)())&lt;br /&gt;
 {                                      &lt;br /&gt;
    // Return location of apploader&#039;s Init, Main and Close routines.&lt;br /&gt;
    *Init  = AplInit;&lt;br /&gt;
    *Main  = AplMain;&lt;br /&gt;
    *Close = AplClose;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
After executing of entrypoint, bootrom will call in order: apploader&#039;s Init, then Main, then Close. Main is called in loop, until it will not return 0.&lt;br /&gt;
&lt;br /&gt;
== PART I. Apploader Init ==&lt;br /&gt;
&lt;br /&gt;
Init call is clearing apploader&#039;s internal data, and saving there callback of OSReport call (which is located inside IPL). OSReport is used to output some debug messages, during apploader runtime.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Apploader&#039;s internal data: &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    // Some DVD transfers require multiple times to load.&lt;br /&gt;
    BOOL        SecondTimeForThePart;&lt;br /&gt;
    void*       SecondTimeAddr;&lt;br /&gt;
    s32         SecondTimeLength;&lt;br /&gt;
    s32         SecondTimeOffset;&lt;br /&gt;
    int         SecondTimePart;&lt;br /&gt;
 &lt;br /&gt;
    DVDBB2      bb2;        // DVD boot block&lt;br /&gt;
    DolImage    DolImage;   // main DOL executable header&lt;br /&gt;
 &lt;br /&gt;
    int         Section;    // DOL section&lt;br /&gt;
    int         Part;       // Apploader&#039;s step&lt;br /&gt;
    u32         +0x148      // ?? only cleared in Init&lt;br /&gt;
 &lt;br /&gt;
    // OSReport routine itself is placed somewhere in IPL&lt;br /&gt;
    void        (*OSReport)(char *msg, ...);&lt;br /&gt;
 &lt;br /&gt;
 #pragma pack(32)&lt;br /&gt;
    // First 32 bytes of DVDBI2 will be loaded here. This is a bit hacky.&lt;br /&gt;
    // We dont use whole DVDBI2 (its too big), to save some memory.&lt;br /&gt;
    // 32 bytes - because its minimum DVD DMA transfer size (?)&lt;br /&gt;
    s32         debugMonSize;&lt;br /&gt;
    s32         simMemSize;&lt;br /&gt;
    u32         argOffset;&lt;br /&gt;
    u32         debugFlag;&lt;br /&gt;
    int         FSTHigh;    // 1, if FST is resided on DVD above DOL&lt;br /&gt;
    u8          dummy[12];  // ending bytes&lt;br /&gt;
 #pragma pack(0)&lt;br /&gt;
 &lt;br /&gt;
 void AplInit(void (*OSReportCallback)(char *msg, ...))&lt;br /&gt;
 {&lt;br /&gt;
    // Clear some structures&lt;br /&gt;
    memset(&amp;amp;bb2, 0, sizeof(DVDBB2));&lt;br /&gt;
    memset(&amp;amp;DolImage, 0, sizeof(DolImage));&lt;br /&gt;
 &lt;br /&gt;
    Section = 0;&lt;br /&gt;
    Part = 0;&lt;br /&gt;
    [+0x148] = 0;&lt;br /&gt;
 &lt;br /&gt;
    OSReport = OSReportCallback;    // Save report callback&lt;br /&gt;
 &lt;br /&gt;
    // Print apploader version info&lt;br /&gt;
    OSReport(&amp;quot;Apploader Initialized.  $ Revision: 28 $\n&amp;quot;);&lt;br /&gt;
    OSReport(&amp;quot;This Apploader built %s %s\n&amp;quot;, __DATE__, __TIME__);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== PART II. Apploader Main ==&lt;br /&gt;
&lt;br /&gt;
Main is called in loop by IPL, until all data not loaded. IPL is using Main output parameters, to load data from DVD. IPL keeps loading new data, until&lt;br /&gt;
Main will not return 0, signaling that all data loaded.&lt;br /&gt;
Just read through comments to understand code.&lt;br /&gt;
&lt;br /&gt;
 BOOL AplMain(void **addr, s32 *length, s32 *offset)&lt;br /&gt;
 {&lt;br /&gt;
    OSLoMem *LoMem = OSPhysicalToCached(0x0000);&lt;br /&gt;
 &lt;br /&gt;
    switch(Part)&lt;br /&gt;
    {&lt;br /&gt;
        // Load BB2 structure.&lt;br /&gt;
        case 0:&lt;br /&gt;
        case 1:&lt;br /&gt;
            *addr = &amp;amp;bb2;&lt;br /&gt;
            *length = sizeof(DVDBB2);&lt;br /&gt;
            *offset = DVD_BB2_OFFSET;&lt;br /&gt;
 &lt;br /&gt;
            Part = 2;&lt;br /&gt;
            DCInvalidateRange(*addr, *length);&lt;br /&gt;
            break;&lt;br /&gt;
 &lt;br /&gt;
        // Check FST length and load first 32 bytes of BI2 structure.&lt;br /&gt;
        case 2:&lt;br /&gt;
            u32 FSTLength = bb2.FSTLength;&lt;br /&gt;
            u32 FSTMaxLength = bb2.FSTMaxLength;&lt;br /&gt;
 &lt;br /&gt;
            if(FSTLength &amp;gt; FSTMaxLength)&lt;br /&gt;
            {&lt;br /&gt;
                OSReport(&lt;br /&gt;
                    &amp;quot;APPLOADER ERROR &amp;gt;&amp;gt;&amp;gt; FSTLength(%d) in BB2 is greater &amp;quot;&lt;br /&gt;
                    &amp;quot;than FSTMaxLength(%d)\n&amp;quot;, FSTLength, FSTMaxLength );&lt;br /&gt;
                PPCHalt();&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
            *addr   = &amp;amp;debugMonSize;&lt;br /&gt;
            *length = 32;&lt;br /&gt;
            *offset = DVD_BI2_OFFSET;&lt;br /&gt;
 &lt;br /&gt;
            Part = 3;&lt;br /&gt;
            DCInvalidateRange(*addr, *length);&lt;br /&gt;
            break;&lt;br /&gt;
 &lt;br /&gt;
        // Setup some OS lomem variables by BI2 values, and check memory configuration.&lt;br /&gt;
        // Copy DVD BI2 in main memory.&lt;br /&gt;
        case 3:&lt;br /&gt;
            __OSDebugMonSize = debugMonSize;&lt;br /&gt;
            __OSDebugMon = OSRoundDown32B(__OSPhysMemSize - __OSDebugMonSize);&lt;br /&gt;
            __OSSimMemSize   = simMemSize;&lt;br /&gt;
 &lt;br /&gt;
            // Check debug monitor size alignment&lt;br /&gt;
            if(__OSDebugMonSize &amp;amp; 31)&lt;br /&gt;
            {&lt;br /&gt;
                OSReport(&lt;br /&gt;
                    &amp;quot;APPLOADER ERROR &amp;gt;&amp;gt;&amp;gt; Debug monitor size (%d) should &amp;quot;&lt;br /&gt;
                    &amp;quot;be a multiple of 32\n&amp;quot;, __OSDebugMonSize );&lt;br /&gt;
                PPCHalt();&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
            // Check console simulated memory size alignment&lt;br /&gt;
            if(__OSSimMemSize &amp;amp; 31)&lt;br /&gt;
            {&lt;br /&gt;
                OSReport(&lt;br /&gt;
                    &amp;quot;APPLOADER ERROR &amp;gt;&amp;gt;&amp;gt; simulated memory size (%d) &amp;quot;&lt;br /&gt;
                    &amp;quot;should be a multiple of 32\n&amp;quot;, __OSSimMemSize );&lt;br /&gt;
                PPCHalt();&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
            if(__OSSimMemSize == 0)&lt;br /&gt;
            {&lt;br /&gt;
                __OSSimMemSize = __OSPhysMemSize;&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
            if(__OSSimMemSize &amp;lt; __OSPhysMemSize)&lt;br /&gt;
            {&lt;br /&gt;
                if(__OSDebugMonSize &amp;gt;= (__OSPhysMemSize - __OSSimMemSize))&lt;br /&gt;
                {&lt;br /&gt;
                    OSReport(&lt;br /&gt;
                        &amp;quot;APPLOADER ERROR &amp;gt;&amp;gt;&amp;gt; [Physical memory size(0x%x)] &amp;quot;&lt;br /&gt;
                        &amp;quot;- [Console simulated memory size(0x%x)]\n&amp;quot;&lt;br /&gt;
                        &amp;quot;APPLOADER ERROR &amp;gt;&amp;gt;&amp;gt; must be greater than debug &lt;br /&gt;
                        &amp;quot;monitor size(0x%x)\n&amp;quot;, &lt;br /&gt;
                        __OSPhysMemSize, __OSSimMemSize, __OSDebugMonSize );&lt;br /&gt;
                    PPCHalt();&lt;br /&gt;
                }&lt;br /&gt;
 &lt;br /&gt;
                // Move down FST address&lt;br /&gt;
                bb2.FSTAddress = OSRoundDown32B(__OSSimMemSize - bb2.FSTMaxSize);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                if(__OSSimMemSize == __OSPhysMemSize)&lt;br /&gt;
                {&lt;br /&gt;
                    bb2.FSTAddress = OSRoundDown32B(__OSDebugMon - bb2.FSTMaxSize);&lt;br /&gt;
                }&lt;br /&gt;
                else&lt;br /&gt;
                {&lt;br /&gt;
                    OSReport(&lt;br /&gt;
                        &amp;quot;APPLOADER ERROR &amp;gt;&amp;gt;&amp;gt; Physical memory size is 0x%x bytes.\n&amp;quot;&lt;br /&gt;
                        &amp;quot;APPLOADER ERROR &amp;gt;&amp;gt;&amp;gt; Console simulated memory size &amp;quot;&lt;br /&gt;
                        &amp;quot;must be smaller than or equal to the Physical memory size\n&amp;quot;,&lt;br /&gt;
                        __OSPhysMemSize, __OSSimMemSize );&lt;br /&gt;
                    PPCHalt();&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
            // Load whole BI2 in main memory. Reside it before FST.&lt;br /&gt;
            __OSBootInfo2 = bb2.FSTAddress - OS_BI2_SIZE;&lt;br /&gt;
 &lt;br /&gt;
            *addr   = __OSBootInfo2;&lt;br /&gt;
            *length = OS_BI2_SIZE;&lt;br /&gt;
            *offset = DVD_BI2_OFFSET;&lt;br /&gt;
 &lt;br /&gt;
            Part = 4;&lt;br /&gt;
            DCInvalidateRange(*addr, *length);&lt;br /&gt;
            break;&lt;br /&gt;
 &lt;br /&gt;
        // Load FST, only if FST placed before boot file.&lt;br /&gt;
        case 4:&lt;br /&gt;
            FSTHigh = bb2.bootFilePosition &amp;lt; bb2.FSTPosition;&lt;br /&gt;
            if(FSTHigh)&lt;br /&gt;
            {&lt;br /&gt;
                // Continue on part 5. Load FST later.&lt;br /&gt;
                Part = 5;&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                *addr   = bb2.FSTAddress;&lt;br /&gt;
                *length = OSRoundUp32B(bb2.FSTLength);&lt;br /&gt;
                *offset = bb2.FSTPosition;&lt;br /&gt;
 &lt;br /&gt;
                Part = 5;&lt;br /&gt;
 &lt;br /&gt;
                if(*addr &amp;gt; 0x81700000)&lt;br /&gt;
                {&lt;br /&gt;
                    OSReport(&lt;br /&gt;
                        &amp;quot;APPLOADER ERROR &amp;gt;&amp;gt;&amp;gt; Illegal FST &amp;quot;&lt;br /&gt;
                        &amp;quot;destination address! (0x%x)\n&amp;quot;, *addr );&lt;br /&gt;
                    PPCHalt();&lt;br /&gt;
                }&lt;br /&gt;
 &lt;br /&gt;
                DCInvalidateRange(*addr, *length);&lt;br /&gt;
                LoadBigData(addr, length, offset, &amp;amp;Part);&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
        // Load main DOL header.&lt;br /&gt;
        case 5:&lt;br /&gt;
            *addr   = &amp;amp;DolImage;&lt;br /&gt;
            *length = sizeof(DolImage);&lt;br /&gt;
            *offset = bb2.bootFilePosition;&lt;br /&gt;
 &lt;br /&gt;
            Part = 6;&lt;br /&gt;
            DCInvalidateRange(*addr, *length);&lt;br /&gt;
            break;&lt;br /&gt;
 &lt;br /&gt;
        // Check out DOL properties. Clear BSS.&lt;br /&gt;
        case 6:&lt;br /&gt;
            s32 dolSize = DOLSize();&lt;br /&gt;
 &lt;br /&gt;
            // Halt apploader, if DOL size exceeds limit.&lt;br /&gt;
            if( (dolSize &amp;gt; __OSBootInfo2-&amp;gt;dolLimit) &amp;amp;&amp;amp; __OSBootInfo2-&amp;gt;dolLimit)&lt;br /&gt;
            {&lt;br /&gt;
                OSReport(&lt;br /&gt;
                    &amp;quot;APPLOADER ERROR &amp;gt;&amp;gt;&amp;gt; Total size of text/data sections &amp;quot;&lt;br /&gt;
                    &amp;quot;of the dol file are too big (%d(0x%08x) bytes). &amp;quot;&lt;br /&gt;
                    &amp;quot;Currently the limit is set as %d(0x%08x) bytes\n&amp;quot;,&lt;br /&gt;
                    dolSize, __OSBootInfo2-&amp;gt;dolLimit );&lt;br /&gt;
                PPCHalt();&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
            // Save DOL size in OS globals&lt;br /&gt;
            if(FSTHigh) __OSDOLSize = dolSize + OSRoundUp32B(bb2.FSTLength);&lt;br /&gt;
            else __OSDOLSize = dolSize;&lt;br /&gt;
 &lt;br /&gt;
            // Address limit?&lt;br /&gt;
            #define DOL_ADDRESS_LIMIT   0x80700000  // production boards&lt;br /&gt;
            #define DOL_ADDRESS_LIMITD  0x81200000  // development boards&lt;br /&gt;
            if(!(OSGetConsoleType() &amp;amp; OS_CONSOLE_DEVELOPMENT))&lt;br /&gt;
            {&lt;br /&gt;
                if(AddressLimit(DOL_ADDRESS_LIMIT) == FALSE)&lt;br /&gt;
                {&lt;br /&gt;
                    OSReport(&lt;br /&gt;
                        &amp;quot;APPLOADER ERROR &amp;gt;&amp;gt;&amp;gt; One of the sections in the dol file &amp;quot;&lt;br /&gt;
                        &amp;quot;exceeded its boundary. All the sections should not exceed &amp;quot;&lt;br /&gt;
                        &amp;quot;0x%08x (production mode).\n&amp;quot;, DOL_ADDRESS_LIMIT );&lt;br /&gt;
                    PPCHalt();&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                // Check twice : first for production mode, then for development.&lt;br /&gt;
 &lt;br /&gt;
                if(AddressLimit(DOL_ADDRESS_LIMIT) == FALSE)&lt;br /&gt;
                {&lt;br /&gt;
                    OSReport(&lt;br /&gt;
                        &amp;quot;APPLOADER WARNING &amp;gt;&amp;gt;&amp;gt; One of the sections in the dol file &amp;quot;&lt;br /&gt;
                        &amp;quot;exceeded its boundary. All the sections should not exceed &amp;quot;&lt;br /&gt;
                        &amp;quot;0x%08x in production mode.\n&amp;quot;, DOL_ADDRESS_LIMIT );&lt;br /&gt;
                    // Do not halt apploader (show only warning).&lt;br /&gt;
                }&lt;br /&gt;
 &lt;br /&gt;
                if(AddressLimit(DOL_ADDRESS_LIMITD) == FALSE)&lt;br /&gt;
                {&lt;br /&gt;
                    OSReport(&lt;br /&gt;
                        &amp;quot;APPLOADER ERROR &amp;gt;&amp;gt;&amp;gt; One of the sections in the dol file &amp;quot;&lt;br /&gt;
                        &amp;quot;exceeded its boundary. All the sections should not exceed &amp;quot;&lt;br /&gt;
                        &amp;quot;0x%08x (development mode).\n&amp;quot;, DOL_ADDRESS_LIMITD );&lt;br /&gt;
                    PPCHalt();&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
            // Clear BSS&lt;br /&gt;
            memset(DolImage.bss, 0, DolImage.bssLen);&lt;br /&gt;
            DCFlushRange(DolImage.bss, DolImage.bssLen);&lt;br /&gt;
 &lt;br /&gt;
            Part = 7;&lt;br /&gt;
 &lt;br /&gt;
        // Load text sections.&lt;br /&gt;
        case 7:&lt;br /&gt;
            if(Section&amp;lt;DOL_MAX_TEXT)&lt;br /&gt;
            {&lt;br /&gt;
                if(DolImage.textData[Section])&lt;br /&gt;
                {&lt;br /&gt;
                    *addr   = DolImage.text[Section];&lt;br /&gt;
                    *length = OSRoundUp32B(DolImage.textLen[Section]);&lt;br /&gt;
                    *offset = bb2.bootFilePosition + DolImage.textData[Section];&lt;br /&gt;
 &lt;br /&gt;
                    if( (*addr + *length) &amp;gt; 0x81200000 )&lt;br /&gt;
                    {&lt;br /&gt;
                        OSReport(&lt;br /&gt;
                            &amp;quot;APPLOADER ERROR &amp;gt;&amp;gt;&amp;gt; Too big text segment! (0x%x - 0x%x)\n&amp;quot;,&lt;br /&gt;
                            *addr, *addr + *length );&lt;br /&gt;
                        PPCHalt();&lt;br /&gt;
                    }&lt;br /&gt;
 &lt;br /&gt;
                    Section++;&lt;br /&gt;
                    DCInvalidateRange(*addr, *length);&lt;br /&gt;
                    break;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                Section = 0;&lt;br /&gt;
                Part = 8;&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
        // Load data sections.&lt;br /&gt;
        case 8:&lt;br /&gt;
            if(Section&amp;lt;DOL_MAX_DATA)&lt;br /&gt;
            {&lt;br /&gt;
                if(DolImage.dataData[Section])&lt;br /&gt;
                {&lt;br /&gt;
                    *addr   = DolImage.data[Section];&lt;br /&gt;
                    *length = OSRoundUp32B(DolImage.dataLen[Section]);&lt;br /&gt;
                    *offset = bb2.bootFilePosition + DolImage.dataData[Section];&lt;br /&gt;
 &lt;br /&gt;
                    if( (*addr + *length) &amp;gt; 0x81200000 )&lt;br /&gt;
                    {&lt;br /&gt;
                        OSReport(&lt;br /&gt;
                            &amp;quot;APPLOADER ERROR &amp;gt;&amp;gt;&amp;gt; Too big data segment! (0x%x - 0x%x)\n&amp;quot;,&lt;br /&gt;
                            *addr, *addr + *length );&lt;br /&gt;
                        PPCHalt();&lt;br /&gt;
                    }&lt;br /&gt;
 &lt;br /&gt;
                    Section++;&lt;br /&gt;
                    DCInvalidateRange(*addr, *length);&lt;br /&gt;
                    break;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                Section = 0;&lt;br /&gt;
                Part = 9;&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
        // Load FST, only if FST placed after boot file.&lt;br /&gt;
        case 9:&lt;br /&gt;
            if(FSTHigh)&lt;br /&gt;
            {&lt;br /&gt;
                *addr   = bb2.FSTAddress;&lt;br /&gt;
                *length = OSRoundUp32B(bb2.FSTLength);&lt;br /&gt;
                *offset = bb2.FSTPosition;&lt;br /&gt;
 &lt;br /&gt;
                Part = 10;&lt;br /&gt;
 &lt;br /&gt;
                if(*addr &amp;gt; 0x81700000)&lt;br /&gt;
                {&lt;br /&gt;
                    OSReport(&lt;br /&gt;
                        &amp;quot;APPLOADER ERROR &amp;gt;&amp;gt;&amp;gt; Illegal FST &amp;quot;&lt;br /&gt;
                        &amp;quot;destination address! (0x%x)\n&amp;quot;, *addr );&lt;br /&gt;
                    PPCHalt();&lt;br /&gt;
                }&lt;br /&gt;
 &lt;br /&gt;
                DCInvalidateRange(*addr, *length);&lt;br /&gt;
                LoadBigData(addr, length, offset, &amp;amp;Part);&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                // Continue on part 10.&lt;br /&gt;
                Part = 10;&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
        // Init misc. low memory variables. Continue on part 11.&lt;br /&gt;
        case 10:&lt;br /&gt;
            InitLoMem(LoMem);&lt;br /&gt;
            Part = 11;&lt;br /&gt;
 &lt;br /&gt;
        // Read button state of 4th controller and save it in OS global.&lt;br /&gt;
        // It&#039;s for testing pre-master dvds (NR Discs). But as NR discs gets&lt;br /&gt;
        // written without change to the dvdroms the retail apploaders contains&lt;br /&gt;
        // it, too. If you plug in a special device (dunno what it is exactly -&lt;br /&gt;
        // controller with special id? some bit set?) the apploader starts making&lt;br /&gt;
        // a crc of the whole disc and compare that to a crc stored on memory card.&lt;br /&gt;
        case 11:&lt;br /&gt;
            PADStatus padst;&lt;br /&gt;
            PadRead(PAD_CHAN3, &amp;amp;padst);&lt;br /&gt;
            __OSPADButton = padst.button;&lt;br /&gt;
 &lt;br /&gt;
            // All data loaded. End of apploader.&lt;br /&gt;
            return FALSE;&lt;br /&gt;
 &lt;br /&gt;
        // This part will be called, if DVD need to load more, than 64 sectors.&lt;br /&gt;
        case 12:&lt;br /&gt;
            ASSERT(SecondTimeForThePart == TRUE);&lt;br /&gt;
            LoadBigData(addr, length, offset, &amp;amp;Part);&lt;br /&gt;
            break;&lt;br /&gt;
 &lt;br /&gt;
        // Unknown part. Abort data loading.&lt;br /&gt;
        default:&lt;br /&gt;
            return FALSE;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // We need to load more data. Tell IPL to do that.&lt;br /&gt;
    return TRUE;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== PART III. Apploader Close ==&lt;br /&gt;
&lt;br /&gt;
Close call is executed after apploader&#039;s Main.&lt;br /&gt;
&lt;br /&gt;
 void* AplClose(void)&lt;br /&gt;
 {&lt;br /&gt;
    // Return entrypoint of main DOL executable to IPL&lt;br /&gt;
    return DolImage.entry;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Now IPL jumps to DOL&#039;s entrypoint (__start).&lt;br /&gt;
&lt;br /&gt;
== Appendix A: Helper calls ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Calculate full size of DOL text and data sections &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 s32 DOLSize(void)&lt;br /&gt;
 {&lt;br /&gt;
    DolImage *dol = &amp;amp;DolImage;&lt;br /&gt;
    s32 totalBytes = 0, i;&lt;br /&gt;
 &lt;br /&gt;
    for(i=0; i&amp;lt;DOL_MAX_TEXT; i++)&lt;br /&gt;
    {&lt;br /&gt;
        if(dol-&amp;gt;textData[i])&lt;br /&gt;
        {&lt;br /&gt;
            // Aligned to 32 byte boundary&lt;br /&gt;
            totalBytes += OSRoundUp32B(dol-&amp;gt;textLen[i]);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    for(i=0; i&amp;lt;DOL_MAX_DATA; i++)&lt;br /&gt;
    {&lt;br /&gt;
        if(dol-&amp;gt;dataData[i])&lt;br /&gt;
        {&lt;br /&gt;
            // Aligned to 32 byte boundary&lt;br /&gt;
            totalBytes += OSRoundUp32B(dol-&amp;gt;dataLen[i]);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    return totalBytes;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Return FALSE, if any DOL section, including BSS exceed address limit &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 BOOL AddressLimit(u32 limit)&lt;br /&gt;
 {&lt;br /&gt;
    DolImage *dol = &amp;amp;DolImage;&lt;br /&gt;
    s32 i, end;&lt;br /&gt;
 &lt;br /&gt;
    // Text sections&lt;br /&gt;
    for(i=0; i&amp;lt;DOL_MAX_TEXT; i++)&lt;br /&gt;
    {&lt;br /&gt;
        if(dol-&amp;gt;textData[i])&lt;br /&gt;
        {&lt;br /&gt;
            end = dol-&amp;gt;text[i] + dol-&amp;gt;textLen[i];&lt;br /&gt;
 &lt;br /&gt;
            if( ((dol-&amp;gt;text[i] &amp;lt; 0x81100000) || (end &amp;gt; 0x81300000)) &amp;amp;&amp;amp; (end &amp;gt; limit) )&lt;br /&gt;
            {&lt;br /&gt;
                return FALSE;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // Data sections&lt;br /&gt;
    for(i=0; i&amp;lt;DOL_MAX_DATA; i++)&lt;br /&gt;
    {&lt;br /&gt;
        if(dol-&amp;gt;dataData[i])&lt;br /&gt;
        {&lt;br /&gt;
            end = dol-&amp;gt;data[i] + dol-&amp;gt;dataLen[i];&lt;br /&gt;
 &lt;br /&gt;
            if( ((dol-&amp;gt;data[i] &amp;lt; 0x81100000) || (end &amp;gt; 0x81300000)) &amp;amp;&amp;amp; (end &amp;gt; limit) )&lt;br /&gt;
            {&lt;br /&gt;
                return FALSE;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // BSS&lt;br /&gt;
    end = dol-&amp;gt;bss + dol-&amp;gt;bssLen;&lt;br /&gt;
    if( ((dol-&amp;gt;bss &amp;lt; 0x81100000) || (end &amp;gt; 0x81300000)) &amp;amp;&amp;amp; (end &amp;gt; limit) )&lt;br /&gt;
    {&lt;br /&gt;
        return FALSE;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    return TRUE;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Some big transfers requires multiple load times for single apploader part &#039;&#039;&#039;&lt;br /&gt;
(Limit is set to 64 DVD sectors - WHY?).&lt;br /&gt;
&lt;br /&gt;
 void LoadBigData(void **addr, s32 *length, s32 *offset, int *part)&lt;br /&gt;
 {&lt;br /&gt;
    if(SecondTimeForThePart)&lt;br /&gt;
    {&lt;br /&gt;
        SecondTimeForThePart = FALSE;&lt;br /&gt;
 &lt;br /&gt;
        *addr   = SecondTimeAddr;&lt;br /&gt;
        *length = SecondTimeLength;&lt;br /&gt;
        *offset = SecondTimeOffset;&lt;br /&gt;
        *part   = SecondTimePart;&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        if(*length &amp;gt; 64*2048)       // 64 DVD sectors&lt;br /&gt;
        {&lt;br /&gt;
            // Initiate multiple DVD load.&lt;br /&gt;
            SecondTimeForThePart = TRUE;&lt;br /&gt;
 &lt;br /&gt;
            SecondTimeAddr = *addr + 64*2048;&lt;br /&gt;
            SecondTimeLength = *length - 64*2048;&lt;br /&gt;
            SecondTimeOffset = *offset + 64*2048;&lt;br /&gt;
            SecondTimePart = *part;&lt;br /&gt;
 &lt;br /&gt;
            *length = 64*2048;&lt;br /&gt;
            *part = 12;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Init some OS low memory variables &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 void InitLoMem(OSLoMem *LoMem)&lt;br /&gt;
 {&lt;br /&gt;
    LoMem-&amp;gt;bi.magic = OS_BOOTINFO_MAGIC;    // 0xD15EA5E&lt;br /&gt;
    LoMem-&amp;gt;bi.version = 1;&lt;br /&gt;
&lt;br /&gt;
    // Clear debug interface (db/DBInterface.h)&lt;br /&gt;
    LoMem-&amp;gt;db.bPresent = &lt;br /&gt;
    LoMem-&amp;gt;db.exceptionMask =&lt;br /&gt;
    LoMem-&amp;gt;db.ExceptionDestination = &lt;br /&gt;
    LoMem-&amp;gt;db.exceptionReturn = NULL;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Read PAD input buffer (buttons state). If PAD is not polled, return zeroes &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 void PadRead(int port, u32 *buf)&lt;br /&gt;
 {&lt;br /&gt;
    // If controller polling enabled&lt;br /&gt;
    if(SI_POLL &amp;amp; (0x80 &amp;gt;&amp;gt; port))&lt;br /&gt;
    {&lt;br /&gt;
        // Read SI input buffer&lt;br /&gt;
        buf[0] = SI_CHAN_INBUFH(port);&lt;br /&gt;
        buf[1] = SI_CHAN_INBUFL(port);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        buf[0] = buf[1] = 0;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Appendix B: DVD structures ==&lt;br /&gt;
&lt;br /&gt;
 #define DVD_BB2_OFFSET      0x420&lt;br /&gt;
 #define DVD_BI2_OFFSET      0x440&lt;br /&gt;
 &lt;br /&gt;
 #define OS_BI2_SIZE         0x2000  // Size of BI2 structure&lt;br /&gt;
 &lt;br /&gt;
 // DVD Boot Block&lt;br /&gt;
 typedef struct&lt;br /&gt;
 {&lt;br /&gt;
    u32     bootFilePosition;       // offset of main DOL executable&lt;br /&gt;
    u32     FSTPosition;            // offset of primary FST&lt;br /&gt;
    u32     FSTLength;              // primary FST size (in bytes)&lt;br /&gt;
    u32     FSTMaxLength;           // size of biggest additional FST&lt;br /&gt;
    u32     FSTAddress;             // FST address in main memory&lt;br /&gt;
    u32     userPosition;&lt;br /&gt;
    u32     userLength;&lt;br /&gt;
    u8      padding0[4];            // reserved, should be 0&lt;br /&gt;
 } DVDBB2;&lt;br /&gt;
&lt;br /&gt;
FST is File String Table. User area on DVD is where all files are placed. On some DVDs, user area is configured wrong. To know correct user area, you should parse whole FST and find min and max file offsets.&lt;br /&gt;
&lt;br /&gt;
 // DVD Boot Info&lt;br /&gt;
 typedef struct&lt;br /&gt;
 {&lt;br /&gt;
    s32     debugMonSize;           // size of debug monitor&lt;br /&gt;
    s32     simMemSize;             // simulated memory size (in bytes)&lt;br /&gt;
    u32     argOffset;              // command line arguments&lt;br /&gt;
    u32     debugFlag;              // debug present (set to 3, if CodeWarrior on GDEV)&lt;br /&gt;
    u32     TRKLocation;            // target resident kernel location&lt;br /&gt;
    s32     TRKSize;                // size of TRK&lt;br /&gt;
    u32     countryCode;            // country code&lt;br /&gt;
    u32     ?       +1C&lt;br /&gt;
    u32     ?       +20&lt;br /&gt;
    u32     ?       +24&lt;br /&gt;
    u32     dolLimit;               // maximum total size of DOL text/data sections (0 - unlimited)&lt;br /&gt;
    u32     ?       +2C&lt;br /&gt;
 &lt;br /&gt;
    u8      padded0[OS_BI2_SIZE - 0x30]; // reserved, should be 0&lt;br /&gt;
 } DVDBI2;&lt;br /&gt;
 &lt;br /&gt;
 Somewhere in +1C, +20 or +24 must present :&lt;br /&gt;
 u32     longFileNameSupport;    // 1: use long file names, 0: use 8.3 names&lt;br /&gt;
 u32     padSpec;                // controller version for PADSetSpec&lt;br /&gt;
&lt;br /&gt;
== Appendix C: Used OS low memory variables ==&lt;br /&gt;
&lt;br /&gt;
 s32     __OSPhysMemSize     AT_ADDRESS(OS_BASE_CACHED | 0x0028);&lt;br /&gt;
 s32     __OSDebugMonSize    AT_ADDRESS(OS_BASE_CACHED | 0x00E8);&lt;br /&gt;
 void*   __OSDebugMon        AT_ADDRESS(OS_BASE_CACHED | 0x00EC);&lt;br /&gt;
 s32     __OSSimMemSize      AT_ADDRESS(OS_BASE_CACHED | 0x00F0);&lt;br /&gt;
 DVDBI2* __OSBootInfo2       AT_ADDRESS(OS_BASE_CACHED | 0x00F4);&lt;br /&gt;
 s32     __OSDOLSize         AT_ADDRESS(OS_BASE_CACHED | 0x30D4);&lt;br /&gt;
 u16     __OSPADButton       AT_ADDRESS(OS_BASE_CACHED | 0x30E4);&lt;br /&gt;
&lt;br /&gt;
== Strange Things ==&lt;br /&gt;
&lt;br /&gt;
What&#039;s [+0x148] in apploader data? Its only cleared in Init, but not used.&lt;br /&gt;
&lt;br /&gt;
Why FST loading is so strange : if FST placed above DOL, then its loaded after DOL, otherwise its loaded before DOL.&lt;br /&gt;
&lt;br /&gt;
 if(FSTHigh) __OSDOLSize = dolSize + OSRoundUp32B(bb2.FSTLength);&lt;br /&gt;
 else __OSDOLSize = dolSize;&lt;br /&gt;
Why so?&lt;br /&gt;
&lt;br /&gt;
Why FST is loaded in pieces, if its greater than 64 DVD sectors, but big DOL sections are not loaded in same way?&lt;br /&gt;
&lt;br /&gt;
Some code is placed after apploader data. Is it garbage or what?&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;br /&gt;
&lt;br /&gt;
* Need more BI2 details.&lt;br /&gt;
&lt;br /&gt;
* Get Zelda apploader and crosscheck it with current reversing. Maybe some interesting things will be discovered.&lt;br /&gt;
&lt;br /&gt;
* Count how many apploader revisions are present today.&lt;br /&gt;
&lt;br /&gt;
== Source ==&lt;br /&gt;
This information was found at: [http://dolwin.emulation64.com/docs/Apploader.txt]&lt;br /&gt;
&lt;br /&gt;
[[Category:CubeDocumented]]&lt;br /&gt;
[[Category:Technical Info]]&lt;br /&gt;
[[Category:Reverse Engineering]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=Memory_Card&amp;diff=8154</id>
		<title>Memory Card</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=Memory_Card&amp;diff=8154"/>
		<updated>2024-08-01T16:22:58Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: devices that are not memory cards can be inserted&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Gamecube has two slots for &#039;&#039;&#039;memory cards&#039;&#039;&#039; where game information is stored.  A common memory card capacity is 59 blocks.  &#039;&#039;Animal Crossing&#039;&#039; was shipped with one of these 59-block cards.  251 blocks is also common.&lt;br /&gt;
&lt;br /&gt;
A block is 8192 bytes.&lt;br /&gt;
&lt;br /&gt;
Some devices that are not memory cards can be inserted into the slots.&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=Memory_Card&amp;diff=8142</id>
		<title>Memory Card</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=Memory_Card&amp;diff=8142"/>
		<updated>2024-07-30T09:28:33Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: block size&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Gamecube has two slots for &#039;&#039;&#039;memory cards&#039;&#039;&#039; where game information is stored.  A common memory card capacity is 59 blocks.  &#039;&#039;Animal Crossing&#039;&#039; was shipped with one of these 59-block cards.  251 blocks is also common.&lt;br /&gt;
&lt;br /&gt;
A block is 8192 bytes.&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=Sarah&amp;diff=8135</id>
		<title>Sarah</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=Sarah&amp;diff=8135"/>
		<updated>2024-07-26T15:20:39Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: linkify&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox/homebrew&lt;br /&gt;
| title       = Sarah&lt;br /&gt;
| image       = [[File:Sarah_game.png]]&lt;br /&gt;
| type        = Game&lt;br /&gt;
| author      = Cyndanera&lt;br /&gt;
| version     = 1.0&lt;br /&gt;
| licence     = Proprietary&lt;br /&gt;
| website     = https://www.cyndanera.com&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;Sarah&#039;&#039;&#039; is a Metroidvania Platformer game currently in development &amp;amp; will be released on a bootable disc for the [[GameCube]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Homebrew_Software]]&lt;br /&gt;
[[Category:Homebrew_Games]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=Qoob&amp;diff=8119</id>
		<title>Qoob</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=Qoob&amp;diff=8119"/>
		<updated>2024-07-25T13:05:09Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: removed unnecessary word; parens&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox&lt;br /&gt;
|name         = Infobox/doc&lt;br /&gt;
|bodystyle    = &lt;br /&gt;
|title        = Qoob&lt;br /&gt;
|titlestyle   = &lt;br /&gt;
&lt;br /&gt;
|image        = [[File:qoob.jpg|200px|alt=Qoob Modchip]]&lt;br /&gt;
|imagestyle   = &lt;br /&gt;
|caption      = Qoob modchip&lt;br /&gt;
|captionstyle = &lt;br /&gt;
|headerstyle  = background:#ccf;&lt;br /&gt;
|labelstyle   = background:#ddf;&lt;br /&gt;
|datastyle    = background:#ddf;&lt;br /&gt;
&lt;br /&gt;
|header1 = Specification&lt;br /&gt;
|label2  = Generation&lt;br /&gt;
|data2   = [[IPL Replacement]]&lt;br /&gt;
|header3 = Flash Size&lt;br /&gt;
|label4  = PRO Series&lt;br /&gt;
|data4   = 2Mb (16MBit)&lt;br /&gt;
|label5  = SX Series&lt;br /&gt;
|data5   = 128Kb (1MBit)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Qoob&#039;&#039;&#039; modchip surfaced around late 2004-2006. It came quite late in the [[IPL Replacement]] era of modchips and was one of the last to be produced (with the exception of the Extreme series of [[Viper GC]]).&lt;br /&gt;
&lt;br /&gt;
The Qoob chip came in two varieties - Pro &amp;amp; SX. They were both very feature rich and were similar to the [[Viper GC]] series, each acting as an [[IPL Replacement]], with 2Mb &amp;amp; 128Kb programmable ROM receptively. The Qoob Pro was an improved variant of the tmbinc [[IPL Replacement]] with added security, USB flashing support for the Pro series and DVD/ELF flashing for the SX. It was initially bundled with a full size case replacement for around $99 USD and sold very well.&lt;br /&gt;
&lt;br /&gt;
The Qoob was succeeded by the [[Qoob Lite]], which was a [[drivechip]].&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
===Pro version===&lt;br /&gt;
&lt;br /&gt;
The pro version of the Qoob chip is intended for developers and/or advanced users. The biggest differences from the sx version is the USB upgrade feature and 16Mbit flash memory.&lt;br /&gt;
A Qoob Pro modchip installed inside of a Gamecube.&lt;br /&gt;
&lt;br /&gt;
List of features:&lt;br /&gt;
&lt;br /&gt;
* Direct booting of all media.&lt;br /&gt;
* Support for all regions (PAL, USA and Japan).&lt;br /&gt;
* Upgrades via USB, DVD or network (network upgrade requires a Nintendo GameCube Broadband Adapter).&lt;br /&gt;
* 16Mbit on-board flash memory for application storage.&lt;br /&gt;
* BIOS selection/control.&lt;br /&gt;
* Support for all retail hardware, including Panasonic Q.&lt;br /&gt;
* Fastboot of original GameCube discs.&lt;br /&gt;
* Integrated media compatibility check.&lt;br /&gt;
* IPL replacement compatibility via SD card or network.&lt;br /&gt;
* Streaming Audio Fix.&lt;br /&gt;
* MP3 player software included. (removed in later BIOS revisions)&lt;br /&gt;
* Status LED&lt;br /&gt;
* Support for DVD-R, DVD+R and MiniDVD&lt;br /&gt;
* Support for multiple games per disc&lt;br /&gt;
* Support for multi-disc games.&lt;br /&gt;
* Support for Datel Action Replay.&lt;br /&gt;
&lt;br /&gt;
===SX version===&lt;br /&gt;
&lt;br /&gt;
Released after the pro version, the sx version is a stripped down version of the Qoob Pro chip, missing the usb upgrade feature and containing only 1Mbit of flash memory. The sx is equipped with a backup read-only bios preventing users or malicious code from &amp;quot;breaking&amp;quot; the chip.&lt;br /&gt;
A Qoob SX modchip installed inside of a Gamecube.&lt;br /&gt;
&lt;br /&gt;
List of features:&lt;br /&gt;
&lt;br /&gt;
* Direct booting of all media.&lt;br /&gt;
* Support for all regions (PAL, USA and Japan).&lt;br /&gt;
* Upgrades via DVD and network (requires a broadband adapter).&lt;br /&gt;
* BIOS selection/control.&lt;br /&gt;
* Support for all retail hardware, including Panasonic Q.&lt;br /&gt;
* Fastboot of original GameCube discs.&lt;br /&gt;
* IPL replacement compatibility via SD card or network.&lt;br /&gt;
* Streaming Audio Fix.&lt;br /&gt;
* Integrated media compatibility check.&lt;br /&gt;
* Support for DVD-R, DVD+R, and MiniDVD&lt;br /&gt;
* Support for multiple games per disc&lt;br /&gt;
* Support for multi-disc games.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DVD Ripping==&lt;br /&gt;
Qoob offers the ability to rip DVD backups via LAN with a Nintendo GameCube Broadband Adapter. &amp;lt;br&amp;gt;&lt;br /&gt;
PC IP Address: 192.168.1.100 &amp;lt;br&amp;gt;&lt;br /&gt;
GAMECUBE IP Address: 192.168.1.32 (automatically set) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Start Internet Explorer, in the navigation bar type: &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://192.168.1.32/DVD&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;  &amp;lt;br&amp;gt;&lt;br /&gt;
A window will open allowing the ability to save the file. Rename the file appropriately. ( FireFox is not recommended due to interface issues )  &amp;lt;br&amp;gt;&lt;br /&gt;
Once ripping is completed, manually add the .&amp;quot;iso&amp;quot; or &amp;quot;.gcm&amp;quot; file extension &amp;lt;br&amp;gt;&lt;br /&gt;
Average ripping speed: 600KB p/s &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==BIOS==&lt;br /&gt;
[http://www.gc-forever.com/forums/viewtopic.php?f=4&amp;amp;t=23 BIOS files available at gc-forever.com]&lt;br /&gt;
&lt;br /&gt;
==Further Info==&lt;br /&gt;
[http://en.wikipedia.org/wiki/Qoob_chip Qoob Chip @ Wikipedia]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:lightblue;font-size:10pt&amp;quot; width=&amp;quot;800&amp;quot;| Qoob&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; width=&amp;quot;200&amp;quot; | Developers&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | CPU&lt;br /&gt;
| Actel ProASIC Plus APA075 &lt;br /&gt;
|- &lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Modchip Type&lt;br /&gt;
| [[IPL Replacement]]&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Features&lt;br /&gt;
| [[Gamecube BIOS]]&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Installation&lt;br /&gt;
| 6 wires &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Modchips]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=Nintendo_GameCube&amp;diff=8118</id>
		<title>Nintendo GameCube</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=Nintendo_GameCube&amp;diff=8118"/>
		<updated>2024-07-24T08:10:51Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: front panel info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Nintendo GameCube&#039;&#039;&#039; is a disc-based game console.  It is the successor to the Nintendo 64 and predecessor to the Wii.&lt;br /&gt;
&lt;br /&gt;
It has four controller ports and two [[memory card]] slots.&lt;br /&gt;
&lt;br /&gt;
We really should have a page on this.&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=NPDP_Cartridge&amp;diff=8117</id>
		<title>NPDP Cartridge</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=NPDP_Cartridge&amp;diff=8117"/>
		<updated>2024-07-24T08:09:24Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: linkify GC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NPDP Cartridge&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
The &#039;&#039;&#039;NPDP Cartridge&#039;&#039;&#039; interfaces with the [[Nintendo GameCube]] DVD interface. These can be used on a NPDP Console or GDEV-NPDP, these were used during the testing part of the development life-cycle for rapid version changing by simply writing a version of the game to a slot on the HDD in around 3-5 minutes and plugging it into the console.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
The cartridge itself has the bulk of the optical drive emulation hardware, while the port on the NPDP Console/GDEV is just redirecting the custom connector to a few switches/LEDs to change &amp;quot;disc&amp;quot; or simulate a disc open then finally to the console.&lt;br /&gt;
&lt;br /&gt;
6GB Hard disk drives are used, which is enough storage for 4 GameCube games.&lt;br /&gt;
&lt;br /&gt;
It has a SH-3 CPU and a Spartan (more info).&lt;br /&gt;
&lt;br /&gt;
=== Hard drive specifics ===&lt;br /&gt;
&lt;br /&gt;
The hard disk drive is 6GB as stated above, however a larger HDD can be used but the game offets are hardcoded at 0x200000, 0x59200000, 0xB2200000, 0x10B200000. These coincide with the &amp;quot;slots&amp;quot; on the NPDP Console/GDEV. Each game entry seems to be 0x59000000 bytes long (to be confirmed).&lt;br /&gt;
&lt;br /&gt;
The hard disk is locked with a master password at the high security level. The password is &#039;N-PDP Master Passwd&#039;, and it can depend on your view if you need to byteswap it or not. Sending the ATA commands 0xF2 (UNLOCK) then a 0xF6 (DISABLE) with the correct packet data will get you the Hard Disk unlocked, then you are able to read/write the contents, and put it back in the [[NPDP Reader]] to have it lock again with the master password.&lt;br /&gt;
&lt;br /&gt;
The games (not in between areas) are XOR&#039;d with a 32bit key which is seeded by 0xDEADBEEF + the response from either 0x12 or NPDP-ID command sent to the card - need to confirm this part. After applying the XOR to get the decypted content, you need to byteswap the dump to get it into proper format.&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=MXB012355&amp;diff=8116</id>
		<title>MXB012355</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=MXB012355&amp;diff=8116"/>
		<updated>2024-07-24T07:56:08Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: /* D-Terminal cable */ bolded section heading&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox&lt;br /&gt;
|name         = Infobox/doc&lt;br /&gt;
|bodystyle    = &lt;br /&gt;
|title        = &lt;br /&gt;
|titlestyle   = &lt;br /&gt;
&lt;br /&gt;
|image        = [[File:MX_IC.png|200px|alt=DAC]]&lt;br /&gt;
|imagestyle   = &lt;br /&gt;
|caption      = MXB012355 &amp;lt;br&amp;gt; MXB012455&lt;br /&gt;
|captionstyle = &lt;br /&gt;
|headerstyle  = background:#ccf;&lt;br /&gt;
|labelstyle   = background:#ddf;&lt;br /&gt;
|datastyle    = background:#ddf;&lt;br /&gt;
&lt;br /&gt;
|header1 = Macronix Digital Analog Converter&lt;br /&gt;
|label2  = Video Signal Input&lt;br /&gt;
|data2   =  Y′C&amp;lt;small&amp;gt;B&amp;lt;/small&amp;gt;C&amp;lt;small&amp;gt;R&amp;lt;/small&amp;gt; &lt;br /&gt;
|label3  = Video Signal Output&lt;br /&gt;
|data3   = Y′P&amp;lt;small&amp;gt;B&amp;lt;/small&amp;gt;P&amp;lt;small&amp;gt;R&amp;lt;/small&amp;gt;  &amp;lt;br&amp;gt; RBGHV&lt;br /&gt;
|label4  = Video Resolution Output&lt;br /&gt;
|data4   = 480i/60Hz  576i/50Hz &amp;lt;br&amp;gt; 480p/60Hz 576p/50Hz   &lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;MXB012355 CMPV-DOL&#039;&#039;&#039; and &#039;&#039;&#039;MXB012455 CMPV-DOL&#039;&#039;&#039; are Digital-to-Analog Converter (DAC) IC&#039;s manufactured by Macronix specifically for use with the [[Nintendo Gamecube]]. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
They are used to convert the Gamecube&#039;s Y′C&amp;lt;small&amp;gt;B&amp;lt;/small&amp;gt;C&amp;lt;small&amp;gt;R&amp;lt;/small&amp;gt;  digital video signal to Y′P&amp;lt;small&amp;gt;B&amp;lt;/small&amp;gt;P&amp;lt;small&amp;gt;R&amp;lt;/small&amp;gt; analog signal officially supporting video resolutions up to 480 / 576 interlaced and 480 progressive. These IC&#039;s can also be reconfigured to support RBGHV VGA output, and with the use of homebrew, such as [[Swiss]], capable of supporting up to 576 progressive video resolution.  &lt;br /&gt;
&lt;br /&gt;
These DAC&#039;s are included in the Official Gamecube Component Video and D-Terminal cable for use with Gamecube model DOL-001.    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Component Video cable ==&lt;br /&gt;
The &#039;&#039;&#039;Component Video Cable&#039;&#039;&#039; provides video quality superior to that of other connections, including the RF modulator, composite video cable and s-video cable. It enables the use of progressive scan in supported games (or Forced progressive video output with [[Swiss]]. However, the analog cable was still required in conjunction for audio output.&lt;br /&gt;
&lt;br /&gt;
The cable was available for purchase exclusively in Nintendo&#039;s online store, and the cables were eventually discontinued by Nintendo due to what Nintendo claimed was a lack of consumer interest. This cable is only compatible with DOL-001 models of the GameCube, as Nintendo chose to omit the Digital AV port in subsequent models of the console.&lt;br /&gt;
&lt;br /&gt;
== D-Terminal cable ==&lt;br /&gt;
The &#039;&#039;&#039;D-Terminal Video Cable&#039;&#039;&#039; is identical to the Component Video Cable with the exception of its physical output connection.&lt;br /&gt;
&lt;br /&gt;
==Diagrams==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; style=&amp;quot;margin-left: 3em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width = &amp;quot;100&amp;quot; | PINOUT&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | [[File:MXB012355.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PartsList===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; style=&amp;quot;margin-left: 3em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 width = &amp;quot;200&amp;quot; | CAPACITORS&lt;br /&gt;
! colspan=2 width = &amp;quot;200&amp;quot; | RESISTORS&lt;br /&gt;
! colspan=2 width = &amp;quot;200&amp;quot; | FILTERS&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width = &amp;quot;100&amp;quot; | C1&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width = &amp;quot;100&amp;quot; | 230 nF&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width = &amp;quot;100&amp;quot; | R1&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width = &amp;quot;100&amp;quot; | 75 ohm&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width = &amp;quot;100&amp;quot; | FIL1&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width = &amp;quot;100&amp;quot; | 80 ohm&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | C2&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 230 nF&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | R2&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 75 ohm&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | FIL2&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 80 ohm&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | C3&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 1 uF&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | R3&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 75 ohm&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | FIL3&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 80 ohm&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | C4&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 230 nF&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | R4&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 115 ohm&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | C5&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 220 uF&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | R5&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 14K ohm&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | C6&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 220 uF&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | R6&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 23K ohm&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | C7&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 220 uF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==12v Circuit and D-Terminal Connector==&lt;br /&gt;
12v power circuit is only utilized and required for Japanese D-terminal connection...&lt;br /&gt;
TV&#039;s which utilize a D-terminal connection require a data line voltage which will switch the displays video mode between interlaced / progressive. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The MX chip uses 12v power and associated board circuitry to reduce delivered data line voltage to 0v or 5v to the &amp;quot;black&amp;quot; pad.&lt;br /&gt;
The &amp;quot;black&amp;quot; pad is the D-terminal connection for the data line.&lt;br /&gt;
0 V = 59.94i / 60i&lt;br /&gt;
5 V = 59.94p / 60p&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PIN 20 performs internal switching to control delivery of data line voltage:&lt;br /&gt;
1. GC powered off...PIN 20 = ~9K ohm&lt;br /&gt;
2. bootup and &amp;quot;progressive mode YES NO&amp;quot; message displayed (interlaced)...PIN20 = ~80K ohm = 0v&lt;br /&gt;
3. once &amp;quot;YES&amp;quot; is selected, the chip will output progressive scan video and provide signal to D-Terminal...PIN20 = open = 5v&lt;br /&gt;
&lt;br /&gt;
==VGA Mod==&lt;br /&gt;
The MX chip is capable of switching between Component and VGA video output. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When Pin 12 is connected to GND (unmodified) the MX chip is in Component mode (YPBPR video output). To convert the MX chip for VGA output, simply lift Pin 12 from the GND pad and connect a 10K resistor between Pin 12 and 3.3v. PIN 21 and 22 are used for VGA vertical and horizontal sync.&lt;br /&gt;
&lt;br /&gt;
 VGA PINOUT&lt;br /&gt;
 1  R&lt;br /&gt;
 2  G&lt;br /&gt;
 3  B&lt;br /&gt;
 4  -&lt;br /&gt;
 5  -&lt;br /&gt;
 6  GND&lt;br /&gt;
 7  GND&lt;br /&gt;
 8  GND&lt;br /&gt;
 9  -&lt;br /&gt;
 10 GND&lt;br /&gt;
 11 GND&lt;br /&gt;
 12 -&lt;br /&gt;
 13 H-Sync&lt;br /&gt;
 14 V-Sync&lt;br /&gt;
 15 -&lt;br /&gt;
&lt;br /&gt;
==Selecting Progressive Mode==&lt;br /&gt;
Progressive video mode can only be displayed on supported software titles&amp;lt;small&amp;gt;&#039;&#039;&#039;*&#039;&#039;&#039;&amp;lt;/small&amp;gt;. To manually call the progressive mode selection prompt, hold the &amp;quot;B&amp;quot; button at boot up and the selection prompt will appear.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;*&#039;&#039;&#039; Not all titles support progressive video mode output. These titles can be &amp;quot;Forced&amp;quot; to output a progressive mode display with [[Swiss]].&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware_Hacks]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=MXB012355&amp;diff=8115</id>
		<title>MXB012355</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=MXB012355&amp;diff=8115"/>
		<updated>2024-07-24T07:55:49Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: /* Component Video cable */ bolded section heading&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox&lt;br /&gt;
|name         = Infobox/doc&lt;br /&gt;
|bodystyle    = &lt;br /&gt;
|title        = &lt;br /&gt;
|titlestyle   = &lt;br /&gt;
&lt;br /&gt;
|image        = [[File:MX_IC.png|200px|alt=DAC]]&lt;br /&gt;
|imagestyle   = &lt;br /&gt;
|caption      = MXB012355 &amp;lt;br&amp;gt; MXB012455&lt;br /&gt;
|captionstyle = &lt;br /&gt;
|headerstyle  = background:#ccf;&lt;br /&gt;
|labelstyle   = background:#ddf;&lt;br /&gt;
|datastyle    = background:#ddf;&lt;br /&gt;
&lt;br /&gt;
|header1 = Macronix Digital Analog Converter&lt;br /&gt;
|label2  = Video Signal Input&lt;br /&gt;
|data2   =  Y′C&amp;lt;small&amp;gt;B&amp;lt;/small&amp;gt;C&amp;lt;small&amp;gt;R&amp;lt;/small&amp;gt; &lt;br /&gt;
|label3  = Video Signal Output&lt;br /&gt;
|data3   = Y′P&amp;lt;small&amp;gt;B&amp;lt;/small&amp;gt;P&amp;lt;small&amp;gt;R&amp;lt;/small&amp;gt;  &amp;lt;br&amp;gt; RBGHV&lt;br /&gt;
|label4  = Video Resolution Output&lt;br /&gt;
|data4   = 480i/60Hz  576i/50Hz &amp;lt;br&amp;gt; 480p/60Hz 576p/50Hz   &lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;MXB012355 CMPV-DOL&#039;&#039;&#039; and &#039;&#039;&#039;MXB012455 CMPV-DOL&#039;&#039;&#039; are Digital-to-Analog Converter (DAC) IC&#039;s manufactured by Macronix specifically for use with the [[Nintendo Gamecube]]. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
They are used to convert the Gamecube&#039;s Y′C&amp;lt;small&amp;gt;B&amp;lt;/small&amp;gt;C&amp;lt;small&amp;gt;R&amp;lt;/small&amp;gt;  digital video signal to Y′P&amp;lt;small&amp;gt;B&amp;lt;/small&amp;gt;P&amp;lt;small&amp;gt;R&amp;lt;/small&amp;gt; analog signal officially supporting video resolutions up to 480 / 576 interlaced and 480 progressive. These IC&#039;s can also be reconfigured to support RBGHV VGA output, and with the use of homebrew, such as [[Swiss]], capable of supporting up to 576 progressive video resolution.  &lt;br /&gt;
&lt;br /&gt;
These DAC&#039;s are included in the Official Gamecube Component Video and D-Terminal cable for use with Gamecube model DOL-001.    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Component Video cable ==&lt;br /&gt;
The &#039;&#039;&#039;Component Video Cable&#039;&#039;&#039; provides video quality superior to that of other connections, including the RF modulator, composite video cable and s-video cable. It enables the use of progressive scan in supported games (or Forced progressive video output with [[Swiss]]. However, the analog cable was still required in conjunction for audio output.&lt;br /&gt;
&lt;br /&gt;
The cable was available for purchase exclusively in Nintendo&#039;s online store, and the cables were eventually discontinued by Nintendo due to what Nintendo claimed was a lack of consumer interest. This cable is only compatible with DOL-001 models of the GameCube, as Nintendo chose to omit the Digital AV port in subsequent models of the console.&lt;br /&gt;
&lt;br /&gt;
== D-Terminal cable ==&lt;br /&gt;
The D-Terminal Video Cable is identical to the Component Video Cable with the exception of its physical output connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Diagrams==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; style=&amp;quot;margin-left: 3em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width = &amp;quot;100&amp;quot; | PINOUT&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | [[File:MXB012355.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PartsList===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; style=&amp;quot;margin-left: 3em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 width = &amp;quot;200&amp;quot; | CAPACITORS&lt;br /&gt;
! colspan=2 width = &amp;quot;200&amp;quot; | RESISTORS&lt;br /&gt;
! colspan=2 width = &amp;quot;200&amp;quot; | FILTERS&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width = &amp;quot;100&amp;quot; | C1&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width = &amp;quot;100&amp;quot; | 230 nF&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width = &amp;quot;100&amp;quot; | R1&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width = &amp;quot;100&amp;quot; | 75 ohm&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width = &amp;quot;100&amp;quot; | FIL1&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width = &amp;quot;100&amp;quot; | 80 ohm&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | C2&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 230 nF&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | R2&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 75 ohm&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | FIL2&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 80 ohm&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | C3&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 1 uF&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | R3&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 75 ohm&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | FIL3&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 80 ohm&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | C4&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 230 nF&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | R4&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 115 ohm&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | C5&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 220 uF&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | R5&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 14K ohm&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | C6&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 220 uF&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | R6&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 23K ohm&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | C7&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 220 uF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==12v Circuit and D-Terminal Connector==&lt;br /&gt;
12v power circuit is only utilized and required for Japanese D-terminal connection...&lt;br /&gt;
TV&#039;s which utilize a D-terminal connection require a data line voltage which will switch the displays video mode between interlaced / progressive. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The MX chip uses 12v power and associated board circuitry to reduce delivered data line voltage to 0v or 5v to the &amp;quot;black&amp;quot; pad.&lt;br /&gt;
The &amp;quot;black&amp;quot; pad is the D-terminal connection for the data line.&lt;br /&gt;
0 V = 59.94i / 60i&lt;br /&gt;
5 V = 59.94p / 60p&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PIN 20 performs internal switching to control delivery of data line voltage:&lt;br /&gt;
1. GC powered off...PIN 20 = ~9K ohm&lt;br /&gt;
2. bootup and &amp;quot;progressive mode YES NO&amp;quot; message displayed (interlaced)...PIN20 = ~80K ohm = 0v&lt;br /&gt;
3. once &amp;quot;YES&amp;quot; is selected, the chip will output progressive scan video and provide signal to D-Terminal...PIN20 = open = 5v&lt;br /&gt;
&lt;br /&gt;
==VGA Mod==&lt;br /&gt;
The MX chip is capable of switching between Component and VGA video output. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When Pin 12 is connected to GND (unmodified) the MX chip is in Component mode (YPBPR video output). To convert the MX chip for VGA output, simply lift Pin 12 from the GND pad and connect a 10K resistor between Pin 12 and 3.3v. PIN 21 and 22 are used for VGA vertical and horizontal sync.&lt;br /&gt;
&lt;br /&gt;
 VGA PINOUT&lt;br /&gt;
 1  R&lt;br /&gt;
 2  G&lt;br /&gt;
 3  B&lt;br /&gt;
 4  -&lt;br /&gt;
 5  -&lt;br /&gt;
 6  GND&lt;br /&gt;
 7  GND&lt;br /&gt;
 8  GND&lt;br /&gt;
 9  -&lt;br /&gt;
 10 GND&lt;br /&gt;
 11 GND&lt;br /&gt;
 12 -&lt;br /&gt;
 13 H-Sync&lt;br /&gt;
 14 V-Sync&lt;br /&gt;
 15 -&lt;br /&gt;
&lt;br /&gt;
==Selecting Progressive Mode==&lt;br /&gt;
Progressive video mode can only be displayed on supported software titles&amp;lt;small&amp;gt;&#039;&#039;&#039;*&#039;&#039;&#039;&amp;lt;/small&amp;gt;. To manually call the progressive mode selection prompt, hold the &amp;quot;B&amp;quot; button at boot up and the selection prompt will appear.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;*&#039;&#039;&#039; Not all titles support progressive video mode output. These titles can be &amp;quot;Forced&amp;quot; to output a progressive mode display with [[Swiss]].&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware_Hacks]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=MXB012355&amp;diff=8114</id>
		<title>MXB012355</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=MXB012355&amp;diff=8114"/>
		<updated>2024-07-24T07:55:03Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: linkify GC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox&lt;br /&gt;
|name         = Infobox/doc&lt;br /&gt;
|bodystyle    = &lt;br /&gt;
|title        = &lt;br /&gt;
|titlestyle   = &lt;br /&gt;
&lt;br /&gt;
|image        = [[File:MX_IC.png|200px|alt=DAC]]&lt;br /&gt;
|imagestyle   = &lt;br /&gt;
|caption      = MXB012355 &amp;lt;br&amp;gt; MXB012455&lt;br /&gt;
|captionstyle = &lt;br /&gt;
|headerstyle  = background:#ccf;&lt;br /&gt;
|labelstyle   = background:#ddf;&lt;br /&gt;
|datastyle    = background:#ddf;&lt;br /&gt;
&lt;br /&gt;
|header1 = Macronix Digital Analog Converter&lt;br /&gt;
|label2  = Video Signal Input&lt;br /&gt;
|data2   =  Y′C&amp;lt;small&amp;gt;B&amp;lt;/small&amp;gt;C&amp;lt;small&amp;gt;R&amp;lt;/small&amp;gt; &lt;br /&gt;
|label3  = Video Signal Output&lt;br /&gt;
|data3   = Y′P&amp;lt;small&amp;gt;B&amp;lt;/small&amp;gt;P&amp;lt;small&amp;gt;R&amp;lt;/small&amp;gt;  &amp;lt;br&amp;gt; RBGHV&lt;br /&gt;
|label4  = Video Resolution Output&lt;br /&gt;
|data4   = 480i/60Hz  576i/50Hz &amp;lt;br&amp;gt; 480p/60Hz 576p/50Hz   &lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;MXB012355 CMPV-DOL&#039;&#039;&#039; and &#039;&#039;&#039;MXB012455 CMPV-DOL&#039;&#039;&#039; are Digital-to-Analog Converter (DAC) IC&#039;s manufactured by Macronix specifically for use with the [[Nintendo Gamecube]]. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
They are used to convert the Gamecube&#039;s Y′C&amp;lt;small&amp;gt;B&amp;lt;/small&amp;gt;C&amp;lt;small&amp;gt;R&amp;lt;/small&amp;gt;  digital video signal to Y′P&amp;lt;small&amp;gt;B&amp;lt;/small&amp;gt;P&amp;lt;small&amp;gt;R&amp;lt;/small&amp;gt; analog signal officially supporting video resolutions up to 480 / 576 interlaced and 480 progressive. These IC&#039;s can also be reconfigured to support RBGHV VGA output, and with the use of homebrew, such as [[Swiss]], capable of supporting up to 576 progressive video resolution.  &lt;br /&gt;
&lt;br /&gt;
These DAC&#039;s are included in the Official Gamecube Component Video and D-Terminal cable for use with Gamecube model DOL-001.    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Component Video cable ==&lt;br /&gt;
The Component Video Cable provides video quality superior to that of other connections, including the RF modulator, composite video cable and s-video cable. It enables the use of progressive scan in supported games (or Forced progressive video output with [[Swiss]]. However, the analog cable was still required in conjunction for audio output.&lt;br /&gt;
&lt;br /&gt;
The cable was available for purchase exclusively in Nintendo&#039;s online store, and the cables were eventually discontinued by Nintendo due to what Nintendo claimed was a lack of consumer interest. This cable is only compatible with DOL-001 models of the GameCube, as Nintendo chose to omit the Digital AV port in subsequent models of the console.&lt;br /&gt;
&lt;br /&gt;
== D-Terminal cable ==&lt;br /&gt;
The D-Terminal Video Cable is identical to the Component Video Cable with the exception of its physical output connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Diagrams==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; style=&amp;quot;margin-left: 3em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width = &amp;quot;100&amp;quot; | PINOUT&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | [[File:MXB012355.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PartsList===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; style=&amp;quot;margin-left: 3em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 width = &amp;quot;200&amp;quot; | CAPACITORS&lt;br /&gt;
! colspan=2 width = &amp;quot;200&amp;quot; | RESISTORS&lt;br /&gt;
! colspan=2 width = &amp;quot;200&amp;quot; | FILTERS&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width = &amp;quot;100&amp;quot; | C1&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width = &amp;quot;100&amp;quot; | 230 nF&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width = &amp;quot;100&amp;quot; | R1&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width = &amp;quot;100&amp;quot; | 75 ohm&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width = &amp;quot;100&amp;quot; | FIL1&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width = &amp;quot;100&amp;quot; | 80 ohm&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | C2&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 230 nF&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | R2&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 75 ohm&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | FIL2&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 80 ohm&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | C3&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 1 uF&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | R3&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 75 ohm&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | FIL3&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 80 ohm&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | C4&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 230 nF&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | R4&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 115 ohm&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | C5&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 220 uF&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | R5&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 14K ohm&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | C6&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 220 uF&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | R6&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 23K ohm&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | C7&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 220 uF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==12v Circuit and D-Terminal Connector==&lt;br /&gt;
12v power circuit is only utilized and required for Japanese D-terminal connection...&lt;br /&gt;
TV&#039;s which utilize a D-terminal connection require a data line voltage which will switch the displays video mode between interlaced / progressive. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The MX chip uses 12v power and associated board circuitry to reduce delivered data line voltage to 0v or 5v to the &amp;quot;black&amp;quot; pad.&lt;br /&gt;
The &amp;quot;black&amp;quot; pad is the D-terminal connection for the data line.&lt;br /&gt;
0 V = 59.94i / 60i&lt;br /&gt;
5 V = 59.94p / 60p&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PIN 20 performs internal switching to control delivery of data line voltage:&lt;br /&gt;
1. GC powered off...PIN 20 = ~9K ohm&lt;br /&gt;
2. bootup and &amp;quot;progressive mode YES NO&amp;quot; message displayed (interlaced)...PIN20 = ~80K ohm = 0v&lt;br /&gt;
3. once &amp;quot;YES&amp;quot; is selected, the chip will output progressive scan video and provide signal to D-Terminal...PIN20 = open = 5v&lt;br /&gt;
&lt;br /&gt;
==VGA Mod==&lt;br /&gt;
The MX chip is capable of switching between Component and VGA video output. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When Pin 12 is connected to GND (unmodified) the MX chip is in Component mode (YPBPR video output). To convert the MX chip for VGA output, simply lift Pin 12 from the GND pad and connect a 10K resistor between Pin 12 and 3.3v. PIN 21 and 22 are used for VGA vertical and horizontal sync.&lt;br /&gt;
&lt;br /&gt;
 VGA PINOUT&lt;br /&gt;
 1  R&lt;br /&gt;
 2  G&lt;br /&gt;
 3  B&lt;br /&gt;
 4  -&lt;br /&gt;
 5  -&lt;br /&gt;
 6  GND&lt;br /&gt;
 7  GND&lt;br /&gt;
 8  GND&lt;br /&gt;
 9  -&lt;br /&gt;
 10 GND&lt;br /&gt;
 11 GND&lt;br /&gt;
 12 -&lt;br /&gt;
 13 H-Sync&lt;br /&gt;
 14 V-Sync&lt;br /&gt;
 15 -&lt;br /&gt;
&lt;br /&gt;
==Selecting Progressive Mode==&lt;br /&gt;
Progressive video mode can only be displayed on supported software titles&amp;lt;small&amp;gt;&#039;&#039;&#039;*&#039;&#039;&#039;&amp;lt;/small&amp;gt;. To manually call the progressive mode selection prompt, hold the &amp;quot;B&amp;quot; button at boot up and the selection prompt will appear.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;*&#039;&#039;&#039; Not all titles support progressive video mode output. These titles can be &amp;quot;Forced&amp;quot; to output a progressive mode display with [[Swiss]].&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware_Hacks]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=NeoGeo_CD_Redux&amp;diff=8113</id>
		<title>NeoGeo CD Redux</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=NeoGeo_CD_Redux&amp;diff=8113"/>
		<updated>2024-07-24T07:51:45Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: linkify GC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox/homebrew&lt;br /&gt;
| title       = NeoGeo CD Redux&lt;br /&gt;
| image       = [[File:NedCDRedux.png]]&lt;br /&gt;
| type        = Emulator&lt;br /&gt;
| author      = Softdev, megalomaniac&lt;br /&gt;
| version     = 0.1.52A.3 (unofficial)&lt;br /&gt;
| licence     = &lt;br /&gt;
| website     = https://www.gc-forever.com/forums/viewtopic.php?f=13&amp;amp;t=1246&lt;br /&gt;
| download    = &lt;br /&gt;
| source      = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NeoGeo CD&#039;&#039;&#039; Redux, a NeoGeo CD/Z emulator for the [[Nintendo GameCube]] console.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
* WKF support (load roms from FAT formatted SD card in WKF SLOT only)&lt;br /&gt;
* IDE-EXI support&lt;br /&gt;
* Automatic TV mode detection&lt;br /&gt;
* Safemode Menu display (Hold L TRIGGER during bootup to activate)&lt;br /&gt;
* Supports both SD(SDHC) and DVD loading&lt;br /&gt;
&lt;br /&gt;
== How to run it? ==&lt;br /&gt;
=== Emulator ===&lt;br /&gt;
# Download one of the last releases of emulator (A2 or A3).&lt;br /&gt;
# Place emulator&#039;s DOL into your FAT32 SD card.&lt;br /&gt;
# Run it thru Swiss and SDGecko.&lt;br /&gt;
=== Games ===&lt;br /&gt;
# Download NeoGeo CD BIOS and games (include ISO and MP3s).&lt;br /&gt;
# Place it into your SD:&lt;br /&gt;
#* BIOS Path: sd:\neocd\bios\NeoCD.bin (BIN name must be same!)&lt;br /&gt;
#* Game Path: sd:\neocd\roms\NameOfYourGame (you must unpack your ISO here!)&lt;br /&gt;
#* Audio Path: sd:\neocd\roms\NameOfYourGame\MP3 (rename audio files to Track01.mp3, Track02.mp3 and so on.)&lt;br /&gt;
# Run Emulator and then run games.&lt;br /&gt;
# Enjoy!&lt;br /&gt;
&lt;br /&gt;
== Controls ==&lt;br /&gt;
=== In Game ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;left;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:GCNController.png|50px]] || Action&lt;br /&gt;
|-&lt;br /&gt;
| [[File:GC_D-Pad.png|35px]] or [[File:GameCubeControlStick.png|35px]] || Neogeo DPad&lt;br /&gt;
|-&lt;br /&gt;
| [[File:GCNAButton.png|25px]] || A&lt;br /&gt;
|-&lt;br /&gt;
| [[File:GCNBButton.png|25px]] || B&lt;br /&gt;
|-&lt;br /&gt;
| [[File:GCNXButton.png|25px]] || C&lt;br /&gt;
|-&lt;br /&gt;
| [[File:GCNYButton.png|35px]] || D&lt;br /&gt;
|-&lt;br /&gt;
| [[File:GCNLButton.png|40px]] || Emulator Menu&lt;br /&gt;
|-&lt;br /&gt;
| [[File:GCNZButton.png|45px]] || Pause&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== In Menu ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;left;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:GCNController.png|50px]] || Action&lt;br /&gt;
|-&lt;br /&gt;
| [[File:GC_D-Pad.png|35px]] or [[File:GameCubeControlStick.png|35px]] || Navigate the menu&lt;br /&gt;
|-&lt;br /&gt;
| [[File:GCNAButton.png|25px]] || Enter Directory/Confirm &lt;br /&gt;
|-&lt;br /&gt;
| [[File:GCNBButton.png|25px]] || Parent Directory&lt;br /&gt;
|-&lt;br /&gt;
| [[File:GCNXButton.png|25px]] || Launch Game&lt;br /&gt;
|-&lt;br /&gt;
| [[File:GCNZButton.png|45px]] || Emulator Menu&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Homebrew_Software]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=Freeloader&amp;diff=8112</id>
		<title>Freeloader</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=Freeloader&amp;diff=8112"/>
		<updated>2024-07-24T07:51:17Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: linkify GC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Freeloader_ntsc.jpg|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Freeloader&#039;&#039;&#039; is a bootdisc based solution developed by [https://www.datel.co.uk/ Datel] to circumvent regional lockout on the [[Gamecube]]. It allows unmodified Gamecubes to play &#039;&#039;&#039;original&#039;&#039;&#039; out-of-region ([[Playing_Imports|import]]) titles. Datel sold different versions of Freeloader compatible for use with NTSC (USA, JPN) and PAL (EUR) Gamecubes.&lt;br /&gt;
&lt;br /&gt;
[[File:Freeloader_pal.jpg|left|thumb|150px]]&lt;br /&gt;
== Features ==&lt;br /&gt;
* Launch and play imported GameCube games from any region.&lt;br /&gt;
* No need to modify your console - keeps your warranty intact.&lt;br /&gt;
* Add loads of new titles to your GameCube collection, including games never released in your region.&lt;br /&gt;
* Play ANY region of games ANY GameCube.&lt;br /&gt;
* Fast and easy to use. &lt;br /&gt;
* Compatible with the [[WikiScene:GameCube#Panasonic_Q|Panasonic Q]].&lt;br /&gt;
* Not 100% compatible with the Japanese version of &#039;&#039;F-Zero GX&#039;&#039; and &#039;&#039;Paper Mario 2&#039;&#039;.&lt;br /&gt;
* Does not allow use of DVD±R for [[Create_a_bootable_homebrew_disc|homebrew]] or [[Backing_Up_Discs|backups]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; When playing a Japanese game, the memory card will be re-formatted to Japanese settings, overwriting any existing US or European settings and any game saves stored on the card. Recommend keeping a separate card for use with Japanese games only.&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=CubeSX&amp;diff=8111</id>
		<title>CubeSX</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=CubeSX&amp;diff=8111"/>
		<updated>2024-07-24T07:38:15Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: linkify GC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox/homebrew&lt;br /&gt;
| title       = CubeSX&lt;br /&gt;
| image       = [[File:WiiSXicon.png]]&lt;br /&gt;
| type        = Emulator&lt;br /&gt;
| author      = emu_kidid, sepp256, tehpola&lt;br /&gt;
| version     = Beta 4.1&lt;br /&gt;
| licence     = [http://www.gnu.org/licenses/gpl-2.0.txt GNU GPL v2]&lt;br /&gt;
| download    = https://github.com/emukidid/pcsxgc/releases&lt;br /&gt;
| website     = https://github.com/emukidid/pcsxgc&lt;br /&gt;
| source      = https://github.com/emukidid/pcsxgc&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
PSX emulator for the [[Nintendo Gamecube]] &amp;amp; Wii based on various PCSX code bases.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Emulation via Dynamic Recompilation &amp;amp; Interpreter&lt;br /&gt;
* Software Rendered Graphics with GX scaling&lt;br /&gt;
* SPU and XA Stereo Audio&lt;br /&gt;
* Input via Gamecube Controller&lt;br /&gt;
* Input Emulation for DualShock Controllers (Both Standard &amp;amp; Analog Modes)&lt;br /&gt;
* Vibration Feedback&lt;br /&gt;
* Configurable input combinations&lt;br /&gt;
* DVD/SDGecko/Samba ISO Loading&lt;br /&gt;
* Memory Cards&lt;br /&gt;
* Save States&lt;br /&gt;
* Progressive/Widescreen Resolution&lt;br /&gt;
&lt;br /&gt;
[[Category:Homebrew_Software]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=Talk:Hardware_Acronyms&amp;diff=8110</id>
		<title>Talk:Hardware Acronyms</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=Talk:Hardware_Acronyms&amp;diff=8110"/>
		<updated>2024-07-24T07:27:22Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The linked original document names the emu creator &amp;quot;or9&amp;quot; but this page says &amp;quot;org&amp;quot; - which is correct?  --Lumina33 7/24/2024&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=Hardware_Acronyms&amp;diff=8109</id>
		<title>Hardware Acronyms</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=Hardware_Acronyms&amp;diff=8109"/>
		<updated>2024-07-24T07:25:02Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: DDH=Dolphin Development Hardware&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Gamecube hardware acronyms for CubeDocumented project ==&lt;br /&gt;
&lt;br /&gt;
Documented by Andrei Shestakov (org). Version 1.1. (22 Jan 2006)&lt;br /&gt;
(original document hosted here: http://dolwin.emulation64.com/docs/acronyms.txt)&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
=== AA ===&lt;br /&gt;
    Antialiasing. Rendering method, that makes polygon edges seem less sharpen,&lt;br /&gt;
    combining colors of nearby pixels.&lt;br /&gt;
&lt;br /&gt;
=== AD16 ===&lt;br /&gt;
    Mysterious EXI device.&lt;br /&gt;
&lt;br /&gt;
=== AI ===&lt;br /&gt;
    Audio Interface. Hardware responsible for DMA playback of PCM buffer and&lt;br /&gt;
    DVD ADPCM streaming sound. AI hardware cannot mix sound channels or set&lt;br /&gt;
    channel volume for PCM DMA playback. These operations and more advanced&lt;br /&gt;
    sound effects are produced by DSP.&lt;br /&gt;
&lt;br /&gt;
=== [[Apploader]] ===&lt;br /&gt;
    Small program on DVD to load main DOL executable.&lt;br /&gt;
&lt;br /&gt;
=== AR, ARAM ===&lt;br /&gt;
    Auxiliary (Audio) Memory. 16 MB of slow (comapred to RAM) DRAM.&lt;br /&gt;
    Used for raw DSP sound data and as temporary space for textures.&lt;br /&gt;
    ARAM has DMA communication channel with main memory (RAM). Development&lt;br /&gt;
    boards has &amp;quot;ARAM Expansion&amp;quot; (additional 4, 16 or 32 MBs).&lt;br /&gt;
&lt;br /&gt;
=== BAT ===&lt;br /&gt;
    Block Address Translation, PPC MMU translation mechanism. There are DBAT&lt;br /&gt;
    and IBAT special-purpose registers for data and instruction address &lt;br /&gt;
    translation respectively.&lt;br /&gt;
&lt;br /&gt;
=== BBA ===&lt;br /&gt;
    Broad-Band Adapter, GC&#039;s 10BaseT Ethernet Adapter.&lt;br /&gt;
&lt;br /&gt;
=== BS ===&lt;br /&gt;
    Bootstrap Stage (from analogy with UNIX). Very first code, executed after&lt;br /&gt;
    GC hard reset.&lt;br /&gt;
&lt;br /&gt;
=== BS2 ===&lt;br /&gt;
    Bootstrap Stage 2. Same as IPL.&lt;br /&gt;
&lt;br /&gt;
=== CR ===&lt;br /&gt;
    PPC Condition Register, stores result of integer comare operation, for&lt;br /&gt;
    conditional branch decision.&lt;br /&gt;
&lt;br /&gt;
=== CRT ===&lt;br /&gt;
    C Run Time. C/C++ program environment (libraries and startup calls).&lt;br /&gt;
&lt;br /&gt;
=== DDH ===&lt;br /&gt;
    Dolphin Development Hardware&lt;br /&gt;
&lt;br /&gt;
=== DOL ===&lt;br /&gt;
    Gamecube application (custom executable file format).&lt;br /&gt;
&lt;br /&gt;
=== Dolphin ===&lt;br /&gt;
    Early development work name of Gamecube.&lt;br /&gt;
&lt;br /&gt;
=== Dolphin OS ===&lt;br /&gt;
    Gamecube OS. Single user, single process, multithreaded. Linked together&lt;br /&gt;
    with any GC application (&amp;quot;hard-linked&amp;quot;), as library.&lt;br /&gt;
&lt;br /&gt;
=== DSP ===&lt;br /&gt;
    Digital Signal Processor. Used to produce advanced sound on GC.&lt;br /&gt;
    DSP is integrated with GP in Flipper chip and has its own ROM.&lt;br /&gt;
    Developed by Macronix.&lt;br /&gt;
&lt;br /&gt;
=== DI, DVD ===&lt;br /&gt;
    DVD hardware interface. GC DVD is actually microcontroller, based on MN-102&lt;br /&gt;
    CPU with proprietary firmware ROM. DVD is protected by non-standard barcodes&lt;br /&gt;
    and data encryption, which is decrypted on-the-fly by DVD controller. GC DVD&lt;br /&gt;
    cannot be read on usual PC hardware. Whole GC DVD stuff is developed by&lt;br /&gt;
    Matsushita.&lt;br /&gt;
&lt;br /&gt;
=== EFB ===&lt;br /&gt;
    Embedded Framebuffer. 2MB of fast 1T-SRAM memory located inside Flipper.&lt;br /&gt;
    Used by GP&#039;s pixel engine to draw pixels. Later copied into XFB, for final&lt;br /&gt;
    TV-output.&lt;br /&gt;
&lt;br /&gt;
=== EXI ===&lt;br /&gt;
    Expansion Interface. Gamecube peripherial devices bus, sort of USB&lt;br /&gt;
    architecture. Developed by Macronix. Devices drived by EXI: memory cards,&lt;br /&gt;
    broad-band adapter, real-time clock, bootrom, SRAM.&lt;br /&gt;
&lt;br /&gt;
=== FIFO ===&lt;br /&gt;
    First-In-First-Out buffer to send GP commands and create GP command lists.&lt;br /&gt;
&lt;br /&gt;
=== Flipper ===&lt;br /&gt;
    Gamecube Northbridge+Peripheral Hardware+Graphics Processor+Audio DSP.&lt;br /&gt;
&lt;br /&gt;
=== FPR ===&lt;br /&gt;
    Floating Point Register. Gekko has 32 64-bit FPRs, named f0-f31.&lt;br /&gt;
&lt;br /&gt;
=== FPSCR ===&lt;br /&gt;
    Floating Point Status and Control Register.&lt;br /&gt;
&lt;br /&gt;
=== JTAG ===&lt;br /&gt;
    Hardware debug interface to CPU. You can connect some wires to CPU pins,&lt;br /&gt;
    to overwhelm it. Gekko has full support of IEEE 1149-1a-1993 JTAG standard.&lt;br /&gt;
&lt;br /&gt;
=== GC, GCN, NGC ===&lt;br /&gt;
    Nintendo Gamecube.&lt;br /&gt;
&lt;br /&gt;
=== GCM ===&lt;br /&gt;
    Gamecube Master Data (official term). GC DVD Image files.&lt;br /&gt;
&lt;br /&gt;
=== Gekko ===&lt;br /&gt;
    Gamecube CPU, PowerPC 750-derivative processor with FPU extensions, called&lt;br /&gt;
    &amp;quot;Paired Single&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== GP, GX ===&lt;br /&gt;
    Graphics Processor, the major part of Flipper chip. GP is fixed point&lt;br /&gt;
    state-machine. Developed by ArtX team.&lt;br /&gt;
&lt;br /&gt;
=== GPR ===&lt;br /&gt;
    General Purpose Register. Gekko has 32 32-bit GPRs, named r0-r31. r1 often&lt;br /&gt;
    used as stack pointer (sp).&lt;br /&gt;
&lt;br /&gt;
=== GX ===&lt;br /&gt;
    Software library, developed by Nintendo and ArtX, to drive GP hardware.&lt;br /&gt;
    Has many crossways with OpenGL (but more advanced).&lt;br /&gt;
&lt;br /&gt;
=== HW2 ===&lt;br /&gt;
    Common name of GC hardware. Number state for revision (&amp;quot;2&amp;quot; is production&lt;br /&gt;
    board).&lt;br /&gt;
&lt;br /&gt;
=== IPL ===&lt;br /&gt;
    Initial Program Loader. Graphics shell, used to load game from DVD.&lt;br /&gt;
&lt;br /&gt;
=== MC ===&lt;br /&gt;
    Memory Card, EXI device.&lt;br /&gt;
&lt;br /&gt;
=== MI ===&lt;br /&gt;
    Flipper memory interface, plays role of &amp;quot;Nothbridge&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== MMU ===&lt;br /&gt;
    PPC Memory Management Unit. Translates virtual address to physical.&lt;br /&gt;
    MMU has two translation mechanisms: block address translation and page table&lt;br /&gt;
    translation. Address translation for data access and instruction fetch is&lt;br /&gt;
    processed separately in DMMU and IMMU.&lt;br /&gt;
&lt;br /&gt;
=== MSR ===&lt;br /&gt;
    Machine State Register. CPU status and control register.&lt;br /&gt;
&lt;br /&gt;
=== MX ===&lt;br /&gt;
    Macronix Ltd. chips index. GC has many hardware parts, developed&lt;br /&gt;
    by Macronix, like DSP, EXI and bootrom chip.&lt;br /&gt;
&lt;br /&gt;
=== PC ===&lt;br /&gt;
    Program Counter. PowerPC architecture does not define such term, but&lt;br /&gt;
    everyone is using it anyway, instead &amp;quot;CIA&amp;quot; (Current Instruction Address).&lt;br /&gt;
&lt;br /&gt;
=== PCM ===&lt;br /&gt;
    Pulse Code Modulation, method commonly used in digital sound hardware.&lt;br /&gt;
    PCM sound parameters are: playback rate, bits per sample, sample format.&lt;br /&gt;
    GC AI can playback 32000/48000 Hz, 16-bit big-endian stereo samples via&lt;br /&gt;
    DMA.&lt;br /&gt;
&lt;br /&gt;
=== PI ===&lt;br /&gt;
    Peripheral Interface. Set of hardware registers to control interrupts and&lt;br /&gt;
    hardware reset. There also &amp;quot;PI FIFO&amp;quot;: hardware-driven FIFO buffer in RAM.&lt;br /&gt;
&lt;br /&gt;
=== PM ===&lt;br /&gt;
    PowerPC Performance Monitor. Set of PPC special purpose registers used for&lt;br /&gt;
    speed profiling of applications.&lt;br /&gt;
&lt;br /&gt;
=== PPC ===&lt;br /&gt;
    IBM PowerPC Architecture.&lt;br /&gt;
&lt;br /&gt;
=== PTE ===&lt;br /&gt;
    Page Table Entry. Page table record, used to translate virtual address to&lt;br /&gt;
    physical.&lt;br /&gt;
&lt;br /&gt;
=== RAM ===&lt;br /&gt;
    Main memory. GC has 24 MB of fast 1T-SRAM. Development boards has RAM&lt;br /&gt;
    extended up to 48 MB. Developed by MoSys.&lt;br /&gt;
&lt;br /&gt;
=== ROM ===&lt;br /&gt;
    Read-only memory. GC has following ROMs: 2 MB encrypted bootrom, 128 KB&lt;br /&gt;
    DVD firmware, 4 KB DSP DROM, 8 KB DSP IROM.&lt;br /&gt;
&lt;br /&gt;
=== RSW ===&lt;br /&gt;
    &amp;quot;Reset Switch&amp;quot;, same as reset button. Seems early development GC models&lt;br /&gt;
    were equipped by switch, instead programmable reset button.&lt;br /&gt;
&lt;br /&gt;
=== RTC ===&lt;br /&gt;
    Real-time clock. EXI device, counting seconds since 00:00 AM 2000.&lt;br /&gt;
&lt;br /&gt;
=== SDK ===&lt;br /&gt;
    Software Development Kit. Full set of compilers, libraries and documentation&lt;br /&gt;
    for development on specified platform. Gamecube SDK contain development tools,&lt;br /&gt;
    like sound and texture convertors, and set of libraries for OS and hardware.&lt;br /&gt;
    Compiler is provided by Metrowerk&#039;s CodeWarrior. There also huge development&lt;br /&gt;
    board and paper documentation.&lt;br /&gt;
&lt;br /&gt;
=== SI ===&lt;br /&gt;
    Serial Interface. Hardware responsible for communication with serial devices,&lt;br /&gt;
    such as GC controller and keyboard via serial I/O buffer.&lt;br /&gt;
&lt;br /&gt;
=== SPR ===&lt;br /&gt;
    Special-purpose register. Set of registers, dedicated to operating system.&lt;br /&gt;
    Gekko has about 60 SPRs.&lt;br /&gt;
&lt;br /&gt;
=== SR ===&lt;br /&gt;
    Segment Registers, used by MMU for virtual address translation.&lt;br /&gt;
&lt;br /&gt;
=== SRAM ===&lt;br /&gt;
    Small amount of battery backuped memory for OS misc settings.&lt;br /&gt;
&lt;br /&gt;
=== TLB ===&lt;br /&gt;
    PPC MMU Translation Lookaside Buffer, used to keep recently used page&lt;br /&gt;
    address translations. Gekko has 128 two-way set associative TLB for each&lt;br /&gt;
    MMU (DMMU and IMMU).&lt;br /&gt;
&lt;br /&gt;
=== VI ===&lt;br /&gt;
    Video Interface. Hardware responsible for TV-out of framebuffer (XFB),&lt;br /&gt;
    and generating VBlank interrupt (actually can be configured to interrupt&lt;br /&gt;
    CPU at any beam location). Has support for light-gun, antialiasing of XFB&lt;br /&gt;
    by tap-filters and progressive video mode (480p).&lt;br /&gt;
&lt;br /&gt;
=== WBUF ===&lt;br /&gt;
    Gekko Write Gather Buffer. Small cache for burst memory transactions.&lt;br /&gt;
    Used together with graphics FIFO to send GP commands.&lt;br /&gt;
&lt;br /&gt;
=== XF ===&lt;br /&gt;
    Transform Processor&lt;br /&gt;
&lt;br /&gt;
=== XFB ===&lt;br /&gt;
    External Framebuffer, located in main memory. Used for final TV-out by VI.&lt;br /&gt;
&lt;br /&gt;
[[Category:CubeDocumented]]&lt;br /&gt;
[[Category:Technical Info]]&lt;br /&gt;
[[Category:Reverse Engineering]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=SDLoad&amp;diff=8108</id>
		<title>SDLoad</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=SDLoad&amp;diff=8108"/>
		<updated>2024-07-23T13:35:59Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: fix run on sentence&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;SDLoad&#039;&#039;&#039; is an older way of loading homebrew onto the [[Nintendo Gamecube]].  It was originally released in 2005 by Costis, and can be downloaded [http://gc-forever.com/forums/viewtopic.php?f=4&amp;amp;t=401 here].&lt;br /&gt;
&lt;br /&gt;
This method of loading homebrew has mainly been superseded by the use of save-game exploits and mod-chips. However, it is still a functional way of enabling homebrew on a gamecube and unlike save game exploits does not initially require a Nintendo Wii or a previously homebrew enabled game cube to load a save-game exploit onto a memory card. Thus this guide can be followed by anybody who has only a gamecube, SD-card adapter with SD-card and a [https://www.datel.co.uk/ Datel] [[Action Replay]] to get homebrew running on their gamecube. &lt;br /&gt;
&lt;br /&gt;
This guide requires the user to have some basic windows knowledge such as how to launch an administrative command prompt as well as format an SD-Card in the FAT16 filesystem and how to change directories (folders) in the command prompt, how to do this is not covered here but there are many guides already on the internet about how to do both.&lt;br /&gt;
&lt;br /&gt;
== Requirements==&lt;br /&gt;
&lt;br /&gt;
===Hardware===&lt;br /&gt;
* Nintendo Gamecube -&amp;gt; Any version / any region should work.&lt;br /&gt;
* Datel [[Action Replay]] (version 1.14 or below) -&amp;gt; Newer versions of action replay lack the user-code entry screen, if you cannot input codes your action replay disc is too new. The Japanese version of the Action Replay uses a different set of codes to the US / Europe version of the disc so be careful when you are choosing the codes on the code-input screen, the Japanese Pro Action Replay (Karat) disc is in Japanese so unless you have this disc (unlikely) then the standard code should work regardless of console region.&lt;br /&gt;
* PC with SD CARD Reader.&lt;br /&gt;
** Note: It is a common misconception that the bundled memory card is required for the action replay to work, this is not true, if your disc didn&#039;t come with a memory card simply insert any memory card that has some free space into slot 2 before booting the action replay disc and it will automatically create a code database file on the memory card.&lt;br /&gt;
* SD-Card adapter and SD-card -&amp;gt; The genuine SD-card adapter is long discontinued and commands high prices, you can buy pre-made adapaters like the Wiikey SD Gecko for a few dollars or make your own if you are handy with a soldering iron, there are diagrams online if you wish to try and build one.&lt;br /&gt;
* SD-Card: The card itself needs to be a NON SDHC card (i.e 2gb or less) and formatted as a FAT16 file system. &lt;br /&gt;
** Smaller SD Cards (sub 64mb) might format as FAT12, you can ensure a FAT16 format on such a card by using the command &amp;quot;format x: /FS: FAT /A:512&amp;quot; from a command prompt (where X: represents the drive letter of your SD card).&lt;br /&gt;
&lt;br /&gt;
===Software===&lt;br /&gt;
&lt;br /&gt;
Microsoft Windows -&amp;gt; Windows 2000 and later are supported.&lt;br /&gt;
&lt;br /&gt;
sdload.zip -&amp;gt; There are two versions of the software, the original version works with Windows 2000 &amp;amp; XP, the later version which works with newer versions of Windows such as Vista / 7 / 8 / 10. Make sure you download the version appropriate for your system.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
===Step 1 [Setting up the SD Card - Windows Vista / 7 / 8 / 10]===&lt;br /&gt;
&lt;br /&gt;
This section is for users of Windows Vista / 7 / 8 / 10, if you are running an older OS such as XP or Windows 2000 skip to the Windows XP section.&lt;br /&gt;
&lt;br /&gt;
1. Make sure your PC can access your SD-Card and that it has been freshly formatted as a FAT16 filesystem. &lt;br /&gt;
&lt;br /&gt;
2. Download and extract the sdload.zip (Windows 10 supported version) to a folder on your computer. i.e &amp;quot;c:\sdload&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. Copy the 2 files sdloader.bin and sdipdata.cfg to the root of your SD card (don&#039;t put them in a folder). You can also copy any other DOL (gamecube executable) files you wish to run from your SD Card as this time too, such as SWISS, CleanRip, GCOS, GCMM etc.&lt;br /&gt;
&lt;br /&gt;
3. Open an administrator command prompt and navigate to the directory (folder) where you extracted sdload to, i.e &amp;quot;cd c:\sdload&amp;quot;&lt;br /&gt;
&lt;br /&gt;
4. Run [[SDPatch|sdpatch]] without any parameters, i.e &amp;quot;sdpatch&amp;quot;, the program will take a few seconds and report a list of connected drives to your computer. i.e.&lt;br /&gt;
&lt;br /&gt;
  Caption                DeviceID            Model                  Partitions  Size&lt;br /&gt;
  TOSHIBA THNSN9240GESG  \\.\PHYSICALDRIVE0  TOSHIBA THNSN9240GESG  2           240054796800&lt;br /&gt;
  Generic SDC SD Card    \\.\PHYSICALDRIVE1  Generic SDC SD Card    1           8225280&lt;br /&gt;
&lt;br /&gt;
Depending on if you are using a USB card reader or a built in card reader the device might show up as a generic USB device, if you are unsure unplug all external usb drives and memory sticks from the computer.&lt;br /&gt;
&lt;br /&gt;
5. In the example above we can see the SD card is reported to the system as physical drive 1, depending on your system this could be 2 or 3 etc, be sure you are choosing the correct drive and run sdpatch but specify the number you wish to patch, i.e sdpatch 1&lt;br /&gt;
&lt;br /&gt;
* The software will NOT let you pick drive 0 as this is usually the first installed hard disk but depending on your system and number of hard disks and how the machine is set up to boot it is possible to break your PC by patching the wrong drive if it is set up to boot in some weird way so pay extra care, you can always remove the SD card and run sdpatch again and see which drive disappears from the list to make extra sure.&lt;br /&gt;
&lt;br /&gt;
The program will run and if all went OK it will report that your SD Card is now patched, before removing it from the system double check in file explorer that you are still able to see the files you copied earlier&lt;br /&gt;
&lt;br /&gt;
6. Put the SD-Card into the SD-Card adapter and install it into slot 1, make sure you have a memory card installed in slot 2 and boot up the gamecube and begin the sdload code entry sequence.&lt;br /&gt;
&lt;br /&gt;
===Step 1 [Setting up the SD Card - Windows XP / 2000]===&lt;br /&gt;
&lt;br /&gt;
This section is for users of Windows XP &amp;amp; 2000, if you are running an newer OS such as Windows 7 or 10 then please follow the section above.&lt;br /&gt;
&lt;br /&gt;
1. Make sure your PC can access your SD-Card and that it has been freshly formatted as a FAT16 filesystem. &lt;br /&gt;
&lt;br /&gt;
2. Download and extract the sdload.zip (original windows XP version) to a folder on your computer. i.e &amp;quot;c:\sdload&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. Copy the 2 files sdloader.bin and sdipdata.cfg to the root of your SD card (don&#039;t put them in a folder). You can also copy any other DOL (gamecube executable) files you wish to run from your SD Card as this time too, such as SWISS, CleanRip, GCOS, GCMM etc. Make a note of what drive your SD card is too, i.e E:&lt;br /&gt;
&lt;br /&gt;
3. Open an administrator command prompt and navigate to the directory (folder) where you extracted sdload to, i.e &amp;quot;cd c:\sdload&amp;quot;&lt;br /&gt;
&lt;br /&gt;
4. Run sdpatch x: where x: represents your SD-Card i.e: sdpatch E:&lt;br /&gt;
&lt;br /&gt;
5. The program will run and if all went OK it will report that your SD Card is now patched, before removing it from the system double check in file explorer that you are still able to see the files you copied earlier.&lt;br /&gt;
&lt;br /&gt;
* The software will NOT let you pick a non removable drive but depending on your system setup it might be possible to somehow patch an incorrect drive and stop your PC from booting up so take extra care when writing in the letter of your SD Card.&lt;br /&gt;
&lt;br /&gt;
The program will run and if all went OK it will report that your SD Card is now patched, before removing it from the system double check in file explorer that you are still able to see the files you copied earlier&lt;br /&gt;
&lt;br /&gt;
6. Put the SD-Card into the SD-Card adapter and install it into slot 1, make sure you have a memory card installed in slot 2 and boot up the gamecube and begin the sdload code entry sequence.&lt;br /&gt;
&lt;br /&gt;
===Step 2 [Action Replay Code Entry]===&lt;br /&gt;
&lt;br /&gt;
Providing you have patched your SD Card and copied the appropriate files to it the last step is to create a custom code in the Action Replay to boot up SD Loader, this is a long code and will take around 15 minutes to enter, fortunately it only has to be done once so take your time and verify that all codes have been typed correctly.&lt;br /&gt;
&lt;br /&gt;
1. Select &amp;quot;Action Replay Codes&amp;quot;&lt;br /&gt;
2. Select the USA flag (This applies regardless of PAL / NTSC gamecube).&lt;br /&gt;
3. Select &amp;quot;Add New Game&amp;quot;, call it SDLOAD  (use all capital lettters) and push the done key.&lt;br /&gt;
4. Enter (m) as the code name (use a small m and use the CAPS button to find the brackets) and push the done key.&lt;br /&gt;
5. Enter the following 3 codes, pushing done after each code, once you have entered the final code just push done for a second time and you should get an &amp;quot;updating action replay hardware&amp;quot; message while the codes are saved.&lt;br /&gt;
&lt;br /&gt;
  (m)&lt;br /&gt;
  1: 7YPR-RKZZ-MH6W5&lt;br /&gt;
  2: D26A-PE4J-1XX2W&lt;br /&gt;
  3: ZJHY-B1ZH-6P00G&lt;br /&gt;
&lt;br /&gt;
6. You should now see SDLOAD and Add New Code (your (m) should be visible in green too). Select add new code and this time call the code SDLOAD (all capitals) and like before input the following code, this code is 29 lines so double check before pushing done.&lt;br /&gt;
&lt;br /&gt;
  (SDLOAD)&lt;br /&gt;
  1:  AF4H-JPF5-H1B5J&lt;br /&gt;
  2:  MVAB-7TQE-ABZPB&lt;br /&gt;
  3:  V2CK-QQ1A-Y6P72&lt;br /&gt;
  4:  M5N6-CMMH-9EURT&lt;br /&gt;
  5:  0JFM-3A6C-VZ6VK&lt;br /&gt;
  6:  KYV8-0JGV-0GR1N&lt;br /&gt;
  7:  2EGU-HVKF-NDMCN&lt;br /&gt;
  8:  7AH0-J9JZ-HHGNJ&lt;br /&gt;
  9:  4MHU-G8XT-ZRYCJ&lt;br /&gt;
  10: 9474-KF41-8KG34&lt;br /&gt;
  11: QMEV-G90N-A8RV0&lt;br /&gt;
  12: KD4G-5QHV-74D46&lt;br /&gt;
  13: V97K-652Q-Y4TEY&lt;br /&gt;
  14: 6M4W-9GPT-E99NG&lt;br /&gt;
  15: QPFY-DJAF-E01FV&lt;br /&gt;
  16: 2Z6E-P2WY-24WV4&lt;br /&gt;
  17: 6NHW-G3NH-HP31Y&lt;br /&gt;
  18: A2KF-MCKN-D645J&lt;br /&gt;
  19: K5V8-EF9W-7GFQC&lt;br /&gt;
  20: XTU3-269T-VH5NE&lt;br /&gt;
  21: H9GP-C4PP-6FGF9&lt;br /&gt;
  22: HF77-R45C-ZXPDV&lt;br /&gt;
  23: 22Y3-D98C-50AJM&lt;br /&gt;
  24: WTWZ-EC88-U5ZTV&lt;br /&gt;
  25: 36G1-UGDG-J2G84&lt;br /&gt;
  26: DUMT-15KR-DXJ8K&lt;br /&gt;
  27: JV55-6VF5-2Z02T&lt;br /&gt;
  28: D4R8-MVJ5-QGR21&lt;br /&gt;
  29: 1G3C-APD7-1CUVD&lt;br /&gt;
&lt;br /&gt;
7: Select the code SDLOAD and press A to enable it (the code should get a checkbox) and press B to return to the main menu. Some versions of the Action Replay are buggy and disable newly entered codes after a reboot so it is a good idea to browse to the options menu, select update hardware then reboot the system and verify that your SDLOAD code is enabled. To do this after a reboot pick Action Replay Codes, SDLOAD should already be selected, select it with A and make sure the SDLOAD code has a check-mark in it. Press B twice to go back to the main menu and press Start Game, open and close the lid (leaving the action replay disc is fine.) and if all went well after a few seconds you should see the SDLoad screen where you can pick any DOL you wish to run.&lt;br /&gt;
&lt;br /&gt;
===Step 3 [Post Installation &amp;amp; Troubleshooting]===&lt;br /&gt;
&lt;br /&gt;
Congratulations, if all went well you should be looking at the SDLoad screen and can launch any DOL of your choice. If you have a spare memory card you can use a tool like GCMM to clone your memory card with the Action Replay SDload code on it to another memory card in case of corruption or deletion, this will save you having to input the code again should it get erased. I like to verify that my cloned memory card works by testing it with the Action Replay, some copy tools will copy the Action Replay file across ok but the Action Replay won&#039;t recognize the file, you will know if it copied OK as SDLOAD will be the default selected game.&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t get to see the SDload screen then verify the steps above, is your SD Card 2gb or under and non HC? is it formatted as FAT16 and patched with the patch utility? Have you copied the sdloader.bin and the .cfg files to it in the proper place? &lt;br /&gt;
&lt;br /&gt;
If you made your own adapter check the wiring and connections, if you are using a bought adapter some of them are of low quality so try verifying the SD Card is making good contact and the adapter is making good contact with the gamecube memory card slot.&lt;br /&gt;
&lt;br /&gt;
==[Note for users of the Japanese Pro Action Replay]==&lt;br /&gt;
&lt;br /&gt;
This code is only for those using the Karat branded Pro Action Replay sold in Japan. (it is unlikely but you never know) I&#039;m not sure if this is a datel knock off or sold under licence but it looks very similar apart from all the menus being in Japanese, if your Action Replay is NOT in Japanese then don&#039;t use this code or else it won&#039;t work. If your Action Replay is the Japanese version then when you come to the code entry sequence use the following codes instead of those above.&lt;br /&gt;
&lt;br /&gt;
  (m)&lt;br /&gt;
  1: Q1NP-P0FY-7P4NA&lt;br /&gt;
  2: D26A-PE4J-1XX2W&lt;br /&gt;
  3: ZJHY-B1ZH-6P00G&lt;br /&gt;
&lt;br /&gt;
  SDLOAD&lt;br /&gt;
  1:  9N5B-081B-HF6E3&lt;br /&gt;
  2:  MVAB-7TQE-ABZPB&lt;br /&gt;
  3:  V2CK-QQ1A-Y6P72&lt;br /&gt;
  4:  M5N6-CMMH-9EURT&lt;br /&gt;
  5:  0JFM-3A6C-VZ6VK&lt;br /&gt;
  6:  KYV8-0JGV-0GR1N&lt;br /&gt;
  7:  2EGU-HVKF-NDMCN&lt;br /&gt;
  8:  7AH0-J9JZ-HHGNJ&lt;br /&gt;
  9:  4MHU-G8XT-ZRYCJ&lt;br /&gt;
  10: 9474-KF41-8KG34&lt;br /&gt;
  11: QMEV-G90N-A8RV0&lt;br /&gt;
  12: KD4G-5QHV-74D46&lt;br /&gt;
  13: V97K-652Q-Y4TEY&lt;br /&gt;
  14: 6M4W-9GPT-E99NG&lt;br /&gt;
  15: QPFY-DJAF-E01FV&lt;br /&gt;
  16: 2Z6E-P2WY-24WV4&lt;br /&gt;
  17: 6NHW-G3NH-HP31Y&lt;br /&gt;
  18: A2KF-MCKN-D645J&lt;br /&gt;
  19: K5V8-EF9W-7GFQC&lt;br /&gt;
  20: XTU3-269T-VH5NE&lt;br /&gt;
  21: H9GP-C4PP-6FGF9&lt;br /&gt;
  22: HF77-R45C-ZXPDV&lt;br /&gt;
  23: 22Y3-D98C-50AJM&lt;br /&gt;
  24: WTWZ-EC88-U5ZTV&lt;br /&gt;
  25: 36G1-UGDG-J2G84&lt;br /&gt;
  26: DUMT-15KR-DXJ8K&lt;br /&gt;
  27: JV55-6VF5-2Z02T&lt;br /&gt;
  28: D4R8-MVJ5-QGR21&lt;br /&gt;
  29: 1G3C-APD7-1CUVD&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=DuoQ&amp;diff=8107</id>
		<title>DuoQ</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=DuoQ&amp;diff=8107"/>
		<updated>2024-07-23T13:34:04Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: /* Overview */ linkify GC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox/modchip&lt;br /&gt;
| image = [[File:duoq.jpg|200px|alt=DuoQ Modchip]]&lt;br /&gt;
| gen = drivechip&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;DuoQ&#039;&#039;&#039; is a drivechip for the [[Nintendo Gamecube]]. It&#039;s identical to a XenoGC 1.0 modchip (as it is most likely a clone under a different name).&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
* Jumperless solution for Pal, US and Jap machines.&lt;br /&gt;
* LED Indicator lights.&lt;br /&gt;
* Low power design.&lt;br /&gt;
* Simple 6 wire installation points.&lt;br /&gt;
* Supports Multi games  &amp;amp; AR&lt;br /&gt;
* Compatible with GQ originals &amp;amp; imports&lt;br /&gt;
* Compatible with backups.&lt;br /&gt;
&lt;br /&gt;
==Settings==&lt;br /&gt;
(Assuming that this behaves the same as the XenoGC 1.0)&lt;br /&gt;
===General Info===&lt;br /&gt;
You can adjust a few settings by holding various buttons on controller 1 while booting a game - this means from just before and during the black screen as the boot up menu goes away and the game starts up. The settings will be in effect per boot and not change behaviour permanently.&lt;br /&gt;
&lt;br /&gt;
===[L button] Disable audiofix===&lt;br /&gt;
If you modified your backup images to work with bioses that didn&#039;t support streaming audio correctly, you can disable the native fix.&lt;br /&gt;
&lt;br /&gt;
===[R button] Disable DREfix===&lt;br /&gt;
Turns off the native read adjustment/retries. Can be useful if you want to scan a disc for read errors. The chip will not try to prevent any errors and use the default read settings&lt;br /&gt;
&lt;br /&gt;
===[X/Y button] Force NTSC/PAL display mode===&lt;br /&gt;
Will force the selected region&#039;s display mode regardless of the actual game region. This will work for some games, for others it won&#039;t.&lt;br /&gt;
&lt;br /&gt;
===[START button] Version display===&lt;br /&gt;
On a version 1.0 XenoGC it shows some basic version info (Chip, GC and drive) but on this chip it appears to be missing - in order to use a cheaper IC or to avoid looking like a clone?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:lightblue;font-size:10pt&amp;quot; width=&amp;quot;800&amp;quot;| DuoQ&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; width=&amp;quot;200&amp;quot; | Developers&lt;br /&gt;
| Team Omega&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | CPU&lt;br /&gt;
| Unknown&lt;br /&gt;
|- &lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Modchip Type&lt;br /&gt;
| [[Drivechip]]&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Features&lt;br /&gt;
| [[Gamecube BIOS]]&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Installation&lt;br /&gt;
| 9 wires (3 optional)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Modchips]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=USBGecko&amp;diff=8106</id>
		<title>USBGecko</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=USBGecko&amp;diff=8106"/>
		<updated>2024-07-23T13:31:57Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: /* Reception */ its not possessive&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox&lt;br /&gt;
|name         = Infobox/doc&lt;br /&gt;
|bodystyle    = &lt;br /&gt;
|title        = USB Gecko&lt;br /&gt;
|titlestyle   = &lt;br /&gt;
&lt;br /&gt;
|image        = [[File:USBGecko.jpg|200px|alt=USB Gecko]]&lt;br /&gt;
|imagestyle   = &lt;br /&gt;
|caption      = USB Gecko in original packaging&lt;br /&gt;
|captionstyle = &lt;br /&gt;
|headerstyle  = background:#ccf;&lt;br /&gt;
|labelstyle   = background:#ddf;&lt;br /&gt;
|datastyle    = background:#ddf;&lt;br /&gt;
&lt;br /&gt;
|header1 = Specification&lt;br /&gt;
|header2 = Flash Size&lt;br /&gt;
|label3  = USB Gecko&lt;br /&gt;
|data3   = 512Kb (4MBit)&lt;br /&gt;
|label4  = USB Gecko SE&lt;br /&gt;
|data4   = N/A&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
The &#039;&#039;&#039;USB Gecko&#039;&#039;&#039; was originally released as a &amp;quot;Developers Tool&amp;quot; aimed at homebrew developers and GC/Wii enthusiasts. It was originally released in early 2007 but was only produced in limited numbers. It is basically a device that uses the EXI bus to communicate bi-directionally from GC/Wii to a PC. It can plug in to either memory card port of a GC/Wii, but the software of course must be written to support both ports. The original version also featured 512Kb of internal Flashable memory which developers could store useful data in (such as code to reboot/reload to from their homebrew applications). &lt;br /&gt;
&lt;br /&gt;
[[File:USBGeckoSE.jpg|thumb|USB Gecko SE in its official packaging]]&lt;br /&gt;
[[File:USBGeckos.jpg|thumb|USBGecko beta, Original, SE]]&lt;br /&gt;
In late 2010 - early 2011, a cheaper, even more limited edition version was produced dubbed &amp;quot;USB Gecko SE&amp;quot;. It featured the same features as its predecessor however the flash memory was removed since not many homebrew applications made use of it. A status LED was added to the USB Gecko SE which was user controllable.&lt;br /&gt;
&lt;br /&gt;
== Reception ==&lt;br /&gt;
Although it was predominantly referred to as a developers tool, the USB Gecko perhaps received its biggest sales from users who wanted to debug/hack commercial games for cheating/exploit purposes - the cheats community (wiiRD/Ocarina).&lt;br /&gt;
&lt;br /&gt;
Many developers consider it a &amp;quot;must have&amp;quot; as it is very useful for debugging/stepping through code in libOGC / GDB.&lt;br /&gt;
&lt;br /&gt;
== Downloads (PCB/VHDL/GeckoOS) ==&lt;br /&gt;
After production stopped for the USB Gecko SE, the product was made open source with all files being available for download.&lt;br /&gt;
&lt;br /&gt;
Official Googlecode [http://code.google.com/p/geckodownloads/ Project Page] for Gecko Downloads&lt;br /&gt;
&lt;br /&gt;
Gamecube tools and Gecko Downloads mirror @ [http://www.gc-forever.com/forums/viewtopic.php?f=4&amp;amp;t=98 GC-Forever]&lt;br /&gt;
&lt;br /&gt;
== PCB Differences ==&lt;br /&gt;
=== Pre-release Version ===&lt;br /&gt;
[[File:USBGeckoBetaTop.jpg|200px|USBGecko beta PCB top]]&lt;br /&gt;
[[File:USBGeckoBetaBottom.jpg|200px|USBGecko beta PCB bottom]]&lt;br /&gt;
=== Original Version ===&lt;br /&gt;
[[File:USBGeckoTop.jpg|200px|USBGecko PCB top]]&lt;br /&gt;
[[File:USBGeckoBottom.jpg|200px|USBGecko PCB bottom]]&lt;br /&gt;
=== SE Version ===&lt;br /&gt;
[[File:USBGeckoSETop.jpg|200px|USBGecko SE PCB top]]&lt;br /&gt;
[[File:USBGeckoSEBottom.jpg|200px|USBGecko SE PCB bottom]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MiscHardware]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=USBGecko&amp;diff=8105</id>
		<title>USBGecko</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=USBGecko&amp;diff=8105"/>
		<updated>2024-07-23T13:30:41Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: /* General */ bolded title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox&lt;br /&gt;
|name         = Infobox/doc&lt;br /&gt;
|bodystyle    = &lt;br /&gt;
|title        = USB Gecko&lt;br /&gt;
|titlestyle   = &lt;br /&gt;
&lt;br /&gt;
|image        = [[File:USBGecko.jpg|200px|alt=USB Gecko]]&lt;br /&gt;
|imagestyle   = &lt;br /&gt;
|caption      = USB Gecko in original packaging&lt;br /&gt;
|captionstyle = &lt;br /&gt;
|headerstyle  = background:#ccf;&lt;br /&gt;
|labelstyle   = background:#ddf;&lt;br /&gt;
|datastyle    = background:#ddf;&lt;br /&gt;
&lt;br /&gt;
|header1 = Specification&lt;br /&gt;
|header2 = Flash Size&lt;br /&gt;
|label3  = USB Gecko&lt;br /&gt;
|data3   = 512Kb (4MBit)&lt;br /&gt;
|label4  = USB Gecko SE&lt;br /&gt;
|data4   = N/A&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
The &#039;&#039;&#039;USB Gecko&#039;&#039;&#039; was originally released as a &amp;quot;Developers Tool&amp;quot; aimed at homebrew developers and GC/Wii enthusiasts. It was originally released in early 2007 but was only produced in limited numbers. It is basically a device that uses the EXI bus to communicate bi-directionally from GC/Wii to a PC. It can plug in to either memory card port of a GC/Wii, but the software of course must be written to support both ports. The original version also featured 512Kb of internal Flashable memory which developers could store useful data in (such as code to reboot/reload to from their homebrew applications). &lt;br /&gt;
&lt;br /&gt;
[[File:USBGeckoSE.jpg|thumb|USB Gecko SE in its official packaging]]&lt;br /&gt;
[[File:USBGeckos.jpg|thumb|USBGecko beta, Original, SE]]&lt;br /&gt;
In late 2010 - early 2011, a cheaper, even more limited edition version was produced dubbed &amp;quot;USB Gecko SE&amp;quot;. It featured the same features as its predecessor however the flash memory was removed since not many homebrew applications made use of it. A status LED was added to the USB Gecko SE which was user controllable.&lt;br /&gt;
&lt;br /&gt;
== Reception ==&lt;br /&gt;
Although it was predominantly referred to as a developers tool, the USB Gecko perhaps received it&#039;s biggest sales from users who wanted to debug/hack commercial games for cheating/exploit purposes - the cheats community (wiiRD/Ocarina).&lt;br /&gt;
&lt;br /&gt;
Many developers consider it a &amp;quot;must have&amp;quot; as it is very useful for debugging/stepping through code in libOGC / GDB.&lt;br /&gt;
&lt;br /&gt;
== Downloads (PCB/VHDL/GeckoOS) ==&lt;br /&gt;
After production stopped for the USB Gecko SE, the product was made open source with all files being available for download.&lt;br /&gt;
&lt;br /&gt;
Official Googlecode [http://code.google.com/p/geckodownloads/ Project Page] for Gecko Downloads&lt;br /&gt;
&lt;br /&gt;
Gamecube tools and Gecko Downloads mirror @ [http://www.gc-forever.com/forums/viewtopic.php?f=4&amp;amp;t=98 GC-Forever]&lt;br /&gt;
&lt;br /&gt;
== PCB Differences ==&lt;br /&gt;
=== Pre-release Version ===&lt;br /&gt;
[[File:USBGeckoBetaTop.jpg|200px|USBGecko beta PCB top]]&lt;br /&gt;
[[File:USBGeckoBetaBottom.jpg|200px|USBGecko beta PCB bottom]]&lt;br /&gt;
=== Original Version ===&lt;br /&gt;
[[File:USBGeckoTop.jpg|200px|USBGecko PCB top]]&lt;br /&gt;
[[File:USBGeckoBottom.jpg|200px|USBGecko PCB bottom]]&lt;br /&gt;
=== SE Version ===&lt;br /&gt;
[[File:USBGeckoSETop.jpg|200px|USBGecko SE PCB top]]&lt;br /&gt;
[[File:USBGeckoSEBottom.jpg|200px|USBGecko SE PCB bottom]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MiscHardware]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=Playing_Backups&amp;diff=8104</id>
		<title>Playing Backups</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=Playing_Backups&amp;diff=8104"/>
		<updated>2024-07-23T13:28:59Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: bolded title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you can [[Booting Homebrew|boot homebrew]], that should provide enough as a base to be able to play &#039;&#039;&#039;backups&#039;&#039;&#039; of your legally owned games. Make sure you [[Backing Up Discs|back them up properly]] first.&lt;br /&gt;
&lt;br /&gt;
==Mediums to play backups from==&lt;br /&gt;
Backups can be played from a large variety of mediums. These are listed below in order of best to worst performance and stability based on my personal opinion.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; style=&amp;quot;background:lightblue;font-size:10pt&amp;quot; width=&amp;quot;100&amp;quot;| Medium&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; style=&amp;quot;background:lightblue;font-size:10pt&amp;quot; width=&amp;quot;300&amp;quot;| Performance&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; style=&amp;quot;background:lightblue;font-size:10pt&amp;quot; width=&amp;quot;300&amp;quot;| Stability&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; style=&amp;quot;background:lightblue;font-size:10pt&amp;quot; width=&amp;quot;50&amp;quot;| [[Audio_Streaming|Audio Streaming]]&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; style=&amp;quot;background:lightblue;font-size:10pt&amp;quot; width=&amp;quot;300&amp;quot;| Requires hardware beyond softmod?&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; style=&amp;quot;background:lightblue;font-size:10pt&amp;quot; width=&amp;quot;300&amp;quot;| Which homebrew enables this?&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; width=&amp;quot;150&amp;quot; | DVD-R&lt;br /&gt;
| Just like the real thing&lt;br /&gt;
| Depends on laser and media quality but generally good&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| [[Swiss]], [[GCoS]], [[GCOM]], [[XenoGC]]&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | SD/HC/XC Card via [[Wiikey Fusion]] or [[Wii Optical Drive Emulator|WODE]]&lt;br /&gt;
| Perfect&lt;br /&gt;
| Perfect, super fast load times&lt;br /&gt;
| No&lt;br /&gt;
| [[Wiikey Fusion]] or [[Wii Optical Drive Emulator|WODE]]&lt;br /&gt;
| [[Swiss]]&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | USB Hard Disk Drive via [[Wii Optical Drive Emulator|WODE]]&lt;br /&gt;
| Perfect&lt;br /&gt;
| Perfect, super fast load times&lt;br /&gt;
| No&lt;br /&gt;
| [[Wii Optical Drive Emulator|WODE]]&lt;br /&gt;
| [[Swiss]]&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | SD/HC/XC Card via [[SDGecko]]&lt;br /&gt;
| Stutters on high load areas&lt;br /&gt;
| Generally very stable on games that are supported&lt;br /&gt;
| Yes&lt;br /&gt;
| [[SDGecko]] (make your own too)&lt;br /&gt;
| [[Swiss]]&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | IDE Hard Disk via [[Ide-exi]]&lt;br /&gt;
| Stutters on high load areas&lt;br /&gt;
| Generally very stable on games that are supported&lt;br /&gt;
| Yes&lt;br /&gt;
| [[Ide-exi]]&lt;br /&gt;
| [[Swiss]]&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Ethernet&lt;br /&gt;
| Stutters on high load areas&lt;br /&gt;
| Generally stable, can freeze randomly on poor LAN card&lt;br /&gt;
| No&lt;br /&gt;
| [[Broadband Adapter]], NetGear FA311A recommendedby loaders&lt;br /&gt;
| S3-loader, Animal Crossing Loader&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | [[USBGecko]]&lt;br /&gt;
| Very slow and stutters&lt;br /&gt;
| Generally pretty stable if a game doesn&#039;t mind very slow loading times&lt;br /&gt;
| No&lt;br /&gt;
| [[USBGecko]]&lt;br /&gt;
| [[Swiss]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=Talk:Cubeboot&amp;diff=8103</id>
		<title>Talk:Cubeboot</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=Talk:Cubeboot&amp;diff=8103"/>
		<updated>2024-07-23T08:34:52Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The first sentence on this page feels like it could be made much shorter.  --Lumina33 7/23/2024&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=Cubeboot&amp;diff=8102</id>
		<title>Cubeboot</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=Cubeboot&amp;diff=8102"/>
		<updated>2024-07-23T08:32:30Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: linkify GC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox/homebrew&lt;br /&gt;
| title       = Cubeboot&lt;br /&gt;
| image       = [[File:Cubeboot-custom-logo.png|center|thumb|235px]]&lt;br /&gt;
| type        = Utility / IPL Replacement&lt;br /&gt;
| author      = Offbroadway, 9ary, PlatypusWithCheese&lt;br /&gt;
| version     = v0.1.4&lt;br /&gt;
| licence     = [http://www.gnu.org/licenses/gpl-2.0.txt GNU GPL v2]&lt;br /&gt;
| website     = https://flippydrive.com/&lt;br /&gt;
| download    = https://github.com/OffBroadway/cubeboot/releases&lt;br /&gt;
| source      = https://github.com/OffBroadway/cubeboot&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This project provides a program called &#039;&#039;&#039;Cubeboot&#039;&#039;&#039; which is able to play the [[GameCube]] boot animation. This is useful for some modchips like PicoBoot which skip the boot sequence. This project allows you to restore and customize the boot animation with custom colors and logos.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
* [https://github.com/OffBroadway/cubeboot?tab=readme-ov-file#usage Cubeboot usage]&lt;br /&gt;
&lt;br /&gt;
==Compatibility==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
* Binaries available [https://github.com/OffBroadway/cubeboot/releases here]&lt;br /&gt;
* Source via [https://github.com/OffBroadway/cubeboot/ github]&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
Team OffBroadway is working with the [[Swiss]] team to import more features into Cubeboot. Stay tuned for more!&lt;br /&gt;
&lt;br /&gt;
===General===&lt;br /&gt;
* Restore boot animation&lt;br /&gt;
* Loading an alternative IPL from an SD Card&lt;br /&gt;
* Support all NTSC and PAL IPL revisions&lt;br /&gt;
* Support booting SDGecko A/B and SD2SP2&lt;br /&gt;
* Flashable firmware image for picoboot&lt;br /&gt;
* Settings loaded from an SD Card&lt;br /&gt;
* Custom GameCube animation colors&lt;br /&gt;
* Random color each boot using RTC&lt;br /&gt;
* Custom Nintendo logo text replacement&lt;br /&gt;
* Force Progressive video modes&lt;br /&gt;
&lt;br /&gt;
==Known Issues==&lt;br /&gt;
* Official issue tracker [https://github.com/OffBroadway/cubeboot/issues here]&lt;br /&gt;
&lt;br /&gt;
[[Category:Homebrew_Software]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=GC-Linux_with_rootFS_on_SD&amp;diff=8101</id>
		<title>GC-Linux with rootFS on SD</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=GC-Linux_with_rootFS_on_SD&amp;diff=8101"/>
		<updated>2024-07-23T08:25:53Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: linkify GC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
First of all I want to thank the people who made all this possible:&lt;br /&gt;
&lt;br /&gt;
The guys from GC-Linux: http://www.gc-linux.org&lt;br /&gt;
&lt;br /&gt;
Simon &amp;quot;Scorpei&amp;quot; van de Berg for his great tutorial how to build an SD-card adapter for the cube: http://ngc.scorpei.com/GUIDE-SD_adapter.html&lt;br /&gt;
&lt;br /&gt;
The linuxwiki: http://linuxwiki.de&lt;br /&gt;
&lt;br /&gt;
The creators of MFE: http://www.gc-linux.org/wiki/Mfe-distro&lt;br /&gt;
&lt;br /&gt;
=The aim=&lt;br /&gt;
The aim of this Project is to create a custom Linux Kernel, which runs on a modified [[GameCube]] and has the root file system on an SD-card which is plugged into the memory-card slot via an [[SDGecko]].&lt;br /&gt;
After the system boots form the SD-card, it should start a custom program which allows the user to start programs using the GameCube-pad.&lt;br /&gt;
&lt;br /&gt;
=Why?=&lt;br /&gt;
Normally the GC-Linux kernel will try to load the root file system from a NFS attached storage over the BBA.&lt;br /&gt;
&lt;br /&gt;
However this isn&#039;t very practical because you need a broadband adapter for your GameCube, and you will always have to run an NFS-Share on your PC or a dedicated Server.&lt;br /&gt;
What I want is a stand-alone Linux on my GameCube! So why not create one by myself?&lt;br /&gt;
&lt;br /&gt;
=Roadmap=&lt;br /&gt;
*Create &amp;amp; boot a Kernel with his root file system on an SD-Card [Done!]&lt;br /&gt;
*Create an auto executing script (init/linuxrc?)  [Done!]&lt;br /&gt;
*Write an GameCube-pad controlled program [ToDo…]&lt;br /&gt;
*Enjoy your Linux-Cube!&lt;br /&gt;
&lt;br /&gt;
=What you will need=&lt;br /&gt;
*Nintendo Gamecube&lt;br /&gt;
*Method to load homebrew&lt;br /&gt;
*An SD-Card (max. 2GB atm) &lt;br /&gt;
*[[SDGecko]] (See [5] or Buy)&lt;br /&gt;
&lt;br /&gt;
==For Compiling it==&lt;br /&gt;
*Little knowledge about Linux Kernel &lt;br /&gt;
*A running Linux Distribution &lt;br /&gt;
*A running gc-linux tool chain + patched kernel source (2.6.32) &lt;br /&gt;
**See http://www.gc-linux.org/wiki/Building_a_GameCube_Linux_Kernel&lt;br /&gt;
**Clone my git for the Kernel: https://github.com/Nold360/GC-Linux-Kernel-2.6.32&lt;br /&gt;
**You may just want to use my config files:&lt;br /&gt;
 cp .config  linux-2.6.32/.config&lt;br /&gt;
 cp gamecube.dts linux-2.6.32/arch/powerpc/boot/dts/gamecube.dts&lt;br /&gt;
&lt;br /&gt;
=What should happen?=&lt;br /&gt;
After the GameCube boots, you will start the kernel.dol from the 1st partition of your SD-Card (fat formatted). The kernel will boot and mount the 2nd partition as his root (ext2/3 Formatted). Then will the Kernel look for his init-script and execute it. &lt;br /&gt;
In our Case we use the /bin/init script to configure the rest of the hardware (swap, mounting, etc.) and then start our script/program. &lt;br /&gt;
&lt;br /&gt;
==The boot parameter==&lt;br /&gt;
The boot parameters were the first thing I edited. It’s defined in the &lt;br /&gt;
“arch/powerpc/boot/dts/gamecube.dts”-file. I edited it as follows:&lt;br /&gt;
&lt;br /&gt;
 chosen  {&lt;br /&gt;
          bootargs = &amp;quot;root=/dev/gcnsda2 rw video=gcn-vifb:tv=auto&amp;quot;;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
The “root=” parameter tells the kernel that his root is on “/dev/gcnsda2” that means the SD-Card (sd) that is plugged into the GameCube’s (gcn) MemoryCard-Slot1 (a) on Partition 2 (2) [Because the fist is used so SD-Load to execute the kernel.dol]&lt;br /&gt;
“rootwait” tells him to wait for his root file system until it’s ready.&lt;br /&gt;
The video parameter tells him which video device to use, and how.&lt;br /&gt;
In our case he uses the GameCube framebuffer (gcn-vifb), on a tv. &lt;br /&gt;
With the “auto” parameter, he will look for himself which mode to use. (NTFS, PAL50/60Hz…)&lt;br /&gt;
&lt;br /&gt;
==Creating a Root file system==&lt;br /&gt;
After I could see that my kernel wants to use my SD-Card, I needed a root file system.	Basically you don’t need really much, it’s just the normal root-tree (/dev /bin /etc /mnt /usr…) But because I’m a pretty lazy person, I just used a mix of the ramdisk and the file system of the MFE-Distribution and it worked pretty well. I just used my own /linuxrc and /bin/init-scripts. Also you need to add the SD-Card-Devicenodes to the /dev directory. &lt;br /&gt;
Please do not use the description from the gc-linux wiki [1]. There they were called “/dev/sdcarda” and “/dev/sdcardb” but they are called “/dev/gcnsda” and “/dev/gcnsdb”.&lt;br /&gt;
&lt;br /&gt;
So we will add some nodes (as root):&lt;br /&gt;
 mknod dev/gcnsda   b 61 0&lt;br /&gt;
 mknod dev/gcnsda1  b 61 1&lt;br /&gt;
 mknod dev/gcnsda2  b 61 2&lt;br /&gt;
 mknod dev/gcnsda3  b 61 3&lt;br /&gt;
&lt;br /&gt;
 mknod dev/gcnsdb   b 61 8&lt;br /&gt;
 mknod dev/gcnsdb1  b 61 9&lt;br /&gt;
 mknod dev/gcnsdb2  b 61 10&lt;br /&gt;
 mknod dev/gcnsdb3  b 61 11&lt;br /&gt;
&lt;br /&gt;
We will also need one for Audio-RAM&lt;br /&gt;
 mknod dev/aram     b 37 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I also added an 3rd SD-card partition, if we maybe want to use them later.&lt;br /&gt;
&lt;br /&gt;
Last we add an mount path for the 1st SD-Card partition at /mnt/sdcarda, so we can mount it for later use.&lt;br /&gt;
 # mkdir mnt/sdcarda&lt;br /&gt;
&lt;br /&gt;
After that we need to create an fstab (/etc/fstab) to mount the cube’s Audio RAM as swap.&amp;lt;br&amp;gt;&lt;br /&gt;
Also we will add proc, root and our first SD-Card (vfat) Partition [Optional].&lt;br /&gt;
===/etc/fstab===&lt;br /&gt;
 /dev/aram       swap            swap    pri=32767                    0       0&lt;br /&gt;
 /dev/gcnsda2    /               ext3    defaults,errors=remount-ro   0       0&lt;br /&gt;
 /dev/gcnsda1    /mnt/gcnsda1    vfat    defaults                     0       0&lt;br /&gt;
 proc            /proc           proc    defaults                     0       0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The Init-Script==&lt;br /&gt;
So, the kernel boots, the filesystem looks great, what to do next?&lt;br /&gt;
We need to give our Kernel a init-script. As we didn’t gave the kernel the “init=/…” parameter, he will try to start the default script “/bin/init”.&lt;br /&gt;
&lt;br /&gt;
A very important thing is that init is not allowed to die! So it has to run all the time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
But what has our system now to do? &lt;br /&gt;
We need:  &lt;br /&gt;
*Format Audio-RAM as swap (mkswap)&lt;br /&gt;
*Mount fstab&lt;br /&gt;
*Activate swap &lt;br /&gt;
*Start our programs we need (mplayer, GUI, whatever)&lt;br /&gt;
*Keep init alive!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So let’s do that!&lt;br /&gt;
===/bin/init===&lt;br /&gt;
 #!/bin/ash&lt;br /&gt;
 mkswap /dev/aram&lt;br /&gt;
 mount –a&lt;br /&gt;
 swapon –a&lt;br /&gt;
 &lt;br /&gt;
 #Now comes our script or whatever you want to execute&lt;br /&gt;
 /linuxrc&lt;br /&gt;
 &lt;br /&gt;
 #And keep init alive&lt;br /&gt;
 while [ 1 –eq 1 ]; do&lt;br /&gt;
      sleep 1&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Preparing the SD-Card==&lt;br /&gt;
First of all, we need to prepare our SD-Card partitions. We need a first partition formatted with fat (vfat) and a second partition for the root file system (ext2/3).&amp;lt;br&amp;gt;&lt;br /&gt;
How big they are depends on your SD-Card and for what additional use you want to use it.&amp;lt;br&amp;gt;&lt;br /&gt;
We need about 10MB For the kernel.dol plus the SDLOADER.BIN and about 20mb for the basic root file system. Since I want to extend the rootfs and maybe want to use other homebrew and kernel.dol’s I formatted it as follows (1GB SD):&lt;br /&gt;
*300MB vfat&lt;br /&gt;
*700MB ext2/3&lt;br /&gt;
&lt;br /&gt;
I choose ext3 because I was first using ext2, but I had problems with destroyed libraries. So I switched to ext3 because it’s journaling.&amp;lt;br&amp;gt;&lt;br /&gt;
If you are ready to go, copy the file system onto the ext2/3 partition, and the GcImage.dol on the vfat partition.&lt;br /&gt;
&lt;br /&gt;
===Preparing SD-Card with fdisk===&lt;br /&gt;
Partitioning with fdisk is pretty easy, i will do an example of how to do it using a 1GB SD-Card. Of course can you choose your partition sizes as you want.&lt;br /&gt;
Notice that the device path WILL be another on your system!&lt;br /&gt;
 # fdisk /dev/mmcblk0           #Change to your device-path&lt;br /&gt;
 &amp;gt; o                            #Create empty DOS Patition Table&lt;br /&gt;
 &amp;gt; n                            #Create new Partition&lt;br /&gt;
 &amp;gt; p                            #Primary&lt;br /&gt;
 &amp;gt; [Enter]                      #At first sector&lt;br /&gt;
 &amp;gt; +300M                        #with 300MB size, change to whatever you want for your &amp;quot;Homebrew&amp;quot;-Partition&lt;br /&gt;
&lt;br /&gt;
That was our first partition that is going to be out vfat-homebrew partition, now comes the rootfs partition&lt;br /&gt;
 &amp;gt; n                            #Create new Partition&lt;br /&gt;
 &amp;gt; p                            #Primary&lt;br /&gt;
 &amp;gt; [Enter]                      #At first useable sector (behind our vfat-partition)&lt;br /&gt;
 &amp;gt; [Enter]                      #With maximum of size (Here: 700MB)&lt;br /&gt;
 &amp;gt; w                            #Write everything to device&lt;br /&gt;
 &amp;gt; q                            #Quit fdisk&lt;br /&gt;
&lt;br /&gt;
Now we have our Partitions. But they need a filesystem. In this example we use mkfs for this task:&lt;br /&gt;
 # mkfs.vfat /dev/mmcblk0p1     #Watch your path!&lt;br /&gt;
 # mkfs.ext3 /dev/mmcblk0p2     #Same here! &lt;br /&gt;
&lt;br /&gt;
Now you are ready to go. Copy GcImage.dol to the 1st Partition and the rootfs to the second.&lt;br /&gt;
&lt;br /&gt;
=So what’s next?=&lt;br /&gt;
The next part is to include the software we need. This isn’t very problematic because we can use every binary which is compiled for a PowerPC! So what I did is that I downloaded my binaries and libraries from the Debian package-Service [3]. And used the libSDL and the mplayer binary from the mfe-distribution, since they were included in the filesystem. I just added the libraries for divx and mp3. &lt;br /&gt;
&lt;br /&gt;
If you have an Broadband-Adapter in your Cube, you could even install apt-get and just download the packages directly on your cube!&amp;lt;br&amp;gt;&lt;br /&gt;
Another possibility for creating a big but good root file system would be the way from the GC-Linux wiki [4].&lt;br /&gt;
&lt;br /&gt;
=Need Help? Got Ideas? Want to Help?=&lt;br /&gt;
Join the GC-Forever Community! :) [0]&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
[0] http://nold.freeunix.net/devnull/index.php?show=./Stuff/Consoles/Gamecube/GameCube%20Linux&amp;lt;br&amp;gt;&lt;br /&gt;
[0] http://gc-forever.com&amp;lt;br&amp;gt;&lt;br /&gt;
[1] http://www.gc-linux.org/wiki/Memory_and_Filesystems#Creating_the_SD.2FMMC_card_device_nodes&amp;lt;br&amp;gt;&lt;br /&gt;
[2] http://www.gc-linux.org/wiki/Memory_and_Filesystems#Create_the_device_node_for_the_audio_RAM_driver&amp;lt;br&amp;gt;&lt;br /&gt;
[3] http://packages.debian.org&amp;lt;br&amp;gt;&lt;br /&gt;
[4] http://www.gc-linux.org/wiki/Creating_a_Root_Filesystem&amp;lt;br&amp;gt;&lt;br /&gt;
[5] http://ngc.scorpei.com/GUIDE-SD_adapter.html&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=Hardware_Acronyms&amp;diff=8100</id>
		<title>Hardware Acronyms</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=Hardware_Acronyms&amp;diff=8100"/>
		<updated>2024-07-23T07:48:24Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: XF=Transform Processor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Gamecube hardware acronyms for CubeDocumented project ==&lt;br /&gt;
&lt;br /&gt;
Documented by Andrei Shestakov (org). Version 1.1. (22 Jan 2006)&lt;br /&gt;
(original document hosted here: http://dolwin.emulation64.com/docs/acronyms.txt)&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
=== AA ===&lt;br /&gt;
    Antialiasing. Rendering method, that makes polygon edges seem less sharpen,&lt;br /&gt;
    combining colors of nearby pixels.&lt;br /&gt;
&lt;br /&gt;
=== AD16 ===&lt;br /&gt;
    Mysterious EXI device.&lt;br /&gt;
&lt;br /&gt;
=== AI ===&lt;br /&gt;
    Audio Interface. Hardware responsible for DMA playback of PCM buffer and&lt;br /&gt;
    DVD ADPCM streaming sound. AI hardware cannot mix sound channels or set&lt;br /&gt;
    channel volume for PCM DMA playback. These operations and more advanced&lt;br /&gt;
    sound effects are produced by DSP.&lt;br /&gt;
&lt;br /&gt;
=== [[Apploader]] ===&lt;br /&gt;
    Small program on DVD to load main DOL executable.&lt;br /&gt;
&lt;br /&gt;
=== AR, ARAM ===&lt;br /&gt;
    Auxiliary (Audio) Memory. 16 MB of slow (comapred to RAM) DRAM.&lt;br /&gt;
    Used for raw DSP sound data and as temporary space for textures.&lt;br /&gt;
    ARAM has DMA communication channel with main memory (RAM). Development&lt;br /&gt;
    boards has &amp;quot;ARAM Expansion&amp;quot; (additional 4, 16 or 32 MBs).&lt;br /&gt;
&lt;br /&gt;
=== BAT ===&lt;br /&gt;
    Block Address Translation, PPC MMU translation mechanism. There are DBAT&lt;br /&gt;
    and IBAT special-purpose registers for data and instruction address &lt;br /&gt;
    translation respectively.&lt;br /&gt;
&lt;br /&gt;
=== BBA ===&lt;br /&gt;
    Broad-Band Adapter, GC&#039;s 10BaseT Ethernet Adapter.&lt;br /&gt;
&lt;br /&gt;
=== BS ===&lt;br /&gt;
    Bootstrap Stage (from analogy with UNIX). Very first code, executed after&lt;br /&gt;
    GC hard reset.&lt;br /&gt;
&lt;br /&gt;
=== BS2 ===&lt;br /&gt;
    Bootstrap Stage 2. Same as IPL.&lt;br /&gt;
&lt;br /&gt;
=== CR ===&lt;br /&gt;
    PPC Condition Register, stores result of integer comare operation, for&lt;br /&gt;
    conditional branch decision.&lt;br /&gt;
&lt;br /&gt;
=== CRT ===&lt;br /&gt;
    C Run Time. C/C++ program environment (libraries and startup calls).&lt;br /&gt;
&lt;br /&gt;
=== DOL ===&lt;br /&gt;
    Gamecube application (custom executable file format).&lt;br /&gt;
&lt;br /&gt;
=== Dolphin ===&lt;br /&gt;
    Early development work name of Gamecube.&lt;br /&gt;
&lt;br /&gt;
=== Dolphin OS ===&lt;br /&gt;
    Gamecube OS. Single user, single process, multithreaded. Linked together&lt;br /&gt;
    with any GC application (&amp;quot;hard-linked&amp;quot;), as library.&lt;br /&gt;
&lt;br /&gt;
=== DSP ===&lt;br /&gt;
    Digital Signal Processor. Used to produce advanced sound on GC.&lt;br /&gt;
    DSP is integrated with GP in Flipper chip and has its own ROM.&lt;br /&gt;
    Developed by Macronix.&lt;br /&gt;
&lt;br /&gt;
=== DI, DVD ===&lt;br /&gt;
    DVD hardware interface. GC DVD is actually microcontroller, based on MN-102&lt;br /&gt;
    CPU with proprietary firmware ROM. DVD is protected by non-standard barcodes&lt;br /&gt;
    and data encryption, which is decrypted on-the-fly by DVD controller. GC DVD&lt;br /&gt;
    cannot be read on usual PC hardware. Whole GC DVD stuff is developed by&lt;br /&gt;
    Matsushita.&lt;br /&gt;
&lt;br /&gt;
=== EFB ===&lt;br /&gt;
    Embedded Framebuffer. 2MB of fast 1T-SRAM memory located inside Flipper.&lt;br /&gt;
    Used by GP&#039;s pixel engine to draw pixels. Later copied into XFB, for final&lt;br /&gt;
    TV-output.&lt;br /&gt;
&lt;br /&gt;
=== EXI ===&lt;br /&gt;
    Expansion Interface. Gamecube peripherial devices bus, sort of USB&lt;br /&gt;
    architecture. Developed by Macronix. Devices drived by EXI: memory cards,&lt;br /&gt;
    broad-band adapter, real-time clock, bootrom, SRAM.&lt;br /&gt;
&lt;br /&gt;
=== FIFO ===&lt;br /&gt;
    First-In-First-Out buffer to send GP commands and create GP command lists.&lt;br /&gt;
&lt;br /&gt;
=== Flipper ===&lt;br /&gt;
    Gamecube Northbridge+Peripheral Hardware+Graphics Processor+Audio DSP.&lt;br /&gt;
&lt;br /&gt;
=== FPR ===&lt;br /&gt;
    Floating Point Register. Gekko has 32 64-bit FPRs, named f0-f31.&lt;br /&gt;
&lt;br /&gt;
=== FPSCR ===&lt;br /&gt;
    Floating Point Status and Control Register.&lt;br /&gt;
&lt;br /&gt;
=== JTAG ===&lt;br /&gt;
    Hardware debug interface to CPU. You can connect some wires to CPU pins,&lt;br /&gt;
    to overwhelm it. Gekko has full support of IEEE 1149-1a-1993 JTAG standard.&lt;br /&gt;
&lt;br /&gt;
=== GC, GCN, NGC ===&lt;br /&gt;
    Nintendo Gamecube.&lt;br /&gt;
&lt;br /&gt;
=== GCM ===&lt;br /&gt;
    Gamecube Master Data (official term). GC DVD Image files.&lt;br /&gt;
&lt;br /&gt;
=== Gekko ===&lt;br /&gt;
    Gamecube CPU, PowerPC 750-derivative processor with FPU extensions, called&lt;br /&gt;
    &amp;quot;Paired Single&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== GP, GX ===&lt;br /&gt;
    Graphics Processor, the major part of Flipper chip. GP is fixed point&lt;br /&gt;
    state-machine. Developed by ArtX team.&lt;br /&gt;
&lt;br /&gt;
=== GPR ===&lt;br /&gt;
    General Purpose Register. Gekko has 32 32-bit GPRs, named r0-r31. r1 often&lt;br /&gt;
    used as stack pointer (sp).&lt;br /&gt;
&lt;br /&gt;
=== GX ===&lt;br /&gt;
    Software library, developed by Nintendo and ArtX, to drive GP hardware.&lt;br /&gt;
    Has many crossways with OpenGL (but more advanced).&lt;br /&gt;
&lt;br /&gt;
=== HW2 ===&lt;br /&gt;
    Common name of GC hardware. Number state for revision (&amp;quot;2&amp;quot; is production&lt;br /&gt;
    board).&lt;br /&gt;
&lt;br /&gt;
=== IPL ===&lt;br /&gt;
    Initial Program Loader. Graphics shell, used to load game from DVD.&lt;br /&gt;
&lt;br /&gt;
=== MC ===&lt;br /&gt;
    Memory Card, EXI device.&lt;br /&gt;
&lt;br /&gt;
=== MI ===&lt;br /&gt;
    Flipper memory interface, plays role of &amp;quot;Nothbridge&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== MMU ===&lt;br /&gt;
    PPC Memory Management Unit. Translates virtual address to physical.&lt;br /&gt;
    MMU has two translation mechanisms: block address translation and page table&lt;br /&gt;
    translation. Address translation for data access and instruction fetch is&lt;br /&gt;
    processed separately in DMMU and IMMU.&lt;br /&gt;
&lt;br /&gt;
=== MSR ===&lt;br /&gt;
    Machine State Register. CPU status and control register.&lt;br /&gt;
&lt;br /&gt;
=== MX ===&lt;br /&gt;
    Macronix Ltd. chips index. GC has many hardware parts, developed&lt;br /&gt;
    by Macronix, like DSP, EXI and bootrom chip.&lt;br /&gt;
&lt;br /&gt;
=== PC ===&lt;br /&gt;
    Program Counter. PowerPC architecture does not define such term, but&lt;br /&gt;
    everyone is using it anyway, instead &amp;quot;CIA&amp;quot; (Current Instruction Address).&lt;br /&gt;
&lt;br /&gt;
=== PCM ===&lt;br /&gt;
    Pulse Code Modulation, method commonly used in digital sound hardware.&lt;br /&gt;
    PCM sound parameters are: playback rate, bits per sample, sample format.&lt;br /&gt;
    GC AI can playback 32000/48000 Hz, 16-bit big-endian stereo samples via&lt;br /&gt;
    DMA.&lt;br /&gt;
&lt;br /&gt;
=== PI ===&lt;br /&gt;
    Peripheral Interface. Set of hardware registers to control interrupts and&lt;br /&gt;
    hardware reset. There also &amp;quot;PI FIFO&amp;quot;: hardware-driven FIFO buffer in RAM.&lt;br /&gt;
&lt;br /&gt;
=== PM ===&lt;br /&gt;
    PowerPC Performance Monitor. Set of PPC special purpose registers used for&lt;br /&gt;
    speed profiling of applications.&lt;br /&gt;
&lt;br /&gt;
=== PPC ===&lt;br /&gt;
    IBM PowerPC Architecture.&lt;br /&gt;
&lt;br /&gt;
=== PTE ===&lt;br /&gt;
    Page Table Entry. Page table record, used to translate virtual address to&lt;br /&gt;
    physical.&lt;br /&gt;
&lt;br /&gt;
=== RAM ===&lt;br /&gt;
    Main memory. GC has 24 MB of fast 1T-SRAM. Development boards has RAM&lt;br /&gt;
    extended up to 48 MB. Developed by MoSys.&lt;br /&gt;
&lt;br /&gt;
=== ROM ===&lt;br /&gt;
    Read-only memory. GC has following ROMs: 2 MB encrypted bootrom, 128 KB&lt;br /&gt;
    DVD firmware, 4 KB DSP DROM, 8 KB DSP IROM.&lt;br /&gt;
&lt;br /&gt;
=== RSW ===&lt;br /&gt;
    &amp;quot;Reset Switch&amp;quot;, same as reset button. Seems early development GC models&lt;br /&gt;
    were equipped by switch, instead programmable reset button.&lt;br /&gt;
&lt;br /&gt;
=== RTC ===&lt;br /&gt;
    Real-time clock. EXI device, counting seconds since 00:00 AM 2000.&lt;br /&gt;
&lt;br /&gt;
=== SDK ===&lt;br /&gt;
    Software Development Kit. Full set of compilers, libraries and documentation&lt;br /&gt;
    for development on specified platform. Gamecube SDK contain development tools,&lt;br /&gt;
    like sound and texture convertors, and set of libraries for OS and hardware.&lt;br /&gt;
    Compiler is provided by Metrowerk&#039;s CodeWarrior. There also huge development&lt;br /&gt;
    board and paper documentation.&lt;br /&gt;
&lt;br /&gt;
=== SI ===&lt;br /&gt;
    Serial Interface. Hardware responsible for communication with serial devices,&lt;br /&gt;
    such as GC controller and keyboard via serial I/O buffer.&lt;br /&gt;
&lt;br /&gt;
=== SPR ===&lt;br /&gt;
    Special-purpose register. Set of registers, dedicated to operating system.&lt;br /&gt;
    Gekko has about 60 SPRs.&lt;br /&gt;
&lt;br /&gt;
=== SR ===&lt;br /&gt;
    Segment Registers, used by MMU for virtual address translation.&lt;br /&gt;
&lt;br /&gt;
=== SRAM ===&lt;br /&gt;
    Small amount of battery backuped memory for OS misc settings.&lt;br /&gt;
&lt;br /&gt;
=== TLB ===&lt;br /&gt;
    PPC MMU Translation Lookaside Buffer, used to keep recently used page&lt;br /&gt;
    address translations. Gekko has 128 two-way set associative TLB for each&lt;br /&gt;
    MMU (DMMU and IMMU).&lt;br /&gt;
&lt;br /&gt;
=== VI ===&lt;br /&gt;
    Video Interface. Hardware responsible for TV-out of framebuffer (XFB),&lt;br /&gt;
    and generating VBlank interrupt (actually can be configured to interrupt&lt;br /&gt;
    CPU at any beam location). Has support for light-gun, antialiasing of XFB&lt;br /&gt;
    by tap-filters and progressive video mode (480p).&lt;br /&gt;
&lt;br /&gt;
=== WBUF ===&lt;br /&gt;
    Gekko Write Gather Buffer. Small cache for burst memory transactions.&lt;br /&gt;
    Used together with graphics FIFO to send GP commands.&lt;br /&gt;
&lt;br /&gt;
=== XF ===&lt;br /&gt;
    Transform Processor&lt;br /&gt;
&lt;br /&gt;
=== XFB ===&lt;br /&gt;
    External Framebuffer, located in main memory. Used for final TV-out by VI.&lt;br /&gt;
&lt;br /&gt;
[[Category:CubeDocumented]]&lt;br /&gt;
[[Category:Technical Info]]&lt;br /&gt;
[[Category:Reverse Engineering]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=GCLoader&amp;diff=8099</id>
		<title>GCLoader</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=GCLoader&amp;diff=8099"/>
		<updated>2024-07-23T07:28:12Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: /* General information */ linkify GC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox/modchip&lt;br /&gt;
| image = [[File:gcloader.png|200px|alt=GCLoader]]&lt;br /&gt;
| gen = drivereplace&lt;br /&gt;
| cpu = Spartan 6&lt;br /&gt;
| flash = 64Mbit onboard flash&lt;br /&gt;
| extstorage = SD Slot&lt;br /&gt;
| minstorage = 4GB SDHC&lt;br /&gt;
| maxstorage = 2TB SDXC&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== General information ==&lt;br /&gt;
&#039;&#039;&#039;GC Loader&#039;&#039;&#039; is [[GameCube]] DVD drive replacement that allows you boot homebrew and your existing library of games on DOL-001 and DOL-101 models.  No longer do you need to worry about when your laser will burn out on your DVD drive.  The GC Loader is a full replacement and acts exactly* like an original DVD drive but uses memory cards for its media.    &lt;br /&gt;
&lt;br /&gt;
*Some titles will load noticeably faster compared to the original DVD drive.  GC Loader also has full audio streaming support.&lt;br /&gt;
&lt;br /&gt;
Available for purchase from a US source [https://www.black-dog.tech/gc-loader-pnp-1.html here] and from a EU source [https://gc-loader.com/product/gc-loader-pnp-hw2/ here]&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* DOL-001 and DOL-101 support&lt;br /&gt;
* Minimum SDHC 4GB to maximum SDXC 2TB (theoretical) supported SD cards&lt;br /&gt;
* Update via DOL file found on [https://github.com/danielkraak/GC-Loader/releases/ GitHub]&lt;br /&gt;
* Easily launch homebrew and your existing library of games.&lt;br /&gt;
* Installation is fast and simple (does require basic soldering skills)&lt;br /&gt;
* Full Audio Streaming Support.&lt;br /&gt;
* Swiss can read from it and launch games&lt;br /&gt;
* Faster loading times compared to original DVD drive.&lt;br /&gt;
* Firmware is updatable and a simple procedure&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
Firmware updates can be found [https://github.com/danielkraak/GC-Loader here].&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;background:lightblue;font-size:10pt&amp;quot; width=&amp;quot;1250&amp;quot;| GCLoader firmware&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; style=&amp;quot;background:lightgrey;font-size:10pt&amp;quot; width=&amp;quot;200&amp;quot;| Version&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; style=&amp;quot;background:lightgrey;font-size:10pt&amp;quot; width=&amp;quot;800&amp;quot;| Release Notes&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;  width=&amp;quot;200&amp;quot; | 0.9.0 beta&lt;br /&gt;
|&lt;br /&gt;
* Initial Release&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | 0.10.0 beta&lt;br /&gt;
| &lt;br /&gt;
* No SD card inserted boots to dashboard&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | 1.0.0 beta&lt;br /&gt;
| &lt;br /&gt;
* Fragmentation and multi disc fix.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | 1.0.1&lt;br /&gt;
| &lt;br /&gt;
* Fixed some stability issues. &lt;br /&gt;
* Decreased FPGA boot time.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== API ==&lt;br /&gt;
&lt;br /&gt;
API is documented [https://github.com/danielkraak/GC-Loader/blob/master/API.md here].&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:lightblue;font-size:10pt&amp;quot; width=&amp;quot;800&amp;quot;| GCLoader&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; width=&amp;quot;200&amp;quot; | Developers&lt;br /&gt;
| meneerbeer&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | CPU&lt;br /&gt;
| Xilinx Spartan 6 LX XC6SLX9 (HW1), Efinix Trion T20F256 + Espressif ESP32-WROOM-32E (HW2)&lt;br /&gt;
|- &lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Modchip Type&lt;br /&gt;
| [[Drive Replacement Chip]]&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Features&lt;br /&gt;
| [[Gamecube BIOS]]&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Installation&lt;br /&gt;
| Flex cable or connector from existing drive&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Modchips]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=Modchip&amp;diff=8098</id>
		<title>Modchip</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=Modchip&amp;diff=8098"/>
		<updated>2024-07-23T07:23:04Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: linkify GC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A &#039;&#039;&#039;modchip&#039;&#039;&#039; is any piece of hardware that must be physically installed into the [[GameCube]] to work. Modchips are generally used to assist in loading homebrew and backups.&lt;br /&gt;
&lt;br /&gt;
== Generations of modchips ==&lt;br /&gt;
Modchips come in 3 main generations:&lt;br /&gt;
* [[IPL Replacement]]&lt;br /&gt;
* [[Drivechip]]&lt;br /&gt;
* [[Drive Replacement Chip]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=SDLoad&amp;diff=8097</id>
		<title>SDLoad</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=SDLoad&amp;diff=8097"/>
		<updated>2024-07-23T07:22:42Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: linkify GC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;SDLoad&#039;&#039;&#039; is an older way of loading homebrew onto the [[Nintendo Gamecube]], it was originally released in 2005 by Costis, and can be downloaded [http://gc-forever.com/forums/viewtopic.php?f=4&amp;amp;t=401 here].&lt;br /&gt;
&lt;br /&gt;
This method of loading homebrew has mainly been superseded by the use of save-game exploits and mod-chips. However, it is still a functional way of enabling homebrew on a gamecube and unlike save game exploits does not initially require a Nintendo Wii or a previously homebrew enabled game cube to load a save-game exploit onto a memory card. Thus this guide can be followed by anybody who has only a gamecube, SD-card adapter with SD-card and a [https://www.datel.co.uk/ Datel] [[Action Replay]] to get homebrew running on their gamecube. &lt;br /&gt;
&lt;br /&gt;
This guide requires the user to have some basic windows knowledge such as how to launch an administrative command prompt as well as format an SD-Card in the FAT16 filesystem and how to change directories (folders) in the command prompt, how to do this is not covered here but there are many guides already on the internet about how to do both.&lt;br /&gt;
&lt;br /&gt;
== Requirements==&lt;br /&gt;
&lt;br /&gt;
===Hardware===&lt;br /&gt;
* Nintendo Gamecube -&amp;gt; Any version / any region should work.&lt;br /&gt;
* Datel [[Action Replay]] (version 1.14 or below) -&amp;gt; Newer versions of action replay lack the user-code entry screen, if you cannot input codes your action replay disc is too new. The Japanese version of the Action Replay uses a different set of codes to the US / Europe version of the disc so be careful when you are choosing the codes on the code-input screen, the Japanese Pro Action Replay (Karat) disc is in Japanese so unless you have this disc (unlikely) then the standard code should work regardless of console region.&lt;br /&gt;
* PC with SD CARD Reader.&lt;br /&gt;
** Note: It is a common misconception that the bundled memory card is required for the action replay to work, this is not true, if your disc didn&#039;t come with a memory card simply insert any memory card that has some free space into slot 2 before booting the action replay disc and it will automatically create a code database file on the memory card.&lt;br /&gt;
* SD-Card adapter and SD-card -&amp;gt; The genuine SD-card adapter is long discontinued and commands high prices, you can buy pre-made adapaters like the Wiikey SD Gecko for a few dollars or make your own if you are handy with a soldering iron, there are diagrams online if you wish to try and build one.&lt;br /&gt;
* SD-Card: The card itself needs to be a NON SDHC card (i.e 2gb or less) and formatted as a FAT16 file system. &lt;br /&gt;
** Smaller SD Cards (sub 64mb) might format as FAT12, you can ensure a FAT16 format on such a card by using the command &amp;quot;format x: /FS: FAT /A:512&amp;quot; from a command prompt (where X: represents the drive letter of your SD card).&lt;br /&gt;
&lt;br /&gt;
===Software===&lt;br /&gt;
&lt;br /&gt;
Microsoft Windows -&amp;gt; Windows 2000 and later are supported.&lt;br /&gt;
&lt;br /&gt;
sdload.zip -&amp;gt; There are two versions of the software, the original version works with Windows 2000 &amp;amp; XP, the later version which works with newer versions of Windows such as Vista / 7 / 8 / 10. Make sure you download the version appropriate for your system.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
===Step 1 [Setting up the SD Card - Windows Vista / 7 / 8 / 10]===&lt;br /&gt;
&lt;br /&gt;
This section is for users of Windows Vista / 7 / 8 / 10, if you are running an older OS such as XP or Windows 2000 skip to the Windows XP section.&lt;br /&gt;
&lt;br /&gt;
1. Make sure your PC can access your SD-Card and that it has been freshly formatted as a FAT16 filesystem. &lt;br /&gt;
&lt;br /&gt;
2. Download and extract the sdload.zip (Windows 10 supported version) to a folder on your computer. i.e &amp;quot;c:\sdload&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. Copy the 2 files sdloader.bin and sdipdata.cfg to the root of your SD card (don&#039;t put them in a folder). You can also copy any other DOL (gamecube executable) files you wish to run from your SD Card as this time too, such as SWISS, CleanRip, GCOS, GCMM etc.&lt;br /&gt;
&lt;br /&gt;
3. Open an administrator command prompt and navigate to the directory (folder) where you extracted sdload to, i.e &amp;quot;cd c:\sdload&amp;quot;&lt;br /&gt;
&lt;br /&gt;
4. Run [[SDPatch|sdpatch]] without any parameters, i.e &amp;quot;sdpatch&amp;quot;, the program will take a few seconds and report a list of connected drives to your computer. i.e.&lt;br /&gt;
&lt;br /&gt;
  Caption                DeviceID            Model                  Partitions  Size&lt;br /&gt;
  TOSHIBA THNSN9240GESG  \\.\PHYSICALDRIVE0  TOSHIBA THNSN9240GESG  2           240054796800&lt;br /&gt;
  Generic SDC SD Card    \\.\PHYSICALDRIVE1  Generic SDC SD Card    1           8225280&lt;br /&gt;
&lt;br /&gt;
Depending on if you are using a USB card reader or a built in card reader the device might show up as a generic USB device, if you are unsure unplug all external usb drives and memory sticks from the computer.&lt;br /&gt;
&lt;br /&gt;
5. In the example above we can see the SD card is reported to the system as physical drive 1, depending on your system this could be 2 or 3 etc, be sure you are choosing the correct drive and run sdpatch but specify the number you wish to patch, i.e sdpatch 1&lt;br /&gt;
&lt;br /&gt;
* The software will NOT let you pick drive 0 as this is usually the first installed hard disk but depending on your system and number of hard disks and how the machine is set up to boot it is possible to break your PC by patching the wrong drive if it is set up to boot in some weird way so pay extra care, you can always remove the SD card and run sdpatch again and see which drive disappears from the list to make extra sure.&lt;br /&gt;
&lt;br /&gt;
The program will run and if all went OK it will report that your SD Card is now patched, before removing it from the system double check in file explorer that you are still able to see the files you copied earlier&lt;br /&gt;
&lt;br /&gt;
6. Put the SD-Card into the SD-Card adapter and install it into slot 1, make sure you have a memory card installed in slot 2 and boot up the gamecube and begin the sdload code entry sequence.&lt;br /&gt;
&lt;br /&gt;
===Step 1 [Setting up the SD Card - Windows XP / 2000]===&lt;br /&gt;
&lt;br /&gt;
This section is for users of Windows XP &amp;amp; 2000, if you are running an newer OS such as Windows 7 or 10 then please follow the section above.&lt;br /&gt;
&lt;br /&gt;
1. Make sure your PC can access your SD-Card and that it has been freshly formatted as a FAT16 filesystem. &lt;br /&gt;
&lt;br /&gt;
2. Download and extract the sdload.zip (original windows XP version) to a folder on your computer. i.e &amp;quot;c:\sdload&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. Copy the 2 files sdloader.bin and sdipdata.cfg to the root of your SD card (don&#039;t put them in a folder). You can also copy any other DOL (gamecube executable) files you wish to run from your SD Card as this time too, such as SWISS, CleanRip, GCOS, GCMM etc. Make a note of what drive your SD card is too, i.e E:&lt;br /&gt;
&lt;br /&gt;
3. Open an administrator command prompt and navigate to the directory (folder) where you extracted sdload to, i.e &amp;quot;cd c:\sdload&amp;quot;&lt;br /&gt;
&lt;br /&gt;
4. Run sdpatch x: where x: represents your SD-Card i.e: sdpatch E:&lt;br /&gt;
&lt;br /&gt;
5. The program will run and if all went OK it will report that your SD Card is now patched, before removing it from the system double check in file explorer that you are still able to see the files you copied earlier.&lt;br /&gt;
&lt;br /&gt;
* The software will NOT let you pick a non removable drive but depending on your system setup it might be possible to somehow patch an incorrect drive and stop your PC from booting up so take extra care when writing in the letter of your SD Card.&lt;br /&gt;
&lt;br /&gt;
The program will run and if all went OK it will report that your SD Card is now patched, before removing it from the system double check in file explorer that you are still able to see the files you copied earlier&lt;br /&gt;
&lt;br /&gt;
6. Put the SD-Card into the SD-Card adapter and install it into slot 1, make sure you have a memory card installed in slot 2 and boot up the gamecube and begin the sdload code entry sequence.&lt;br /&gt;
&lt;br /&gt;
===Step 2 [Action Replay Code Entry]===&lt;br /&gt;
&lt;br /&gt;
Providing you have patched your SD Card and copied the appropriate files to it the last step is to create a custom code in the Action Replay to boot up SD Loader, this is a long code and will take around 15 minutes to enter, fortunately it only has to be done once so take your time and verify that all codes have been typed correctly.&lt;br /&gt;
&lt;br /&gt;
1. Select &amp;quot;Action Replay Codes&amp;quot;&lt;br /&gt;
2. Select the USA flag (This applies regardless of PAL / NTSC gamecube).&lt;br /&gt;
3. Select &amp;quot;Add New Game&amp;quot;, call it SDLOAD  (use all capital lettters) and push the done key.&lt;br /&gt;
4. Enter (m) as the code name (use a small m and use the CAPS button to find the brackets) and push the done key.&lt;br /&gt;
5. Enter the following 3 codes, pushing done after each code, once you have entered the final code just push done for a second time and you should get an &amp;quot;updating action replay hardware&amp;quot; message while the codes are saved.&lt;br /&gt;
&lt;br /&gt;
  (m)&lt;br /&gt;
  1: 7YPR-RKZZ-MH6W5&lt;br /&gt;
  2: D26A-PE4J-1XX2W&lt;br /&gt;
  3: ZJHY-B1ZH-6P00G&lt;br /&gt;
&lt;br /&gt;
6. You should now see SDLOAD and Add New Code (your (m) should be visible in green too). Select add new code and this time call the code SDLOAD (all capitals) and like before input the following code, this code is 29 lines so double check before pushing done.&lt;br /&gt;
&lt;br /&gt;
  (SDLOAD)&lt;br /&gt;
  1:  AF4H-JPF5-H1B5J&lt;br /&gt;
  2:  MVAB-7TQE-ABZPB&lt;br /&gt;
  3:  V2CK-QQ1A-Y6P72&lt;br /&gt;
  4:  M5N6-CMMH-9EURT&lt;br /&gt;
  5:  0JFM-3A6C-VZ6VK&lt;br /&gt;
  6:  KYV8-0JGV-0GR1N&lt;br /&gt;
  7:  2EGU-HVKF-NDMCN&lt;br /&gt;
  8:  7AH0-J9JZ-HHGNJ&lt;br /&gt;
  9:  4MHU-G8XT-ZRYCJ&lt;br /&gt;
  10: 9474-KF41-8KG34&lt;br /&gt;
  11: QMEV-G90N-A8RV0&lt;br /&gt;
  12: KD4G-5QHV-74D46&lt;br /&gt;
  13: V97K-652Q-Y4TEY&lt;br /&gt;
  14: 6M4W-9GPT-E99NG&lt;br /&gt;
  15: QPFY-DJAF-E01FV&lt;br /&gt;
  16: 2Z6E-P2WY-24WV4&lt;br /&gt;
  17: 6NHW-G3NH-HP31Y&lt;br /&gt;
  18: A2KF-MCKN-D645J&lt;br /&gt;
  19: K5V8-EF9W-7GFQC&lt;br /&gt;
  20: XTU3-269T-VH5NE&lt;br /&gt;
  21: H9GP-C4PP-6FGF9&lt;br /&gt;
  22: HF77-R45C-ZXPDV&lt;br /&gt;
  23: 22Y3-D98C-50AJM&lt;br /&gt;
  24: WTWZ-EC88-U5ZTV&lt;br /&gt;
  25: 36G1-UGDG-J2G84&lt;br /&gt;
  26: DUMT-15KR-DXJ8K&lt;br /&gt;
  27: JV55-6VF5-2Z02T&lt;br /&gt;
  28: D4R8-MVJ5-QGR21&lt;br /&gt;
  29: 1G3C-APD7-1CUVD&lt;br /&gt;
&lt;br /&gt;
7: Select the code SDLOAD and press A to enable it (the code should get a checkbox) and press B to return to the main menu. Some versions of the Action Replay are buggy and disable newly entered codes after a reboot so it is a good idea to browse to the options menu, select update hardware then reboot the system and verify that your SDLOAD code is enabled. To do this after a reboot pick Action Replay Codes, SDLOAD should already be selected, select it with A and make sure the SDLOAD code has a check-mark in it. Press B twice to go back to the main menu and press Start Game, open and close the lid (leaving the action replay disc is fine.) and if all went well after a few seconds you should see the SDLoad screen where you can pick any DOL you wish to run.&lt;br /&gt;
&lt;br /&gt;
===Step 3 [Post Installation &amp;amp; Troubleshooting]===&lt;br /&gt;
&lt;br /&gt;
Congratulations, if all went well you should be looking at the SDLoad screen and can launch any DOL of your choice. If you have a spare memory card you can use a tool like GCMM to clone your memory card with the Action Replay SDload code on it to another memory card in case of corruption or deletion, this will save you having to input the code again should it get erased. I like to verify that my cloned memory card works by testing it with the Action Replay, some copy tools will copy the Action Replay file across ok but the Action Replay won&#039;t recognize the file, you will know if it copied OK as SDLOAD will be the default selected game.&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t get to see the SDload screen then verify the steps above, is your SD Card 2gb or under and non HC? is it formatted as FAT16 and patched with the patch utility? Have you copied the sdloader.bin and the .cfg files to it in the proper place? &lt;br /&gt;
&lt;br /&gt;
If you made your own adapter check the wiring and connections, if you are using a bought adapter some of them are of low quality so try verifying the SD Card is making good contact and the adapter is making good contact with the gamecube memory card slot.&lt;br /&gt;
&lt;br /&gt;
==[Note for users of the Japanese Pro Action Replay]==&lt;br /&gt;
&lt;br /&gt;
This code is only for those using the Karat branded Pro Action Replay sold in Japan. (it is unlikely but you never know) I&#039;m not sure if this is a datel knock off or sold under licence but it looks very similar apart from all the menus being in Japanese, if your Action Replay is NOT in Japanese then don&#039;t use this code or else it won&#039;t work. If your Action Replay is the Japanese version then when you come to the code entry sequence use the following codes instead of those above.&lt;br /&gt;
&lt;br /&gt;
  (m)&lt;br /&gt;
  1: Q1NP-P0FY-7P4NA&lt;br /&gt;
  2: D26A-PE4J-1XX2W&lt;br /&gt;
  3: ZJHY-B1ZH-6P00G&lt;br /&gt;
&lt;br /&gt;
  SDLOAD&lt;br /&gt;
  1:  9N5B-081B-HF6E3&lt;br /&gt;
  2:  MVAB-7TQE-ABZPB&lt;br /&gt;
  3:  V2CK-QQ1A-Y6P72&lt;br /&gt;
  4:  M5N6-CMMH-9EURT&lt;br /&gt;
  5:  0JFM-3A6C-VZ6VK&lt;br /&gt;
  6:  KYV8-0JGV-0GR1N&lt;br /&gt;
  7:  2EGU-HVKF-NDMCN&lt;br /&gt;
  8:  7AH0-J9JZ-HHGNJ&lt;br /&gt;
  9:  4MHU-G8XT-ZRYCJ&lt;br /&gt;
  10: 9474-KF41-8KG34&lt;br /&gt;
  11: QMEV-G90N-A8RV0&lt;br /&gt;
  12: KD4G-5QHV-74D46&lt;br /&gt;
  13: V97K-652Q-Y4TEY&lt;br /&gt;
  14: 6M4W-9GPT-E99NG&lt;br /&gt;
  15: QPFY-DJAF-E01FV&lt;br /&gt;
  16: 2Z6E-P2WY-24WV4&lt;br /&gt;
  17: 6NHW-G3NH-HP31Y&lt;br /&gt;
  18: A2KF-MCKN-D645J&lt;br /&gt;
  19: K5V8-EF9W-7GFQC&lt;br /&gt;
  20: XTU3-269T-VH5NE&lt;br /&gt;
  21: H9GP-C4PP-6FGF9&lt;br /&gt;
  22: HF77-R45C-ZXPDV&lt;br /&gt;
  23: 22Y3-D98C-50AJM&lt;br /&gt;
  24: WTWZ-EC88-U5ZTV&lt;br /&gt;
  25: 36G1-UGDG-J2G84&lt;br /&gt;
  26: DUMT-15KR-DXJ8K&lt;br /&gt;
  27: JV55-6VF5-2Z02T&lt;br /&gt;
  28: D4R8-MVJ5-QGR21&lt;br /&gt;
  29: 1G3C-APD7-1CUVD&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=FlippyDrive&amp;diff=8096</id>
		<title>FlippyDrive</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=FlippyDrive&amp;diff=8096"/>
		<updated>2024-07-23T07:22:05Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: /* General information */ capitalize &amp;amp; link gamecube&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox/modchip&lt;br /&gt;
| image = [[File:Flippydrive.jpg|200px|alt=FlippyDrive]]&lt;br /&gt;
| gen = drivereplace&lt;br /&gt;
| Microprocessor = rp2040, esp32&lt;br /&gt;
| flash = 16MB onboard flash&lt;br /&gt;
| extstorage = MicroSD Slot&lt;br /&gt;
| minstorage = 2GB SDHC&lt;br /&gt;
| maxstorage = 2TB SDXC&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== General information ==&lt;br /&gt;
The &#039;&#039;&#039;Flippydrive&#039;&#039;&#039; is an optical disc drive emulator for the [[Gamecube]] that installs without any soldering, can be used with or without a disk drive, and fits neatly inside the cube itself with no case modifications preserving the appearance of the system.&lt;br /&gt;
&lt;br /&gt;
Loads disk images via:&lt;br /&gt;
&lt;br /&gt;
* uSD card (1TB+ supported)&lt;br /&gt;
* Experimental Wi-Fi loading&lt;br /&gt;
* 16MB internal flash&lt;br /&gt;
* Ethernet (future add-on module)&lt;br /&gt;
&lt;br /&gt;
Other major features include:&lt;br /&gt;
&lt;br /&gt;
* No-solder install&lt;br /&gt;
* Use with or without OEM drive&lt;br /&gt;
* 2.8x-10x faster than all EXI devices (SD2SP2, BBA, any memory card/SP1/SP2 device, etc.) in non-WiFi mode&lt;br /&gt;
* Real drive interface, no software hacks required&lt;br /&gt;
* One-button disk passthrough&lt;br /&gt;
* OTA software updates&lt;br /&gt;
* Rescue USB port for brick recovery&lt;br /&gt;
* No disk drives are scrapped to make this mod&lt;br /&gt;
* Compatible with Cubeboot menu patcher&lt;br /&gt;
&lt;br /&gt;
== Purchase and Installation ==&lt;br /&gt;
    Pre-Order Notification Signup is currently available worldwide on the [https://flippydrive.com/ project homepage]&lt;br /&gt;
    Installation video [https://www.youtube.com/watch?v=YPq48Wm8y-U here]&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
Firmware updates can be found [https://github.com/OffBroadway/flippydrive here].&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;background:lightblue;font-size:10pt&amp;quot; width=&amp;quot;1250&amp;quot;| FlippyDrive Firmware&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; style=&amp;quot;background:lightgrey;font-size:10pt&amp;quot; width=&amp;quot;200&amp;quot;| Version&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; style=&amp;quot;background:lightgrey;font-size:10pt&amp;quot; width=&amp;quot;800&amp;quot;| Release Notes&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | 1.0.0&lt;br /&gt;
| &lt;br /&gt;
* Initial release&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:lightblue;font-size:10pt&amp;quot; width=&amp;quot;800&amp;quot;| FlippyDrive&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; width=&amp;quot;200&amp;quot; | Developers&lt;br /&gt;
| [https://github.com/OffBroadway Team OffBroadway]&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | CPU&lt;br /&gt;
| RP2040 32-bit dual ARM Cortex-M0+ (Microcontroller 1), ESP32 (Microcontroller 2)&lt;br /&gt;
&#039;&#039;note: esp32 handles all file access for SD/WiFi etc while the RP2040 handles the GC communication and firmware updates&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Modchip Type&lt;br /&gt;
| [[Drive Replacement Chip]]&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Features&lt;br /&gt;
| Compatibility with [[Cubeboot]] menu injection program for the [[Gamecube BIOS]]&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Installation&lt;br /&gt;
| Connector from existing drive [https://www.youtube.com/watch?v=YPq48Wm8y-U tutorial]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Modchips]]&lt;br /&gt;
&lt;br /&gt;
[[See also:]]&lt;br /&gt;
[[Cubeboot]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=Hugo_GX&amp;diff=8095</id>
		<title>Hugo GX</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=Hugo_GX&amp;diff=8095"/>
		<updated>2024-07-23T07:21:31Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: linkify GC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox/homebrew&lt;br /&gt;
| title       = Hugo GX&lt;br /&gt;
| image       = [[File:HugoGX.png]]&lt;br /&gt;
| author      = EkeEke&lt;br /&gt;
| type        = Emulator&lt;br /&gt;
| version     = 2.12 Official &amp;lt;br&amp;gt; 2.12.1 Unofficial&lt;br /&gt;
| licence     = [http://www.gnu.org/licenses/gpl-2.0.txt GNU GPL v2]&lt;br /&gt;
| website     = http://code.google.com/p/hugo-gx&lt;br /&gt;
| download    = http://code.google.com/p/hugo-gx/downloads/list&lt;br /&gt;
| source      = http://code.google.com/p/hugo-gx/source/checkout&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;Hu-Go!&#039;&#039;&#039; GC is a PC Engine / TurboGrafx-16 emulator ported to the [[Nintendo GameCube]]. &amp;lt;br&amp;gt; &lt;br /&gt;
Official support has ceased and the last official build was released June 2010.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In February 2013, an unofficial GameCube version was released ( version 2.13 ) which fixed previous compiling issues causing black screen / crash after loading a rom file. This release also included fixes to add SDHC support, fixed Rapid Fire buttons feature (X Y), re-enabled the &amp;quot;stop DVD motor&amp;quot; feature, and small GUI changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Homebrew_Software]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=XenoGC&amp;diff=8094</id>
		<title>XenoGC</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=XenoGC&amp;diff=8094"/>
		<updated>2024-07-23T07:21:06Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: /* Overview */ linkify GC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox/modchip&lt;br /&gt;
| image = [[File:Xeno.jpeg|200px|alt=XenoLogo]]&lt;br /&gt;
| gen = drivechip&lt;br /&gt;
| source = http://www.gc-forever.com/forums/viewtopic.php?f=15&amp;amp;t=439&lt;br /&gt;
| forksource = https://github.com/emukidid/xenogcfork&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;XenoGC&#039;&#039;&#039; is a drivechip for the [[Nintendo Gamecube]]. It is installed directly to the optical drive&#039;s logic board and injects patch code into the drive at run time.  This enables the execution of debug commands and reading of DVD+/-R/RW media. The original project name of the modchip was Qoob Lite (subsequently discovered in the source code).&lt;br /&gt;
&lt;br /&gt;
==Versions==&lt;br /&gt;
The XenoGC is available in two variants. Version 2.0 (displayed as 1.5) includes support for multi-game discs, while Version 1.0 does not.  Version 1.0 has a Green LED to indicate that the drive has been patched successfully, whereas Version 2.0 has an orange LED. As the XenoGC is now effectively an open source modchip, certain clones will defy these color conventions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
* Direct boot of DVD+-RW media&lt;br /&gt;
* Compatible with all regions &amp;amp; all versions&lt;br /&gt;
* Region-free game loading&lt;br /&gt;
* Wireless installation&lt;br /&gt;
* Removal of motherboard not required&lt;br /&gt;
* PAL/NTSC region force&lt;br /&gt;
* Status LEDs&lt;br /&gt;
* Switchable read setting adjustment &amp;amp; error retry&lt;br /&gt;
* Switchable audiofix&lt;br /&gt;
* Anti-static packaging&lt;br /&gt;
* Extremely low cost&lt;br /&gt;
&lt;br /&gt;
==Settings==&lt;br /&gt;
===General Info===&lt;br /&gt;
You can adjust a few settings by holding various buttons on controller one while booting a game. This means from just before and during the black screen as the boot menu disappears and the game launches. Settings are applied on a per-boot basis and do not permanently alter the behavior of the console.&lt;br /&gt;
&lt;br /&gt;
===[L button] Disable audiofix===&lt;br /&gt;
If you have previously modified your backup images to work with a BIOS that did not have proper support for audio streaming, this setting will disable that modification.&lt;br /&gt;
&lt;br /&gt;
===[R button] Disable DREfix===&lt;br /&gt;
Disables the native read adjustment and retries. This may be useful if you wish to scan a disc for read errors. The XenoGC will not attempt to correct any errors and will use the default read settings.&lt;br /&gt;
&lt;br /&gt;
===[X/Y button] Force NTSC/PAL display mode===&lt;br /&gt;
This will force the selected region&#039;s display mode regardless of the actual game region. Some games are not compatible with this setting.&lt;br /&gt;
&lt;br /&gt;
===[START button] Version display===&lt;br /&gt;
* On a Version 1.0 XenoGC, this displays basic version information (modchip, console and drive).&lt;br /&gt;
* On a Version 2.0 XenoGC, this displays the XenoShell in PAL50 (bug?) and is only useful for running multi-game discs (not multi-disc games).&lt;br /&gt;
&lt;br /&gt;
===Status LEDs===&lt;br /&gt;
The XenoGC features two status LEDs to indicate correct function. The red LED is active when the drive resets and the modchip is doing its job. Once the drive has been patched successfully, the green (orange on XenoGC2.0 and certain clones) LED will illuminate. If only the red LED illuminates, check your installation. It should be noted however that some XenoGC clones may only have red LEDs to indicate functionality, if this is the case check to see how many times the LED blinks on and off. If the LED blinks twice, pauses, and stays on afterwards than the installation and patching was successful.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting Installation==&lt;br /&gt;
The XenoGC doesn&#039;t offer much in terms of diagnostics, however there are a number of ways to determine how well it is working. Ideally, you should see a red LED illuminate on the XenoGC when the console turns on and then a green (Version 1.0) or orange (Version 2.0) LED when the drive has been patched successfully. If none of the LEDs on the XenoGC illuminate, then check your solder joints and consider removing it in favor of a wired installation instead.&lt;br /&gt;
&lt;br /&gt;
The following steps should be performed after the XenoGC has been installed and performed in order. If the first step fails, so will those which follow.&lt;br /&gt;
# Start the console with an original disc in the drive and the lid closed, don&#039;t press anything, if it works, great, the laser isn&#039;t dead. Alternatively try [[Laser_Tuning|tuning the laser]] and trying this step again.&lt;br /&gt;
# Hold the Start button down in controller 1, start the console with an original disc in the drive and hold start until the game is supposed to load. If the game doesn&#039;t load and a menu (v2+) or credits screen (v1) loads up the XenoGC is working properly. Alternatively try to run a disc for another region if you have no controller.&lt;br /&gt;
# Start the console with a copy of the [https://github.com/emukidid/swiss-gc/releases/latest Swiss ISO] or something known to work, use Ritek G05 discs (probably near impossible to get now) or something decent with a dark dye, it seems to work better. If the disc boots then everything works, if it doesn&#039;t, tune the laser and go through Step 3 again until it does.&lt;br /&gt;
&lt;br /&gt;
==Firmware Updates==&lt;br /&gt;
Two official versions of software exist which were only available pre-installed at time of purchase. Since the release of the source code, a XenoGC Flashing Utility has been discovered which will enable the user to upgrade and/or downgrade the XenoGC software using the appropriate flashing utility version. In order to prepare the XenoGC to allow flashing, a switch must be installed between GND and any of the letters &#039;X E N O&#039; which can be found on the circuit board.&lt;br /&gt;
&lt;br /&gt;
==Source Code==&lt;br /&gt;
In February 2011 the source code was made publicly available at [http://www.gc-forever.com/forums/viewtopic.php?f=15&amp;amp;t=439 GC-Forever]&lt;br /&gt;
&lt;br /&gt;
==DIY XenoGC Clone==&lt;br /&gt;
Information on making a XenoGC Clone or to understand how to modify an actual XenoGC for flashing can be found [http://www.gc-forever.com/wiki/index.php?title=XenoGC_Clone HERE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:lightblue;font-size:10pt&amp;quot; width=&amp;quot;800&amp;quot;| XenoGC&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; width=&amp;quot;200&amp;quot; | Developers&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | CPU&lt;br /&gt;
| Atmel Atmega8L &lt;br /&gt;
|- &lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Modchip Type&lt;br /&gt;
| [[Drivechip]]&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Features&lt;br /&gt;
| [[Gamecube BIOS]]&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Installation&lt;br /&gt;
| 0 wires (optional 6 wires) &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Modchips]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=NinjaMod&amp;diff=8093</id>
		<title>NinjaMod</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=NinjaMod&amp;diff=8093"/>
		<updated>2024-07-23T07:20:28Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: linkify GC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox/modchip&lt;br /&gt;
|image = [[File:NinjaMod.png|200px|alt=NinjaMod Modchip]]&lt;br /&gt;
|gen = ipl&lt;br /&gt;
|flash = 2Mb (16MBit)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;NinjaMod&#039;&#039;&#039; is a commercially produced [[IPL Replacement]] based on open source design by tmbinc for the [[Nintendo Gamecube]].&lt;br /&gt;
&lt;br /&gt;
==Controversy==&lt;br /&gt;
The software BIOS which the Ninjamod was sold with was a copy of GCOS version 1.4 with a different backdrop and re-labelled &amp;quot;NinjaShell&amp;quot;. Controversy arose when the open sourced GCOS v1.4 code was re-labelled and made closed source and sold as the modchip BIOS since this broke the GPL conventions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
* Direct No-Swap Boot of All Media&lt;br /&gt;
* Support for all regions (PAL, USA and Japan). &lt;br /&gt;
* 16Mbit flash memory for application storage.&lt;br /&gt;
* DVD +-R Compatible&lt;br /&gt;
* Create Backups to PC via network connection (Requires BBA adapter)&lt;br /&gt;
* Boot Homebrew via network connection (Requires BBA adapter)&lt;br /&gt;
* Supports BIOS Update via DVD or via network connection (Requires BBA adapter)&lt;br /&gt;
* Only 7 wires to solder&lt;br /&gt;
* Includes 2 different BIOS Banks ( Bank 1 = Ninja Shell, Bank 2 = User Programmable )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:lightblue;font-size:10pt&amp;quot; width=&amp;quot;800&amp;quot;| NINJAMOD&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; width=&amp;quot;200&amp;quot; | Developers&lt;br /&gt;
| Ninja Mod Team&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | CPU&lt;br /&gt;
| Lattice iM4A5-128/64&lt;br /&gt;
|- &lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Modchip Type&lt;br /&gt;
| [[IPL Replacement]]&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Features&lt;br /&gt;
| [[Gamecube BIOS]]&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Installation&lt;br /&gt;
| 7 wires  &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Modchips]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=IPL_Replacement&amp;diff=8092</id>
		<title>IPL Replacement</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=IPL_Replacement&amp;diff=8092"/>
		<updated>2024-07-23T07:19:22Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: YT video name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Iplmaskrom.jpg|right|thumb|235px|The original RTC/IPL Mask ROM IC on the Gamecube Mainboard]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IPL Replacements&#039;&#039;&#039; were the first [[modchip]]s for the [[GameCube]]. Basically, the Mask ROM which contains the IPL could be overridden to load unsigned code from a separate flash chip on the EXI bus.&lt;br /&gt;
&lt;br /&gt;
Technical details on the replacement can be found in [http://gc-forever.com/yagcd/chap2.html#sec2.8.3 YAGCD Section 2.8.3]&lt;br /&gt;
&lt;br /&gt;
Many IPL Replacements also replaced the disc drive firmware by sending a &amp;quot;sudo password&amp;quot; from the Gekko, namely &amp;lt;code&amp;gt;MATSHITA DVD-GAME&amp;lt;/code&amp;gt;.&amp;lt;ref&amp;gt;23C3: Console Hacking 2006. https://youtube.com/watch?v=xlSOAsLSYzE&amp;lt;/ref&amp;gt; These DVD-compatibility IPL Replacements were succeeded by [[drivechip]]s.&lt;br /&gt;
&lt;br /&gt;
==IPL Replacements==&lt;br /&gt;
Several modchips existed which were full IPL Replacements, but the [[Qoob]] and the [[Viper GC]] were the most popular.&lt;br /&gt;
&lt;br /&gt;
Full list:&lt;br /&gt;
*tmbinc&#039;s original IPL replacement&lt;br /&gt;
*[[Viper GC]]&lt;br /&gt;
*[[Ripper 3]]&lt;br /&gt;
*[[Ninjamod]] (rip off of tmbinc&#039;s work running [[GCOS]])&lt;br /&gt;
*[[Qoob]]&lt;br /&gt;
*[http://www.retro-system.com/shuriken_attack.htm Shuriken Attack]&lt;br /&gt;
*[[HyperBoot]]&lt;br /&gt;
*[https://github.com/webhdx/PicoBoot PicoBoot]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Modchip Types]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=GameCube&amp;diff=8091</id>
		<title>GameCube</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=GameCube&amp;diff=8091"/>
		<updated>2024-07-23T07:16:35Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect [[Nintendo GameCube]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=IPL_Replacement&amp;diff=8090</id>
		<title>IPL Replacement</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=IPL_Replacement&amp;diff=8090"/>
		<updated>2024-07-23T07:16:25Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: linkify GC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Iplmaskrom.jpg|right|thumb|235px|The original RTC/IPL Mask ROM IC on the Gamecube Mainboard]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IPL Replacements&#039;&#039;&#039; were the first [[modchip]]s for the [[GameCube]]. Basically, the Mask ROM which contains the IPL could be overridden to load unsigned code from a separate flash chip on the EXI bus.&lt;br /&gt;
&lt;br /&gt;
Technical details on the replacement can be found in [http://gc-forever.com/yagcd/chap2.html#sec2.8.3 YAGCD Section 2.8.3]&lt;br /&gt;
&lt;br /&gt;
Many IPL Replacements also replaced the disc drive firmware by sending a &amp;quot;sudo password&amp;quot; from the Gekko, namely &amp;lt;code&amp;gt;MATSHITA DVD-GAME&amp;lt;/code&amp;gt;.&amp;lt;ref&amp;gt;https://youtube.com/watch?v=xlSOAsLSYzE&amp;lt;/ref&amp;gt; These DVD-compatibility IPL Replacements were succeeded by [[drivechip]]s.&lt;br /&gt;
&lt;br /&gt;
==IPL Replacements==&lt;br /&gt;
Several modchips existed which were full IPL Replacements, but the [[Qoob]] and the [[Viper GC]] were the most popular.&lt;br /&gt;
&lt;br /&gt;
Full list:&lt;br /&gt;
*tmbinc&#039;s original IPL replacement&lt;br /&gt;
*[[Viper GC]]&lt;br /&gt;
*[[Ripper 3]]&lt;br /&gt;
*[[Ninjamod]] (rip off of tmbinc&#039;s work running [[GCOS]])&lt;br /&gt;
*[[Qoob]]&lt;br /&gt;
*[http://www.retro-system.com/shuriken_attack.htm Shuriken Attack]&lt;br /&gt;
*[[HyperBoot]]&lt;br /&gt;
*[https://github.com/webhdx/PicoBoot PicoBoot]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Modchip Types]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=Gamecube&amp;diff=8089</id>
		<title>Gamecube</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=Gamecube&amp;diff=8089"/>
		<updated>2024-07-23T07:14:22Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect [[Nintendo GameCube]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=Playing_Imports&amp;diff=8088</id>
		<title>Playing Imports</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=Playing_Imports&amp;diff=8088"/>
		<updated>2024-07-23T07:14:06Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: linkify GC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Gamecube]] utilized a regional lockout protection which was governed by the IPL ROM ([[WikiScene:GameCube#GameCube_Original_BIOS_.28IPL.29_Version_Information|Gamecube &amp;quot;BIOS&amp;quot;]]) to prevent the console from playing out-of-region titles(&#039;&#039;&#039;imports&#039;&#039;&#039;). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since the hardware is mostly 100% identical across all regions (apart from NTSC/PAL hardware differences for video output), several universal methods exist which can bypass the lockout protection. These methods include:&lt;br /&gt;
* [[Region Switch]] - NTSC-U &amp;lt;small&amp;gt;&#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;&amp;lt;/small&amp;gt; NTSC-J only hardware mod to allow NTSC-U models to play Japanese titles, or vice versa.&lt;br /&gt;
* [[Freeloader]] - Bootdisc based solution for original titles without modifying the Gamecube.&lt;br /&gt;
* [[:Category:Modchips|Modchip]] - Hardware based solution installed to the Gamecube. &lt;br /&gt;
* Homebrew - Particularly [[Swiss]], this will allow imports from all regions to be played.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; style=&amp;quot;background:lightblue;font-size:10pt&amp;quot; width=&amp;quot;200&amp;quot;| Gamecube Regions&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; style=&amp;quot;background:lightblue;font-size:10pt&amp;quot; width=&amp;quot;300&amp;quot;| Region Lock Bypass Methods&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &#039;&#039;&#039;NTSC-U&#039;&#039;&#039; &amp;lt;br&amp;gt; ( USA )&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[Region Switch]] for NTSC-J &amp;lt;br&amp;gt; [[Freeloader]] &amp;lt;br&amp;gt; [[:Category:Modchips|Modchip]] &amp;lt;br&amp;gt; Homebrew&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &#039;&#039;&#039;NTSC-J&#039;&#039;&#039; &amp;lt;br&amp;gt; ( Japan )&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[Region Switch]] for NTSC-U &amp;lt;br&amp;gt; [[Freeloader]] &amp;lt;br&amp;gt; [[:Category:Modchips|Modchip]] &amp;lt;br&amp;gt; Homebrew&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &#039;&#039;&#039;PAL&#039;&#039;&#039; &amp;lt;br&amp;gt; ( Europe &amp;amp; Australia )&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[Freeloader]] &amp;lt;br&amp;gt; [[:Category:Modchips|Modchip]] &amp;lt;br&amp;gt; Homebrew&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Howto]]&lt;br /&gt;
[[Category:Modchips]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=GC-Linux_with_rootFS_on_SD&amp;diff=8087</id>
		<title>GC-Linux with rootFS on SD</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=GC-Linux_with_rootFS_on_SD&amp;diff=8087"/>
		<updated>2024-07-23T07:07:51Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: /* For Compiling it */ ws&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
First of all I want to thank the people who made all this possible:&lt;br /&gt;
&lt;br /&gt;
The guys from GC-Linux: http://www.gc-linux.org&lt;br /&gt;
&lt;br /&gt;
Simon &amp;quot;Scorpei&amp;quot; van de Berg for his great tutorial how to build an SD-card adapter for the cube: http://ngc.scorpei.com/GUIDE-SD_adapter.html&lt;br /&gt;
&lt;br /&gt;
The linuxwiki: http://linuxwiki.de&lt;br /&gt;
&lt;br /&gt;
The creators of MFE: http://www.gc-linux.org/wiki/Mfe-distro&lt;br /&gt;
&lt;br /&gt;
=The aim=&lt;br /&gt;
The aim of this Project is to create a custom Linux Kernel, which runs on a modified GameCube and has the root file system on an SD-card which is plugged into the memory-card slot via an [[SDGecko]].&lt;br /&gt;
After the system boots form the SD-card, it should start a custom program which allows the user to start programs using the GameCube-pad.&lt;br /&gt;
&lt;br /&gt;
=Why?=&lt;br /&gt;
Normally the GC-Linux kernel will try to load the root file system from a NFS attached storage over the BBA.&lt;br /&gt;
&lt;br /&gt;
However this isn&#039;t very practical because you need a broadband adapter for your GameCube, and you will always have to run an NFS-Share on your PC or a dedicated Server.&lt;br /&gt;
What I want is a stand-alone Linux on my GameCube! So why not create one by myself?&lt;br /&gt;
&lt;br /&gt;
=Roadmap=&lt;br /&gt;
*Create &amp;amp; boot a Kernel with his root file system on an SD-Card [Done!]&lt;br /&gt;
*Create an auto executing script (init/linuxrc?)  [Done!]&lt;br /&gt;
*Write an GameCube-pad controlled program [ToDo…]&lt;br /&gt;
*Enjoy your Linux-Cube!&lt;br /&gt;
&lt;br /&gt;
=What you will need=&lt;br /&gt;
*Nintendo Gamecube&lt;br /&gt;
*Method to load homebrew&lt;br /&gt;
*An SD-Card (max. 2GB atm) &lt;br /&gt;
*[[SDGecko]] (See [5] or Buy)&lt;br /&gt;
&lt;br /&gt;
==For Compiling it==&lt;br /&gt;
*Little knowledge about Linux Kernel &lt;br /&gt;
*A running Linux Distribution &lt;br /&gt;
*A running gc-linux tool chain + patched kernel source (2.6.32) &lt;br /&gt;
**See http://www.gc-linux.org/wiki/Building_a_GameCube_Linux_Kernel&lt;br /&gt;
**Clone my git for the Kernel: https://github.com/Nold360/GC-Linux-Kernel-2.6.32&lt;br /&gt;
**You may just want to use my config files:&lt;br /&gt;
 cp .config  linux-2.6.32/.config&lt;br /&gt;
 cp gamecube.dts linux-2.6.32/arch/powerpc/boot/dts/gamecube.dts&lt;br /&gt;
&lt;br /&gt;
=What should happen?=&lt;br /&gt;
After the GameCube boots, you will start the kernel.dol from the 1st partition of your SD-Card (fat formatted). The kernel will boot and mount the 2nd partition as his root (ext2/3 Formatted). Then will the Kernel look for his init-script and execute it. &lt;br /&gt;
In our Case we use the /bin/init script to configure the rest of the hardware (swap, mounting, etc.) and then start our script/program. &lt;br /&gt;
&lt;br /&gt;
==The boot parameter==&lt;br /&gt;
The boot parameters were the first thing I edited. It’s defined in the &lt;br /&gt;
“arch/powerpc/boot/dts/gamecube.dts”-file. I edited it as follows:&lt;br /&gt;
&lt;br /&gt;
 chosen  {&lt;br /&gt;
          bootargs = &amp;quot;root=/dev/gcnsda2 rw video=gcn-vifb:tv=auto&amp;quot;;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
The “root=” parameter tells the kernel that his root is on “/dev/gcnsda2” that means the SD-Card (sd) that is plugged into the GameCube’s (gcn) MemoryCard-Slot1 (a) on Partition 2 (2) [Because the fist is used so SD-Load to execute the kernel.dol]&lt;br /&gt;
“rootwait” tells him to wait for his root file system until it’s ready.&lt;br /&gt;
The video parameter tells him which video device to use, and how.&lt;br /&gt;
In our case he uses the GameCube framebuffer (gcn-vifb), on a tv. &lt;br /&gt;
With the “auto” parameter, he will look for himself which mode to use. (NTFS, PAL50/60Hz…)&lt;br /&gt;
&lt;br /&gt;
==Creating a Root file system==&lt;br /&gt;
After I could see that my kernel wants to use my SD-Card, I needed a root file system.	Basically you don’t need really much, it’s just the normal root-tree (/dev /bin /etc /mnt /usr…) But because I’m a pretty lazy person, I just used a mix of the ramdisk and the file system of the MFE-Distribution and it worked pretty well. I just used my own /linuxrc and /bin/init-scripts. Also you need to add the SD-Card-Devicenodes to the /dev directory. &lt;br /&gt;
Please do not use the description from the gc-linux wiki [1]. There they were called “/dev/sdcarda” and “/dev/sdcardb” but they are called “/dev/gcnsda” and “/dev/gcnsdb”.&lt;br /&gt;
&lt;br /&gt;
So we will add some nodes (as root):&lt;br /&gt;
 mknod dev/gcnsda   b 61 0&lt;br /&gt;
 mknod dev/gcnsda1  b 61 1&lt;br /&gt;
 mknod dev/gcnsda2  b 61 2&lt;br /&gt;
 mknod dev/gcnsda3  b 61 3&lt;br /&gt;
&lt;br /&gt;
 mknod dev/gcnsdb   b 61 8&lt;br /&gt;
 mknod dev/gcnsdb1  b 61 9&lt;br /&gt;
 mknod dev/gcnsdb2  b 61 10&lt;br /&gt;
 mknod dev/gcnsdb3  b 61 11&lt;br /&gt;
&lt;br /&gt;
We will also need one for Audio-RAM&lt;br /&gt;
 mknod dev/aram     b 37 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I also added an 3rd SD-card partition, if we maybe want to use them later.&lt;br /&gt;
&lt;br /&gt;
Last we add an mount path for the 1st SD-Card partition at /mnt/sdcarda, so we can mount it for later use.&lt;br /&gt;
 # mkdir mnt/sdcarda&lt;br /&gt;
&lt;br /&gt;
After that we need to create an fstab (/etc/fstab) to mount the cube’s Audio RAM as swap.&amp;lt;br&amp;gt;&lt;br /&gt;
Also we will add proc, root and our first SD-Card (vfat) Partition [Optional].&lt;br /&gt;
===/etc/fstab===&lt;br /&gt;
 /dev/aram       swap            swap    pri=32767                    0       0&lt;br /&gt;
 /dev/gcnsda2    /               ext3    defaults,errors=remount-ro   0       0&lt;br /&gt;
 /dev/gcnsda1    /mnt/gcnsda1    vfat    defaults                     0       0&lt;br /&gt;
 proc            /proc           proc    defaults                     0       0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The Init-Script==&lt;br /&gt;
So, the kernel boots, the filesystem looks great, what to do next?&lt;br /&gt;
We need to give our Kernel a init-script. As we didn’t gave the kernel the “init=/…” parameter, he will try to start the default script “/bin/init”.&lt;br /&gt;
&lt;br /&gt;
A very important thing is that init is not allowed to die! So it has to run all the time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
But what has our system now to do? &lt;br /&gt;
We need:  &lt;br /&gt;
*Format Audio-RAM as swap (mkswap)&lt;br /&gt;
*Mount fstab&lt;br /&gt;
*Activate swap &lt;br /&gt;
*Start our programs we need (mplayer, GUI, whatever)&lt;br /&gt;
*Keep init alive!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So let’s do that!&lt;br /&gt;
===/bin/init===&lt;br /&gt;
 #!/bin/ash&lt;br /&gt;
 mkswap /dev/aram&lt;br /&gt;
 mount –a&lt;br /&gt;
 swapon –a&lt;br /&gt;
 &lt;br /&gt;
 #Now comes our script or whatever you want to execute&lt;br /&gt;
 /linuxrc&lt;br /&gt;
 &lt;br /&gt;
 #And keep init alive&lt;br /&gt;
 while [ 1 –eq 1 ]; do&lt;br /&gt;
      sleep 1&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Preparing the SD-Card==&lt;br /&gt;
First of all, we need to prepare our SD-Card partitions. We need a first partition formatted with fat (vfat) and a second partition for the root file system (ext2/3).&amp;lt;br&amp;gt;&lt;br /&gt;
How big they are depends on your SD-Card and for what additional use you want to use it.&amp;lt;br&amp;gt;&lt;br /&gt;
We need about 10MB For the kernel.dol plus the SDLOADER.BIN and about 20mb for the basic root file system. Since I want to extend the rootfs and maybe want to use other homebrew and kernel.dol’s I formatted it as follows (1GB SD):&lt;br /&gt;
*300MB vfat&lt;br /&gt;
*700MB ext2/3&lt;br /&gt;
&lt;br /&gt;
I choose ext3 because I was first using ext2, but I had problems with destroyed libraries. So I switched to ext3 because it’s journaling.&amp;lt;br&amp;gt;&lt;br /&gt;
If you are ready to go, copy the file system onto the ext2/3 partition, and the GcImage.dol on the vfat partition.&lt;br /&gt;
&lt;br /&gt;
===Preparing SD-Card with fdisk===&lt;br /&gt;
Partitioning with fdisk is pretty easy, i will do an example of how to do it using a 1GB SD-Card. Of course can you choose your partition sizes as you want.&lt;br /&gt;
Notice that the device path WILL be another on your system!&lt;br /&gt;
 # fdisk /dev/mmcblk0           #Change to your device-path&lt;br /&gt;
 &amp;gt; o                            #Create empty DOS Patition Table&lt;br /&gt;
 &amp;gt; n                            #Create new Partition&lt;br /&gt;
 &amp;gt; p                            #Primary&lt;br /&gt;
 &amp;gt; [Enter]                      #At first sector&lt;br /&gt;
 &amp;gt; +300M                        #with 300MB size, change to whatever you want for your &amp;quot;Homebrew&amp;quot;-Partition&lt;br /&gt;
&lt;br /&gt;
That was our first partition that is going to be out vfat-homebrew partition, now comes the rootfs partition&lt;br /&gt;
 &amp;gt; n                            #Create new Partition&lt;br /&gt;
 &amp;gt; p                            #Primary&lt;br /&gt;
 &amp;gt; [Enter]                      #At first useable sector (behind our vfat-partition)&lt;br /&gt;
 &amp;gt; [Enter]                      #With maximum of size (Here: 700MB)&lt;br /&gt;
 &amp;gt; w                            #Write everything to device&lt;br /&gt;
 &amp;gt; q                            #Quit fdisk&lt;br /&gt;
&lt;br /&gt;
Now we have our Partitions. But they need a filesystem. In this example we use mkfs for this task:&lt;br /&gt;
 # mkfs.vfat /dev/mmcblk0p1     #Watch your path!&lt;br /&gt;
 # mkfs.ext3 /dev/mmcblk0p2     #Same here! &lt;br /&gt;
&lt;br /&gt;
Now you are ready to go. Copy GcImage.dol to the 1st Partition and the rootfs to the second.&lt;br /&gt;
&lt;br /&gt;
=So what’s next?=&lt;br /&gt;
The next part is to include the software we need. This isn’t very problematic because we can use every binary which is compiled for a PowerPC! So what I did is that I downloaded my binaries and libraries from the Debian package-Service [3]. And used the libSDL and the mplayer binary from the mfe-distribution, since they were included in the filesystem. I just added the libraries for divx and mp3. &lt;br /&gt;
&lt;br /&gt;
If you have an Broadband-Adapter in your Cube, you could even install apt-get and just download the packages directly on your cube!&amp;lt;br&amp;gt;&lt;br /&gt;
Another possibility for creating a big but good root file system would be the way from the GC-Linux wiki [4].&lt;br /&gt;
&lt;br /&gt;
=Need Help? Got Ideas? Want to Help?=&lt;br /&gt;
Join the GC-Forever Community! :) [0]&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
[0] http://nold.freeunix.net/devnull/index.php?show=./Stuff/Consoles/Gamecube/GameCube%20Linux&amp;lt;br&amp;gt;&lt;br /&gt;
[0] http://gc-forever.com&amp;lt;br&amp;gt;&lt;br /&gt;
[1] http://www.gc-linux.org/wiki/Memory_and_Filesystems#Creating_the_SD.2FMMC_card_device_nodes&amp;lt;br&amp;gt;&lt;br /&gt;
[2] http://www.gc-linux.org/wiki/Memory_and_Filesystems#Create_the_device_node_for_the_audio_RAM_driver&amp;lt;br&amp;gt;&lt;br /&gt;
[3] http://packages.debian.org&amp;lt;br&amp;gt;&lt;br /&gt;
[4] http://www.gc-linux.org/wiki/Creating_a_Root_Filesystem&amp;lt;br&amp;gt;&lt;br /&gt;
[5] http://ngc.scorpei.com/GUIDE-SD_adapter.html&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=GC-Linux_with_rootFS_on_SD&amp;diff=8086</id>
		<title>GC-Linux with rootFS on SD</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=GC-Linux_with_rootFS_on_SD&amp;diff=8086"/>
		<updated>2024-07-23T07:07:29Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: /* Introduction */ ws&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
First of all I want to thank the people who made all this possible:&lt;br /&gt;
&lt;br /&gt;
The guys from GC-Linux: http://www.gc-linux.org&lt;br /&gt;
&lt;br /&gt;
Simon &amp;quot;Scorpei&amp;quot; van de Berg for his great tutorial how to build an SD-card adapter for the cube: http://ngc.scorpei.com/GUIDE-SD_adapter.html&lt;br /&gt;
&lt;br /&gt;
The linuxwiki: http://linuxwiki.de&lt;br /&gt;
&lt;br /&gt;
The creators of MFE: http://www.gc-linux.org/wiki/Mfe-distro&lt;br /&gt;
&lt;br /&gt;
=The aim=&lt;br /&gt;
The aim of this Project is to create a custom Linux Kernel, which runs on a modified GameCube and has the root file system on an SD-card which is plugged into the memory-card slot via an [[SDGecko]].&lt;br /&gt;
After the system boots form the SD-card, it should start a custom program which allows the user to start programs using the GameCube-pad.&lt;br /&gt;
&lt;br /&gt;
=Why?=&lt;br /&gt;
Normally the GC-Linux kernel will try to load the root file system from a NFS attached storage over the BBA.&lt;br /&gt;
&lt;br /&gt;
However this isn&#039;t very practical because you need a broadband adapter for your GameCube, and you will always have to run an NFS-Share on your PC or a dedicated Server.&lt;br /&gt;
What I want is a stand-alone Linux on my GameCube! So why not create one by myself?&lt;br /&gt;
&lt;br /&gt;
=Roadmap=&lt;br /&gt;
*Create &amp;amp; boot a Kernel with his root file system on an SD-Card [Done!]&lt;br /&gt;
*Create an auto executing script (init/linuxrc?)  [Done!]&lt;br /&gt;
*Write an GameCube-pad controlled program [ToDo…]&lt;br /&gt;
*Enjoy your Linux-Cube!&lt;br /&gt;
&lt;br /&gt;
=What you will need=&lt;br /&gt;
*Nintendo Gamecube&lt;br /&gt;
*Method to load homebrew&lt;br /&gt;
*An SD-Card (max. 2GB atm) &lt;br /&gt;
*[[SDGecko]] (See [5] or Buy)&lt;br /&gt;
&lt;br /&gt;
==For Compiling it==&lt;br /&gt;
*Little knowledge about Linux Kernel &lt;br /&gt;
*A running Linux Distribution &lt;br /&gt;
*A running gc-linux tool chain + patched kernel source (2.6.32) &lt;br /&gt;
**See http://www.gc-linux.org/wiki/Building_a_GameCube_Linux_Kernel&lt;br /&gt;
**Clone my git for the Kernel: https://github.com/Nold360/GC-Linux-Kernel-2.6.32&lt;br /&gt;
**You may just want to use my config files:&lt;br /&gt;
 cp .config  linux-2.6.32/.config&lt;br /&gt;
 cp gamecube.dts linux-2.6.32/arch/powerpc/boot/dts/gamecube.dts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=What should happen?=&lt;br /&gt;
After the GameCube boots, you will start the kernel.dol from the 1st partition of your SD-Card (fat formatted). The kernel will boot and mount the 2nd partition as his root (ext2/3 Formatted). Then will the Kernel look for his init-script and execute it. &lt;br /&gt;
In our Case we use the /bin/init script to configure the rest of the hardware (swap, mounting, etc.) and then start our script/program. &lt;br /&gt;
&lt;br /&gt;
==The boot parameter==&lt;br /&gt;
The boot parameters were the first thing I edited. It’s defined in the &lt;br /&gt;
“arch/powerpc/boot/dts/gamecube.dts”-file. I edited it as follows:&lt;br /&gt;
&lt;br /&gt;
 chosen  {&lt;br /&gt;
          bootargs = &amp;quot;root=/dev/gcnsda2 rw video=gcn-vifb:tv=auto&amp;quot;;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
The “root=” parameter tells the kernel that his root is on “/dev/gcnsda2” that means the SD-Card (sd) that is plugged into the GameCube’s (gcn) MemoryCard-Slot1 (a) on Partition 2 (2) [Because the fist is used so SD-Load to execute the kernel.dol]&lt;br /&gt;
“rootwait” tells him to wait for his root file system until it’s ready.&lt;br /&gt;
The video parameter tells him which video device to use, and how.&lt;br /&gt;
In our case he uses the GameCube framebuffer (gcn-vifb), on a tv. &lt;br /&gt;
With the “auto” parameter, he will look for himself which mode to use. (NTFS, PAL50/60Hz…)&lt;br /&gt;
&lt;br /&gt;
==Creating a Root file system==&lt;br /&gt;
After I could see that my kernel wants to use my SD-Card, I needed a root file system.	Basically you don’t need really much, it’s just the normal root-tree (/dev /bin /etc /mnt /usr…) But because I’m a pretty lazy person, I just used a mix of the ramdisk and the file system of the MFE-Distribution and it worked pretty well. I just used my own /linuxrc and /bin/init-scripts. Also you need to add the SD-Card-Devicenodes to the /dev directory. &lt;br /&gt;
Please do not use the description from the gc-linux wiki [1]. There they were called “/dev/sdcarda” and “/dev/sdcardb” but they are called “/dev/gcnsda” and “/dev/gcnsdb”.&lt;br /&gt;
&lt;br /&gt;
So we will add some nodes (as root):&lt;br /&gt;
 mknod dev/gcnsda   b 61 0&lt;br /&gt;
 mknod dev/gcnsda1  b 61 1&lt;br /&gt;
 mknod dev/gcnsda2  b 61 2&lt;br /&gt;
 mknod dev/gcnsda3  b 61 3&lt;br /&gt;
&lt;br /&gt;
 mknod dev/gcnsdb   b 61 8&lt;br /&gt;
 mknod dev/gcnsdb1  b 61 9&lt;br /&gt;
 mknod dev/gcnsdb2  b 61 10&lt;br /&gt;
 mknod dev/gcnsdb3  b 61 11&lt;br /&gt;
&lt;br /&gt;
We will also need one for Audio-RAM&lt;br /&gt;
 mknod dev/aram     b 37 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I also added an 3rd SD-card partition, if we maybe want to use them later.&lt;br /&gt;
&lt;br /&gt;
Last we add an mount path for the 1st SD-Card partition at /mnt/sdcarda, so we can mount it for later use.&lt;br /&gt;
 # mkdir mnt/sdcarda&lt;br /&gt;
&lt;br /&gt;
After that we need to create an fstab (/etc/fstab) to mount the cube’s Audio RAM as swap.&amp;lt;br&amp;gt;&lt;br /&gt;
Also we will add proc, root and our first SD-Card (vfat) Partition [Optional].&lt;br /&gt;
===/etc/fstab===&lt;br /&gt;
 /dev/aram       swap            swap    pri=32767                    0       0&lt;br /&gt;
 /dev/gcnsda2    /               ext3    defaults,errors=remount-ro   0       0&lt;br /&gt;
 /dev/gcnsda1    /mnt/gcnsda1    vfat    defaults                     0       0&lt;br /&gt;
 proc            /proc           proc    defaults                     0       0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The Init-Script==&lt;br /&gt;
So, the kernel boots, the filesystem looks great, what to do next?&lt;br /&gt;
We need to give our Kernel a init-script. As we didn’t gave the kernel the “init=/…” parameter, he will try to start the default script “/bin/init”.&lt;br /&gt;
&lt;br /&gt;
A very important thing is that init is not allowed to die! So it has to run all the time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
But what has our system now to do? &lt;br /&gt;
We need:  &lt;br /&gt;
*Format Audio-RAM as swap (mkswap)&lt;br /&gt;
*Mount fstab&lt;br /&gt;
*Activate swap &lt;br /&gt;
*Start our programs we need (mplayer, GUI, whatever)&lt;br /&gt;
*Keep init alive!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So let’s do that!&lt;br /&gt;
===/bin/init===&lt;br /&gt;
 #!/bin/ash&lt;br /&gt;
 mkswap /dev/aram&lt;br /&gt;
 mount –a&lt;br /&gt;
 swapon –a&lt;br /&gt;
 &lt;br /&gt;
 #Now comes our script or whatever you want to execute&lt;br /&gt;
 /linuxrc&lt;br /&gt;
 &lt;br /&gt;
 #And keep init alive&lt;br /&gt;
 while [ 1 –eq 1 ]; do&lt;br /&gt;
      sleep 1&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Preparing the SD-Card==&lt;br /&gt;
First of all, we need to prepare our SD-Card partitions. We need a first partition formatted with fat (vfat) and a second partition for the root file system (ext2/3).&amp;lt;br&amp;gt;&lt;br /&gt;
How big they are depends on your SD-Card and for what additional use you want to use it.&amp;lt;br&amp;gt;&lt;br /&gt;
We need about 10MB For the kernel.dol plus the SDLOADER.BIN and about 20mb for the basic root file system. Since I want to extend the rootfs and maybe want to use other homebrew and kernel.dol’s I formatted it as follows (1GB SD):&lt;br /&gt;
*300MB vfat&lt;br /&gt;
*700MB ext2/3&lt;br /&gt;
&lt;br /&gt;
I choose ext3 because I was first using ext2, but I had problems with destroyed libraries. So I switched to ext3 because it’s journaling.&amp;lt;br&amp;gt;&lt;br /&gt;
If you are ready to go, copy the file system onto the ext2/3 partition, and the GcImage.dol on the vfat partition.&lt;br /&gt;
&lt;br /&gt;
===Preparing SD-Card with fdisk===&lt;br /&gt;
Partitioning with fdisk is pretty easy, i will do an example of how to do it using a 1GB SD-Card. Of course can you choose your partition sizes as you want.&lt;br /&gt;
Notice that the device path WILL be another on your system!&lt;br /&gt;
 # fdisk /dev/mmcblk0           #Change to your device-path&lt;br /&gt;
 &amp;gt; o                            #Create empty DOS Patition Table&lt;br /&gt;
 &amp;gt; n                            #Create new Partition&lt;br /&gt;
 &amp;gt; p                            #Primary&lt;br /&gt;
 &amp;gt; [Enter]                      #At first sector&lt;br /&gt;
 &amp;gt; +300M                        #with 300MB size, change to whatever you want for your &amp;quot;Homebrew&amp;quot;-Partition&lt;br /&gt;
&lt;br /&gt;
That was our first partition that is going to be out vfat-homebrew partition, now comes the rootfs partition&lt;br /&gt;
 &amp;gt; n                            #Create new Partition&lt;br /&gt;
 &amp;gt; p                            #Primary&lt;br /&gt;
 &amp;gt; [Enter]                      #At first useable sector (behind our vfat-partition)&lt;br /&gt;
 &amp;gt; [Enter]                      #With maximum of size (Here: 700MB)&lt;br /&gt;
 &amp;gt; w                            #Write everything to device&lt;br /&gt;
 &amp;gt; q                            #Quit fdisk&lt;br /&gt;
&lt;br /&gt;
Now we have our Partitions. But they need a filesystem. In this example we use mkfs for this task:&lt;br /&gt;
 # mkfs.vfat /dev/mmcblk0p1     #Watch your path!&lt;br /&gt;
 # mkfs.ext3 /dev/mmcblk0p2     #Same here! &lt;br /&gt;
&lt;br /&gt;
Now you are ready to go. Copy GcImage.dol to the 1st Partition and the rootfs to the second.&lt;br /&gt;
&lt;br /&gt;
=So what’s next?=&lt;br /&gt;
The next part is to include the software we need. This isn’t very problematic because we can use every binary which is compiled for a PowerPC! So what I did is that I downloaded my binaries and libraries from the Debian package-Service [3]. And used the libSDL and the mplayer binary from the mfe-distribution, since they were included in the filesystem. I just added the libraries for divx and mp3. &lt;br /&gt;
&lt;br /&gt;
If you have an Broadband-Adapter in your Cube, you could even install apt-get and just download the packages directly on your cube!&amp;lt;br&amp;gt;&lt;br /&gt;
Another possibility for creating a big but good root file system would be the way from the GC-Linux wiki [4].&lt;br /&gt;
&lt;br /&gt;
=Need Help? Got Ideas? Want to Help?=&lt;br /&gt;
Join the GC-Forever Community! :) [0]&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
[0] http://nold.freeunix.net/devnull/index.php?show=./Stuff/Consoles/Gamecube/GameCube%20Linux&amp;lt;br&amp;gt;&lt;br /&gt;
[0] http://gc-forever.com&amp;lt;br&amp;gt;&lt;br /&gt;
[1] http://www.gc-linux.org/wiki/Memory_and_Filesystems#Creating_the_SD.2FMMC_card_device_nodes&amp;lt;br&amp;gt;&lt;br /&gt;
[2] http://www.gc-linux.org/wiki/Memory_and_Filesystems#Create_the_device_node_for_the_audio_RAM_driver&amp;lt;br&amp;gt;&lt;br /&gt;
[3] http://packages.debian.org&amp;lt;br&amp;gt;&lt;br /&gt;
[4] http://www.gc-linux.org/wiki/Creating_a_Root_Filesystem&amp;lt;br&amp;gt;&lt;br /&gt;
[5] http://ngc.scorpei.com/GUIDE-SD_adapter.html&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=GC-Linux_with_rootFS_on_SD&amp;diff=8085</id>
		<title>GC-Linux with rootFS on SD</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=GC-Linux_with_rootFS_on_SD&amp;diff=8085"/>
		<updated>2024-07-23T07:06:46Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: /* So what’s next? */ ws&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
First of all I want to thank the people who made all this possible:&lt;br /&gt;
&lt;br /&gt;
The guys from GC-Linux: http://www.gc-linux.org&lt;br /&gt;
&lt;br /&gt;
Simon &amp;quot;Scorpei&amp;quot; van de Berg for his great tutorial how to build an SD-card adapter for the cube: http://ngc.scorpei.com/GUIDE-SD_adapter.html&lt;br /&gt;
&lt;br /&gt;
The linuxwiki: http://linuxwiki.de&lt;br /&gt;
&lt;br /&gt;
The creators of MFE: http://www.gc-linux.org/wiki/Mfe-distro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=The aim=&lt;br /&gt;
The aim of this Project is to create a custom Linux Kernel, which runs on a modified GameCube and has the root file system on an SD-card which is plugged into the memory-card slot via an [[SDGecko]].&lt;br /&gt;
After the system boots form the SD-card, it should start a custom program which allows the user to start programs using the GameCube-pad.&lt;br /&gt;
&lt;br /&gt;
=Why?=&lt;br /&gt;
Normally the GC-Linux kernel will try to load the root file system from a NFS attached storage over the BBA.&lt;br /&gt;
&lt;br /&gt;
However this isn&#039;t very practical because you need a broadband adapter for your GameCube, and you will always have to run an NFS-Share on your PC or a dedicated Server.&lt;br /&gt;
What I want is a stand-alone Linux on my GameCube! So why not create one by myself?&lt;br /&gt;
&lt;br /&gt;
=Roadmap=&lt;br /&gt;
*Create &amp;amp; boot a Kernel with his root file system on an SD-Card [Done!]&lt;br /&gt;
*Create an auto executing script (init/linuxrc?)  [Done!]&lt;br /&gt;
*Write an GameCube-pad controlled program [ToDo…]&lt;br /&gt;
*Enjoy your Linux-Cube!&lt;br /&gt;
&lt;br /&gt;
=What you will need=&lt;br /&gt;
*Nintendo Gamecube&lt;br /&gt;
*Method to load homebrew&lt;br /&gt;
*An SD-Card (max. 2GB atm) &lt;br /&gt;
*[[SDGecko]] (See [5] or Buy)&lt;br /&gt;
&lt;br /&gt;
==For Compiling it==&lt;br /&gt;
*Little knowledge about Linux Kernel &lt;br /&gt;
*A running Linux Distribution &lt;br /&gt;
*A running gc-linux tool chain + patched kernel source (2.6.32) &lt;br /&gt;
**See http://www.gc-linux.org/wiki/Building_a_GameCube_Linux_Kernel&lt;br /&gt;
**Clone my git for the Kernel: https://github.com/Nold360/GC-Linux-Kernel-2.6.32&lt;br /&gt;
**You may just want to use my config files:&lt;br /&gt;
 cp .config  linux-2.6.32/.config&lt;br /&gt;
 cp gamecube.dts linux-2.6.32/arch/powerpc/boot/dts/gamecube.dts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=What should happen?=&lt;br /&gt;
After the GameCube boots, you will start the kernel.dol from the 1st partition of your SD-Card (fat formatted). The kernel will boot and mount the 2nd partition as his root (ext2/3 Formatted). Then will the Kernel look for his init-script and execute it. &lt;br /&gt;
In our Case we use the /bin/init script to configure the rest of the hardware (swap, mounting, etc.) and then start our script/program. &lt;br /&gt;
&lt;br /&gt;
==The boot parameter==&lt;br /&gt;
The boot parameters were the first thing I edited. It’s defined in the &lt;br /&gt;
“arch/powerpc/boot/dts/gamecube.dts”-file. I edited it as follows:&lt;br /&gt;
&lt;br /&gt;
 chosen  {&lt;br /&gt;
          bootargs = &amp;quot;root=/dev/gcnsda2 rw video=gcn-vifb:tv=auto&amp;quot;;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
The “root=” parameter tells the kernel that his root is on “/dev/gcnsda2” that means the SD-Card (sd) that is plugged into the GameCube’s (gcn) MemoryCard-Slot1 (a) on Partition 2 (2) [Because the fist is used so SD-Load to execute the kernel.dol]&lt;br /&gt;
“rootwait” tells him to wait for his root file system until it’s ready.&lt;br /&gt;
The video parameter tells him which video device to use, and how.&lt;br /&gt;
In our case he uses the GameCube framebuffer (gcn-vifb), on a tv. &lt;br /&gt;
With the “auto” parameter, he will look for himself which mode to use. (NTFS, PAL50/60Hz…)&lt;br /&gt;
&lt;br /&gt;
==Creating a Root file system==&lt;br /&gt;
After I could see that my kernel wants to use my SD-Card, I needed a root file system.	Basically you don’t need really much, it’s just the normal root-tree (/dev /bin /etc /mnt /usr…) But because I’m a pretty lazy person, I just used a mix of the ramdisk and the file system of the MFE-Distribution and it worked pretty well. I just used my own /linuxrc and /bin/init-scripts. Also you need to add the SD-Card-Devicenodes to the /dev directory. &lt;br /&gt;
Please do not use the description from the gc-linux wiki [1]. There they were called “/dev/sdcarda” and “/dev/sdcardb” but they are called “/dev/gcnsda” and “/dev/gcnsdb”.&lt;br /&gt;
&lt;br /&gt;
So we will add some nodes (as root):&lt;br /&gt;
 mknod dev/gcnsda   b 61 0&lt;br /&gt;
 mknod dev/gcnsda1  b 61 1&lt;br /&gt;
 mknod dev/gcnsda2  b 61 2&lt;br /&gt;
 mknod dev/gcnsda3  b 61 3&lt;br /&gt;
&lt;br /&gt;
 mknod dev/gcnsdb   b 61 8&lt;br /&gt;
 mknod dev/gcnsdb1  b 61 9&lt;br /&gt;
 mknod dev/gcnsdb2  b 61 10&lt;br /&gt;
 mknod dev/gcnsdb3  b 61 11&lt;br /&gt;
&lt;br /&gt;
We will also need one for Audio-RAM&lt;br /&gt;
 mknod dev/aram     b 37 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I also added an 3rd SD-card partition, if we maybe want to use them later.&lt;br /&gt;
&lt;br /&gt;
Last we add an mount path for the 1st SD-Card partition at /mnt/sdcarda, so we can mount it for later use.&lt;br /&gt;
 # mkdir mnt/sdcarda&lt;br /&gt;
&lt;br /&gt;
After that we need to create an fstab (/etc/fstab) to mount the cube’s Audio RAM as swap.&amp;lt;br&amp;gt;&lt;br /&gt;
Also we will add proc, root and our first SD-Card (vfat) Partition [Optional].&lt;br /&gt;
===/etc/fstab===&lt;br /&gt;
 /dev/aram       swap            swap    pri=32767                    0       0&lt;br /&gt;
 /dev/gcnsda2    /               ext3    defaults,errors=remount-ro   0       0&lt;br /&gt;
 /dev/gcnsda1    /mnt/gcnsda1    vfat    defaults                     0       0&lt;br /&gt;
 proc            /proc           proc    defaults                     0       0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The Init-Script==&lt;br /&gt;
So, the kernel boots, the filesystem looks great, what to do next?&lt;br /&gt;
We need to give our Kernel a init-script. As we didn’t gave the kernel the “init=/…” parameter, he will try to start the default script “/bin/init”.&lt;br /&gt;
&lt;br /&gt;
A very important thing is that init is not allowed to die! So it has to run all the time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
But what has our system now to do? &lt;br /&gt;
We need:  &lt;br /&gt;
*Format Audio-RAM as swap (mkswap)&lt;br /&gt;
*Mount fstab&lt;br /&gt;
*Activate swap &lt;br /&gt;
*Start our programs we need (mplayer, GUI, whatever)&lt;br /&gt;
*Keep init alive!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So let’s do that!&lt;br /&gt;
===/bin/init===&lt;br /&gt;
 #!/bin/ash&lt;br /&gt;
 mkswap /dev/aram&lt;br /&gt;
 mount –a&lt;br /&gt;
 swapon –a&lt;br /&gt;
 &lt;br /&gt;
 #Now comes our script or whatever you want to execute&lt;br /&gt;
 /linuxrc&lt;br /&gt;
 &lt;br /&gt;
 #And keep init alive&lt;br /&gt;
 while [ 1 –eq 1 ]; do&lt;br /&gt;
      sleep 1&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Preparing the SD-Card==&lt;br /&gt;
First of all, we need to prepare our SD-Card partitions. We need a first partition formatted with fat (vfat) and a second partition for the root file system (ext2/3).&amp;lt;br&amp;gt;&lt;br /&gt;
How big they are depends on your SD-Card and for what additional use you want to use it.&amp;lt;br&amp;gt;&lt;br /&gt;
We need about 10MB For the kernel.dol plus the SDLOADER.BIN and about 20mb for the basic root file system. Since I want to extend the rootfs and maybe want to use other homebrew and kernel.dol’s I formatted it as follows (1GB SD):&lt;br /&gt;
*300MB vfat&lt;br /&gt;
*700MB ext2/3&lt;br /&gt;
&lt;br /&gt;
I choose ext3 because I was first using ext2, but I had problems with destroyed libraries. So I switched to ext3 because it’s journaling.&amp;lt;br&amp;gt;&lt;br /&gt;
If you are ready to go, copy the file system onto the ext2/3 partition, and the GcImage.dol on the vfat partition.&lt;br /&gt;
&lt;br /&gt;
===Preparing SD-Card with fdisk===&lt;br /&gt;
Partitioning with fdisk is pretty easy, i will do an example of how to do it using a 1GB SD-Card. Of course can you choose your partition sizes as you want.&lt;br /&gt;
Notice that the device path WILL be another on your system!&lt;br /&gt;
 # fdisk /dev/mmcblk0           #Change to your device-path&lt;br /&gt;
 &amp;gt; o                            #Create empty DOS Patition Table&lt;br /&gt;
 &amp;gt; n                            #Create new Partition&lt;br /&gt;
 &amp;gt; p                            #Primary&lt;br /&gt;
 &amp;gt; [Enter]                      #At first sector&lt;br /&gt;
 &amp;gt; +300M                        #with 300MB size, change to whatever you want for your &amp;quot;Homebrew&amp;quot;-Partition&lt;br /&gt;
&lt;br /&gt;
That was our first partition that is going to be out vfat-homebrew partition, now comes the rootfs partition&lt;br /&gt;
 &amp;gt; n                            #Create new Partition&lt;br /&gt;
 &amp;gt; p                            #Primary&lt;br /&gt;
 &amp;gt; [Enter]                      #At first useable sector (behind our vfat-partition)&lt;br /&gt;
 &amp;gt; [Enter]                      #With maximum of size (Here: 700MB)&lt;br /&gt;
 &amp;gt; w                            #Write everything to device&lt;br /&gt;
 &amp;gt; q                            #Quit fdisk&lt;br /&gt;
&lt;br /&gt;
Now we have our Partitions. But they need a filesystem. In this example we use mkfs for this task:&lt;br /&gt;
 # mkfs.vfat /dev/mmcblk0p1     #Watch your path!&lt;br /&gt;
 # mkfs.ext3 /dev/mmcblk0p2     #Same here! &lt;br /&gt;
&lt;br /&gt;
Now you are ready to go. Copy GcImage.dol to the 1st Partition and the rootfs to the second.&lt;br /&gt;
&lt;br /&gt;
=So what’s next?=&lt;br /&gt;
The next part is to include the software we need. This isn’t very problematic because we can use every binary which is compiled for a PowerPC! So what I did is that I downloaded my binaries and libraries from the Debian package-Service [3]. And used the libSDL and the mplayer binary from the mfe-distribution, since they were included in the filesystem. I just added the libraries for divx and mp3. &lt;br /&gt;
&lt;br /&gt;
If you have an Broadband-Adapter in your Cube, you could even install apt-get and just download the packages directly on your cube!&amp;lt;br&amp;gt;&lt;br /&gt;
Another possibility for creating a big but good root file system would be the way from the GC-Linux wiki [4].&lt;br /&gt;
&lt;br /&gt;
=Need Help? Got Ideas? Want to Help?=&lt;br /&gt;
Join the GC-Forever Community! :) [0]&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
[0] http://nold.freeunix.net/devnull/index.php?show=./Stuff/Consoles/Gamecube/GameCube%20Linux&amp;lt;br&amp;gt;&lt;br /&gt;
[0] http://gc-forever.com&amp;lt;br&amp;gt;&lt;br /&gt;
[1] http://www.gc-linux.org/wiki/Memory_and_Filesystems#Creating_the_SD.2FMMC_card_device_nodes&amp;lt;br&amp;gt;&lt;br /&gt;
[2] http://www.gc-linux.org/wiki/Memory_and_Filesystems#Create_the_device_node_for_the_audio_RAM_driver&amp;lt;br&amp;gt;&lt;br /&gt;
[3] http://packages.debian.org&amp;lt;br&amp;gt;&lt;br /&gt;
[4] http://www.gc-linux.org/wiki/Creating_a_Root_Filesystem&amp;lt;br&amp;gt;&lt;br /&gt;
[5] http://ngc.scorpei.com/GUIDE-SD_adapter.html&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=GC-Linux_with_rootFS_on_SD&amp;diff=8084</id>
		<title>GC-Linux with rootFS on SD</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=GC-Linux_with_rootFS_on_SD&amp;diff=8084"/>
		<updated>2024-07-23T07:06:28Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: /* The boot parameter */ whitespace&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
First of all I want to thank the people who made all this possible:&lt;br /&gt;
&lt;br /&gt;
The guys from GC-Linux: http://www.gc-linux.org&lt;br /&gt;
&lt;br /&gt;
Simon &amp;quot;Scorpei&amp;quot; van de Berg for his great tutorial how to build an SD-card adapter for the cube: http://ngc.scorpei.com/GUIDE-SD_adapter.html&lt;br /&gt;
&lt;br /&gt;
The linuxwiki: http://linuxwiki.de&lt;br /&gt;
&lt;br /&gt;
The creators of MFE: http://www.gc-linux.org/wiki/Mfe-distro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=The aim=&lt;br /&gt;
The aim of this Project is to create a custom Linux Kernel, which runs on a modified GameCube and has the root file system on an SD-card which is plugged into the memory-card slot via an [[SDGecko]].&lt;br /&gt;
After the system boots form the SD-card, it should start a custom program which allows the user to start programs using the GameCube-pad.&lt;br /&gt;
&lt;br /&gt;
=Why?=&lt;br /&gt;
Normally the GC-Linux kernel will try to load the root file system from a NFS attached storage over the BBA.&lt;br /&gt;
&lt;br /&gt;
However this isn&#039;t very practical because you need a broadband adapter for your GameCube, and you will always have to run an NFS-Share on your PC or a dedicated Server.&lt;br /&gt;
What I want is a stand-alone Linux on my GameCube! So why not create one by myself?&lt;br /&gt;
&lt;br /&gt;
=Roadmap=&lt;br /&gt;
*Create &amp;amp; boot a Kernel with his root file system on an SD-Card [Done!]&lt;br /&gt;
*Create an auto executing script (init/linuxrc?)  [Done!]&lt;br /&gt;
*Write an GameCube-pad controlled program [ToDo…]&lt;br /&gt;
*Enjoy your Linux-Cube!&lt;br /&gt;
&lt;br /&gt;
=What you will need=&lt;br /&gt;
*Nintendo Gamecube&lt;br /&gt;
*Method to load homebrew&lt;br /&gt;
*An SD-Card (max. 2GB atm) &lt;br /&gt;
*[[SDGecko]] (See [5] or Buy)&lt;br /&gt;
&lt;br /&gt;
==For Compiling it==&lt;br /&gt;
*Little knowledge about Linux Kernel &lt;br /&gt;
*A running Linux Distribution &lt;br /&gt;
*A running gc-linux tool chain + patched kernel source (2.6.32) &lt;br /&gt;
**See http://www.gc-linux.org/wiki/Building_a_GameCube_Linux_Kernel&lt;br /&gt;
**Clone my git for the Kernel: https://github.com/Nold360/GC-Linux-Kernel-2.6.32&lt;br /&gt;
**You may just want to use my config files:&lt;br /&gt;
 cp .config  linux-2.6.32/.config&lt;br /&gt;
 cp gamecube.dts linux-2.6.32/arch/powerpc/boot/dts/gamecube.dts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=What should happen?=&lt;br /&gt;
After the GameCube boots, you will start the kernel.dol from the 1st partition of your SD-Card (fat formatted). The kernel will boot and mount the 2nd partition as his root (ext2/3 Formatted). Then will the Kernel look for his init-script and execute it. &lt;br /&gt;
In our Case we use the /bin/init script to configure the rest of the hardware (swap, mounting, etc.) and then start our script/program. &lt;br /&gt;
&lt;br /&gt;
==The boot parameter==&lt;br /&gt;
The boot parameters were the first thing I edited. It’s defined in the &lt;br /&gt;
“arch/powerpc/boot/dts/gamecube.dts”-file. I edited it as follows:&lt;br /&gt;
&lt;br /&gt;
 chosen  {&lt;br /&gt;
          bootargs = &amp;quot;root=/dev/gcnsda2 rw video=gcn-vifb:tv=auto&amp;quot;;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
The “root=” parameter tells the kernel that his root is on “/dev/gcnsda2” that means the SD-Card (sd) that is plugged into the GameCube’s (gcn) MemoryCard-Slot1 (a) on Partition 2 (2) [Because the fist is used so SD-Load to execute the kernel.dol]&lt;br /&gt;
“rootwait” tells him to wait for his root file system until it’s ready.&lt;br /&gt;
The video parameter tells him which video device to use, and how.&lt;br /&gt;
In our case he uses the GameCube framebuffer (gcn-vifb), on a tv. &lt;br /&gt;
With the “auto” parameter, he will look for himself which mode to use. (NTFS, PAL50/60Hz…)&lt;br /&gt;
&lt;br /&gt;
==Creating a Root file system==&lt;br /&gt;
After I could see that my kernel wants to use my SD-Card, I needed a root file system.	Basically you don’t need really much, it’s just the normal root-tree (/dev /bin /etc /mnt /usr…) But because I’m a pretty lazy person, I just used a mix of the ramdisk and the file system of the MFE-Distribution and it worked pretty well. I just used my own /linuxrc and /bin/init-scripts. Also you need to add the SD-Card-Devicenodes to the /dev directory. &lt;br /&gt;
Please do not use the description from the gc-linux wiki [1]. There they were called “/dev/sdcarda” and “/dev/sdcardb” but they are called “/dev/gcnsda” and “/dev/gcnsdb”.&lt;br /&gt;
&lt;br /&gt;
So we will add some nodes (as root):&lt;br /&gt;
 mknod dev/gcnsda   b 61 0&lt;br /&gt;
 mknod dev/gcnsda1  b 61 1&lt;br /&gt;
 mknod dev/gcnsda2  b 61 2&lt;br /&gt;
 mknod dev/gcnsda3  b 61 3&lt;br /&gt;
&lt;br /&gt;
 mknod dev/gcnsdb   b 61 8&lt;br /&gt;
 mknod dev/gcnsdb1  b 61 9&lt;br /&gt;
 mknod dev/gcnsdb2  b 61 10&lt;br /&gt;
 mknod dev/gcnsdb3  b 61 11&lt;br /&gt;
&lt;br /&gt;
We will also need one for Audio-RAM&lt;br /&gt;
 mknod dev/aram     b 37 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I also added an 3rd SD-card partition, if we maybe want to use them later.&lt;br /&gt;
&lt;br /&gt;
Last we add an mount path for the 1st SD-Card partition at /mnt/sdcarda, so we can mount it for later use.&lt;br /&gt;
 # mkdir mnt/sdcarda&lt;br /&gt;
&lt;br /&gt;
After that we need to create an fstab (/etc/fstab) to mount the cube’s Audio RAM as swap.&amp;lt;br&amp;gt;&lt;br /&gt;
Also we will add proc, root and our first SD-Card (vfat) Partition [Optional].&lt;br /&gt;
===/etc/fstab===&lt;br /&gt;
 /dev/aram       swap            swap    pri=32767                    0       0&lt;br /&gt;
 /dev/gcnsda2    /               ext3    defaults,errors=remount-ro   0       0&lt;br /&gt;
 /dev/gcnsda1    /mnt/gcnsda1    vfat    defaults                     0       0&lt;br /&gt;
 proc            /proc           proc    defaults                     0       0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The Init-Script==&lt;br /&gt;
So, the kernel boots, the filesystem looks great, what to do next?&lt;br /&gt;
We need to give our Kernel a init-script. As we didn’t gave the kernel the “init=/…” parameter, he will try to start the default script “/bin/init”.&lt;br /&gt;
&lt;br /&gt;
A very important thing is that init is not allowed to die! So it has to run all the time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
But what has our system now to do? &lt;br /&gt;
We need:  &lt;br /&gt;
*Format Audio-RAM as swap (mkswap)&lt;br /&gt;
*Mount fstab&lt;br /&gt;
*Activate swap &lt;br /&gt;
*Start our programs we need (mplayer, GUI, whatever)&lt;br /&gt;
*Keep init alive!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So let’s do that!&lt;br /&gt;
===/bin/init===&lt;br /&gt;
 #!/bin/ash&lt;br /&gt;
 mkswap /dev/aram&lt;br /&gt;
 mount –a&lt;br /&gt;
 swapon –a&lt;br /&gt;
 &lt;br /&gt;
 #Now comes our script or whatever you want to execute&lt;br /&gt;
 /linuxrc&lt;br /&gt;
 &lt;br /&gt;
 #And keep init alive&lt;br /&gt;
 while [ 1 –eq 1 ]; do&lt;br /&gt;
      sleep 1&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Preparing the SD-Card==&lt;br /&gt;
First of all, we need to prepare our SD-Card partitions. We need a first partition formatted with fat (vfat) and a second partition for the root file system (ext2/3).&amp;lt;br&amp;gt;&lt;br /&gt;
How big they are depends on your SD-Card and for what additional use you want to use it.&amp;lt;br&amp;gt;&lt;br /&gt;
We need about 10MB For the kernel.dol plus the SDLOADER.BIN and about 20mb for the basic root file system. Since I want to extend the rootfs and maybe want to use other homebrew and kernel.dol’s I formatted it as follows (1GB SD):&lt;br /&gt;
*300MB vfat&lt;br /&gt;
*700MB ext2/3&lt;br /&gt;
&lt;br /&gt;
I choose ext3 because I was first using ext2, but I had problems with destroyed libraries. So I switched to ext3 because it’s journaling.&amp;lt;br&amp;gt;&lt;br /&gt;
If you are ready to go, copy the file system onto the ext2/3 partition, and the GcImage.dol on the vfat partition.&lt;br /&gt;
&lt;br /&gt;
===Preparing SD-Card with fdisk===&lt;br /&gt;
Partitioning with fdisk is pretty easy, i will do an example of how to do it using a 1GB SD-Card. Of course can you choose your partition sizes as you want.&lt;br /&gt;
Notice that the device path WILL be another on your system!&lt;br /&gt;
 # fdisk /dev/mmcblk0           #Change to your device-path&lt;br /&gt;
 &amp;gt; o                            #Create empty DOS Patition Table&lt;br /&gt;
 &amp;gt; n                            #Create new Partition&lt;br /&gt;
 &amp;gt; p                            #Primary&lt;br /&gt;
 &amp;gt; [Enter]                      #At first sector&lt;br /&gt;
 &amp;gt; +300M                        #with 300MB size, change to whatever you want for your &amp;quot;Homebrew&amp;quot;-Partition&lt;br /&gt;
&lt;br /&gt;
That was our first partition that is going to be out vfat-homebrew partition, now comes the rootfs partition&lt;br /&gt;
 &amp;gt; n                            #Create new Partition&lt;br /&gt;
 &amp;gt; p                            #Primary&lt;br /&gt;
 &amp;gt; [Enter]                      #At first useable sector (behind our vfat-partition)&lt;br /&gt;
 &amp;gt; [Enter]                      #With maximum of size (Here: 700MB)&lt;br /&gt;
 &amp;gt; w                            #Write everything to device&lt;br /&gt;
 &amp;gt; q                            #Quit fdisk&lt;br /&gt;
&lt;br /&gt;
Now we have our Partitions. But they need a filesystem. In this example we use mkfs for this task:&lt;br /&gt;
 # mkfs.vfat /dev/mmcblk0p1     #Watch your path!&lt;br /&gt;
 # mkfs.ext3 /dev/mmcblk0p2     #Same here! &lt;br /&gt;
&lt;br /&gt;
Now you are ready to go. Copy GcImage.dol to the 1st Partition and the rootfs to the second.&lt;br /&gt;
&lt;br /&gt;
=So what’s next?=&lt;br /&gt;
The next part is to include the software we need. This isn’t very problematic because we can use every binary which is compiled for a PowerPC! So what I did is that I downloaded my binaries and libraries from the Debian package-Service [3]. And used the libSDL and the mplayer binary from the mfe-distribution, since they were included in the filesystem. I just added the libraries for divx and mp3. &lt;br /&gt;
&lt;br /&gt;
If you have an Broadband-Adapter in your Cube, you could even install apt-get and just download the packages directly on your cube!&amp;lt;br&amp;gt;&lt;br /&gt;
Another possibility for creating a big but good root file system would be the way from the GC-Linux wiki [4].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Need Help? Got Ideas? Want to Help?=&lt;br /&gt;
Join the GC-Forever Community! :) [0]&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
[0] http://nold.freeunix.net/devnull/index.php?show=./Stuff/Consoles/Gamecube/GameCube%20Linux&amp;lt;br&amp;gt;&lt;br /&gt;
[0] http://gc-forever.com&amp;lt;br&amp;gt;&lt;br /&gt;
[1] http://www.gc-linux.org/wiki/Memory_and_Filesystems#Creating_the_SD.2FMMC_card_device_nodes&amp;lt;br&amp;gt;&lt;br /&gt;
[2] http://www.gc-linux.org/wiki/Memory_and_Filesystems#Create_the_device_node_for_the_audio_RAM_driver&amp;lt;br&amp;gt;&lt;br /&gt;
[3] http://packages.debian.org&amp;lt;br&amp;gt;&lt;br /&gt;
[4] http://www.gc-linux.org/wiki/Creating_a_Root_Filesystem&amp;lt;br&amp;gt;&lt;br /&gt;
[5] http://ngc.scorpei.com/GUIDE-SD_adapter.html&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=GC-Linux_with_rootFS_on_SD&amp;diff=8083</id>
		<title>GC-Linux with rootFS on SD</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=GC-Linux_with_rootFS_on_SD&amp;diff=8083"/>
		<updated>2024-07-23T07:06:05Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: /* Roadmap */ whitespace&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
First of all I want to thank the people who made all this possible:&lt;br /&gt;
&lt;br /&gt;
The guys from GC-Linux: http://www.gc-linux.org&lt;br /&gt;
&lt;br /&gt;
Simon &amp;quot;Scorpei&amp;quot; van de Berg for his great tutorial how to build an SD-card adapter for the cube: http://ngc.scorpei.com/GUIDE-SD_adapter.html&lt;br /&gt;
&lt;br /&gt;
The linuxwiki: http://linuxwiki.de&lt;br /&gt;
&lt;br /&gt;
The creators of MFE: http://www.gc-linux.org/wiki/Mfe-distro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=The aim=&lt;br /&gt;
The aim of this Project is to create a custom Linux Kernel, which runs on a modified GameCube and has the root file system on an SD-card which is plugged into the memory-card slot via an [[SDGecko]].&lt;br /&gt;
After the system boots form the SD-card, it should start a custom program which allows the user to start programs using the GameCube-pad.&lt;br /&gt;
&lt;br /&gt;
=Why?=&lt;br /&gt;
Normally the GC-Linux kernel will try to load the root file system from a NFS attached storage over the BBA.&lt;br /&gt;
&lt;br /&gt;
However this isn&#039;t very practical because you need a broadband adapter for your GameCube, and you will always have to run an NFS-Share on your PC or a dedicated Server.&lt;br /&gt;
What I want is a stand-alone Linux on my GameCube! So why not create one by myself?&lt;br /&gt;
&lt;br /&gt;
=Roadmap=&lt;br /&gt;
*Create &amp;amp; boot a Kernel with his root file system on an SD-Card [Done!]&lt;br /&gt;
*Create an auto executing script (init/linuxrc?)  [Done!]&lt;br /&gt;
*Write an GameCube-pad controlled program [ToDo…]&lt;br /&gt;
*Enjoy your Linux-Cube!&lt;br /&gt;
&lt;br /&gt;
=What you will need=&lt;br /&gt;
*Nintendo Gamecube&lt;br /&gt;
*Method to load homebrew&lt;br /&gt;
*An SD-Card (max. 2GB atm) &lt;br /&gt;
*[[SDGecko]] (See [5] or Buy)&lt;br /&gt;
&lt;br /&gt;
==For Compiling it==&lt;br /&gt;
*Little knowledge about Linux Kernel &lt;br /&gt;
*A running Linux Distribution &lt;br /&gt;
*A running gc-linux tool chain + patched kernel source (2.6.32) &lt;br /&gt;
**See http://www.gc-linux.org/wiki/Building_a_GameCube_Linux_Kernel&lt;br /&gt;
**Clone my git for the Kernel: https://github.com/Nold360/GC-Linux-Kernel-2.6.32&lt;br /&gt;
**You may just want to use my config files:&lt;br /&gt;
 cp .config  linux-2.6.32/.config&lt;br /&gt;
 cp gamecube.dts linux-2.6.32/arch/powerpc/boot/dts/gamecube.dts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=What should happen?=&lt;br /&gt;
After the GameCube boots, you will start the kernel.dol from the 1st partition of your SD-Card (fat formatted). The kernel will boot and mount the 2nd partition as his root (ext2/3 Formatted). Then will the Kernel look for his init-script and execute it. &lt;br /&gt;
In our Case we use the /bin/init script to configure the rest of the hardware (swap, mounting, etc.) and then start our script/program. &lt;br /&gt;
&lt;br /&gt;
==The boot parameter==&lt;br /&gt;
The boot parameters were the first thing I edited. It’s defined in the &lt;br /&gt;
“arch/powerpc/boot/dts/gamecube.dts”-file. I edited it as follows:&lt;br /&gt;
&lt;br /&gt;
 chosen  {&lt;br /&gt;
          bootargs = &amp;quot;root=/dev/gcnsda2 rw video=gcn-vifb:tv=auto&amp;quot;;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
The “root=” parameter tells the kernel that his root is on “/dev/gcnsda2” that means the SD-Card (sd) that is plugged into the GameCube’s (gcn) MemoryCard-Slot1 (a) on Partition 2 (2) [Because the fist is used so SD-Load to execute the kernel.dol]&lt;br /&gt;
“rootwait” tells him to wait for his root file system until it’s ready.&lt;br /&gt;
The video parameter tells him which video device to use, and how.&lt;br /&gt;
In our case he uses the GameCube framebuffer (gcn-vifb), on a tv. &lt;br /&gt;
With the “auto” parameter, he will look for himself which mode to use. (NTFS, PAL50/60Hz…)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Creating a Root file system==&lt;br /&gt;
After I could see that my kernel wants to use my SD-Card, I needed a root file system.	Basically you don’t need really much, it’s just the normal root-tree (/dev /bin /etc /mnt /usr…) But because I’m a pretty lazy person, I just used a mix of the ramdisk and the file system of the MFE-Distribution and it worked pretty well. I just used my own /linuxrc and /bin/init-scripts. Also you need to add the SD-Card-Devicenodes to the /dev directory. &lt;br /&gt;
Please do not use the description from the gc-linux wiki [1]. There they were called “/dev/sdcarda” and “/dev/sdcardb” but they are called “/dev/gcnsda” and “/dev/gcnsdb”.&lt;br /&gt;
&lt;br /&gt;
So we will add some nodes (as root):&lt;br /&gt;
 mknod dev/gcnsda   b 61 0&lt;br /&gt;
 mknod dev/gcnsda1  b 61 1&lt;br /&gt;
 mknod dev/gcnsda2  b 61 2&lt;br /&gt;
 mknod dev/gcnsda3  b 61 3&lt;br /&gt;
&lt;br /&gt;
 mknod dev/gcnsdb   b 61 8&lt;br /&gt;
 mknod dev/gcnsdb1  b 61 9&lt;br /&gt;
 mknod dev/gcnsdb2  b 61 10&lt;br /&gt;
 mknod dev/gcnsdb3  b 61 11&lt;br /&gt;
&lt;br /&gt;
We will also need one for Audio-RAM&lt;br /&gt;
 mknod dev/aram     b 37 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I also added an 3rd SD-card partition, if we maybe want to use them later.&lt;br /&gt;
&lt;br /&gt;
Last we add an mount path for the 1st SD-Card partition at /mnt/sdcarda, so we can mount it for later use.&lt;br /&gt;
 # mkdir mnt/sdcarda&lt;br /&gt;
&lt;br /&gt;
After that we need to create an fstab (/etc/fstab) to mount the cube’s Audio RAM as swap.&amp;lt;br&amp;gt;&lt;br /&gt;
Also we will add proc, root and our first SD-Card (vfat) Partition [Optional].&lt;br /&gt;
===/etc/fstab===&lt;br /&gt;
 /dev/aram       swap            swap    pri=32767                    0       0&lt;br /&gt;
 /dev/gcnsda2    /               ext3    defaults,errors=remount-ro   0       0&lt;br /&gt;
 /dev/gcnsda1    /mnt/gcnsda1    vfat    defaults                     0       0&lt;br /&gt;
 proc            /proc           proc    defaults                     0       0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The Init-Script==&lt;br /&gt;
So, the kernel boots, the filesystem looks great, what to do next?&lt;br /&gt;
We need to give our Kernel a init-script. As we didn’t gave the kernel the “init=/…” parameter, he will try to start the default script “/bin/init”.&lt;br /&gt;
&lt;br /&gt;
A very important thing is that init is not allowed to die! So it has to run all the time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
But what has our system now to do? &lt;br /&gt;
We need:  &lt;br /&gt;
*Format Audio-RAM as swap (mkswap)&lt;br /&gt;
*Mount fstab&lt;br /&gt;
*Activate swap &lt;br /&gt;
*Start our programs we need (mplayer, GUI, whatever)&lt;br /&gt;
*Keep init alive!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So let’s do that!&lt;br /&gt;
===/bin/init===&lt;br /&gt;
 #!/bin/ash&lt;br /&gt;
 mkswap /dev/aram&lt;br /&gt;
 mount –a&lt;br /&gt;
 swapon –a&lt;br /&gt;
 &lt;br /&gt;
 #Now comes our script or whatever you want to execute&lt;br /&gt;
 /linuxrc&lt;br /&gt;
 &lt;br /&gt;
 #And keep init alive&lt;br /&gt;
 while [ 1 –eq 1 ]; do&lt;br /&gt;
      sleep 1&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Preparing the SD-Card==&lt;br /&gt;
First of all, we need to prepare our SD-Card partitions. We need a first partition formatted with fat (vfat) and a second partition for the root file system (ext2/3).&amp;lt;br&amp;gt;&lt;br /&gt;
How big they are depends on your SD-Card and for what additional use you want to use it.&amp;lt;br&amp;gt;&lt;br /&gt;
We need about 10MB For the kernel.dol plus the SDLOADER.BIN and about 20mb for the basic root file system. Since I want to extend the rootfs and maybe want to use other homebrew and kernel.dol’s I formatted it as follows (1GB SD):&lt;br /&gt;
*300MB vfat&lt;br /&gt;
*700MB ext2/3&lt;br /&gt;
&lt;br /&gt;
I choose ext3 because I was first using ext2, but I had problems with destroyed libraries. So I switched to ext3 because it’s journaling.&amp;lt;br&amp;gt;&lt;br /&gt;
If you are ready to go, copy the file system onto the ext2/3 partition, and the GcImage.dol on the vfat partition.&lt;br /&gt;
&lt;br /&gt;
===Preparing SD-Card with fdisk===&lt;br /&gt;
Partitioning with fdisk is pretty easy, i will do an example of how to do it using a 1GB SD-Card. Of course can you choose your partition sizes as you want.&lt;br /&gt;
Notice that the device path WILL be another on your system!&lt;br /&gt;
 # fdisk /dev/mmcblk0           #Change to your device-path&lt;br /&gt;
 &amp;gt; o                            #Create empty DOS Patition Table&lt;br /&gt;
 &amp;gt; n                            #Create new Partition&lt;br /&gt;
 &amp;gt; p                            #Primary&lt;br /&gt;
 &amp;gt; [Enter]                      #At first sector&lt;br /&gt;
 &amp;gt; +300M                        #with 300MB size, change to whatever you want for your &amp;quot;Homebrew&amp;quot;-Partition&lt;br /&gt;
&lt;br /&gt;
That was our first partition that is going to be out vfat-homebrew partition, now comes the rootfs partition&lt;br /&gt;
 &amp;gt; n                            #Create new Partition&lt;br /&gt;
 &amp;gt; p                            #Primary&lt;br /&gt;
 &amp;gt; [Enter]                      #At first useable sector (behind our vfat-partition)&lt;br /&gt;
 &amp;gt; [Enter]                      #With maximum of size (Here: 700MB)&lt;br /&gt;
 &amp;gt; w                            #Write everything to device&lt;br /&gt;
 &amp;gt; q                            #Quit fdisk&lt;br /&gt;
&lt;br /&gt;
Now we have our Partitions. But they need a filesystem. In this example we use mkfs for this task:&lt;br /&gt;
 # mkfs.vfat /dev/mmcblk0p1     #Watch your path!&lt;br /&gt;
 # mkfs.ext3 /dev/mmcblk0p2     #Same here! &lt;br /&gt;
&lt;br /&gt;
Now you are ready to go. Copy GcImage.dol to the 1st Partition and the rootfs to the second.&lt;br /&gt;
&lt;br /&gt;
=So what’s next?=&lt;br /&gt;
The next part is to include the software we need. This isn’t very problematic because we can use every binary which is compiled for a PowerPC! So what I did is that I downloaded my binaries and libraries from the Debian package-Service [3]. And used the libSDL and the mplayer binary from the mfe-distribution, since they were included in the filesystem. I just added the libraries for divx and mp3. &lt;br /&gt;
&lt;br /&gt;
If you have an Broadband-Adapter in your Cube, you could even install apt-get and just download the packages directly on your cube!&amp;lt;br&amp;gt;&lt;br /&gt;
Another possibility for creating a big but good root file system would be the way from the GC-Linux wiki [4].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Need Help? Got Ideas? Want to Help?=&lt;br /&gt;
Join the GC-Forever Community! :) [0]&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
[0] http://nold.freeunix.net/devnull/index.php?show=./Stuff/Consoles/Gamecube/GameCube%20Linux&amp;lt;br&amp;gt;&lt;br /&gt;
[0] http://gc-forever.com&amp;lt;br&amp;gt;&lt;br /&gt;
[1] http://www.gc-linux.org/wiki/Memory_and_Filesystems#Creating_the_SD.2FMMC_card_device_nodes&amp;lt;br&amp;gt;&lt;br /&gt;
[2] http://www.gc-linux.org/wiki/Memory_and_Filesystems#Create_the_device_node_for_the_audio_RAM_driver&amp;lt;br&amp;gt;&lt;br /&gt;
[3] http://packages.debian.org&amp;lt;br&amp;gt;&lt;br /&gt;
[4] http://www.gc-linux.org/wiki/Creating_a_Root_Filesystem&amp;lt;br&amp;gt;&lt;br /&gt;
[5] http://ngc.scorpei.com/GUIDE-SD_adapter.html&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=GC-Linux_with_rootFS_on_SD&amp;diff=8082</id>
		<title>GC-Linux with rootFS on SD</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=GC-Linux_with_rootFS_on_SD&amp;diff=8082"/>
		<updated>2024-07-23T07:05:52Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: /* Why? */ whitespace&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
First of all I want to thank the people who made all this possible:&lt;br /&gt;
&lt;br /&gt;
The guys from GC-Linux: http://www.gc-linux.org&lt;br /&gt;
&lt;br /&gt;
Simon &amp;quot;Scorpei&amp;quot; van de Berg for his great tutorial how to build an SD-card adapter for the cube: http://ngc.scorpei.com/GUIDE-SD_adapter.html&lt;br /&gt;
&lt;br /&gt;
The linuxwiki: http://linuxwiki.de&lt;br /&gt;
&lt;br /&gt;
The creators of MFE: http://www.gc-linux.org/wiki/Mfe-distro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=The aim=&lt;br /&gt;
The aim of this Project is to create a custom Linux Kernel, which runs on a modified GameCube and has the root file system on an SD-card which is plugged into the memory-card slot via an [[SDGecko]].&lt;br /&gt;
After the system boots form the SD-card, it should start a custom program which allows the user to start programs using the GameCube-pad.&lt;br /&gt;
&lt;br /&gt;
=Why?=&lt;br /&gt;
Normally the GC-Linux kernel will try to load the root file system from a NFS attached storage over the BBA.&lt;br /&gt;
&lt;br /&gt;
However this isn&#039;t very practical because you need a broadband adapter for your GameCube, and you will always have to run an NFS-Share on your PC or a dedicated Server.&lt;br /&gt;
What I want is a stand-alone Linux on my GameCube! So why not create one by myself?&lt;br /&gt;
&lt;br /&gt;
=Roadmap=&lt;br /&gt;
*Create &amp;amp; boot a Kernel with his root file system on an SD-Card [Done!]&lt;br /&gt;
*Create an auto executing script (init/linuxrc?)  [Done!]&lt;br /&gt;
*Write an GameCube-pad controlled program [ToDo…]&lt;br /&gt;
*Enjoy your Linux-Cube!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=What you will need=&lt;br /&gt;
*Nintendo Gamecube&lt;br /&gt;
*Method to load homebrew&lt;br /&gt;
*An SD-Card (max. 2GB atm) &lt;br /&gt;
*[[SDGecko]] (See [5] or Buy)&lt;br /&gt;
&lt;br /&gt;
==For Compiling it==&lt;br /&gt;
*Little knowledge about Linux Kernel &lt;br /&gt;
*A running Linux Distribution &lt;br /&gt;
*A running gc-linux tool chain + patched kernel source (2.6.32) &lt;br /&gt;
**See http://www.gc-linux.org/wiki/Building_a_GameCube_Linux_Kernel&lt;br /&gt;
**Clone my git for the Kernel: https://github.com/Nold360/GC-Linux-Kernel-2.6.32&lt;br /&gt;
**You may just want to use my config files:&lt;br /&gt;
 cp .config  linux-2.6.32/.config&lt;br /&gt;
 cp gamecube.dts linux-2.6.32/arch/powerpc/boot/dts/gamecube.dts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=What should happen?=&lt;br /&gt;
After the GameCube boots, you will start the kernel.dol from the 1st partition of your SD-Card (fat formatted). The kernel will boot and mount the 2nd partition as his root (ext2/3 Formatted). Then will the Kernel look for his init-script and execute it. &lt;br /&gt;
In our Case we use the /bin/init script to configure the rest of the hardware (swap, mounting, etc.) and then start our script/program. &lt;br /&gt;
&lt;br /&gt;
==The boot parameter==&lt;br /&gt;
The boot parameters were the first thing I edited. It’s defined in the &lt;br /&gt;
“arch/powerpc/boot/dts/gamecube.dts”-file. I edited it as follows:&lt;br /&gt;
&lt;br /&gt;
 chosen  {&lt;br /&gt;
          bootargs = &amp;quot;root=/dev/gcnsda2 rw video=gcn-vifb:tv=auto&amp;quot;;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
The “root=” parameter tells the kernel that his root is on “/dev/gcnsda2” that means the SD-Card (sd) that is plugged into the GameCube’s (gcn) MemoryCard-Slot1 (a) on Partition 2 (2) [Because the fist is used so SD-Load to execute the kernel.dol]&lt;br /&gt;
“rootwait” tells him to wait for his root file system until it’s ready.&lt;br /&gt;
The video parameter tells him which video device to use, and how.&lt;br /&gt;
In our case he uses the GameCube framebuffer (gcn-vifb), on a tv. &lt;br /&gt;
With the “auto” parameter, he will look for himself which mode to use. (NTFS, PAL50/60Hz…)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Creating a Root file system==&lt;br /&gt;
After I could see that my kernel wants to use my SD-Card, I needed a root file system.	Basically you don’t need really much, it’s just the normal root-tree (/dev /bin /etc /mnt /usr…) But because I’m a pretty lazy person, I just used a mix of the ramdisk and the file system of the MFE-Distribution and it worked pretty well. I just used my own /linuxrc and /bin/init-scripts. Also you need to add the SD-Card-Devicenodes to the /dev directory. &lt;br /&gt;
Please do not use the description from the gc-linux wiki [1]. There they were called “/dev/sdcarda” and “/dev/sdcardb” but they are called “/dev/gcnsda” and “/dev/gcnsdb”.&lt;br /&gt;
&lt;br /&gt;
So we will add some nodes (as root):&lt;br /&gt;
 mknod dev/gcnsda   b 61 0&lt;br /&gt;
 mknod dev/gcnsda1  b 61 1&lt;br /&gt;
 mknod dev/gcnsda2  b 61 2&lt;br /&gt;
 mknod dev/gcnsda3  b 61 3&lt;br /&gt;
&lt;br /&gt;
 mknod dev/gcnsdb   b 61 8&lt;br /&gt;
 mknod dev/gcnsdb1  b 61 9&lt;br /&gt;
 mknod dev/gcnsdb2  b 61 10&lt;br /&gt;
 mknod dev/gcnsdb3  b 61 11&lt;br /&gt;
&lt;br /&gt;
We will also need one for Audio-RAM&lt;br /&gt;
 mknod dev/aram     b 37 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I also added an 3rd SD-card partition, if we maybe want to use them later.&lt;br /&gt;
&lt;br /&gt;
Last we add an mount path for the 1st SD-Card partition at /mnt/sdcarda, so we can mount it for later use.&lt;br /&gt;
 # mkdir mnt/sdcarda&lt;br /&gt;
&lt;br /&gt;
After that we need to create an fstab (/etc/fstab) to mount the cube’s Audio RAM as swap.&amp;lt;br&amp;gt;&lt;br /&gt;
Also we will add proc, root and our first SD-Card (vfat) Partition [Optional].&lt;br /&gt;
===/etc/fstab===&lt;br /&gt;
 /dev/aram       swap            swap    pri=32767                    0       0&lt;br /&gt;
 /dev/gcnsda2    /               ext3    defaults,errors=remount-ro   0       0&lt;br /&gt;
 /dev/gcnsda1    /mnt/gcnsda1    vfat    defaults                     0       0&lt;br /&gt;
 proc            /proc           proc    defaults                     0       0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The Init-Script==&lt;br /&gt;
So, the kernel boots, the filesystem looks great, what to do next?&lt;br /&gt;
We need to give our Kernel a init-script. As we didn’t gave the kernel the “init=/…” parameter, he will try to start the default script “/bin/init”.&lt;br /&gt;
&lt;br /&gt;
A very important thing is that init is not allowed to die! So it has to run all the time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
But what has our system now to do? &lt;br /&gt;
We need:  &lt;br /&gt;
*Format Audio-RAM as swap (mkswap)&lt;br /&gt;
*Mount fstab&lt;br /&gt;
*Activate swap &lt;br /&gt;
*Start our programs we need (mplayer, GUI, whatever)&lt;br /&gt;
*Keep init alive!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So let’s do that!&lt;br /&gt;
===/bin/init===&lt;br /&gt;
 #!/bin/ash&lt;br /&gt;
 mkswap /dev/aram&lt;br /&gt;
 mount –a&lt;br /&gt;
 swapon –a&lt;br /&gt;
 &lt;br /&gt;
 #Now comes our script or whatever you want to execute&lt;br /&gt;
 /linuxrc&lt;br /&gt;
 &lt;br /&gt;
 #And keep init alive&lt;br /&gt;
 while [ 1 –eq 1 ]; do&lt;br /&gt;
      sleep 1&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Preparing the SD-Card==&lt;br /&gt;
First of all, we need to prepare our SD-Card partitions. We need a first partition formatted with fat (vfat) and a second partition for the root file system (ext2/3).&amp;lt;br&amp;gt;&lt;br /&gt;
How big they are depends on your SD-Card and for what additional use you want to use it.&amp;lt;br&amp;gt;&lt;br /&gt;
We need about 10MB For the kernel.dol plus the SDLOADER.BIN and about 20mb for the basic root file system. Since I want to extend the rootfs and maybe want to use other homebrew and kernel.dol’s I formatted it as follows (1GB SD):&lt;br /&gt;
*300MB vfat&lt;br /&gt;
*700MB ext2/3&lt;br /&gt;
&lt;br /&gt;
I choose ext3 because I was first using ext2, but I had problems with destroyed libraries. So I switched to ext3 because it’s journaling.&amp;lt;br&amp;gt;&lt;br /&gt;
If you are ready to go, copy the file system onto the ext2/3 partition, and the GcImage.dol on the vfat partition.&lt;br /&gt;
&lt;br /&gt;
===Preparing SD-Card with fdisk===&lt;br /&gt;
Partitioning with fdisk is pretty easy, i will do an example of how to do it using a 1GB SD-Card. Of course can you choose your partition sizes as you want.&lt;br /&gt;
Notice that the device path WILL be another on your system!&lt;br /&gt;
 # fdisk /dev/mmcblk0           #Change to your device-path&lt;br /&gt;
 &amp;gt; o                            #Create empty DOS Patition Table&lt;br /&gt;
 &amp;gt; n                            #Create new Partition&lt;br /&gt;
 &amp;gt; p                            #Primary&lt;br /&gt;
 &amp;gt; [Enter]                      #At first sector&lt;br /&gt;
 &amp;gt; +300M                        #with 300MB size, change to whatever you want for your &amp;quot;Homebrew&amp;quot;-Partition&lt;br /&gt;
&lt;br /&gt;
That was our first partition that is going to be out vfat-homebrew partition, now comes the rootfs partition&lt;br /&gt;
 &amp;gt; n                            #Create new Partition&lt;br /&gt;
 &amp;gt; p                            #Primary&lt;br /&gt;
 &amp;gt; [Enter]                      #At first useable sector (behind our vfat-partition)&lt;br /&gt;
 &amp;gt; [Enter]                      #With maximum of size (Here: 700MB)&lt;br /&gt;
 &amp;gt; w                            #Write everything to device&lt;br /&gt;
 &amp;gt; q                            #Quit fdisk&lt;br /&gt;
&lt;br /&gt;
Now we have our Partitions. But they need a filesystem. In this example we use mkfs for this task:&lt;br /&gt;
 # mkfs.vfat /dev/mmcblk0p1     #Watch your path!&lt;br /&gt;
 # mkfs.ext3 /dev/mmcblk0p2     #Same here! &lt;br /&gt;
&lt;br /&gt;
Now you are ready to go. Copy GcImage.dol to the 1st Partition and the rootfs to the second.&lt;br /&gt;
&lt;br /&gt;
=So what’s next?=&lt;br /&gt;
The next part is to include the software we need. This isn’t very problematic because we can use every binary which is compiled for a PowerPC! So what I did is that I downloaded my binaries and libraries from the Debian package-Service [3]. And used the libSDL and the mplayer binary from the mfe-distribution, since they were included in the filesystem. I just added the libraries for divx and mp3. &lt;br /&gt;
&lt;br /&gt;
If you have an Broadband-Adapter in your Cube, you could even install apt-get and just download the packages directly on your cube!&amp;lt;br&amp;gt;&lt;br /&gt;
Another possibility for creating a big but good root file system would be the way from the GC-Linux wiki [4].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Need Help? Got Ideas? Want to Help?=&lt;br /&gt;
Join the GC-Forever Community! :) [0]&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
[0] http://nold.freeunix.net/devnull/index.php?show=./Stuff/Consoles/Gamecube/GameCube%20Linux&amp;lt;br&amp;gt;&lt;br /&gt;
[0] http://gc-forever.com&amp;lt;br&amp;gt;&lt;br /&gt;
[1] http://www.gc-linux.org/wiki/Memory_and_Filesystems#Creating_the_SD.2FMMC_card_device_nodes&amp;lt;br&amp;gt;&lt;br /&gt;
[2] http://www.gc-linux.org/wiki/Memory_and_Filesystems#Create_the_device_node_for_the_audio_RAM_driver&amp;lt;br&amp;gt;&lt;br /&gt;
[3] http://packages.debian.org&amp;lt;br&amp;gt;&lt;br /&gt;
[4] http://www.gc-linux.org/wiki/Creating_a_Root_Filesystem&amp;lt;br&amp;gt;&lt;br /&gt;
[5] http://ngc.scorpei.com/GUIDE-SD_adapter.html&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=Playing_Imports&amp;diff=8081</id>
		<title>Playing Imports</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=Playing_Imports&amp;diff=8081"/>
		<updated>2024-07-23T07:04:35Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: bolded title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Gamecube utilized a regional lockout protection which was governed by the IPL ROM ([[WikiScene:GameCube#GameCube_Original_BIOS_.28IPL.29_Version_Information|Gamecube &amp;quot;BIOS&amp;quot;]]) to prevent the console from playing out-of-region titles(&#039;&#039;&#039;imports&#039;&#039;&#039;). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since the hardware is mostly 100% identical across all regions (apart from NTSC/PAL hardware differences for video output), several universal methods exist which can bypass the lockout protection. These methods include:&lt;br /&gt;
* [[Region Switch]] - NTSC-U &amp;lt;small&amp;gt;&#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;&amp;lt;/small&amp;gt; NTSC-J only hardware mod to allow NTSC-U models to play Japanese titles, or vice versa.&lt;br /&gt;
* [[Freeloader]] - Bootdisc based solution for original titles without modifying the Gamecube.&lt;br /&gt;
* [[:Category:Modchips|Modchip]] - Hardware based solution installed to the Gamecube. &lt;br /&gt;
* Homebrew - Particularly [[Swiss]], this will allow imports from all regions to be played.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; style=&amp;quot;background:lightblue;font-size:10pt&amp;quot; width=&amp;quot;200&amp;quot;| Gamecube Regions&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; style=&amp;quot;background:lightblue;font-size:10pt&amp;quot; width=&amp;quot;300&amp;quot;| Region Lock Bypass Methods&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &#039;&#039;&#039;NTSC-U&#039;&#039;&#039; &amp;lt;br&amp;gt; ( USA )&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[Region Switch]] for NTSC-J &amp;lt;br&amp;gt; [[Freeloader]] &amp;lt;br&amp;gt; [[:Category:Modchips|Modchip]] &amp;lt;br&amp;gt; Homebrew&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &#039;&#039;&#039;NTSC-J&#039;&#039;&#039; &amp;lt;br&amp;gt; ( Japan )&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[Region Switch]] for NTSC-U &amp;lt;br&amp;gt; [[Freeloader]] &amp;lt;br&amp;gt; [[:Category:Modchips|Modchip]] &amp;lt;br&amp;gt; Homebrew&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &#039;&#039;&#039;PAL&#039;&#039;&#039; &amp;lt;br&amp;gt; ( Europe &amp;amp; Australia )&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[Freeloader]] &amp;lt;br&amp;gt; [[:Category:Modchips|Modchip]] &amp;lt;br&amp;gt; Homebrew&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Howto]]&lt;br /&gt;
[[Category:Modchips]]&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
	<entry>
		<id>http://www.gc-forever.com/wiki/index.php?title=Freeloader&amp;diff=8080</id>
		<title>Freeloader</title>
		<link rel="alternate" type="text/html" href="http://www.gc-forever.com/wiki/index.php?title=Freeloader&amp;diff=8080"/>
		<updated>2024-07-23T07:03:56Z</updated>

		<summary type="html">&lt;p&gt;Lumina33: linkify Datel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Freeloader_ntsc.jpg|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Freeloader&#039;&#039;&#039; is a bootdisc based solution developed by [https://www.datel.co.uk/ Datel] to circumvent regional lockout on the Gamecube. It allows unmodified Gamecubes to play &#039;&#039;&#039;original&#039;&#039;&#039; out-of-region ([[Playing_Imports|import]]) titles. Datel sold different versions of Freeloader compatible for use with NTSC (USA, JPN) and PAL (EUR) Gamecubes.&lt;br /&gt;
&lt;br /&gt;
[[File:Freeloader_pal.jpg|left|thumb|150px]]&lt;br /&gt;
== Features ==&lt;br /&gt;
* Launch and play imported GameCube games from any region.&lt;br /&gt;
* No need to modify your console - keeps your warranty intact.&lt;br /&gt;
* Add loads of new titles to your GameCube collection, including games never released in your region.&lt;br /&gt;
* Play ANY region of games ANY GameCube.&lt;br /&gt;
* Fast and easy to use. &lt;br /&gt;
* Compatible with the [[WikiScene:GameCube#Panasonic_Q|Panasonic Q]].&lt;br /&gt;
* Not 100% compatible with the Japanese version of &#039;&#039;F-Zero GX&#039;&#039; and &#039;&#039;Paper Mario 2&#039;&#039;.&lt;br /&gt;
* Does not allow use of DVD±R for [[Create_a_bootable_homebrew_disc|homebrew]] or [[Backing_Up_Discs|backups]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; When playing a Japanese game, the memory card will be re-formatted to Japanese settings, overwriting any existing US or European settings and any game saves stored on the card. Recommend keeping a separate card for use with Japanese games only.&lt;/div&gt;</summary>
		<author><name>Lumina33</name></author>
	</entry>
</feed>