Dudas al crear .pkg de juegos Amiga

Hola

He estado buscando el modo de poder crear .pkg propios para lanzar desde XMB juegos de Commodore Amiga via E-UAE sin exito.

Hay herramientas que hacen una labor similar para juegos de msdos, de psp etc.. incluso el retro xmb creator permite crear iconos de acceso directo a retroarc pero para Amiga no he encontrado nada similar.

Se que existe la posibilidad de hacerlo de manera manual ya que he encontrado .pkg de ejemplo para Amiga 500 y 1200 pero no el modo de poder crearlos por cuenta propia.

¿Alguien podria remitir a algun tutorial o paso a paso para poder crearlos?

He intentado hacerlo por mi cuenta con una serie de pasos pero llega un punto donde no se continuar:

(1) Extraigo el contenido de uno de los pkg que he encontrado de ejemplo, lo hago mediante el emulador rpcs3 y accediendo a la carpeta de instalacion tras instalar el pkg que tenia de prueba
El Pkg contiene la siguiente estructura básica que hay que modificar:

|_USRDIR
| |_UAE.cfg (Fichero de configuracion)
| |_[Game name].adf (Disco de juego)
| |_rom (rom kickstart correspondiente)
|_PARAM.SFO
|_EBOOT.BIN

(2) Uso un nuevo nombre del juego que me servira tambien para la ruta, el nombre de 9 caracteres, por ejemplo BADLANDS0
(3) Mediante el PS3InfoEditor actualizo el PARAM.SFO
- Cambio el ID de 9 caracteres (ejemplo: BADLA-NDS0)
- Actualizo el nombre el juego
- Guardo el PARAM.SFO modificado
(4) Actualizo el USRDIR/UAE.cfg:
- Cambio las rutas para apuntar al nuevo juego
- Actualizo en floppy, el nombre del nuevo disco adf que previamente he dejado en /USRDIR


