Manejo & personalización de Pogoshell

Introducción
Este tutorial está enfocado a aquell@s que ya han leído el fichero README original de Sasq que viene con el PogoShell, o su traducción al castellano. A partir de ahí, me limito a recopilar aquí mi experiencia personal con este programa para intentar aclarar algunos puntos que la documentación adjunta del programa no dejan muy claros.


Comienzo rápido
¿Qué es PogoShell?
Es una especie de "sistema operativo" para cartuchos Flash de Game Boy Advance.

¿Para qué sirve?
Principalmente, para compilar varias Roms de Game Boy Advance (GBA de ahora en adelante) en una sola y poder seleccionar la Rom que queramos a través de un menú con un interfaz de iconos que recuerda al de Windows.

Además, gestiona él solito los saves (comprimiéndolos para ahorrar espacio) y tiene otras aplicaciones y plugins que permiten almacenar y visionar imágenes Bmp, JPG, textos, reproducir ficheros de música MOD, MIDI, ejecutar Roms de otros sistemas como ZX Spectrum, Sega Master System, Nintendo Entertaiment System, PC Engine... y cada vez más, puesto que hay más cosas en desarrollo...

¿Cómo se utiliza?
Simplemente, copia en el directorio "root" las Roms de GBA que quieras, y luego ejecuta "go.bat". Esto creará una Rom llamada "flashme.bin" o "Rom.bin", que contiene todo lo que hay en el directorio "root". Esta Rom puede entonces ser grabada en un cartucho Flash mediante el software que utilicemos normalmente y ejecutada en una GBA.

Explicación detallada de cada fichero
Lo que nos encontramos cuando instalamos el PogoShell después de bajárnoslo es una serie de ficheros y carpetas, cada uno de los cuales tiene una función que paso a explicar a continuación.

No tienes por qué tener todos y cada uno de estos archivos y carpetas; depende de la versión de PogoShell que tengas, puede que algunos de ellos no estén, pero creo que es mejor citarlos todos.

root: Esta carpeta equivale al directorio raíz de los archivos que queramos meter en la Rom. Contiene una serie de subcarpetas y ficheros que luego estarán dentro del cartucho. Es aquí donde hay que copiar las Roms, txts, mods, Bmps, etc. que quieras que contenga tu cartucho, puedes organizarlas en carpetas, cambiarles el nombre, etc. antes de hacer la Rom.

shell: Esta carpeta equivale a la carpeta SYSTEM de Windows. Contiene los archivos de sistema” que necesita el Pogo para funcionar en la GBA. Recomiendo que antes de trastear en esta carpeta hagáis una copia de seguridad de ella, por lo que pueda pasar... gui.cfg: Equivalente al SYSTEM.INI de Windows. Es un fichero de texto que se puede editar para personalizar el PogoShell. Más adelante explicaré cómo se hace.

filetypes: Fichero de texto que contiene las asociaciones de tipos de archivo a programas e iconos; o sea, viene a decir algo así como ‘Los archivos con extensión .tal” quiero que tengan el icono tal.icon” y quiero que me los abras con el programa cual.bin”. Más adelante explicaré cómo utilizarlo.

icons.bmp: Es un fichero Bmp que contiene los gráficos e iconos del PogoShell. Por supuesto se puede editar para cambiar la apariencia del escritorio”.

splash.bmp: (sólo versión 1.3) Es un fichero Bmp (opcional) que contiene una pantalla de bienvenida que aparece cuando se arranca PogoShell.

texts: Fichero de texto que contiene todos los textos que aparecen en las ventanas de ayuda, las opciones, etc. Se puede editar para cambiar el idioma del PogoShell (hasta cierto punto, ya que las fuentes del Pogo no tienen eñes, tildes ni caracteres especiales).

cart.sub: Básicamente contiene información para PogoShell del tipo de cartucho que estamos usando. Si PogoShell no funciona bien con nuestro cartucho, se puede probar reemplazando este fichero, bien por 'visoly.sub' si tenemos un cartucho FAL o F2A, o bien por 'Ez Flash.sub' o XG Flash.sub” si tenemos un EZ o un XG. Hay que renombrar el fichero elegido como cart.sub. (Ver más adelante)

fixed.font & nokia.font: Ficheros de fuentes (tipos de letra) del sistema.

