Homebrew
# Homebrew

Se suele denominar homebrew (software casero no oficial) a las aplicaciones y juegos creados por programadores aficionados y expertos para cualquier plataforma, generalmente videoconsolas oficiales. Recientemente, se han desarrollado consolas diseñadas específicamente para la ejecución de software homebrew, el cual se caracteriza por ser gratuito y en su mayoría abierto al público en general.

## Generalidades

Homebrew consiste en modificar software de todo tipo desarrollado por programadores aficionados o expertos. Ya los primeros programas desarrollados por la industria privada en los inicios de la informática eran juegos y, poco más tarde, aplicaciones de ofimática hechas en casa por aficionados. Hoy en día, en la mayoría de los casos conocidos, los programas homebrew son versiones de prueba compartidas como freeware o shareware que se distribuyen libremente por internet. Muchas veces, estas herramientas han sido desarrolladas en importantes universidades por grupos de estudiantes que distribuyen versiones de prueba de su software bajo licencias de uso público y sin ánimo de lucro, aunque también hay programadores a nivel individual que desarrollan interesantes aplicaciones autodidactas que desde su domicilio particular llegan a diversas partes del mundo y de este modo le dan a conocer como autor creativo o prestigian el nivel tecnológico del autor o de su país. Ejemplos muy conocidos son Audacity y Emule. Los malwares que tienen por objeto alterar el normal funcionamiento del ordenador en forma de virus informático son en su mayoría programas homebrew también. Este amplio colectivo ha dedicado su esfuerzo en forma de trabajo individual o en proyectos comunes que van acumulando en internet funcionalidades y librerías de código abierto que son utilizadas y ampliadas por nuevos programadores autodidactas.

El homebrew es importante porque abre las puertas a que muchos de los aficionados a desarrollarlo puedan conseguir un empleo remunerado y, además, a que otros desarrolladores continúen ampliando el uso comercial de nuevos y viejos productos, a que surja la posibilidad profesional de nuevos sistemas operativos, se amplíe la oferta de aplicaciones, etc., lo que conlleva a la evolución tecnológica de la sociedad y al abaratamiento de recursos que de otra manera solo estarían disponibles para unos pocos privilegiados.

Aunque su uso más conocido es la creación de software para videoconsolas recreativas portátiles o de sobremesa, se ha adaptado software desarrollado para cualquier tipo de aparato; como software original libre en programas operativos para maquinaria computarizada industrial, diccionarios y agendas electrónicas, teléfonos, emisores o receptores de GPS, maquinaria de uso médico y ordenadores actuales o antiguos de los 80 y 90, que ya no están a la venta por lo sencillo de su interfaz. El software nuevo original se ha desarrollado muchas veces como prácticas en lenguajes informáticos relativamente poco conocidos como C++, LUA, Palib, etc., o por otros motivos. Son muy conocidos por ser noticia desarrollos de lenguajes de programación cuyo uso afecta a millones de personas o algoritmos con aplicaciones homebrew destinadas a la industria, agricultura, banca, tratamiento médico, lectura, enseñanza, entre otras. Algunos autores incluso han realizado su software para optar a premios de entidades públicas o privadas, obtener becas de especialización o conseguir un empleo remunerado. Aparte de la tradicional forma de pago, existen otros autores que se conforman con menos, desde los que llegan al presupuesto insertando publicidad en su software o los que se ven recompensados por el reconocimiento del público, como ocurrió en el caso del autor de Facebook. Muchas de las licencias empleadas por los creadores permiten el uso gratuito de su software, siempre y cuando se respeten sus derechos y se les acredite como autores del mismo. En varias ocasiones podemos mandar un mensaje de felicitación si nos ha gustado su trabajo o ponernos en contacto con el autor o los autores o con sus representantes para fines particulares o comerciales. Numerosas empresas privadas han comercializado legalmente el software creado en un principio como homebrew.