A partir de aqui es cuando viene el problema, entiendo que debo editar el .bin en hexadecimal para cambiar la referencia del juego anterior por BADLANDS0 (En este ejemplo) y recomponer el pkg pero no tengo claro como hacerlo :(

Cualquier ayuda seria de utilidad
Gracias
Saludos
Melchor escribió:A partir de aqui es cuando viene el problema, entiendo que debo editar el .bin en hexadecimal para cambiar la referencia del juego anterior por BADLANDS0 (En este ejemplo) y recomponer el pkg pero no tengo claro como hacerlo :(

Mientras estaba leyendo tu mensaje estaba pensando en eso, heheh
No estoy seguro si esto pasa en todos los casos, pero tienes que mirar si la ruta de instalacion aparece dentro del EBOOT.BIN

Lo primero que tienes que hacer es renombrar el EBOOT.BIN a EBOOT.SELF
La "S" significa que esta "signed"... es decir que esta encriptado... asi que lo tienes que desencriptar

Eso se hace con el programa SCETOOL que funciona en linea de comandos... no recuerdo exactamente pero seria algo asi, con la opcion -d (para desencriptar)
C:\scetool.exe eboot.self -d eboot.elf

Fijate que le he cambiado la extension de archivo quitandole la "S"
Eso te crea un archivo nuevo eboot.elf donde ya puedes ver nombres, rutas, etc...

Lo tienes que abrir en un editor hexadecimal (por ejemplo HxD) y buscar en el archivo.... ctrl+f.... y pegas el nombre de la ruta de instalacion y le das a OK

Y luego para volver a encriptarlo es mas complicado, se hace tambien con scetool, aunque hay otros programas mas simples de usar (pero estan usando scetool internamente)
Lo mejor es usar una opcion del scetool que sirve para encriptar usando otro archivo como "patron"
El problema es que hay muchisimas formas diferentes de encriptar... y lo que tu necesitas es encriptarlo igual que el original... asi que tienes que usar el EBOOT.SELF original como patron

De esa forma tu archivo final tiene las mismas firmas que el original

Y a estas alturas ya tendrias otro archivo nuevo que le puedes llamar EBOOT_MOD.SELF... solo tienes que renombrarlo a EBOOT.BIN





P.D.
En la PS3 un EBOOT.BIN es exactamente lo mismo que un EBOOT.SELF
La unica diferencia es que la extension de archivo esta remombrada, pero en realidad los EBOOT.BIN se deberian llamar EBOOT.SELF
Muchas gracias por la info,

Intento recopilar un paso a paso de los pasos que habria que dar.

Objetivo del paso a paso: A partir de un .pkg de un juego de Amiga basado en el emulador E-UAE generar otro distinto:

(1) Extraer el contenido del pkg con cualquier herramienta o accediendo a la carpeta install tras instalarlo en el emulador rpcs3
(2) Elegir nombre del nuevo juego 9 caracteres, por ejemplo si el original se llama AAAA00000 tomaremos para este paso a paso el nuevo juego BBBB11111
(3) Editar el PARAM.SFO
- Cambio el ID de 9 caracteres de AAAA00000 a BBBB11111
- Cambiar el nombre del juego
(4) Actualizar el fichero de configuracion del emulador que estará en la ruta USRDIR/UAE.cfg
- Cambiar las rutas reemplazando AAAA00000 por BBBB11111
- En la opción floppy0, floppy1 etc.. actualizar al nuevo disco adf del nuevo juego que tendremos que dejar previamente en el directorios USRDIR/
(5) Renombrar EBOOT.BIN a EBOOT.SELF
(6) Desencriptar con scetool: scetool.exe EBOOT.SELF -d EBOOT.ELF
(7) Abrir el EBOOT.ELF mediante un editor hexadecimal (HxD).
(8) Buscar y reemplazar en HxD las apariciones de la ruta AAAA00000 por BBBB11111
(9) Encriptar el EBOOT.ELF a partir de patron original:
sceetol.exe -t EBOOT.SELF -e EBOOT.ELF EBOOT_MOD.SELF

En donde:
EBOOT.SELF -> El original EBOOT.SELF que habiamos renombrado desde EBOOT.BIN y que se utiliza como patron para encriptar de nuevo
EBOOT.ELF -> El EBOOT.ELF que hemos modificado con el HxD
EBOOT_MOD.SELF -> EL EBOOT encriptado ya modificado de salida

(10) Renombrar EBOOT_MOD.SELF a EBOOT.BIN

Con todo esto, tendria preparados los contenidos para crear el pkg. En este punto ¿Que herramienta es la mas sencilla para crear el pkg? ¿Hay que tener algun tipo de consideracion como firmas o similar?

Revisando tutoriales, veo muy diferentes aplicaciones para realizar este ultimo paso pero no consigo aclararme con el metodo a seguir :(

Gracias!
Saludos.
Creo que esta todo bien :)
Aunque lo del scetool te lo dije mal, para desencriptar se hace asi (hay que poner la opcion primero)
(6) Desencriptar con scetool: scetool.exe -d EBOOT.SELF EBOOT.ELF

Para hacer el PKG no se decir cual es la mejor opcion porque yo no he hecho muchos, supongo que te funcionaria con alguna de las herramientas de "Trueancestor" (hay una que se llama PKG repackager o algo asi)
Pero bueno... quizas alguien que nos este leyendo te dice otra opcion mejor
Gracias por la info, parece que el EBOOT.BIN del juego origen que he renombrado a EBOOT.SELF y ahora intento pasar a EBOOT.ELF con scetool no permite hacer nada :(

scetool.exe -d EBOOT.SELF EBOOT.ELF
scetool 0.2.8 <public build> (C) 2011-2012 by naehrwert
NP local license handling (C) 2012 by flatz

[*] Warning: Could not load keys.
[*] Warning: Could not load loader curves.
[*] Warning: Could not load vsh curves.
[*] Error: Could not find keyset for SELF.
[*] Error: Could not decrypt header.

Seguire intentado ver por donde avanzar

Saludos.
@Melchor eso es que te faltan las keys del scetool, copia estos archivos en la ruta del scetool dentro de la carpeta de "data", si ya los tienes reemplazalos por estos del link que son mas nuevos
https://github.com/haxxxen/ps3mfw-build ... aster/data
Thanks!

He conseguido extraer el ELF con el scetool y las librerías. He modificado las rutas en el mismo fichero .ELF

Con trueancestor 1.80 he hecho el resign y generado el EBOOT.BIN

Ya lo tengo todo en la carpeta

El ultimo paso es generar el .pkg. Una ultima duda ¿Qué programa utilizar para generar el pkg? He leído makepkg pero no consigo encontrarlo por ningún lado :(

Gracias
Saludos.
Prueba con esto, nunca lo he usado pero deberia funcionar porque permite hacer un monton de cosas
http://www.psx-place.com/threads/truean ... kyu.10067/

Cuando dije lo de trueancestor me referia a este programa... si buscas en google por ese nick vas a ver varias herramientas que llevan el nombre de "trueancestor", es porque las hizo la misma persona, pero hacen cosas diferentes


-----------
Por cierto... si quieres comprobar si tus archivos estan bien (antes de crear el PKG) hay una forma de "imitar" una instalacion... simplemente copiando archivos a mano en el hdd

Se hace copiando las carpetas y archivos a la ruta que seria la de instalacion... dentro de dev_hdd0/game/
Como si se hubiese instalado el PKG normalmente
Y cuando ya lo tengas todo en su sitio... reinicias la PS3 y entras al "recovery menu" y usas la opcion 4 (la que dice "reconstruir base de datos"), aqui puedes ver como hacerlo
http://www.semperthree.com/ps3recoverymenu.html

La "base de datos" de la PS3 sirve como un "index" de acceso muy rapido que es usado por el XMB para mostrar el contenido de la PS3 (juegos, pkg, y cualquier otra cosa)
Al iniciar la PS3 el XMB carga la informacion de la base de datos (en vez de escanear el hdd completo), eso permite que el XMB cargue el contenido muy rapidamente al inicio
Como no has hecho una instalacion normal de esos archivos... entonces no los muestra el XMB porque no estan en la base de datos... por eso no se ven :)

Al usar esa opcion que he dicho del recovery menu (que deberia tardar menos de 5 minutos en completarse)... se escanea todo el contenido del hdd interno de la PS3 y tus archivos (añadidos de forma manual no-standard) se añaden a la base de datos como si los hubieses instalado desde un PKG

Es util para hacer pruebas :)

Y otro por cierto... una vez que has hecho esto... si necesitas modificar el EBOOT.BIN o el PARAM.SFO otra vez, solo tienes que reemplazarlos de forma manual... y despues de reemplazarlos tienes que ejecutar el juego al menos una vez, porque si no lo ejecutas el PARAM.SFO nuevo es ignorado por el XMB (se carga una copia del anterior que se ha metido en la base de datos)
Cada vez que ejecutas un juego la base de datos se actualiza con la informacion de ese juego, por eso hay que ejecutarlo al menos una vez
Muchas gracias por la ayuda.

Finalmente he conseguido generar un par de pkgs de juegos de amiga, todavia no he podido probarlos en la PS3, a ver si puedo el fin de semana

Recopilo los pasos seguidos, pensaba de inicio ver si era posible automatizar esto en una tool pero con todos los pasos que hay que dar no lo veo nada claro jeje

Objetivo del paso a paso: A partir de un .pkg de un juego de Amiga basado en el emulador E-UAE generar otro distinto:

(1) Extraer el contenido del pkg con cualquier herramienta o accediendo a la carpeta install tras instalarlo en el emulador rpcs3, nos quedara una carpeta, pongamos que el juego original se llama AAAA00000
(2) Elegir nombre del nuevo juego 9 caracteres, por ejemplo si el original se llama AAAA00000 tomaremos para este paso a paso el nuevo juego BBBB11111
(3) Editar el PARAM.SFO con la herramienta Param.SFO Editor. En ella haremos los dos siguientes cambios:
- Cambio el ID de 9 caracteres de AAAA00000 a BBBB11111
- Cambiar el nombre del juego

(4) Actualizar el fichero de configuracion del emulador que estará en la ruta USRDIR/UAE.cfg. Haremos los siguientes cambios:
- Cambiar las rutas reemplazando AAAA00000 por BBBB11111
- En la opción floppy0, floppy1 etc.. actualizar al nuevo disco adf del nuevo juego que tendremos que dejar previamente en el directorios USRDIR/

(5) En la carpeta USRDIR/ encontraremos el archivo EBOOT.BIN. Renombrar EBOOT.BIN a EBOOT.SELF
(6) Desencriptar con scetool el EBOOT.BIN con el siguiente comando: scetool.exe EBOOT.SELF -d EBOOT.ELF
Ojo que la herramienta scetool requiere del zlib1.dll y la carpeta data con las keys de la ruta https://github.com/haxxxen/ps3mfw-build ... aster/data

(7) Abrir el EBOOT.ELF mediante un editor hexadecimal (HxD).
(8) Buscar y reemplazar en HxD las apariciones de la ruta AAAA00000 por BBBB11111 (Deberian ser dos apariciones)

(9) Generar el EBOOT.BIN firmado con TrueAncestor Resigner 1.81, para ello:
- Muevo el EBOOT.ELF modificado en el paso anterior a la carpeta donde he descomprimido el Trueancestor Resigner
- Abrimos el resigner.exe y seleccionamos opcion 3 - Resign to NDPRM EBOOT
- Si todo va bien, nos deberia generar el EBOOT.BIN firmado que debemos mover devuelta a nuestra carpeta de juego USRDIR/

(10) En este punto ya tenemos la carpeta completa del nuevo juego. Falta empaquetar en pkg, para ello utilizaremos Trueancestor PKG Repacker 2.45
- Movemos toda la carpeta de nuestro juego al directorio donde tengamos el Trueancestor PKG Repacker 2.45, en concreto a la subcarpeta "game"
- Abrimos el repacker.exe y seleccionamos opcion 1 - Fast pack pkg
- Nos pedira dar un nombre al package en el formato JLP-XXXXXXXXX_00000000000-00 (o algo similar), donde XXXXXXXXX debe ser el nombre del nuevo juego, en este ejemplo BBBB11111
- EL PKG debera generarse en la carpeta pkg de la instalación del Trueancestor PKG Repacker 2.45

Saludos.
Yo diria que el tutorial te ha quedado bastante completo, esta bien que lo hayas escrito todo en limpio asi les sirve a otros [oki]

Por cierto, el retroarch tiene un core de amiga, pero la ultima vez que lo intentaron compilar para PS3 (hace menos de un mes) creo recordar que no funcionaba... ni tampoco funcionan los cores para otras "maquinas" de 8-bits como el de zx spectrum, ni commodore, ni amstrad

No recuerdo ahora mismo que error da cada uno de ellos, pero la mayoria es un pantallazo negro (y la consola no crashea), asi que parece ser un problema menor, pero nadie sabe porque pasa
Por lo que se ha comentado seguramente hay alguna funcion que esta rompiendo algo de las librerias estandard o esta haciendo algo raro... es necesario repasar el codigo a ver si alguien encuentra donde esta el problema

La buena noticia es que en teoria todos estos deberian funcionar... y la mala es que en la practica no funciona ninguno [mamaaaaa]
9 respuestas