plugins: Carpeta que contiene los plugins que utiliza PogoShell para manejar ciertos tipos de archivos (Bmp's, Mods, Roms de Nes...) Si encuentras por internet algún plugin para un determinado tipo de archivo, por ejemplo, para ver archivos jpg, para utilizarlo debes renombrar ese plugin como jpg.bin y colocarlo en esta carpeta antes de hacer la Rom.

fonts: Carpeta que contiene tipos de fuente del PogoShell.

saves: Carpeta que contiene los saves de las distintas Roms.

examples: Carpeta de ejemplos que contiene algunas cosillas para demostrar lo que puedes hacer con PogoShell. Puedes borrarla sin problemas si no te interesa.

tools: Esta carpeta contiene herramientas de conversión:

makefs.exe: Es el ejecutable que utiliza Pogo para compilar y generar la Rom. Se abre a través de go.bat, aunque también se puede utilizar así: makefs.exe shell.bin Rom_a_generar.bin root

Para cartuchos Visoly antiguos: makefs.exe -old shell.bin Rom_a_generar.bin root

html2pogo.exe: (a partir de la versión 1.3) Sirve para convertir un fichero HTML en un fichero txt que el visor de textos interno de PogoShell pueda entender.

Su sintaxis es: html2pogo.exe fichero_original.htm fichero_convertido.txt

makefont.exe: Sirve para convertir fuentes de Windows en fuentes de PogoShell.

icon.exe: Sirve para crear un fichero de icono para el PogoShell a partir de un icono en formato Bmp de 8 bits.

Sintaxis: icon.exe fichero_a_convertir.Bmp fichero_de_icono.icon

Los iconos creados de esta manera sirven para un solo archivo y se utilizan simplemente renombrándolos igual que el archivo, con un punto delante para que no se vean, y colocándolos en la misma carpeta. Por ejemplo, te has currado un icono de Megaman en Bmp y lo quieres utilizar para la Rom "megaman.gba" que tienes en la carpeta "root/Roms". Pues lo conviertes con icon.exe, lo renombras a ".megaman.icon" y lo colocas en la misma carpeta, y ya está.

fL.exe: Es un programa de DOS que envía la Rom que le digamos a un Flash Advance Linker a través del puerto paralelo del PC. Pero tal vez sea mejor utilizar en su lugar el software de grabación que uses normalmente.

exithack.exe: Este programa sirve para modificar una Rom, para que cuando la reinicias vuelvas al PogoShell en vez de a la pantalla de inicio de la Rom. (Sólo funciona con las que soportan reinicio, como por ejemplo Zelda: A Link to the Past, que se reinicia al pulsar A+B+SELECT+START.

dcmp.exe: Sirve para comprimir un fichero de música .MOD en un formato compatible con la GBA.

Se utiliza así:

dcmp.exe fichero_original.mod fichero_comprimido.mdz

Pero para obtener un fichero mod que puedas comprimir, tienes que convertirlo primero utilizando la herramienta modpack.bat junto con el ejecutable modconv.exe. Este último no viene con el PogoShell, tendrás que bajártelo de http://www.codewaves.com/gbaplay.html, como ya viene explicado en el README del PogoShell.

Romtrunc.exe: Sirve para "recortar" las Roms, en realidad se limita a eliminar los bytes repetidos (que no se utilizan) al final de una Rom. Es muy útil para ganar espacio en el cartucho. Se usa así:

Romtrunc.exe Rom_original.bin Rom_recortada.bin

plugins: Esta carpeta contiene el código fuente de los plugins modplayer” y Bmpview”, por si eres programador y te apetece trastear un poco con ellos.

themes: En esta carpeta hay varias subcarpetas, cada una con un tema de escritorio” alternativo para el PogoShell. Si quieres probar un tema, copia todos los ficheros que hay dentro de su subcarpeta en la carpeta root/.shell”, sobreescribiendo los que ya haya allí (has hecho copia de seguridad, ¿verdad?) y luego haz la Rom.

Ez Flash: (sólo versión 1.3) En esta carpeta hay ficheros para hacer compatible tu cartucho con PogoShell en caso de que algo no vaya bien. Los creadores del programa se dieron cuenta de que podría dar problemas dependiendo del tipo de cartucho que se utilizara, y crearon unos archivos .sub diferentes para hacerlo compatible con cada tipo de cartucho: Visoly/Flash 2 Advance, XG Flash o Ez Flash.


- Si tienes un cartucho Visoly o Flash2Advance, no debería darte ningún problema.

- Si tu cartucho es Ez Flash, hay que hacer lo mismo pero con el fichero Ez Flash.sub”.

- Si tu cartucho es un Visoly o Flash2Advance y te da problemas, puedes probar con visoly.sub”, y si aún así algo va mal, simplemente elimina el fichero "cart.sub".

- Si tu cartucho es XG Flash, tienes que sustituir el fichero root/.shell/cart.sub” con XG Flash.sub” y renombrarlo como cart.sub” para que funcione.

También se incluye el código fuente de los archivos .sub para que otros programadores puedan adaptar el PogoShell a cualquier cartucho nuevo. Nota: Los creadores de PogoShell advierten que no lo han probado con cartuchos EZ ni XG, pero debería funcionar gracias a este sistema.

docs: (sólo versión 1.3) Carpeta que contiene los ficheros de ayuda de PogoShell

textreader.txt: (sólo versión 1.3) Explica el funcionamiento del Visor de Textos mejorado que se incluyó en la versión 1.3 del PogoShell: cómo pasar las páginas, convertir los ficheros html para verlos con él, etc.

faq.html: (sólo versión 1.3) Es una lista de preguntas frecuentes que los creadores del PogoShell incluyeron en la versión 1.3.

changes: Fichero de texto con el historial de cambios de PogoShell a lo largo de las diferentes versiones. En la versión 1.3 está dentro de la carpeta docs”.

readme.txt: El fichero de ayuda original del PogoShell. En la versión 1.3 está dentro de la carpeta docs”.

formats.txt: Fichero de texto que contiene el código fuente del sistema de archivos de PogoShell, como ayuda para los programadores que quieran modificarlo. En la versión 1.3 está dentro de la carpeta docs”.

go.bat o bien create and flash.bat: según la versión de PogoShell que tengamos: Este archivo es el que hay que ejecutar para generar una Rom con el contenido de la carpeta root”. Además, si tienes un Flash Advance Linker conectado, intentará enviársela (excepto en la versión 1.3, en la cual go.bat sólo crea la Rom, no la manda).

create.bat: El mismo que el anterior, pero sólo crea la Rom, no la manda.

shell.bin: Contiene los datos básicos que utiliza PogoShell para crear un sistema de archivos y carpetas. No hay que hacer nada con él, simplemente es necesario que esté ahí.

rom.bin o bien flashme.bin, según la versión de PogoShell que tengamos: Este fichero es la Rom una vez terminada y lista para copiarla a nuestro cartucho flash. Se crea con go.bat. Los ficheros y carpetas cuyo nombre comienza por un punto (como .shell o .plugins) no se verán en la GBA a no ser que actives la opción correspondiente en Settings.

Personalización de Pogoshell - Los temas de escritorio
Cambiar el aspecto del escritorio y los iconos de PogoShell es bastante sencillo. Necesitaremos el Bloc de Notas y el programa Paint de Windows. Con el Paint modificaremos los gráficos y con el Bloc de Notas editaremos los colores de las fuentes y el fondo, los tamaños de las barras y el tipo de fuente que se usará por defecto. Recuerda hacer copias de seguridad de todo aquello con lo que quieras trastear!

Icons.bmp: Lo primero que haremos será abrir el fichero root/.shell/icons.Bmp con el Paint.
El archivo tiene más o menos esta pinta:

El aspecto de la barra de título (la barra superior del PogoShell), la barra de estado (la barra inferior) y los iconos se puede modificar a placer, siempre y cuando no alteres su tamaño (las barras deben medir 240 píxeles de ancho; el alto se puede modificar si luego lo modificas también en el fichero gui.cfg, al igual que el tamaño de los iconos).

Si quieres utilizar una barra de título diferente para las ventanas (como las de ayuda, preguntas, etc) puedes añadir una entre la barra de estado y los iconos, haciendo el Bmp un poco más alto, y luego indicando su altura en píxeles en el fichero gui.cfg (modificando o añadiendo la línea wb_height=[altura_en_píxeles])

El Bmp debe guardarse como Bmp de 256 colores, y recomiendo guardarlo con el Paint de Windows ya que si utilizamos un programa de retoque fotográfico como Photoshop y similares, puede que al guardarlo como Bmp de 256 colores lo haga con una paleta distinta de la del sistema, y no se vería bien.

Gui.cfg: Ahora veremos el contenido del fichero "gui.cfg" con el Bloc de Notas y el significado de cada línea. Se pueden cambiar a voluntad y trastear con ellos si sabemos lo que estamos haciendo; por ejemplo, si en el fichero "icons.Bmp" los iconos miden 16 píxeles de ancho e indicamos otro valor en el fichero "gui.cfg", la cosa no va a funcionar. Algo parecido pasa si ponemos el mismo color de letras y de fondo, no vamos a ver nada ;)

- tb_height=12: Altura en píxeles de la barra de título.

- sb_height=12: Altura en píxeles de la barra de estado.

- wb_height=0: Altura en píxeles de la barra de título de las ventanas.

- icon_width=16: Anchura en píxeles de un icono.

- icon_height=15: Altura en píxeles de un icono.

- fgcolor=0: Número del color que quieres usar en 1er plano (color de las letras).

- bgcolor=15: Número del color que quieres usar en 2º plano (color del fondo).

- num_icons=13: Número total de iconos.

- icons=.shell/icons.Bmp: Ruta donde está el fichero icons.Bmp dentro del root.

- font=.fonts/nokia.font: Ruta donde está el fichero de fuente que queremos usar por defecto.

- text=.fonts/dungeon7.font: Fuente a usar como fuente normal en el visor de textos.

- big=.fonts/dungeon12.font: Fuente a usar como fuente grande en el visor de textos.

- emphasis=.fonts/dungeoni.font: Fuente que queremos usar como fuente cursiva en el visor de textos.

- txfgcolor=0: Número del color que quieres usar en 1er plano (color de las letras) en el visor de textos.

- txbgcolor=15: Número del color que quieres usar en 2º plano (color del fondo) en el visor de textos.

- splash=.shell/splash.Bmp: Ruta del Bmp que queremos utilizar como pantalla de bienvenida (opcional).

Todas las rutas están referidas a la carpeta "root", puesto que ésta es la raíz.
Aquí va una lista con los números de los colores:

00 = Negro.
01 = Rojo Oscuro.
02 = Verde.
03 = Amarillo Mostaza.
04 = Azul Oscuro.
05 = Fucsia.
06 = Azul Claro.
07 = Gris.
08 = Negro.
09 = Rojo.
10 = Verde Claro.
11 = Amarillo.
12 = Azul.
13 = Rosa.
14 = Cyan.
15 = Blanco.

Para hacer una pantalla de bienvenida, simplemente crea con el Paint un fichero Bmp de 256 colores que mida 160 píxeles de alto por 240 de ancho, con la imagen que quieras, llámalo por ejemplo "welcome.Bmp" y colócalo en la carpeta "root/.shell".

Luego añade o modifica la línea

splash=.shell/welcome.Bmp

en el fichero gui.cfg y listo. (esto sólo funciona en la versión 1.3 de PogoShell)

Filetypes: Vamos ahora con el fichero filetypes. Éste sirve para modificar los iconos y los plugins para todos los tipos de archivo.

Abrámoslo con el Bloc de Notas:

5
txt 4 TXT
diz 4 TXT
nfo 4 TXT
cfg 4 TXT
sav 12
AV
set 11 SET
mod 3 /.plugins/modplay.bin Playing MOD music, START = Quit
cw 3
.plugins/modplay.bin Playing MOD music, START = Quit
cwz 3 /.plugins/modplay.bin Playing MOD music, START = Quit
mdz 3 /.plugins/modplay.bin Playing MOD music, START = Quit
k3m 3 /.plugins/krawall.bin Playing K3M music, START = Quit
nes 9
zcode 1 /.plugins/frotz.bin
gba 1 EXE
bin 2 EXE
nsf 3 /.plugins/nsf.bin Playing NES music, START = Quit
mb 1 MB
Bmp 6
font 7 FNT
mid 3 /.plugins/midi08.bin Playing MIDI music, START = Quit

Lo primero que hay es una línea que sólo contiene un número: el 5. Esta línea indica el número del icono que se utilizará por defecto (para los ficheros que PogoShell no sepa manejar y las carpetas vacías). Este icono (el que tiene aspecto de hoja en blanco) es el que ocupa el 5º lugar en el fichero "icons.Bmp", sin contar el primero, que es el icono número 0 y es el de las carpetas. Todos estos iconos se numeran así.

El resto de las líneas utilizan todas la misma forma, aunque algunas omiten algunos parámetros. La sintaxis es:

[extensión] [número_de_icono] [ruta_del_plugin_que_lo_abre] [texto_de_información]

El texto de información se muestra en la barra de abajo (la barra de información) de la pantalla cuando se está ejecutando el plugin. Por ejemplo, en la línea

mod 3 /.plugins/modplay.bin Playing MOD music, START = Quit

V emos que los ficheros con extensión "mod" llevan el icono número 3, se abren con el plugin "modplay.bin" situado en la carpeta ".plugins/", y se muestra el texto "Playing MOD music, START = Quit" en la barra de información.

Personalización de PogoShell - Los textos
Ya hemos hecho un repaso al aspecto estético del programa, pero que hay de sus textos y comentarios?

Fichero Texts:
En la carpeta /root/.shell hay un archivo llamado "texts". Este archivo se puede abrir con el bloc de notas de Windows, y tiene un aspecto parecido a éste:

Do you wish to load\n%s ?
New font set.
YES
NO
Do you wish to save\n%s to bank %d ?
Save cancelled.
Saved %s
Could not save,
SRAM full!
SRAM Help
Directonal Pad = Navigate\n
R+A = Copy File
L+A = Paste File\n
R+L+A = Delete File\n
B = Back to root\n
START = Switch...
Settings Help

... (continúa)

Como se puede comprobar, en cada línea hay uno de los mensajes que PogoShell puede mostrar. Vamos a intentar traducirlo. Hay que seguir algunas reglas básicas.

Desactivar el ajuste de línea del Bloc de Notas de Windows (en el menú Formato -> Ajuste de línea”), porque si no, no podremos editar cada línea por separado. Por ejemplo, donde dice:

Directonal Pad = Navigate\nR+A = Copy File, L+A = Paste File\nR+L+A = Delete File\n B = Back to root\nSTART = Switch between SRAM views\n

Estas dos líneas son una sola, lo que pasa es que si tenemos activado el ajuste de línea, nos la partirá en dos, dando al traste con todo lo que escribamos a partir de aquí.

No utilizar tildes, eñes o símbolos como ¿” o ¡”, ya que éstos no se mostrarán.

Limitarse a cambiar las líneas que aparezcan en nuestro fichero texts”, ya que si añadimos o quitamos líneas, no se verán correctamente.

Procurar que los textos que escribimos tengan aproximadamente la misma longitud que los que estamos sustituyendo (hay un cierto margen, pero, por si acaso...)

Tener en cuenta los siguientes símbolos (a aquellos que sepan algo de C les sonarán bastante):

\n = PogoShell continuará escribiendo en la siguiente línea si se encuentra este símbolo.

%s = PogoShell sustituirá este símbolo por un texto. ¡No quitarlo ni añadirlo!

%n = PogoShell sustituirá este símbolo por un número. ¡No quitarlo ni añadirlo!

Veamos un ejemplo, la línea que dice:

Do you wish to save\n%s to bank %d ?

se mostrará así en la GBA:

Do you wish to save
nombre_fichero.sav to bank 1 ?

Así que si la cambiamos por:

Deseas salvar\n%s en el banco %d ?

se mostrará en la pantalla del PogoShell como:

Deseas salvar
nombre_fichero.sav en el banco 1 ?

Ahora bien, parece que la segunda línea es un poquito demasiado larga. Podemos arreglar eso añadiendo \n” donde queremos que se salte la línea:

Deseas salvar\n%s \nen el banco %d ?

El resultado sería:

Deseas salvar
nombre_fichero.sav
en el banco 1 ?

Fíjate en que los símbolos %s y %d que ya hay NO se tocan, se dejan como están; representan datos que PogoShell maneja internamente (como el nombre de las ROMS o el número del banco de SRAM). Fíjate también en que no hemos utilizado el símbolo ¿” para comenzar la pregunta, porque aunque lo pusiéramos no se vería (no se incluye en las fuentes del PogoShell).

Las opciones de PogoShell
Vamos a explicar cada una de las opciones de PogoShell por separado.

Hide known extentions (Ocultar extensiones conocidas)

Si está activada (YES), oculta las extensiones de los ficheros conocidos (ficheros con iconos asociados).

2D Icon Layout (Vista por iconos)

Si está activada (YES), los ficheros se muestran como iconos en el explorador (es más rápido moverse entre ellos de esta manera). Si está desactivada (NO) los ficheros se muestran en forma de listado.(caben más archivos en la pantalla de esta otra manera).

Textviewer fixed font (Fuente fija en el visor de texto)

Si está activada (YES), se utilizará el tipo de letra "fixed.font" en el visor de textos. En la versión 1.3 esta opción ya no hace nada (ya que el visor de textos fue remodelado completamente).

Ask before saving (Preguntar antes de salvar)

Si está activada, al arrancar te pedirá confirmación antes de copiar el save de la última rom ejecutada a la SRAM.

Ask before loading (Preguntar antes de cargar)

Si está activada, te preguntará antes de cargar el save para las roms cuando las ejecutas desde el explorador.

Map /S-ram in filesystem (Mostrar /sram como carpeta)

Si está activada mostrará la sram como una carpeta más en el directorio raíz (root).

Map /settings in filesystem (Mostrar /settings como carpeta)

Si está activada mostrará las opciones como una carpeta más en el directorio raíz (root).

Hide dot files (Ocultar los archivos .xxxxx)

Si está activada, no se mostrarán los ficheros que comiencen con un punto "." Esto incluye el fichero de opciones en la SRAM, llamado ".state" y los directorios ".plugins" y ".shell".

Return from S-Ram/Settings (Recordar los directorios)

Si está activada, recuerda el directorio donde estabas antes de entrar en la pantalla de SRAM o en la de Opciones, y regresa allí cuando pulsas B. Si no, siempre saldrás al directorio raíz cuando pulses B desde estas pantallas.

Auto manage S-Ram banks (Autogestionar los bancos de SRAM) (sólo versión 1.3)

Si está activada (¡altamente recomendado!) PogoShell buscará los saves de las ROMs que ejecutemos en toda la SRAM y no sólo en el banco activo.

Always introskip (Saltar siempre las intros) (sólo versión 1.3)

Si está activada PogoShell intentará saltarse la intro cuando ejecutemos una ROM que la tenga.

Hide filesizes (Ocultar tamaño de archivos) (sólo versión 1.3)

Si está activada, no se mostrará la columna que muestra el tamaño de los archivos en la vista por listado.

Sort alphabetically (Ordenar alfabéticamente) (sólo versión 1.3)

Si está activada se mostrarán tanto los ficheros como las opciones por orden alfabético

Los Saves
Bueno, el tema de los saves parece un poco complicado, pero en realidad es bastante sencillo. Un cartucho Flash tiene 4 "slots" o "bancos" de memoria SRAM donde salvar partidas, numerados 0, 1 ,2 y 3. PogoShell se "apropia" de los cuatro y utiliza los 3 últimos para almacenar, comprimidos, los saves de todas las ROMs que hayas ejecutado. El banco que queda, el banco 0, es donde PogoShell descomprime el save necesario según la ROM que estés ejecutando. Es decir:

1) Ejecutas una determinada Rom, por ejemplo Zelda.gba