La palabra homebrew tiene relación con el Homebrew Computer Club, aunque se desconoce si fue este el origen. En Japón estos juegos son llamados Dojin Soft, que es la manera de decir que este software no es ilegal, en principio, aunque depende del uso que se haga de él. Suele cuestionarse la legalidad del homebrew; sin embargo, su uso está muy extendido entre los usuarios avanzados. Además, su uso, excluyendo las copias de seguridad no propietarias, es completamente legal.

## Homebrew en diferentes consolas

### Sega Dreamcast

La Sega Dreamcast (DC) es, en muchos aspectos, una de las pioneras en incorporar homebrew. Para lograr correr este tipo de software era necesario utilizar una puerta trasera que permitiría iniciar la consola desde discos compactos convencionales (la DC utilizaba un formato especial llamado GD-ROM).

* Aplicaciones: Reproductores de MP3 y de video, visores de Flash, y versiones de Linux entre otras.
* Emuladores: Con el tiempo, la consola ha llegado a ejecutar emuladores de SNES, Genesis, NES, Neo Geo y Neo Geo CD, entre otros.
* Juegos: Se han realizado ports del clásico Doom y de la primera y segunda versión de Quake entre otras adaptaciones. Además, se ha desarrollado un sinnúmero de juegos freeware y de código abierto, destacándose los clones de Tetris y de juegos de naves (shoot'em ups).

### Nintendo Entertainment System (NES)

Varios compiladores están disponibles para la Nintendo Entertainment System, pero como el Atari 2600, la mayoría del desarrollo se aplica directamente en lenguaje ensamblador. Un impedimento para el desarrollo homebrew en la NES es la relativa dificultad involucrada con la producción de cartuchos físicos, aunque cartuchos flash de terceros existen, haciendo posible desarrollar homebrew en el hardware original de NES. Muchas variedades de circuitos integrados para el usuario se utilizan dentro de los cartuchos de NES para ampliar las capacidades del sistema, la mayoría son difíciles de replicar, excepto al eliminar cartuchos usados. El mecanismo de bloqueo de hardware de la NES complica aún más la construcción de cartuchos físicos utilizables. Sin embargo, la NES-101 elimina el chip de cierre 10NES para cualquier juego, ya sea homebrew, sin licencia, o de otra región de un partido oficial, se reproduce. El chip 10NES finalmente se puede desactivar de forma permanente mediante la realización de un pequeño cambio en el hardware.

### Super Nintendo Entertainment System (SNES)

Después de la interrupción de los juegos en 1998, y la producción en 1999, los fanáticos de la Super Nintendo Entertainment System hicieron imágenes ROM homebrew, incluso sin el apoyo de Nintendo para la consola. Luego del lanzamiento de la SNES hubo un gran interés en la ingeniería inversa del sistema para permitir jugar homebrew y copias de seguridad. Nintendo equipó la máquina con varias medidas de seguridad, tales como el chip de bloqueo para evitar que código no autorizado se ejecute en la máquina. Finalmente, la comunidad homebrew descubrió como los juegos corrían en el hardware de SNES y fueron capaces de eludir sus mecanismos de seguridad. Empresas como Bung Enterprises lanzaron complementos de hardware como la serie Game Doctor SF. Esto permitió a los usuarios no solo copiar los juegos, sino también ejecutar juegos caseros elaborados en el hardware de SNES. Las ROMs homebrew pueden convertirse al formato Game Doctor SF y ponerse en un disquete de 3½. Juegos tan grandes como 12 Mbit (1.5 megabytes) pueden ponerse en disquetes formateados a 1.6 megabytes.

Un dispositivo alternativo fue el Super Flash, por Tototek, que permitía múltiples juegos para quemarse en un chip de memoria flash del cartucho (que permitía hasta 48 Mbits). Este chip fue la ROM con máscara para el cartucho de desarrollo Super Flash. El dispositivo era fácil de usar y tenía una interfaz de usuario en el extremo del ordenador. El cartucho de Super Flash simplemente se podía conectar y cargar los juegos que uno quisiera. Esto permitió a los usuarios crear un juego de SNES y jugarlo en un cartucho real en lugar de un disquete o disco flexible.

La legalidad de los lanzamientos de juegos homebrew de SNES no ha sido probado en los tribunales, y es discutible si omitir sus medidas de seguridad entraría en conflicto con las leyes modernas de ingeniería inversa. Presumiblemente, se pueden producir legalmente juegos caseros para SNES, siempre y cuando no se incluye material con derechos de autor.

Anteriormente, en la década de 1990, Nintendo demandó a Color Dreams por producir juegos de NES sin una licencia oficial. El resultado fue un acuerdo no revelado, pero Color Dreams siguió produciendo juegos sin licencia. La fuerza de la posición de Color Dreams radica en que emplearon un método alternativo con el código del chip de bloqueo 10NES en lugar de duplicarlo ilegalmente.

### Nintendo DS

Para ejecutar homebrew en la Nintendo DS se necesita una tarjeta o cartucho flash como M3 DS Real, Supercard, acekard, ez-flash, R4DS o análogas. Dicha tarjeta se usa como medio de almacenamiento para los programas, los archivos multimedia y los juegos.

Existen muchos sitios en Internet dedicados a la distribución y difusión del homebrew.

* Aplicaciones: Reproductores de música, Reproductores de videos en muchos formatos, incluyendo Avi, calculadoras graficadoras, diccionarios interactivos, lectores de libros electrónicos como DS Libris para EPUB, linux, voip, aplicaciones...
* Emuladores: Emuladores de NES, Sega Megadrive/Genesis, Gameboy Color, Gameboy Advance, Amiga, NeoGeo, Master System, SuperNintendo, Amstrad, Commodore, MAME, Scumm, Spectrum
* Juegos: Muchos títulos caseros

### Sony PSP

Para ejecutar homebrew en la PSP es necesario tener un firmware alternativo llamado Custom Firmware.

* Downgrades: Se llama "downgrade" al mecanismo para bajar de versión a una PSP para así llegar a una versión con menores restricciones, pudiendo de esta manera instalar un firmware alternativo (Custom Firmware) que sea capaz de hacer funcionar homebrew y copias de seguridad, entre otras funciones.
* Aplicaciones: Pequeños reproductores multimedia, exploradores, programas de información, plugins con diferentes funciones (como visualizar la pantalla de la PSP en el PC, etc) aunque también dispone -entre otras cosas- de completos shells que disponen de una gran variedad de funciones.
* Emuladores: Los emuladores más importantes son los de Game Boy Advance, PlayStation, SNES , Genesis, Nintendo 64 entre otros.
* Plugins: Los plugins son pequeñas aplicaciones con una función específica, en la PSP se ejecutan a través del Recovery Mode (modo de recuperación). Su función en esta plataforma es bastante interesante, algunos plugins pueden, por ejemplo, permitir la ejecución de códigos gameshark, hacer capturas de pantalla o ampliar las funciones del firmware en general.
* Versiones: Han surgido infinidad de versiones para este sistema PSP entre las que se incluyen el primer homebrew que surgió llamado DevHook, seguido ya de otras generaciones y los llamados CFW (Custom Firmwares), que han tenido un gran desarrollo gracias a hackers como Dark_Alex, Total Noob, Virtuous Flame, Coolbird, Neur0n y Lktd9 los cuales actualmente han sacado CFW firmados como por ejemplo: PRO-(A, A1, A2, A3... B, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, TN-HEN/-A-B..., ME 1, 2, 3... (6.39), CLFW 1, 2, 3... (6.39), LK-A, LK-II v1, Lk-B, etc.

### Microsoft Xbox

Xbox ha sido una de las plataformas más prolíficas en materia de homebrew, dada su versatilidad y su arquitectura x86. Se logra ejecutar este tipo de software ya sea con un modchip o aprovechando un agujero de seguridad. Se ha desarrollado un kit de programación completamente libre llamado OpenXDK, para uso exclusivo con la consola.

* Aplicaciones: Reproductores de música y videos en diversos formatos incluyendo DVD; administradores de archivos y, más notoriamente, distribuciones de Linux.
* Emuladores: Emuladores de todo tipo han sido programados para esta consola, entre los que se destacan PCSX y Surreal, de PSX y Nintendo 64 respectivamente.
* Juegos: Una serie de ports han sido adaptados para Xbox, generalmente han sido más sencillos de desarrollar dada la mencionada potencia y versatilidad de la consola.

### Microsoft Xbox 360

Xbox 360, la sucesora directa de la Xbox, tenía un fallo en el firmware oficial, que se solucionó con una posterior actualización y que permite tener acceso a todo el hardware. La explotación por parte de hackers de este fallo pasó a conocerse como el hack Jtag.

* Emuladores: Emuladores de todo tipo han sido programados para esta consola, entre los pocos que hay algunos son de Gameboy, Snes, NES, Sega, Etc.
* Copias de seguridad: Existen aplicaciones que nos permiten cargar copias de seguridad desde algún disco duro externo, o desde el mismo disco duro de la consola, no está de más decir que cambiando el firmware del lector de la Xbox 360 también podremos cargar backups grabados en DVD doble capa.

### Nintendo Wii

La Wii permite la incorporación de homebrew mediante la explotación de diversos fallos, de acuerdo a la versión del software oficial que se posea. La ejecución de las diversas aplicaciones se realiza por medio del Homebrew Channel, programa que se puede instalar y ejecutar desde el menú principal de la consola.

* Aplicaciones: Reproductores de MP3 y de vídeo (desde SD, USB o DVD), editores de texto o utilidades que utilizan las características especiales del mando wii (tales como un módulo que permite dibujar en la pantalla utilizando el mando como pincel), pasando por un reproductor que admite YouTube pero muy reducido en cuanto a opciones.
* Emuladores: Existen emuladores de consolas como NES, SNES, Sega Genesis, Sega Master System, MSX, Game Boy Color, Game Boy Advance, MAME, Neo Geo Pocket, Nintendo 64, PC Engine, PSX, SCUMM, ZX Spectrum, Chip-8, Amstrad CPC, Atari 2600 y Neo Geo.
* Juegos: Entre los juegos, nos encontramos desde clásicos como Pong, Asteroides o Tetris hasta otros más modernos como Quake. Destacar el GuitarFun, versión del Guitar Hero realizada por un español.
* Copias de seguridad: Además el Homebrew se puede usar para que la consola cargue copias de seguridad, sistema popularmente conocido como piratear sin chip. O incluso instalar juegos de la Consola Virtual y WiiWare.

### PlayStation 3

PlayStation 3 puede ser utilizada para homebrew mediante la utilización del dispositivo PS Jailbreak o sus derivados clónicos o de código abierto, únicamente con el firmware 3.41 o anteriores. Adicionalmente, es posible realizar un downgrade desde las versiones 3.42 y 3.50. En este caso, se estaría ejecutando software no firmado.

También es posible instalar y ejecutar homebrew hasta la versión de firmware 3.55, a partir del descubrimiento de las claves privadas de la consola que el hacker George Hotz sacó a la luz con su firmware personalizado versión 3.55 GeoHot. En este caso, se estaría ejecutando software firmado.

* Aplicaciones: Servidores FTP, cargadores de firmwares modificados, y cargadores de juegos (Backup Manager y Open Manager inicialmente; luego Multiman, Gaia y Rogero).
* Emuladores: han sido lanzados emuladores de NES, SNES, Sega Genesis, Game Boy Advance, PSX, SCUMM, así como versiones del emulador multiarcade Final Burn Arcade y del emulador multisistema Mednafen.
* Juegos: Existen ports del videojuego Doom, además de versiones de reconocidos juegos como Tetris, entre otros.
