› Foros › PlayStation 3 › Scene
sackboy1986 escribió:En Beta 3 funcionaron normalmente, sólo la imagen de trucos no fue detectado al entrar en un juego, si selecciona la imagen de los trucos que él dijo que no podía funcionar sin un disco de psx, salir y volver a la iris después de que cualquier juego que entré en la ps3 se estrelló y tuvo que cerrar manualmente, ese fue el único problema que he notado en beta 3, la imagen de los trucos no funcionaron, pero los discos de los juegos múltiples funcionó a la perfección. Ya en beta 4, la imagen de trucos generalmente se detecta al entrar en un juego, pero los discos de juegos múltiples no funcionan, ps3 siempre se bloquea al seleccionarlos. Algunos cambios se han hecho a partir de beta 3 beta 4 para que solucione el problema con la imagen de trucos, pero este cambio es la causa del accidente ps3, tanto en discos múltiples juegos como al cambiar de pantalla en el iris.
uint64_t bdemucheck;
bdemucheck = lv1peek(0x00000000007155B8);
if(bdemucheck == 0x60000000381FFFFF) //detect bdemu patch
{
lv2poke(0x80000000002AB3CCULL,0x38600000EB410080ULL);
}
PLIS-PLAS escribió:Pues tu tranquilo, que tienes que llegar vivo a disfrutar del cheque del paro.
Las pruebas las hago en mi ps3 personal, que tiene todo desactivado y es reiniciada cada vez que debo probar algo sin usar jamas MM ni otras cosas salvo por testeos alternativos(vamos,que hace años que trabajo con consolas y se ser metódico).
Voy a borrar el ultimo iris y probare cual es la ultima version que copiaba bien, aunque hoy es un dia ocupado para mi, al menos a la madrugada de alli pondre algo.
Tengo casi todas las versiones, menos las que se colgaban a cada rato, la ultima cada tanto cuelga.
MiralaTijera escribió:está casi terminado lo del arg pero por ejemplo ay otros problemas
con el arg arreglado me rulan algunos juegos mas , pero no todos , por ejemplo el call of duty mw3 se tranca y algunos más también , de todas maneras tengo una sugerencia para iris ya que yo no puedo compilar
resulta que sin el lector conectado ps1_emu o netemu no quieren arrancar psx de ninguna forma , se queda blackscreen PERO he descubierto que forzando fs_open el r3 del result a 0 sí tira
(lv2poke(0x80000000002AB3CCULL,0x38600000EB410080ULL); // sc open)
te paso el code ya listo para añadir para detectar si alguien tiene el flag bdemu activado y que pueda arrancarlosuint64_t bdemucheck;
bdemucheck = lv1peek(0x00000000007155B8);
if(bdemucheck == 0x60000000381FFFFF) //detect bdemu patch
{
lv2poke(0x80000000002AB3CCULL,0x38600000EB410080ULL);
}
esto arregla el black screen en consolas sin lector para juegos psx con el parche de bdemu del core , lo que al salir de ps1_emu se tendría que quitar el parche osea que es candidato quizás de ir en el psx_payload , no se te dejo decidir a tí
espero tener listo a lo largo de la mañana de hoy el mw3 sin lector xD
Estwald escribió:En esta versión he puesto un detector y como puedes ver, es bastante necesario: yo no tengo la culpa de que otros carguen un payload, ya sea por que activan un flag u otra cosa, que cause interferencia con lo que hago yo, y de hecho, en el caso de Multiman es que nos niega la syscall 8
Asi que que más cómodo para vosotros que en vez de tener que apagar y encender, proporcionaros un reinicio limpio
MiralaTijera escribió:está casi terminado lo del arg pero por ejemplo ay otros problemas
con el arg arreglado me rulan algunos juegos mas , pero no todos , por ejemplo el call of duty mw3 se tranca y algunos más también , de todas maneras tengo una sugerencia para iris ya que yo no puedo compilar
resulta que sin el lector conectado ps1_emu o netemu no quieren arrancar psx de ninguna forma , se queda blackscreen PERO he descubierto que forzando fs_open el r3 del result a 0 sí tira
(lv2poke(0x80000000002AB3CCULL,0x38600000EB410080ULL); // sc open)
te paso el code ya listo para añadir para detectar si alguien tiene el flag bdemu activado y que pueda arrancarlosuint64_t bdemucheck;
bdemucheck = lv1peek(0x00000000007155B8);
if(bdemucheck == 0x60000000381FFFFF) //detect bdemu patch
{
lv2poke(0x80000000002AB3CCULL,0x38600000EB410080ULL);
}
esto arregla el black screen en consolas sin lector para juegos psx con el parche de bdemu del core , lo que al salir de ps1_emu se tendría que quitar el parche osea que es candidato quizás de ir en el psx_payload , no se te dejo decidir a tí
espero tener listo a lo largo de la mañana de hoy el mw3 sin lector xD
Mad3d escribió:MiralaTijera escribió:está casi terminado lo del arg pero por ejemplo ay otros problemas
con el arg arreglado me rulan algunos juegos mas , pero no todos , por ejemplo el call of duty mw3 se tranca y algunos más también , de todas maneras tengo una sugerencia para iris ya que yo no puedo compilar
resulta que sin el lector conectado ps1_emu o netemu no quieren arrancar psx de ninguna forma , se queda blackscreen PERO he descubierto que forzando fs_open el r3 del result a 0 sí tira
(lv2poke(0x80000000002AB3CCULL,0x38600000EB410080ULL); // sc open)
te paso el code ya listo para añadir para detectar si alguien tiene el flag bdemu activado y que pueda arrancarlosuint64_t bdemucheck;
bdemucheck = lv1peek(0x00000000007155B8);
if(bdemucheck == 0x60000000381FFFFF) //detect bdemu patch
{
lv2poke(0x80000000002AB3CCULL,0x38600000EB410080ULL);
}
esto arregla el black screen en consolas sin lector para juegos psx con el parche de bdemu del core , lo que al salir de ps1_emu se tendría que quitar el parche osea que es candidato quizás de ir en el psx_payload , no se te dejo decidir a tí
espero tener listo a lo largo de la mañana de hoy el mw3 sin lector xD
Con el argumento arreglado has podido hacer funcionar el god of war 3 o los q son basados en el unreal engine como mortal kombat, batman arkham city, dmc, etc ?
Estwald escribió:
MiralaTijera escribió:Mad3d escribió:MiralaTijera escribió:está casi terminado lo del arg pero por ejemplo ay otros problemas
con el arg arreglado me rulan algunos juegos mas , pero no todos , por ejemplo el call of duty mw3 se tranca y algunos más también , de todas maneras tengo una sugerencia para iris ya que yo no puedo compilar
resulta que sin el lector conectado ps1_emu o netemu no quieren arrancar psx de ninguna forma , se queda blackscreen PERO he descubierto que forzando fs_open el r3 del result a 0 sí tira
(lv2poke(0x80000000002AB3CCULL,0x38600000EB410080ULL); // sc open)
te paso el code ya listo para añadir para detectar si alguien tiene el flag bdemu activado y que pueda arrancarlosuint64_t bdemucheck;
bdemucheck = lv1peek(0x00000000007155B8);
if(bdemucheck == 0x60000000381FFFFF) //detect bdemu patch
{
lv2poke(0x80000000002AB3CCULL,0x38600000EB410080ULL);
}
esto arregla el black screen en consolas sin lector para juegos psx con el parche de bdemu del core , lo que al salir de ps1_emu se tendría que quitar el parche osea que es candidato quizás de ir en el psx_payload , no se te dejo decidir a tí
espero tener listo a lo largo de la mañana de hoy el mw3 sin lector xD
Con el argumento arreglado has podido hacer funcionar el god of war 3 o los q son basados en el unreal engine como mortal kombat, batman arkham city, dmc, etc ?
no lo sé , los iré probando , pero me he propuesto mw3 por que si ese arranca arrancará todos los demás ya que es un all in one , tiene todo lo que tiene que tener para que no cargue sin disco xDDD
el_aprendiz escribió:Tanto tocar las cosas pa na...si luego no sacan ningun soft ni nada (va por oPoO y c&a que modifican los entornos)
xDDDD
PLIS-PLAS escribió:Ufff... ya era hora que encontraras algo para distraerte y pararas con las actualizaciones diarias.
Estwald escribió:Buenas,
Me paso para comentar que ya tengo Tiny3D, ps3soundlib, junto con sus ejemplos, rulando con los nuevos compiladores/librerías. En el caso de Tiny3D, la he estado revisando y parece que ya he dado con el motivo que podía hacer que se colgara de forma inesperada
También tengo compiladas las ps3libraries con excepción de las que hacen uso de Ogg/mp3, por que me dió un error en las primeras y además, tenemos la soundlib que incluye todo eso.
Por otro lado, el entorno entero ocupa, increíblemente, 1,43 GB . Comprimido se puede reducir un cacho, pero MinGW os lo podéis bajar vosotros de la página oficial y eso son 338MB sin comprimir y el resto, se puede comprimir en un tamaño mucho menor.
Ahora estoy portando Iris Manager (eso si, no se lo que tardaré por que hay bastantes cosillas que tocar)
MiralaTijera escribió:
esperemos que con esta nueva revisión sea capaz de compilarlo como dios manda aquí xDDD
MiralaTijera escribió:a cuestión de tu post anterior sobre psl1ght , sí , yo tiré la toalla en su dia por que tampoco era capaz ni de compilar sus propios samples entre otras cosas xD y luego sin contar que cada uno se hace su custom psl1ght para su app , a contar la cantidad de enviroments que te tienes que hacer para cada app
MiralaTijera escribió:a otra cuestión ya tengo el discless funcionando 100%100 en consolas con controladora y lente rota ( carga todo , gow 3 , mw3 , todo sin modificar y al 80% en consolas sin controladora , y esto conlleva arreglos en los managers , por que ? por que ahora app_home llama directamente a dev_bdvd , este para que lo encuentre tiene que seleccionarse la opción bd emu , y aqui viene la gracia , sin lector no ay ningun dev_bdvd que cambiar en lv2 xD hasta aquí bien , entonces monté un dev_bdvd con un viejo truco =
syscall_837("CELL_FS_UTILITY:HDD1", "CELL_FS_FAT", "/dev_bdvd", 0, 1, 0, 0, 0);
de esta manera conseguía que se montara perfectamente dev_bdvd , es accesible y todo lo que meta en la tempdrive ( hdd1 ) se refleja en dev_bdvd , PERO los managers deben de buscar este nuevo mountpoint , que no es mas que el mismo de antes pero en vez de cell_fs_bdvd etc.. es cell_fs_utility y el iso9660 a cell_fs_fat , aun con estos problemas el iris ha sido capaz de montarme el mw3 ( algunas veces ) y ejecutarlo de aun que también ay que quitar la petición de que insertes un blue ray para usar bdemu , ( estoy usando multiman que no me fuerza eso ) si monto la dev_bdvd con utility 1 el iris ya no da error de sin disco dentro , pero no monta luego , vamos un espectaculo xD
me voy a fumar un peazo nardo a ver si me aclaro la mente .. xD
http://www.youtube.com/watch?v=xD-EnHA6ZTI aqui con controladora y sin disco con todos los files originales ,también carga con las updates puestas..
Estwald escribió:Buenas,
Me paso para comentar que ya tengo Tiny3D, ps3soundlib, junto con sus ejemplos, rulando con los nuevos compiladores/librerías. En el caso de Tiny3D, la he estado revisando y parece que ya he dado con el motivo que podía hacer que se colgara de forma inesperada
También tengo compiladas las ps3libraries con excepción de las que hacen uso de Ogg/mp3, por que me dió un error en las primeras y además, tenemos la soundlib que incluye todo eso.
Por otro lado, el entorno entero ocupa, increíblemente, 1,43 GB . Comprimido se puede reducir un cacho, pero MinGW os lo podéis bajar vosotros de la página oficial y eso son 338MB sin comprimir y el resto, se puede comprimir en un tamaño mucho menor.
Ahora estoy portando Iris Manager (eso si, no se lo que tardaré por que hay bastantes cosillas que tocar)
MiralaTijera escribió:estwald si la calaña mas tonta que te encuentras son del tipo case sensitive yo ya me hubiera vuerto locoo xD
MiralaTijera escribió:y sobre lo del open es por que sin controladora dev_bdvd ni existe en los mountpoints de lv2 , quizás añadirlo sería una opcion en vez de forzar el open , yo es que de esta manera tan bruta pude hacer rular el emu sin parchearlo , con tropecientos fallos como es logico xD
voy a mirar de modificar el parche para que puedas emular la unidad , pero aun así no estaría yo seguro que lv2 no hiciese de las suyas y pillara el mountpoint solo con un lv1_storage_open al device id que es muy posible... xD quieres dumps de lv2 con y sin controladora?
D_Skywalk escribió:Hola chicos veo que andáis recompilando todo, tais locuelas
Bueno yo ya puse mi post en el blog para pasarle oficialmente el testigo a Estwald del Iris:
http://david.dantoine.org/envio/1118/
Nada nuevo a lo que ya sabéis, aunque si que me gustaría tener otra consola donde trastear y que la jefa, que ahora anda jugando al Lego LOTR, no me grite por que la enciende y ve "cosas raras"
Por cierto, me enviaron esto (Markus95) no se si ya lo incluísteis:
language.ini (french) : https://dl.dropbox.com/u/38909110/partage/language.ini
Lo dicho veo que tengo que pasar al CFW de MiralaTijera, asi que en estos días actualizaré y si puedo aportar algo ya iré contando ^^_
Un Saludo feas!
Estwald escribió:D_Skywalk escribió:Hola chicos veo que andáis recompilando todo, tais locuelas
Bueno yo ya puse mi post en el blog para pasarle oficialmente el testigo a Estwald del Iris:
http://david.dantoine.org/envio/1118/
Nada nuevo a lo que ya sabéis, aunque si que me gustaría tener otra consola donde trastear y que la jefa, que ahora anda jugando al Lego LOTR, no me grite por que la enciende y ve "cosas raras"
Por cierto, me enviaron esto (Markus95) no se si ya lo incluísteis:
language.ini (french) : https://dl.dropbox.com/u/38909110/partage/language.ini
Lo dicho veo que tengo que pasar al CFW de MiralaTijera, asi que en estos días actualizaré y si puedo aportar algo ya iré contando ^^_
Un Saludo feas!
Hola nen!, ¿que tal va la cosa?
Ya tengo portado Iris Manager: me he tenido que pelear un poco con la función spawn para lanzar los juegos PSX y tendré que mirar algún gazapo y cosillas que arreglar, pero el programa rula ya en el nuevo entorno.
Eso si, si yo estoy ahora un tanto perdido con las funciones "nuevas", a ti te costará algo más cuando te decidas a tocar cosas . Vamos, que si te tengo que mandar los cambios para que los añadas al git, te tiras de los pelos, por que no te vas a aclarar.
La verdad es que no me termino de creer que tengamos todo esto ya en funcionamiento, por que ha sido una puñetera locura portar todo
Saludos
EDITO: Pues no, no era cagada mía al portar
Resulta que nosotros podíamos llamar a la función remove() para borrar ficheros, pero no está soportada!. Busco a ver si han habilitado unlink(), que es lo mismo y no, los mamones estos se han olvidado. Mirando en librt veo como conectar y buscando las syscalls del sistema, aparentemente, había la posibilidad de conectar unlink. Digo aparentemente, por que no funciona, cojones, que ya se podían estar con las manos quietas . Supongo que lo mismo que lo olvidaron ahí, lo olvidaron en el parche a newlib (o no lo hicieron bien) y asi estamos.
Hala, que le den por el kks que tiraré de syscall directamente. Si es que... lo que no me pase a mí, no le pasa a nadie
Maito escribió:...
- EJECUTAR MULTIPLES ISOS
Solo una regla para multiples isos: deben tener todas el mismo tamaño de sector
- Iris Manager coge las isos en orden alfanumerico. Cuando tu lanzas un juego con multiples isos tu puedes rotar el orden en una pantalla en el ultimo momento.
- Puedes meter un fichero COVER.JPG (tamaño maximo 1024 x 1024 pixels)
- PSX config es salvado en la carpeta del juego.
Ejemplo de estructura de juego:
/dev_usb000 /PSXGAMES /Metal Gear Solid
|
|--- COVER.JPG -> caratula
|
|--- MGS1.IMG -> disc 1
|
---- MGS2.IMG -> disc 2
|
|-- psx_config.cfg -> psx config. salvado desde Iris Manager (Memory Card, Video Options...)
Con .cue:
/dev_usb000 /PSXGAMES /Metal Gear Solid
|
|--- COVER.JPG -> caratula
|
|--- MGS1.cue -> disc 1
|
|--- MGS1.IMG -> disc 1
|
---- MGS2.cue -> disc 2
|
---- MGS2.IMG -> disc 2
|
|-- psx_config.cfg -> psx config. salvado desde Iris Manager (Memory Card, Video Options...)
Estwald escribió:...
Estwald escribió:Tu scene de "jefazos" (...)
D_Skywalk escribió:Pero las APIs se hacen para pensarlas y mantenerlas, si no esto parece ffmpeg que es el chocho de la bernarda
O sea que todo esto lo estáis liando por pasar a PSL1GHT v2, que tiene como novedad...
Por que yo en PSL1GHT + hermes Patchs estaba de PM!
Maito escribió:..
Mad3d escribió:Estwald ya q estas puesto en ello, no se si seria mucha molestia añadir una progress bar a my_game_copy ya que nos vamos a una version 2.0 con muchos cambios , seria un toque mas elegente y moderno dejar de lado la dprintf de los archivos procesados, digo yo, es una sugerencia si no es muy complicado claro.
Estwald escribió:
Lo de "tus jefes" no lo he dicho en sentido literal, si no señalando que quien se supone, ocupa esa posición de "liderar" es quien lo suele estropear todo modificando a diestro y siniestro cosas, que el sentido común, y no la formación académica, dice que no se pueden modificar así como así.
Estwald escribió:
No tengo ni idea . Alguien que se habrá puesto con ello
Además, al final parece que lo ha hecho con lo viejo. Ahora bien, no creo que hayan solucionado el problema que yo me encontré
xerpi escribió:Estwald escribió:
No tengo ni idea . Alguien que se habrá puesto con ello
Además, al final parece que lo ha hecho con lo viejo. Ahora bien, no creo que hayan solucionado el problema que yo me encontré
¿Que problema te encontraste?
Estwald escribió:Sobre lo de la instalación con la barra de progreso, en mi opinión, es una moñada .
Por poder, se puede poner, pero para eso tenemos la consola mostrando datos que son importantes a la hora de determinar problemas: una doble barra, que se podría utilizar, no es que diga mucho y a veces uno necesita información extra (por ejemplo, el bug que he arreglado me reportaba en consola que había dos ficheros abiertos cuando en ese momento, estaba intentando abrir un tercero... lo cual ocurre por que una comprobación recibe un visto bueno antes de proceder a cerrar un fichero. Sin la consola ahí, sería una tarea de simios determinar donde estaba el error.
Esas rutinas de copiado las pensé (huy lo que acabo de decir...) para optimizar la lectura del lector, de forma que lo que se pretende es ir llenando un buffer de lectura ya sea con la información de uno o mas ficheros, mientras se escribe en segundo plano y es compleja en su funcionamiento, sobre todo por que si ya lo comentado tiene su miga, si encima por medio, pueden haber ficheros fragmentados o que dividir, pues la complicamos cosa mala.
Sin la consola para depurar, pues mal vamos, aunque cierto es que lo importante suele ser la pantalla donde se detiene el programa
Este método es similar al parcheo ps1_emu.self y no afecta a otras aplicaciones ni utiliza syscall que hacen quebrar otras aplicaciones.
El parche es muy simple (sólo 244 bytes for ATAPI 0xBE READ CD command)://4.30
//#define BASE (0x11C310) // READCD+0x10 in ps1_netemu
//#define RETURN (0x11BFDC) // case 7 return
//4.20
//#define BASE (0x11C200) // READCD+0x10 in ps1_netemu
//#define RETURN (0x11BECC) // case 7 return
//3.55
//#define BASE (0x11AA50) // READCD+0x10 in ps1_netemu
//#define RETURN (0x11A71C) // case 7 return
//3.41
#define BASE (0x11ACF0) // READCD+0x10 in ps1_netemu
#define RETURN (0x11A9BC) // case 7 return
#define SECTOR_SIZE (0xD0) // address in lv2 memory to store sector size
#define HANDLE (0xD8) // address in lv2 memory to store fd (open handle)
#define ABS(target) ((target) - (BASE) - .)
#define ABS2(target) ((target) - .)
#define MEM_BASE(dest) \
li dest, 1; \
rldicr dest, dest, 63, 0;
#define LOAD_LABEL(base, dest, source, address) \
oris dest, source, ((base) + (address))@h; \
ori dest, dest, ((base) + (address))@l;
#define LOAD_LABEL2(dest, source, address) \
LOAD_LABEL(BASE, dest, source, address)
#define PEEK(address) \
ori %r3, %r25, address; \
li %r11, 6; \
sc;
#define POKE(address) \
ori %r3, %r25, address; \
li %r11, 7; \
sc;
// IN:
// %r24 -> address of local stack buffer
// %r29 -> address of readcd data buffer
// %r9 -> sector number
.org 0
MEM_BASE(%r25)
PEEK(SECTOR_SIZE)
mullw %r30, %r9, %r3
PEEK(HANDLE)
mr %r27, %r3
cmplwi %r3, 0
bne read_sector // handle is valid, file already opened
LOAD_LABEL2(%r3, %r3, iso_name)
ld %r4, 0(%r3)
std %r4, 0(%r24)
mr %r3, %r24
li %r4, 0
addi %r5, %sp, 0xE0
li %r6, 511
li %r7, 0
li %r8, 0
li %r11, 801 // open
sc
cmpldi %r3, 0
bne abort
lwz %r4, 0xE0(%sp) // store file handle
POKE(HANDLE)
mr %r27, %r4
read_sector:
mr %r3, %r27
mr %r4, %r30
li %r5, 0
addi %r6, %sp, 0xE8
li %r11, 818 // seek
sc
cmpldi %r3, 0
bne close
mr %r3, %r27
mr %r4, %r29
li %r5, 0x940
addi %r6, %sp, 0xE8
li %r11, 802 // read
sc
cmpldi %r3, 0
beq return
close:
mr %r3, %r27
li %r11, 804 // close
sc
li %r4, 0 // invalidate handle
POKE(HANDLE)
abort:
lis %r3, 0x8001
ori %r3, %r3, 0x000A // (BUSY 0x8001000A)
extsw %r3, %r3
return:
mr %r25, %r3
b ABS(RETURN)
.align 2
iso_name:
.string "/psx_d0"
ERMaCDR escribió:Deank comparte parte del nuevo código que utiliza para PSXNETEMU (Digo parte porque recuerden que se queda con lo demás )Este método es similar al parcheo ps1_emu.self y no afecta a otras aplicaciones ni utiliza syscall que hacen quebrar otras aplicaciones.
El parche es muy simple (sólo 244 bytes for ATAPI 0xBE READ CD command)://4.30
//#define BASE (0x11C310) // READCD+0x10 in ps1_netemu
//#define RETURN (0x11BFDC) // case 7 return
//4.20
//#define BASE (0x11C200) // READCD+0x10 in ps1_netemu
//#define RETURN (0x11BECC) // case 7 return
//3.55
//#define BASE (0x11AA50) // READCD+0x10 in ps1_netemu
//#define RETURN (0x11A71C) // case 7 return
//3.41
#define BASE (0x11ACF0) // READCD+0x10 in ps1_netemu
#define RETURN (0x11A9BC) // case 7 return
#define SECTOR_SIZE (0xD0) // address in lv2 memory to store sector size
#define HANDLE (0xD8) // address in lv2 memory to store fd (open handle)
#define ABS(target) ((target) - (BASE) - .)
#define ABS2(target) ((target) - .)
#define MEM_BASE(dest) \
li dest, 1; \
rldicr dest, dest, 63, 0;
#define LOAD_LABEL(base, dest, source, address) \
oris dest, source, ((base) + (address))@h; \
ori dest, dest, ((base) + (address))@l;
#define LOAD_LABEL2(dest, source, address) \
LOAD_LABEL(BASE, dest, source, address)
#define PEEK(address) \
ori %r3, %r25, address; \
li %r11, 6; \
sc;
#define POKE(address) \
ori %r3, %r25, address; \
li %r11, 7; \
sc;
// IN:
// %r24 -> address of local stack buffer
// %r29 -> address of readcd data buffer
// %r9 -> sector number
.org 0
MEM_BASE(%r25)
PEEK(SECTOR_SIZE)
mullw %r30, %r9, %r3
PEEK(HANDLE)
mr %r27, %r3
cmplwi %r3, 0
bne read_sector // handle is valid, file already opened
LOAD_LABEL2(%r3, %r3, iso_name)
ld %r4, 0(%r3)
std %r4, 0(%r24)
mr %r3, %r24
li %r4, 0
addi %r5, %sp, 0xE0
li %r6, 511
li %r7, 0
li %r8, 0
li %r11, 801 // open
sc
cmpldi %r3, 0
bne abort
lwz %r4, 0xE0(%sp) // store file handle
POKE(HANDLE)
mr %r27, %r4
read_sector:
mr %r3, %r27
mr %r4, %r30
li %r5, 0
addi %r6, %sp, 0xE8
li %r11, 818 // seek
sc
cmpldi %r3, 0
bne close
mr %r3, %r27
mr %r4, %r29
li %r5, 0x940
addi %r6, %sp, 0xE8
li %r11, 802 // read
sc
cmpldi %r3, 0
beq return
close:
mr %r3, %r27
li %r11, 804 // close
sc
li %r4, 0 // invalidate handle
POKE(HANDLE)
abort:
lis %r3, 0x8001
ori %r3, %r3, 0x000A // (BUSY 0x8001000A)
extsw %r3, %r3
return:
mr %r25, %r3
b ABS(RETURN)
.align 2
iso_name:
.string "/psx_d0"
Puede que sí o no, por alguna razón se refiere que no utiliza syscall que afecten o quiebren otras aplicaciones.Estwald escribió:Me parece estupendo que Deank comparta lo que saca, pero ¿aún no se ha enterado Deank de que tenemos la syscall emulada?. De hecho, el solo emula una ISO y en el caso de netemu, te pide datos adicionales que en mi caso, simulo al vuelo, pero en el suyo, como no haga un conversor ISO, le faltan datos.