2) PogoShell busca en el banco activo de la SRAM (o en todos si tenemos activada la opción "Auto manage SRAM banks") el save (comprimido) de esa ROM.

3) Si lo encuentra, lo descomprime en el banco 0.

4) El Zelda lee el save (descomprimido) del banco 0, si existe.

5) Salvas tu partida en el Zelda, éste escribe el save en el banco 0.

6) Apagas tu GBA.

7) Cuando la vuelves a encender, PogoShell lee el save Zelda.sav del banco 0, lo comprime y lo graba en uno de los otros 3 bancos.

Por lo tanto, si quieres extraer un save del Zelda para compartirlo por Internet o para utilizarlo en un emulador, el procedimiento es:

1) Ejecutas la ROM del Zelda. Ahora, el save está descomprimido y en el banco 0.

2) Apagas la GBA.

3) Conectas el cartucho a tu linker y lees el banco 0 de la SRAM. Contiene el save sin comprimir, que es justo lo que necesitas; lo nombras Zelda.sav y listo.

Si lo que quieres es utilizar el save Zelda.sav que ya tienes en el ordenador, porque te lo han pasado, porque es un backup de una partida antigua, etc. haces lo siguiente:

1) Debes tener la ROM del Zelda grabada en el cartucho con el PogoShell.

