Homebrew (video games)
This article needs additional citations for verification. (April 2009) |
Homebrew is a term frequently applied to video games produced by consumers to target proprietary hardware platforms not typically user-programmable or that use proprietary storage methods. This might include games developed with official development kits, such as Net Yaroze or Linux for PlayStation 2. Some more frequently used labels, such as freeware, are often applied as well. A popular type of homebrew game is the fangame. In Japan, these games are usually called "Dōjin soft", the legality of which depends on what the software does.
Development
Homebrew games for older systems are typically developed using emulators for convenience, since testing then requires no extra hardware on the part of the programmer. Development for newer systems typically involves actual hardware given the lack of accurate emulators. Efforts have been made to use actual console hardware for many older systems, though. Atari 2600 homebrew developers use various methods, for example, burning an EEPROM to plug into a custom cartridge board or audio transfer via the Starpath Supercharger. Game Boy Advance homebrew developers have several ways to use GBA flash cartridges in this regard.
Along with the Sega Dreamcast, Game Boy Advance, and PlayStation Portable, the most frequently used platforms for homebrew development are older generations of consoles, among them the Atari 2600 and Nintendo Entertainment System (NES). The Atari 2600 and NES are particularly interesting because they use the 6502 instruction set, likely familiar to people who have programmed 8-bit home computers, such as the Commodore 64 or Apple II. Another factor in the popularity of older or portable systems for homebrew development, relative to modern consoles, is that their simplicity enables an individual or small group to develop acceptable games in a reasonable time frame.
All major sixth generation consoles enjoy some popularity with homebrew developers, but less so than earlier generations. This is mostly the case because software production requires more resources, accurate emulators do not exist yet, and the consoles themselves often employ rather complex systems to prevent the execution of unauthorized code. Homebrew developers must often exploit loopholes to enable their software to run.
Second through fourth generation consoles
Atari 2600
The Atari 2600, released in 1977, is a popular platform for homebrew projects. Games created for the Atari can be executed using either an emulator or directly when copied onto a blank cartridge making use of either a PROM or EPROM chip. Unlike later systems such as the Microsoft Xbox, the console does not require a modchip.
Although there is one high-level compiler available (batari Basic), most development for the Atari 2600 is still done in 6502 assembly language, Homebrews written in assembly are typically considered programming challenges.
The Atari 2600 lacks video memory, and programs run simultaneously with the television screen, updating graphical registers a fraction of a second before the television draws each scan line. For each scan line, the system's Television Interface Adapter can only draw two custom, eight-bit graphical objects, a twenty-bit "playfield", and three solid pixels: two "missiles" and one "ball".[1] Timing is critical in this environment. If a program takes too long to update the registers, the television will update the screen before the graphics are properly initialized, resulting in glitches or other video problems. In this respect, Atari 2600 programming could be considered a form of hard real-time computing.
Nintendo Entertainment System (NES)
Several compilers are available for the Nintendo Entertainment System, but like the Atari 2600, most development directly applies assembly language. One impediment to NES homebrew development is the relative difficulty involved with producing physical cartridges. Several varieties of custom integrated circuits are used within NES cartridges to expand system capabilities; most are difficult to replicate except by scavenging old cartridges. The hardware lockout mechanism of the NES further complicates construction of usable physical cartridges.
Sega Mega Drive/Genesis and Master System
Both the Sega Genesis/Mega Drive and Sega Master System benefit from limited homebrew development, as there is no physical lockout mechanism, thereby easing the operation of software on these platforms. Homebrew efforts for the Mega Drive/Genesis have grown, as there are now several full games scheduled for release in physical form, such as Pier Solar and the Great Architects and a port of Teenage Queen. Frog Feast for the Mega Drive/Genesis and Mighty Mighty Missile for the Sega Mega-CD are examples of homebrew games already released for Sega consoles.
Sixth generation consoles
Nuon
The Nuon was a game chip built into several DVD players. The company who made the system called VM Labs released a homebrew SDK just before they went bankrupt. The graphical capabilities are on par with the PlayStation. Homebrew Nuon apps can only be played on Samsung DVD-N50x and RCA Nuon DVD players.
Sega Dreamcast
The Sega Dreamcast was a console that, while overshadowed by its later competitors, is particularly lauded for its homebrew development capabilities because it does not need any modchip to run them. One example is Last Hope released by Red Spot Games in 2007, which was actually a port from a Neo-Geo homebrew game.
PlayStation 2
Early versions of the PlayStation 2 have a buffer overflow bug in the part of the BIOS that handles PS1 game compatibility; hackers figured out how to turn this into a loophole called the PS2 Independence Exploit, allowing the use of homebrew software. Another option for homebrew development is the use of a modchip. Or, developers can use a PS2 hard drive and HD Loader.
As of May 2008 there is a superior exploit called Free McBoot, it works on all PS2s including slimlines except for SCPH-9000x model with BIOS 2.30 and up. Unlike the Independence Exploit it does not require a trigger disk, this allows it to be used on systems with dead disk drives. The one drawback is that the app MUST be installed/compiled on each individual memory card, copying the exploit will NOT work, this means that an already modded or exploited system is required to install FMCB on a memory card.
Sony also released an official homebrew-development kit that allows PlayStation 2 to run Linux. See the PS2 Linux article for more information.
Nintendo GameCube
The GameCube, when it comes to homebrew, has historically enjoyed little success because it uses quite obscure hardware. False rumors claimed that the GameCube used non-standard DVD-media that was incompatible with consumer DVD burners, or stated that GameCube discs spun backwards, claiming that the discs were written from the outside in.
In fact, the only barrier to burning GameCube discs with a consumer DVD burner is the Burst Cutting Area, a "barcode" in the innermost ring of the disc, an area inaccessible to most burners and writeable only by very expensive disc pressing machines. For a long time the only way to run homebrew software on GameCube was through a patching-system exploit of Phantasy Star Online Episode I & II, requiring users to find the game and a Broadband Adapter. Both of these are difficult to find because a disc has been released (under the name Phantasy Star Online Episode I & II Plus) and thus the original PSO is rarely sold, and because the Broadband Adapter is not often carried in stores due to the Gamecube's very limited selection of online games.
Currently the most common method is to use a special loader software, often using a modchip, and homebrew software can be loaded from DVD-R, SD card (with an SD Gecko adapter), or over Ethernet. As the GameCube's case does not fit a full-size DVD-R, third party replacement cases are available. Most of GameCube homebrew software is developed to emulate other videogame systems such as NES, SNES, Master System, Genesis, Turbografx-16, Game Gear, GameBoy, GB Color, GBA, Neo Geo Pocket, Neo Geo CD, MAME, N64,...
Surprisingly, the once slow Gamecube scene is doing much better than it was during its commercial lifespan thanks to bearing technical similarities with its popular successor, the Nintendo Wii.
Microsoft Xbox
The Xbox console uses several measures, including cryptographically signed code to obfuscated firmware. The primary method of executing homebrew code required installing a mod chip which could be flashed with a modified Microsoft BIOS. This BIOS allowed the system to boot unsigned executables (XBEs) and control several hardware variables, such as region coding and video mode. With the leak of Microsoft's official development kit (XDK) homebrew coders were able to write replacement Xbox GUIs (known as dashboards), games and applications for the Xbox.
A softmod which uses a commercial game such as 007: Agent Under Fire, Mech Assault or Splinter Cell to load up homebrew software has been discovered. This method utilizes modified font and sound files to cause the Xbox to intentionally crash and load one of the homebrew dashboards. Once in this condition, the Xbox was now able execute homebrew games and applications.
Because the Xbox uses standard PC libraries, writing homebrew games is extremely easy, as the vast majority of commands available for a PC programmer are available to an Xbox homebrew programmer. This ease of coding is the same reason that commercial developers loved the Xbox.
One of the more common type of homebrew games for the Xbox are ports of PC games whose source has been publicly released or leaked. Many classic PC games have been released for Xbox, but most are created with the XDK which limits their availability. The only places to find these ports are through IRC or peer-to-peer browsers.
The Xbox system is also very adept at running emulators which have been ported from PC. The Xbox is able to emulate systems up to the previous generation, including the Nintendo 64 and the PlayStation. For this reason, many different emulators have been created for the Xbox, and some of them have even more development support than their PC counterparts.
Recently, progress has been made in the creation of a legal development kit for the Xbox, known as OpenXDK. The OpenXDK is intended to allow coders to create new applications and games, as well as port existing source codes, without using illegally obtained Microsoft software. The games and applications created under the OpenXDK can be legally hosted on the net, and downloaded by users.
Even after the release of the Xbox 360, the Xbox homebrew scene remains extremely active, with new game ports, emulators, and applications coming out weekly. Microsoft is currently encouraging Xbox 360 homebrewed content with XNA, though at a charge of $99 per year.
Seventh generation consoles
PlayStation Portable (PSP)
Nintendo DS
Nintendo DSi
Acekard released the Acekard 2i as a completely compatible DSi homebrew platform, however it does only support DS mode, so the extra power, the cameras and the sd slot aren't usable.
Xbox 360
Microsoft has released a free Software Development Kit (SDK) to would-be homebrew programmers. This SDK, called XNA Game Studio, is a free version of the SDK available to professional development companies and college students. But to create Xbox 360 games you must pay for a premium membership to the XNA Creators Club. Once the games are verified, the games written with XNA Studio can be made available for 200, 400, or 800 Microsoft Points to all Xbox 360 owners (through Xbox Live). This allows creators of homebrew content access to their target audience of Xbox 360 owners. This content is available under the Community Games section of the NXE (New Xbox Experience).
On March 20, 2007 it was announced that a hack using the previously discovered hypervisor vulnerability in the Xbox 360 kernel versions 4532 and 4548 had been developed to allow users to run XeLL, a Linux bootloader. The initial hack was beyond the average user and required an Xbox serial cable to be installed and a flashed DVD Drive firmware. Felix Domke, the programmer behind XeLL, has since announced a live bootable Linux CD suitable for novice users, with the capabilities to be installed to the SATA hard drive of the Xbox 360. Despite the availability of such a distribution, the Xbox 360 still isn't considered a popular platform for homebrew development, given the dependence of the exploit on the DVD-ROM being able to load a burnt DVD game, a modified version of the game King Kong, and two older kernel revisions of the console itself.
A group independent of Microsoft is working on the means to run homebrew code, as part of the Free60 project.
Note: The hypervisor vulnerability in the Xbox 360 kernel versions 4532 and 4548 was addressed by Microsoft with the release of is NXE system and dashboard update in 2008.[citation needed]
PlayStation 3
The Playstation 3 has been designed to run other operating systems from day one. Very soon after launch, the first users managed to install Fedora Core 5 onto the Playstation 3 via the 'Install Other OS' option in the PlayStation 3's XMB (Xross Media Bar), which also allows configuring the PlayStation 3 to boot into the other OS installed by default.
So far, several Linux flavors have been successfully installed to the PlayStation 3, such as Fedora Core 5, Fedora Core 6, Gentoo, Ubuntu and Yellow Dog Linux (YDL). The latter comes installed with the Cell SDK by default, allowing programmers a low cost entry into Cell programming. See also: Linux for PlayStation 3
Originally, graphics support was limited to framebuffer access only (no access to the PlayStation 3's graphics chip RSX yet), however, as of Yellow Dog Linux 6.1, the restrictions on the RSX chip have been lifted.
Homebrew developers do have access to the Cell microprocessor, including 6 of its 7 active Synergistic Processing Elements (SPEs). The Game OS resides under a hypervisor and prevents users from taking full control of the PlayStation 3's hardware. This is a security measure which helps Sony feel secure enough to allow users to install other operating systems on the PS3.
The Sixaxis controller has also been exposed to Linux and Windows[2], but as of yet no driver seems to have been successfully created that exposes its tilt sensor and accelerometer functionality. However other drivers have successfully used it as a controller for gaming etc.
In May 2008, a vulnerability was found in the Playstation 3 allowing users to install a partial debug firmware on a regular console. However, the debug functionality is disabled, so neither homebrew applications nor backup games can be run yet.
Another exploit was found on August 14 2008, allowing users to boot some backup games from the PlayStation 3's HDD, although the exact instructions on how to do this were not released at that time. However, a different person posted instructions 10 days later, which explained the exploit.[3]
On January 6, 2009 a hacker known as "hackerpointer" leaked the jig files needed to launch the Playstation 3 into service mode. Although the Playstation 3 can be triggered into service mode, its not of any use as of now because the files needed to make changes to the console have not been leaked.[4]
Nintendo Wii
GP32
The GP32 by Gamepark Holdings could run homebrew software through a special firmware which required the user to register on Gamepark's website, which also hosted some homebrew software.
GP2X
The GP2X by Gamepark Holdings is fully dedicated to running homebrew software.
Pandora
The Pandora (console) will be able to run homebrew software from almost any source, such as SD cards, USB hard disks and flash drives, and wireless shares. It will also be capable of compiling its own software internally using the GNU compiler collection.
Gizmondo
The Gizmondo was cracked in early 2006. Because Tiger Telematics, the creator of Gizmondo, is bankrupt, a small but loyal fan base provided a fair amount of homebrew applications and emulators.
See also
References
- ^ "AtariAge - Atari 2600 Programming". AtariAge.com. Retrieved December 27.
{{cite web}}
: Check date values in:|accessdate=
(help); Unknown parameter|accessyear=
ignored (|access-date=
suggested) (help) - ^ "Sixaxis driver for Windows XP".
- ^ "How to run a PS3 game backup".
- ^ http://www.ps3news.com/PS3Dev/playstation-3-service-mode-jig-set-up-files-leaked