Homebrew (video games)

From Wikipedia, the free encyclopedia

Jump to: navigation, search
Screenshot of the Atari 2600 homebrew "Four Play" (2006)

Homebrew is a term frequently applied to video games or other software 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".

Contents

[edit] Development

Homebrew games for older systems are typically developed using emulators for convenience, since testing them 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 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.

Homebrewing is not only limited to games - there are numerous demos that have been released for most systems with a homebrew scene.

[edit] Second through fourth generation consoles

[edit] Atari 2600

Go Fish, an Atari 2600 homebrew game developed in 2005.

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

[edit] 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.

[edit] 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.

There's a QBASIC-like high level compiler named basiegaxorz for the Sega Genesis

[edit] Fifth generation consoles

[edit] Atari Jaguar

The Atari Jaguar was the last console produced by the Tramiel owned version of Atari. The console has a strong homebrew development scene strongly facilitated by the release of the publishing rights for the console by one time owners Hasbro [2]. Prominant homebrews for the console have included Battlesphere and Frog Feast in addition to many other projects. Coding for the console is predominantly done in assembly language and the Atari SDK has been made available. Since emulation of the console is still limited, coding is best conducted using a real Jaguar console with the official Jaguar 'Alpine' Devkit, a Skunkboard Flash Cart or a BJL uploader.

[edit] PlayStation

It is possible to play homebrew on any model PlayStation through the use of a modchip or the double swap trick (or, for the very first SCPH-1001 models put into production, the CD player trick). Homebrew was promoted by Sony with the Net Yaroze which had a large scene for quite some time. Unfortunately, the official Net Yaroze site was shut down in mid-2009.

[edit] Sega Saturn

The Sega Saturn homebrew scene is small but active. As with the PlayStation, all models are capable of homebrew. Modchips for the Saturn Model 1 have been scarce for sometime now (as it seems that no one has produced any new modchips in years), so the only two options left are to either perform the easy swap trick or extensively modify a Saturn Model 2 modchip.

Running homebrew on the Model 2 is as easy as bridging two points on the modchip, soldering a wire from the modchip to the Saturn power supply, and inserting it where the CD-rom ribbon cable inserts. The swap trick is more difficult to pull off on this Model due to the lack of an access light.

[edit] Nintendo 64

The Nintendo 64 homebrew scene isn't very large, but homebrew can still be played and developed on one through the use of a Doctor V64 (Akklaim even used some of these to develop Turok).

[edit] Sixth generation consoles

[edit] 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.

[edit] Dreamcast

The 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 (except for the very late models which have copy protection). Some popular homebrew titles include Last Hope released by Red Spot Games in 2007, which was actually a port from a Neo-Geo homebrew game and DUX, a shmup. These releases were written using the KallistiOS development system, developed by Dan Potter. A port of the freeware high-level development language Fenix is also available for use in game development. Many DIV Games Studio games (on which Fenix is based) have been ported to the Dreamcast. Original games, such as Primitive Nightmare and Space Dodger, have also been written using Fenix.

[edit] 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.

[edit] Nintendo GameCube

The Nintendo GameCube, when it comes to homebrew, has historically enjoyed little success because it uses quite obscure hardware. False rumors claimed that the Nintendo GameCube used non-standard DVD-media that was incompatible with consumer DVD burners, or stated that Nintendo GameCube discs spun backwards, claiming that the discs were written from the outside in.[citation needed]

In fact, the only barrier to burning Nintendo 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 Nintendo 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 Nintendo 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 Nintendo GameCube's case does not fit a full-size DVD-R, third party replacement cases are available. Most of Nintendo GameCube homebrew software is developed to emulate other videogame systems.

Surprisingly, the once slow Nintendo GameCube scene is faring much better than it was during its commercial lifespan thanks to bearing technical similarities with its popular successor, the Wii.

[edit] 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.

[edit] Seventh generation consoles

[edit] PlayStation Portable (PSP)

[edit] Nintendo DS

[edit] Nintendo DSi

Team Twiizers has done a demonstration on running homebrew in DSi mode via a new game, Classic Word Games. However, it needs a special modified cardtridge.

WinterMute has released an exploit for Classic Word Games that allows to run a small assembler program in DSi mode with no additional hardware.

There are many FlashCarts like EZ-Flash Vi and Acekard 2i that can run DSi software, but only in DS/DS Lite mode, so the extra RAM, cameras and the SD slot are not usable at this time.

[edit] Xbox 360

Microsoft has released its proprietary Software Development Kit (SDK) for free, 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 80, 240, or 400 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 Indie Games section of the 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 his NXE system and dashboard update in 2008.[citation needed]

[edit] 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), some access to the RSX graphics chip was achieved however Sony blocked this with firmware release 2.10.

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[3], 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.[4]

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.[5]

[edit] Wii

[edit] 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.

[edit] GP2X

The GP2X by Gamepark Holdings is fully dedicated to running homebrew software.

[edit] 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.

[edit] 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.

[edit] References

[edit] External links