2) Ejecutas la ROM del Zelda.

3) Apagas la consola.

4) Conectas el cartucho a tu linker y grabas el fichero Zelda.sav en el banco 0 de la SRAM.

5) Cuando la vuelves a encender, PogoShell "recuerda" que la última ROM que ejecutaste fue el Zelda y detecta que hay un save suyo en el banco 0, con lo cual lo comprime y lo graba en uno de los otros 3 bancos.

Y si lo que quieres es hacer un backup completo de todos los saves de todos los juegos que tengas en el cartucho, conectas tu linker y lees toda la SRAM. Ésta contiene todos los saves comprimidos.

También hay un método para extraer un save de entre los saves comprimidos de un backup completo, consiste en utilizar un programa llamado extract_save.exe.

Conclusiones personales
Para utilizar PogoShell, el procedimiento que personalmente me parece más cómodo es el siguiente:

1) Recortar todas las ROMs de GBA que queramos meter en el cartucho con el programa "romtrunc.exe" para hacer más sitio.

2) Organizar todo dentro de la carpeta "root". Yo tengo la versión 1.3 y uso las siguientes carpetas:

root
.shell
.fonts
.plugins
Images
Music
Texts
   |-E-Books
   |-Guides
GBA Roms
NES roms
Others

Además de los plugins que PogoShell 1.3 trae "de serie", yo utilizo otros dos: midi08.bin para reproducir ficheros .mid y PocketNES 9.6 para ejecutar roms de NES. También existen varias aplicaciones bastante curiosas:

Keeper (por Malefactor), un editor de textos (parecido a una agenda, útil para guardar direcciones, teléfonos, contraseñas)

Calculator Advance (por Kyle Kienapfe): Una calculadora (tiene raíces cuadradas y potencias)

PaintMaster (por Jason Haffner): Un programita similar al Paint, útil para hacer esquemas y planillos cuando no hay lápiz ni papel a mano.

3) Crear o instalar un tema de escritorio que nos guste.

4) Ejecutar "go.bat" y compilar la ROM. Comprobar que no supere el tamaño del cartucho:

512 Megabits (cart) = 64 MegaBytes (PC)
256 Megabits (cart) = 32 MegaBytes (PC)
128 Megabits (cart) = 16 MegaBytes (PC)
64 Megabits (cart) = 4 MegaBytes (PC)
Si lo supera o no llega retiraremos o añadiremos ficheros (imágenes, roms de NES, textos) según veamos.

5) Grabar la ROM en el cartucho.

6) Disfrutar ;)

7) Cuando queramos cambiar de juegos, no tendremos que preocuparnos de los saves, ni siquiera los tocaremos. Con compilar una nueva ROM y grabarla de nuevo, listo. Si luego queremos volver a utilizar los juegos que teníamos antes, compilamos otra rom con ellos y la grabamos; los saves seguirán estando. Siempre podemos ir haciendo backups, pero como PogoShell comprime los saves, nos cabrán montones y montones de saves antes de que tengamos que borrar algo.

Notas adicionales (basadas en la experiencia personal):

- El plugin BMP incluido con PogoShell 1.3 admite BMPs de 8 ó 24 bits. Pueden tener un tamaño superior a 240x160, en cuyo caso se pueden desplazar con la cruceta por la pantalla.

- El plugin JPG incluido con PogoShell 1.3 admite JPGs de 256 colores de tamaño no superior a 240x160. Es preferible que midan 240x160 exactamente, ya que si miden menos se muestran distorsiones en los bordes.

- Es mejor sustituir el plugin "nes.bin" incluido con PogoShell por la última versión disponible de PocketNES (el fichero "PocketNES.gba", renombrado a "nes.bin", sin ninguna ROM de NES dentro de él, sólo el menú.)

- Si varias Roms de GBA te muestran una pantalla blanca cuando las ejecutas y no pasan de ahí, trata de cambiar el fichero cart.sub por uno apropiado a tu tipo de cartucho, o incluso elimínalo (yo tengo un F2A 256, tenía ese problema con el fichero "cart.sub" que venía por defecto, lo eliminé y ahora todo va como la seda).

Nephiel