[APLICACION] Iris Manager (v3.00)

ERMaCDR escribió:
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.
Puede que sí o no, por alguna razón se refiere que no utiliza syscall que afecten o quiebren otras aplicaciones.


Bueno, por mi no hay ningún problema si el motivo por el que no usa la rutina de la syscall, es por que quiebra supuestas aplicaciones o las afecta XD

Es más, lo lógico es que si afecta algo, se me reporte y se me presenten datos que me sirvan para encontrar una solución y de hecho, se me ocurren una docena de soluciones a posibles problemas que puedo llegar a imaginar que pudieran ocurrir, pero los hechos concretos son, que a día de hoy, yo no tengo ni un dato que aporte información sobre que o quienes se ven afectados por esa syscall o por el alojamiento de la rutina (de hecho, tiene un chequeo y si no encuentra la zona donde se va a copiar a cero, se va a negar)

Pero repito, si hay algún problema, algo se podrá hacer, pero sería gracioso que los problemas nosedonde se pudieran evitar corriendo la rutina 1KB hacia abajo, que se puede hacer sin problemas, aparte de otras cosas y alguien se estuviera ahogando en un vaso de agua por no informarme o por no preguntar (esa syscalls tiene modos de operación: en uno es transparente y es como si no estuviera. En otro, con el lector en la mano (literalmente, por que lo tengo fuera de la consola XD) arranco los PSX sin problemas, por que se lo salta todo [+risas]
------

Por otro lado, estoy subiendo ya los compiladores y librerías, después de haber tenido un montón de problemas con el gestor git que estaba usando y los ficheros grandotes. Al final, Cygwin me vuelve a salvar la papeleta (toquemos madera, que despues del test, estoy subiendo ahora el fichero mas tocho, de unos 200MB a 20KB... para cagarse [sonrisa] )

En cuanto lo tenga todo, daré el aviso, pero ojo, esto no va a ser un git normal y aqui no hay un fork para psl1ght, ni mis librerías irán por separado, ni estaré encantado de subir modificaciones que quiera hacer la peña: esto son unas herramientas de trabajo en la que el dicho "si algo funciona, no lo toques" tiene que prevalecer y lo digo a las claras: me importa un huevo si alguien se molesta con mi forma de llevar las cosas.

Si alguien quiere clonarlo, está en su derecho. Si alguien quiere tomar por ejemplo, los cambios que he introducido en Tiny3D, me parece bien, igual que me parece bien si quieren seguir con su propia versión portada de Tiny3D. Pero Estwald va a ir a lo suyo a partir de ahora y lo que quiere es subir sus herramientas de trabajo para facilitarle la vida en lo posible a la gente que quiere hacer aplicaciones (y no un mucho abarco y poco aprieto) y no está interesado en otras cosas, que bastante trabajo tengo ya.

De hecho, tal vez os guste más así: un entorno que compila y que si hay que añadir algo, será añadir, no restar, ni cambiar, ni tocar los cojones sin venir a cuento. Eso si, no he tocado los ejemplos de PSL1GHT, asi que seguro que alguno no compila y otros, faltan (ya arreglaré eso)

Iris Manager será subido aparte, como proyecto separado (en cuanto lo prepare, que tengo que añadir cosas todavía y hoy ha sido improductivo para ello), pero ojo, aviso igual que antes, que eso no significa que automáticamente acepte cambios y las ocurrencias de la gente. Y tampoco garantizo que cada cambio que haga se vaya a reportar, por que trabajaré siempre en directorio aparte y el git será para subir a "limpio" el programa.

El git será una fuente de publicación pero no necesariamente una fuente de trabajo en colaboración. Si veo que algo me interesa, se añadirá y si no, pues no se añade, cómo es lógico y normal. Pero lo fundamental es que sea un sitio seguro y como dice el refrán "mas vale solo, que mal acompañado" y si cuando antes como Hermes estaba interesado en colaborar y cierta gente pasaba de mi, pues si ahora como Estwald paso de ellos, es lo que hay. Pero lo que está claro, es que no voy a permitir el cachondeo de ahora con las librerías, compiladores y demases, ni voy a convertir a Iris Manager en un Multiman, que conste (si queréis un gestor de ficheros, etc, eso se puede hacer aparte: no tiene por que formar parte de la misma aplicación y de hecho, es contraproducente)


Saludos
Estwald escribió:
ERMaCDR escribió:
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.
Puede que sí o no, por alguna razón se refiere que no utiliza syscall que afecten o quiebren otras aplicaciones.


Bueno, por mi no hay ningún problema si el motivo por el que no usa la rutina de la syscall, es por que quiebra supuestas aplicaciones o las afecta XD

Es más, lo lógico es que si afecta algo, se me reporte y se me presenten datos que me sirvan para encontrar una solución y de hecho, se me ocurren una docena de soluciones a posibles problemas que puedo llegar a imaginar que pudieran ocurrir, pero los hechos concretos son, que a día de hoy, yo no tengo ni un dato que aporte información sobre que o quienes se ven afectados por esa syscall o por el alojamiento de la rutina (de hecho, tiene un chequeo y si no encuentra la zona donde se va a copiar a cero, se va a negar)

Pero repito, si hay algún problema, algo se podrá hacer, pero sería gracioso que los problemas nosedonde se pudieran evitar corriendo la rutina 1KB hacia abajo, que se puede hacer sin problemas, aparte de otras cosas y alguien se estuviera ahogando en un vaso de agua por no informarme o por no preguntar (esa syscalls tiene modos de operación: en uno es transparente y es como si no estuviera. En otro, con el lector en la mano (literalmente, por que lo tengo fuera de la consola XD) arranco los PSX sin problemas, por que se lo salta todo [+risas]
------

Por otro lado, estoy subiendo ya los compiladores y librerías, después de haber tenido un montón de problemas con el gestor git que estaba usando y los ficheros grandotes. Al final, Cygwin me vuelve a salvar la papeleta (toquemos madera, que despues del test, estoy subiendo ahora el fichero mas tocho, de unos 200MB a 20KB... para cagarse [sonrisa] )

En cuanto lo tenga todo, daré el aviso, pero ojo, esto no va a ser un git normal y aqui no hay un fork para psl1ght, ni mis librerías irán por separado, ni estaré encantado de subir modificaciones que quiera hacer la peña: esto son unas herramientas de trabajo en la que el dicho "si algo funciona, no lo toques" tiene que prevalecer y lo digo a las claras: me importa un huevo si alguien se molesta con mi forma de llevar las cosas.

Si alguien quiere clonarlo, está en su derecho. Si alguien quiere tomar por ejemplo, los cambios que he introducido en Tiny3D, me parece bien, igual que me parece bien si quieren seguir con su propia versión portada de Tiny3D. Pero Estwald va a ir a lo suyo a partir de ahora y lo que quiere es subir sus herramientas de trabajo para facilitarle la vida en lo posible a la gente que quiere hacer aplicaciones (y no un mucho abarco y poco aprieto) y no está interesado en otras cosas, que bastante trabajo tengo ya.

De hecho, tal vez os guste más así: un entorno que compila y que si hay que añadir algo, será añadir, no restar, ni cambiar, ni tocar los cojones sin venir a cuento. Eso si, no he tocado los ejemplos de PSL1GHT, asi que seguro que alguno no compila y otros, faltan (ya arreglaré eso)

Iris Manager será subido aparte, como proyecto separado (en cuanto lo prepare, que tengo que añadir cosas todavía y hoy ha sido improductivo para ello), pero ojo, aviso igual que antes, que eso no significa que automáticamente acepte cambios y las ocurrencias de la gente. Y tampoco garantizo que cada cambio que haga se vaya a reportar, por que trabajaré siempre en directorio aparte y el git será para subir a "limpio" el programa.

El git será una fuente de publicación pero no necesariamente una fuente de trabajo en colaboración. Si veo que algo me interesa, se añadirá y si no, pues no se añade, cómo es lógico y normal. Pero lo fundamental es que sea un sitio seguro y como dice el refrán "mas vale solo, que mal acompañado" y si cuando antes como Hermes estaba interesado en colaborar y cierta gente pasaba de mi, pues si ahora como Estwald paso de ellos, es lo que hay. Pero lo que está claro, es que no voy a permitir el cachondeo de ahora con las librerías, compiladores y demases, ni voy a convertir a Iris Manager en un Multiman, que conste (si queréis un gestor de ficheros, etc, eso se puede hacer aparte: no tiene por que formar parte de la misma aplicación y de hecho, es contraproducente)


Saludos


A la espera me hallo.

Saludos.
Estwald escribió:Bueno, por mi no hay ningún problema si el motivo por el que no usa la rutina de la syscall, es por que quiebra supuestas aplicaciones o las afecta XD
Es más, lo lógico es que si afecta algo, se me reporte y se me presenten datos que me sirvan para encontrar una solución

En eso tienes razón, pero en este caso el solo se limita a decir que quiebra supuestas aplicaciones y no dice cuales podrían ser las afectadas. En su más reciente publicación dice lo siguiente:
Con esta actualización la saga de soporte a backups de PS1 debe quedar por concluida.
Estos son los dos parches importantes en ps1_netemu. Iris ya no utiliza emuladores parcheados pero proporciona syscall emuladas, pero prefiero mantenerlo así - es mucho más claro y sencillo:
ATAPI 0x4A GET EVENT/STATUS NOTIFICATION
//case 8 = [fill sector buffer with 0xFF]
//case 7 = [0xBE READ CD]
//case 6 = [0x51 READ DISC INFORMATION]
//case 5 = [0x4A GET EVENT/STATUS NOTIFICATION]
//case 4 = [fill sector buffer with 0xFF]
//case 3 = [0x00 TEST UNIT READY]
//case 2 = [sys_storage_close()]
//case 1 = [sys_storage_open() ]

//4.30
//#define BASE        (0x11C8F8)    // GET EVENT/STATUS NOTIFICATION in ps1_netemu
//#define RETURN        (0x11CA10)    //+118 // case 5 return
//#define RETURN_ERR    (0x11CFC4)    //+6CC // case 5 return

//4.20
//#define BASE        (0x11C7E8)    // GET EVENT/STATUS NOTIFICATION in ps1_netemu
//#define RETURN        (0x11C900)    // case 5 return
//#define RETURN_ERR    (0x11CEB4)    // case 5 return

//3.55
//#define BASE        (0x11B038)    // GET EVENT/STATUS NOTIFICATION in ps1_netemu
//#define RETURN        (0x11B150)    // case 5 return
//#define RETURN_ERR    (0x11B704)    // case 5 return

//3.41
#define BASE        (0x11B2D8)    // GET EVENT/STATUS NOTIFICATION in ps1_netemu
#define RETURN        (0x11B3F0)    // case 5 return
#define RETURN_ERR    (0x11B9A4)    // case 5 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 DISC        (0xE0)       // address in lv2 memory to store current disc number (0..7)

#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;

#define SLEEP(ms) \
    li      %r3, ms; \
    li      %r11, 0x8D; \
    sc;

#define RED        0
#define GREEN    1
#define YELLOW    2

#define OFF        0
#define ON        1
#define BLINK    2

#define LED(color, mode) \
    li      %r3, color; \
    li      %r4, mode; \
    li      %r11, 386; \
    sc;

// IN:
// %r26 -> address of local stack buffer
// %r27 -> reserved
// %r28 -> reserved

.org 0

    MEM_BASE(%r25)

    lis        %r4, 0x0002
    stw        %r4, 0x78(%sp)    // 00 02 00 00 = packet length
    stw        %r4, 0x7C(%sp)    // 00 02 00 00 = disc in tray, tray closed

    li        %r3, 0
    LOAD_LABEL2(%r3, %r3, disc_name)
    ld        %r4, 0(%r3)
    std        %r4, 0(%r26)
    ld        %r4, 8(%r3)
    std        %r4, 8(%r26)

    mr        %r3, %r26
    addi    %r4, %r26, 0x10
    li        %r11, 805        // opendir
    sc
    cmplwi  %r3, 0
    bne        next_disc

    lwz        %r3, 0x10(%r26)
    li        %r11, 807        // closedir
    sc
    b       ABS(RETURN)


next_disc:

    PEEK(HANDLE)
    cmplwi    %r3, 0
    beq        file_closed

    li      %r11, 804        // close
    sc

    li        %r4, 0            // invalidate handle
    POKE(HANDLE)

    PEEK(DISC)
    addi    %r4, %r3, 1
    andi.   %r4, %r4, 7
    POKE(DISC)

file_closed:
    lis        %r4, 0x0001        // tray open
    stw        %r4, 0x7C(%sp)    // 00 01 00 00 = no disc in tray, tray opened

    SLEEP(1000)
    b        ABS(RETURN_ERR)

    .align 2

disc_name:
    .string    "/psx_cdrom0"

ATAPI 0xBE READ CD
//4.30
//#define BASE        (0x11C310)    // READCD+0x10 in ps1_netemu
//#define RETURN        (0x11BFDC)    // +334 // 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

//case 8 = [fill sector buffer with 0xFF]
//case 7 = [0xBE READ CD]
//case 6 = [0x51 READ DISC INFORMATION]
//case 5 = [0x4A GET EVENT/STATUS NOTIFICATION]
//case 4 = [fill sector buffer with 0xFF]
//case 3 = [0x00 TEST UNIT READY]
//case 2 = [sys_storage_close()]
//case 1 = [sys_storage_open() ]

#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 DISC        (0xE0)       // address in lv2 memory to store current disc number (0..7)

#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)

    PEEK(DISC)
    sldi    %r3, %r3, 8
    add        %r4, %r4, %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ó:En eso tienes razón, pero en este caso el solo se limita a decir que quiebra supuestas aplicaciones y no dice cuales podrían ser las afectadas. En su más reciente publicación dice lo siguiente:
Con esta actualización la saga de soporte a backups de PS1 debe quedar por concluida.
Estos son los dos parches importantes en ps1_netemu. Iris ya no utiliza emuladores parcheados pero proporciona syscall emuladas, pero prefiero mantenerlo así - es mucho más claro y sencillo:
ATAPI 0x4A GET EVENT/STATUS NOTIFICATION
//case 8 = [fill sector buffer with 0xFF]
//case 7 = [0xBE READ CD]
//case 6 = [0x51 READ DISC INFORMATION]
//case 5 = [0x4A GET EVENT/STATUS NOTIFICATION]
//case 4 = [fill sector buffer with 0xFF]
//case 3 = [0x00 TEST UNIT READY]
//case 2 = [sys_storage_close()]
//case 1 = [sys_storage_open() ]

//4.30
//#define BASE        (0x11C8F8)    // GET EVENT/STATUS NOTIFICATION in ps1_netemu
//#define RETURN        (0x11CA10)    //+118 // case 5 return
//#define RETURN_ERR    (0x11CFC4)    //+6CC // case 5 return

//4.20
//#define BASE        (0x11C7E8)    // GET EVENT/STATUS NOTIFICATION in ps1_netemu
//#define RETURN        (0x11C900)    // case 5 return
//#define RETURN_ERR    (0x11CEB4)    // case 5 return

//3.55
//#define BASE        (0x11B038)    // GET EVENT/STATUS NOTIFICATION in ps1_netemu
//#define RETURN        (0x11B150)    // case 5 return
//#define RETURN_ERR    (0x11B704)    // case 5 return

//3.41
#define BASE        (0x11B2D8)    // GET EVENT/STATUS NOTIFICATION in ps1_netemu
#define RETURN        (0x11B3F0)    // case 5 return
#define RETURN_ERR    (0x11B9A4)    // case 5 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 DISC        (0xE0)       // address in lv2 memory to store current disc number (0..7)

#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;

#define SLEEP(ms) \
    li      %r3, ms; \
    li      %r11, 0x8D; \
    sc;

#define RED        0
#define GREEN    1
#define YELLOW    2

#define OFF        0
#define ON        1
#define BLINK    2

#define LED(color, mode) \
    li      %r3, color; \
    li      %r4, mode; \
    li      %r11, 386; \
    sc;

// IN:
// %r26 -> address of local stack buffer
// %r27 -> reserved
// %r28 -> reserved

.org 0

    MEM_BASE(%r25)

    lis        %r4, 0x0002
    stw        %r4, 0x78(%sp)    // 00 02 00 00 = packet length
    stw        %r4, 0x7C(%sp)    // 00 02 00 00 = disc in tray, tray closed

    li        %r3, 0
    LOAD_LABEL2(%r3, %r3, disc_name)
    ld        %r4, 0(%r3)
    std        %r4, 0(%r26)
    ld        %r4, 8(%r3)
    std        %r4, 8(%r26)

    mr        %r3, %r26
    addi    %r4, %r26, 0x10
    li        %r11, 805        // opendir
    sc
    cmplwi  %r3, 0
    bne        next_disc

    lwz        %r3, 0x10(%r26)
    li        %r11, 807        // closedir
    sc
    b       ABS(RETURN)


next_disc:

    PEEK(HANDLE)
    cmplwi    %r3, 0
    beq        file_closed

    li      %r11, 804        // close
    sc

    li        %r4, 0            // invalidate handle
    POKE(HANDLE)

    PEEK(DISC)
    addi    %r4, %r3, 1
    andi.   %r4, %r4, 7
    POKE(DISC)

file_closed:
    lis        %r4, 0x0001        // tray open
    stw        %r4, 0x7C(%sp)    // 00 01 00 00 = no disc in tray, tray opened

    SLEEP(1000)
    b        ABS(RETURN_ERR)

    .align 2

disc_name:
    .string    "/psx_cdrom0"

ATAPI 0xBE READ CD
//4.30
//#define BASE        (0x11C310)    // READCD+0x10 in ps1_netemu
//#define RETURN        (0x11BFDC)    // +334 // 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

//case 8 = [fill sector buffer with 0xFF]
//case 7 = [0xBE READ CD]
//case 6 = [0x51 READ DISC INFORMATION]
//case 5 = [0x4A GET EVENT/STATUS NOTIFICATION]
//case 4 = [fill sector buffer with 0xFF]
//case 3 = [0x00 TEST UNIT READY]
//case 2 = [sys_storage_close()]
//case 1 = [sys_storage_open() ]

#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 DISC        (0xE0)       // address in lv2 memory to store current disc number (0..7)

#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)

    PEEK(DISC)
    sldi    %r3, %r3, 8
    add        %r4, %r4, %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"


Yo no digo nada, pero me dió por actualizar el otro día multiman por curiosidad y vi que solo lanza una iso. Hombre, a estas alturas, no me va a tener que decir nadie que es mas sencillo meter parches a una aplicación: fíjate si lo sabré que es como empecé [+risas] . Lo complicado luego, es hacer una emulación mas eficiente, soportar varios tamaños de sector, pistas de audio, multiples discos, disco de cheats, distintos modos de funcionamiento, etc.

Si no fuera así, ni me hubiera preocupar por emular la syscall. A mi sencillamente, me parece que en el fondo, el no se quiere preocupar más por eso y me da que le rompe un poco los esquemas el intentar un soporte como el de Iris a esta cuestión (además, da pereza tener que repetir lo que ha hecho otro [+risas], por que en este caso, hablamos de dejar un soporte igual). Ahora, que yo no tengo inconveniente en buscar alguna solución si el payload causa interferencias: hubo uno que tenía problemas con un firmware debug, que no se si son debido a esto o a otra cosa, pero le pedí un dump de LV2 y todavía estoy esperando...
--------
Por otro lado, he tenido uun problemilla: el git está casi listo, pero falta por rellenar el Readme y subir el fichero mas gordo otra vez, por un error en las rutas que hacía que las librerías de la soundilb se copiaran donde psl1ght aunque otras. Asi que a ver si termina de comprimir en mi equipo de la prehistoria y lo subo otra vez, 200MB a 20KB seguro XD.

Hoy llevo uun día con eso que para que: problemas por todos los lados, pero todo sea para dejaroslo mascadito [+risas]

EDITO

Aquí tengo el git:

https://github.com/Estwald/PSDK3v2

Pinchando en el icono de ZIP os podeis bajar el fichero. Son 327 MB comprimidos, pero al descomprimirlo se va casi a los 1.4GB solo lo que está comprimido en .7z (yo uso la aplicación IZArc para comprimir, pero WinRAR tambien me abre los archivos y no tengo precisamente, la versión mas actualizada. El caso que el ratio de compresión es algo mejor).

Recomiendo instalarlo en C: por que he cambiado las rutas para que apunten ahí (yo uso una unidad F:. Espero que no se me haya colado algo con esa ruta)

Y como indico, si queréis usar la consola de Msys, en etc/profile al final, añado las variables de entorno necesarias y con modificar la ruta de /c a otra parte, pues apuntarán allí lógicamente.

Yo uso los ficheros .bat que me es más cómodo.

Por cierto, si queréis compilar PSL1GHT por alguna razón, recomiendo que editéis el Makefile para que no compile las tools. Mas que nada, por que la cgcomp precisa de unas librerías que no puedo suministrar y a lo mejor hay alguna aplicación un poco tonta.

Como pongo en el Readme, para firmar los ejecutables e tira de scetool, a través de una aplicación "tonta" llamada fake_scetool que simplemente, llama a scetool pasando todos los parámetros necesarios y cambiando de directorio para evitar el problema de "donde están las llaves, Salinas" [+risas]

En fin, toca descansar y mañana, me pondré con Iris. Espero no haber metido un gazapo de última hora o que el servidor me haya hecho alguna jugarreta [+risas]

Saludos
Buenas,

He estado trasteando con el Iris y quería borrar un juego que tenía, el Dead Island, y al hacerlo todo parecía que iba bien pero de repente ha habido un error y se ha abortado la operación, indicándome que no se podían borrar ciertos ficheros en USRDIR.

¿Podría ser algún problema de permisos? ¿Podría ser que esos juegos fueron copiados hace ya tiempo con el multiman y aplicados la corrección de permisos y por eso no va?

Al final he tenido que borrarlo mediante FTP.

Saludos.

EDITO: Otra cosa que he notado es que no soy capaz de que me termine de ejecutar el Resident Evil 6. Me lanza el juego, aparece lo de "pulse start", me pregunta si quiero enviar datos a ResidentEvil.net, le doy a no, se pone a cargar, la pantalla en negro y el led del disco duro todo el rato parpadeando pero casi sin apagarse. Por supuesto la play bloqueada y apagado a lo bruto. He probado de "diferentes fuentes" y me pasa exactamente lo mismo.
Iris actualmente no sirve para copiar ni borrar ciertos asrchivos, pasa dsde hace algunas versiones.
Estwald ya aclaro que eso se solucionara al portar iris a la nueva libreria.

Usa un file manager para borrar el cacho de juego que quedo sin borrar.

Tambien aunque se han ganado algunos se ha perdido compatibilidad con algunos juegos, aunque el re6 anda bien, bajalo o copialo con MM, te aseguro que es el juego.
Pues ya tengo el juego de diversas fuentes y en ninguna de ellas me funciona se me bloquea cuando le doy por segunda vez a "pulse start".

saludos.
Pues a mi me anda perfecto con todas las versiones de iris desde la 1.2 hasta la 1.60.4.

Borra los datos del juego y consiguelo de otra parte, a varios le pasa, se ve que anda una copia mala del re6.
PLIS-PLAS escribió:Iris actualmente no sirve para copiar ni borrar ciertos asrchivos, pasa dsde hace algunas versiones.
Estwald ya aclaro que eso se solucionara al portar iris a la nueva libreria.


Vamos a ver, voy a responder a estas cuestiones y agradecería que luego alguien posteara detrás, para dejarme espacio para postear, si los test me parecen satisfactorios (de momento, van por buen camino) y puedo sacar la nueva versión.

Los problemas de Iris no vienen desde hace algunas versiones: por ejemplo, el error de "demasiados ficheros abiertos" lo da en todas las versiones y no solo Iris, si no que cualquiera que se base en la rutina de copiado (Open Manager, Multiman para 3.55) le dará por la sencilla razón de que es un problema de construcción y quizá también del optimizado de los compiladores. Creo que ese problema ya está resuelto, con el doble chequeo que le he metido.

El problema borrando ficheros no es un problema de Iris en si, si no de jerarquía de permisos. Por ejemplo, tu no puedes borrar un fichero que no has creado tu, si solo te permite la lectura, incluso aunque tengas permisos root. Para hacerlo, tendrás que cambiar los permisos primero, pero aquí hay un problema de jeraquías: el fichero está dentro de una carpeta y si esa carpeta tiene flags de lectura, no te deja borrar el fichero: primero tienes que fijar permisos en la carpeta/carpetas y luego puedes atacar. Si tu le dices a un fichero que se borre y no se borra por que le negaste los permisos, podrás buscarte la vida para forzar el borrado, pero no es un bug propiamente dicho.

Para eso está la función Fix Game, aunque he visto que no mete flag de directorio y se lo he añadido.

Por otro lado existe un problema curioso: resulta que el juego puede tener bigfiles y si se copia de BDVD o HDD0 a USB, se me ocurrió añadirle al nombre un '_' para marcarlo como no ejecutable y al mismo tiempo, como candidato a instalar en caché. Pues bien, resulta que si copias ese juego al disco interno, te deja ese '_' metido y no puedes ejecutar el juego hasta que lo elimines [+risas] . Esto está ahí desde HManager también, con el añadido de que me lié en una cosa y parece que pretendiera hacerlo de esa manera, cuando no es así.


PLIS-PLAS escribió:Tambien aunque se han ganado algunos se ha perdido compatibilidad con algunos juegos, aunque el re6 anda bien, bajalo o copialo con MM, te aseguro que es el juego.


Iris Manager no ha perdido compatibilidad, que yo sepa, por que para perder compatibilidad tendrias que dejar de hacer lo que hacías antes y salvo los permisos activados, todo lo demás se sigue haciendo igual o mejor, por que se han añadido cosas nuevas: si un juego no te va, puede ser por que lo instalaste con permisos activados (borra datos de juego), por que lo has actualizado (y entonces no es el mismo juego, aunque a ti te lo parezca), por que estás usando un modo incorrecto o porque cambiaste de firmware (y ahora los juegos con firmas mal hechas o apaños del pasado, no funcionan) o por que no decirlo, por un bug específico que tenga el programa (por ejemplo, que no se copien bien los juegos y entonces, no funcionan, como es lógico), pero no por el hecho de haber cambiado/añadido cosas .

Saludos y lo dicho: no me dejéis el post todo el día, por si digo: allá va [+risas]
PLIS-PLAS Tienes un mp.

Estwald, me respondes claramente a mi pregunta. Por lo que tu dices y por los mensajes en pantalla, es un problema de "permisos jerárquicos".

Pues nada, esperamos tu release jeje.

Saludos.
Bueno, la release (el código fuente lleva subido desde hace dos horas XD)

Mi GIT personal con los fuentes y todo lo necesario

https://github.com/Estwald?tab=repositories

Wiki

wiki/Iris_Manager

Versión 2.0

http://mods.elotrolado.net/~hermes/ps3/ ... er-4-x.rar

Lo nuevo:

- Portado todo el proyecto a PSL1GHT v2 (de ahí el salto de versión)

- Añadidos los idiomas dentro de Iris Manager: pulsa START, vete a Tools (Herramientas) y en la segunda opción veraás "Pitinglis". Pues dale con X hasta que "hable" cristiano [+risas]

Hay una opción "Custom (from file)" para añadir otras lenguas, como el Catalán u otras particulares de nuestra tierra. No la he incluido dentro por que si culo veo, culo quiero y va a empezar todo el mundo a pedir su idioma, y yo no puedo ocuparme de todo eso cuando añada cosas nuevas!. Aun así, enviadme las traducciones por si me da por incluirlas dentro y para que otra gente las pueda usar, sobre todo

- Ahora no se verifica la versión del language.ini. Es decir, si el language tiene la entrada que necesita Iris, la toma y si no, la ignora y usa la que tiene por defecto (esto se debería haber hecho así hace mucho [+risas] )

- Se ha arreglado el problema de que el FTP no truncaba los ficheros.

- Se ha arreglado el problema de que Iris daba error al abrir mas de dos ficheros en las transferencias asíncronas. Se ha arreglado el problema de permisos de directorios y ficheros al borrarlos.

- Anadida una opción nueva en "Tools" para los que tenéis la controladora rota, que podáis lanzar los juegos de PSX en ISO y además, se ignora en lo posible todo lo que va hacia BDVD y se hace el montaje que me pidió Miralatijera para poder lanzar los juegos desde app_home (básicamente, es lo mismo que hacía para montar hdd0 sobre bdvd usando la opción BD Emu, solo que ahora se hace siempre y además se añade que monta /dev_usb00x sobre /dev_bdvd). De momento es todo experimental asi que tened paciencia hasta que Miralatijera de con la tecla, ahora más fácil que le proporciono apoyo por software y le proporciono herramientas y los fuentes para compilar XD

- Esto no le gustará a Miralatijera [+risas] : al lanzar PSX, se elimina "la discoteca" o "el semáforo". Esto es así, por que en PSX debemos observar el led verde a la hora de cambiar de disco. En el resto de modos, se lo respeto, eso si [jaja]

PD: Por cierto, se me ha olvidado mencionar que he traducido muchas cosillas... aun quedan cosas por traducir, pero vamos, es un inglés de andar por casa y son cosas que no se usan todo el raro o mensajes de error.
Muchas gracias Estwald, da gusto ver el trabajo de gente como tu.

Le echaré un vistazo al código para seguir aprendiendo cosas del maestro.
muchas gracias como siempre hermes eres el mejor
Gracias por tu trabajo duro [poraki] curiosa la doble barra de copiado [+risas],recien pasado a 4.31 y haciendo pruebas.

Saludos
gracias y felicidades Estwald, por la release 2.0
porfin ya tienes lo que querias, no libre de un gran esfuerzo, sin duda

tengo alguna pregunta

para parchear un ps-emu como se hace?
puedes explicar la forma de usar big files en interno y el resto en usb, o esa función ya no está?

¿ya se han usado las funciones que buscabas con el port (algo de 32)?

saludos
Gracias por la 2.0, mañana la pruebo sin falta XD
PD: Antes no me leía los juegos, y eso que probaba todos los directorios..el HD externo estaba bien ya que MM sí me los leía/cargaba [burla3]
Instalada la version 2.0 en mi PS3 y trabaja bien hasta donde he podido probar. Me he dado a la tarea de copiar un juego de PSX por probar y eso de la consola con los datos no aparecio. Y "la doble barra de copiado" que hablan tampoco. No sale o no se ve ningun movimiento de archivos en consola como antes solo el tamaño del copiado total y el que anda copiando. No se a que se refiere con eso el compañero con lo de la barra doble. En general todo marchando bien. Gracias Estwald otra vez por tu trabajo que sin animo de lucro amablemente nos sigues trayendo. Si encuentro algo raro ya te dejare saber.
Tantos avances y yo con la ps3 a 4000kms de distancia [snif]
Muchas gracias Estwald
mm_355dex.c
payload_355dex.c
payload_421.c
payload_421dex.c
payload_430.c
payload_431.c
linking ... irismanager-4-x.elf
CEX self ... irismanager-4-x.self


QUE GUSTAZO HOYGA!

ahora si que si puse el embrague , caja nueva ( chatarra pero con quality services ( un amigo dentro xD) ) le hice un injerto de una caja de golf 2 al golf 3 y bueno fué medio tedioso adaptar los palieres luego el volante motor se puso tonto pa entrar en la caja , luego al arrancar sonaba algo raro y hubo que desmontar por completo y volver a montar ( aun se desconocen las causas del ruido ) solamente sé que al hacer eso desapareció y ahora va como la seda , un sonidito , un reprís. ... dioh xD

no quiero convertir esto en forocoches aunque allí no se hable de coches es un decir xD

mensaje para algún dev novato : Este hombre ( estwald ) os ha masticado el chicle a base de bien xDDD el pack de compiladores que adjunta es un all in one extract and compile , vamos que te podrías hacer un script .exe que en vez de dar pkg's des el entorno y que se autocompile en el equipo host xD
Nueva versión 2.01:

Novedades:

- incluído el Noruego como lenguaje (si, ya se que por estos lares, eso no interesa mucho XD)

- Añadida conversión UTF8 a Ansi en las cadenas de lenguaje (esto si es importante, por que cualquier código por encima de 128, se convertía mal)

Faxtron escribió:Instalada la version 2.0 en mi PS3 y trabaja bien hasta donde he podido probar. Me he dado a la tarea de copiar un juego de PSX por probar y eso de la consola con los datos no aparecio. Y "la doble barra de copiado" que hablan tampoco. No sale o no se ve ningun movimiento de archivos en consola como antes solo el tamaño del copiado total y el que anda copiando. No se a que se refiere con eso el compañero con lo de la barra doble. En general todo marchando bien. Gracias Estwald otra vez por tu trabajo que sin animo de lucro amablemente nos sigues trayendo. Si encuentro algo raro ya te dejare saber.


????
O tenemos un expediente X o no se de lo que estas hablando, pues dices que no ves ni la consola y eso, es muy raro ¿no será que estás usando el icono ese que me has comentado vía MP?. Creo que PLIS_PLAS comentó algo al respecto de que había problemas con el, en el otro hilo.

La razón por la que no lo incluyo, si me permites que te responda por aquí, es porque yo vine a ayudar a D_Skywalk y era él el que tenía que tomar ese tipo de decisiones. Creo que su idea era incluirlo por si alguien estaba interesado, pero seguir con el de siempre.

Ahora que yo tomo el relevo, opino lo mismo: por poder se puede añadir al .rar para que no se pierda y por si alguien quiere desempaquetar/empaquetar pero el icono de Iris Manager no se va a cambiar de forma oficial. Eso sím para incluirlo primero, tendría que tenerlo, pero no lo tengo y en enlace que pusiste a mediafire está caído.

MiralaTijera escribió:
mm_355dex.c
payload_355dex.c
payload_421.c
payload_421dex.c
payload_430.c
payload_431.c
linking ... irismanager-4-x.elf
CEX self ... irismanager-4-x.self


QUE GUSTAZO HOYGA!
...

mensaje para algún dev novato : Este hombre ( estwald ) os ha masticado el chicle a base de bien xDDD el pack de compiladores que adjunta es un all in one extract and compile , vamos que te podrías hacer un script .exe que en vez de dar pkg's des el entorno y que se autocompile en el equipo host xD


Esa era la idea: proporcionar un entorno de desarrollo que compile, que sea fácil de instalar, etc. Pero el mérito no es solo mío: Marioga ya lo hizo en el pasado, la base de lo hecho es suya (compiladores y el MinGW que adjunto, que como se puede ver, tiene como user a "Mario" XD) y en ese sentido, he tomado su relevo para adaptarlo a los "tiempos modernos".

Ya me contarás como va lo de bdvd.

Saludos
Muchas gracias, como siempre te sales... unas preguntillas hace tiempo lei por aqui que iris era incompatible con multiman ¿sigue siendo asi? osea ¿hay problemas por tener los dos instalados y utilizar cada uno para lo que se quiera?

Un saludo.
con razon cuando juego a algo y luego pongo una pelicula se queda montado el juego xDDD lo que deberian hacer los programas estos... es que al salir del programa de forma normal desmonte el juego y asi se puedan ver las pelis sin problemas... digo yo... xD
Basta con entrar al manager para que desmonte el juego.

No he probado el 2.xx, estoy sin play, en casa de herrero cuchillo de palo, tengo las mias prestadas y como 7 para reparar... argggg.
GUSMAY escribió:Muchas gracias, como siempre te sales... unas preguntillas hace tiempo lei por aqui que iris era incompatible con multiman ¿sigue siendo asi? osea ¿hay problemas por tener los dos instalados y utilizar cada uno para lo que se quiera?

Un saludo.

Puedes instalar los dos sin problemas. Pero si utilizas uno para que el otro no de problemas lo mejor es reiniciar la ps3 antes.
Estwald escribió:Nueva versión 2.01:

????
O tenemos un expediente X o no se de lo que estas hablando, pues dices que no ves ni la consola y eso, es muy raro ¿no será que estás usando el icono ese que me has comentado vía MP?. Creo que PLIS_PLAS comentó algo al respecto de que había problemas con el, en el otro hilo.

La razón por la que no lo incluyo, si me permites que te responda por aquí, es porque yo vine a ayudar a D_Skywalk y era él el que tenía que tomar ese tipo de decisiones. Creo que su idea era incluirlo por si alguien estaba interesado, pero seguir con el de siempre.

Ahora que yo tomo el relevo, opino lo mismo: por poder se puede añadir al .rar para que no se pierda y por si alguien quiere desempaquetar/empaquetar pero el icono de Iris Manager no se va a cambiar de forma oficial. Eso sím para incluirlo primero, tendría que tenerlo, pero no lo tengo y en enlace que pusiste a mediafire está caído.

Saludos



En cuanto a lo del caso del copiado aqui te dejo un video de lo que pasa pues es mas facil de apreciar esto del expediente X :

http://www.mediafire.com/?rdufk2hz6k6mp8m

Como veras segun dije nada en consola aparte del copiado de por donde va y del total de la imagen. Muy buena entrada el de asociar el problema al icono jejejeje [poraki] Siempre que sacas una nueva version me tomo el tiempo de "testear" pues este es mi manager favorito y como veras por el simple hecho de ser libre por eso tomo el tiempo para ayudar en lo que pueda para mejorarlo. Acabo de ver que tienes nueva version desconosco si se arregla ya con esta v2.01 no estoy con tiempo ahora para verificar ya comentare cuando pueda.

Por otro lado el problema del MGS 4 que tenia lo pude resolver facil borre y reinstale desapareciendo el problema milagrosamente.

En cuanto al icono, no, no esta caido el enlace sigue vivo desde que lo subi por primera vez aqui te lo dejo :

http://www.mediafire.com/?n9rass8h515ac0c

El caso de añadir el icono en la version de D_Skywalk ya se habia hablado en el antiguo hilo el cual acepto y dijo que añadiria. Si se añade o no me da lo mismo este una vez se instala permanece lo unico que hay quienes me preguntan por la version reciente con el mismo he de ahi el preguntar porque no se añade ni en el rar, ni en la version y ni tan siquiera en el hilo principal. Te entiendo tu desicion y la respeto como respeto todos tus trabajos que de buena fe traes, pero que no se añada por que D_Skywalk no aprobo no lo entiendo pues esto ya estaba hablado de hecho en la ultima actualizacion de D_Skywalk no lo pudo añadir pues no lo tubo en su momento segun me dejo saber. De todos modos no importa lo que mas importa es que tenemos Iris actualizado y con nuevas funciones fuera de iconos inecesarios. Gracias a gente como tu esto sigue vivo eso es lo que importa [beer]
Hola sólo por dejarlo claro, que espero que nadie se moleste, sólo quería probar como quedaba el icono animado de Faxtron, como nunca lo pude ver no sabía si lo iba a usar o no. En principio para mi lo primordial siempre era que el iris fuera lo más enano posible 1MB roxs XD

El entorno pasarlo a linux, ... puede que sufra y aun no pasé mi ps3 a 4.31, tengo muchas cosas pendientes ... [fumando]
Lo de buscar una PS3 semi-rota para hacer pruebas creo que, visto lo visto hay poca esperanza ein?

Por lo demás voy a ir probando la 2.01 y bajarme el git [oki]

Un Saludo! [chiu]
Dejo lo que opina Deank del nuevo Iris en psx-scene .

The issues are 2:

1) Iris intercepts and changes the sys_timer_usleep syscall which is used by apps to control the flow and speed of GUI and other functions. Unless you go back to Iris to reset it - all other apps will fail in one way or another. The payload used for ps1 emulation does other things, too and that's why I decided to stay with the app-patching and worked on ps1_netemu for a week. Estwald mistakenly thought that ps1_netemu depends on some specific timings, that it reads more than one sector at a time and there is no space in ps1_netemu to place the patches. None of this is true. Emulating the syscalls is a great idea, but it still breaks other stuff.

2) 4.21REX, 4.21Rogero, 4.30REX, 4.30ROGERO come with syscalls 8 and 9 already occupied by lv1_peek and lv1_poke. As you know sc8 is used by hermes payload and Iris ignores the fact that it is already used. It overwrites it and then it causes problems in other apps, too. multiMAN checks if syscall8 is used and uses syscall10 for hermes payload and all is ok.

For the next mM update I plan to write my own payload (different from PL3 and Hermes) and I may keep the 3.55+ compatibility.
Su propio payload?, eso es nuevo xDD. ya veremos
zitroello escribió:Dejo lo que opina Deank del nuevo Iris en psx-scene .

The issues are 2:

1) Iris intercepts and changes the sys_timer_usleep syscall which is used by apps to control the flow and speed of GUI and other functions. Unless you go back to Iris to reset it - all other apps will fail in one way or another. The payload used for ps1 emulation does other things, too and that's why I decided to stay with the app-patching and worked on ps1_netemu for a week. Estwald mistakenly thought that ps1_netemu depends on some specific timings, that it reads more than one sector at a time and there is no space in ps1_netemu to place the patches. None of this is true. Emulating the syscalls is a great idea, but it still breaks other stuff.

2) 4.21REX, 4.21Rogero, 4.30REX, 4.30ROGERO come with syscalls 8 and 9 already occupied by lv1_peek and lv1_poke. As you know sc8 is used by hermes payload and Iris ignores the fact that it is already used. It overwrites it and then it causes problems in other apps, too. multiMAN checks if syscall8 is used and uses syscall10 for hermes payload and all is ok.

For the next mM update I plan to write my own payload (different from PL3 and Hermes) and I may keep the 3.55+ compatibility.


y en el idioma de cervantes que opina deank?
Mincho escribió:y en el idioma de cervantes que opina deank?

Los problemas son dos:

1) Iris intercepta y cambia la syscall sys_timer_usleep que es utilizada por aplicaciones para controlar el flujo y la velocidad de la GUI (interfaz gráfica de usuario) y otros funciones. A menos que retornes a Iris para restablecerlo todas las demás aplicaciones producirán un error (fallaran) de una manera u otra. El payload utilizado para la emulación de ps1 hace otras cosas también, y por eso decidí quedarme con la aplicación de parches y funcionó en ps1_netemu durante una semana. Estwald pensó erróneamente que ps1_netemu depende de algunos tiempos específicos, que se lee más de un sector a la vez y no hay espacio en ps1_netemu para colocar los parches. Nada de esto es cierto. Emular las syscalls es una gran idea, pero aun así quiebra otras cosas.

2) 4.21REX, 4.21Rogero, 4.30REX, 4.30ROGERO vienen con las syscalls 8 y 9 ya ocupadas por lv1_peek y lv1_poke. Como ustedes saben sc8 es utilizado por hermes payload e Iris ignora el hecho de que ya está en uso, la sobrescribe y luego causa problemas en otras aplicaciones, también. multiMAN comprueba si la syscall8 se utiliza (está en uso) y utiliza la syscall10 para hermes payload y todo está bien.

Para la próxima actualización de mM planeo escribir mi propio payload (distinto del PL3 y Hermes) y puedo mantener la compatibilidad 3.55+.


Ahora quien fue el de la idea de ocupar un espacio que desde años tiene dueño, nombre y apellido (Estwald/Hermes, Hermes Payload) Tanto Rogero como el Team Rebug sabían que ese espacio ocupado por la SC8 era ocupado por Hermes Payload y al parecer el mM de Deank verifica si está la SC8 en uso y utiliza la SC10 para el Hermes Payload. Asi como a Deank se le ocurrió la idea de utilizar la SC10, ¿porque a Rogero y al Team Rebug no le vino la misma idea? La respuesta es sencilla ganas de joder y tocar pelotas o dar por cu$# (ya aqui estoy hablando como Estwald [+risas] ) El fallo que se comenta de Iris, Estwald no tiene la culpa.

Estwald ya que en esto sabes mas que yo XD y por lo visto Rogero y el Team Rebug han hecho una burrada, podrias tu decir si en el CFW 4.31 de MiralaTijera se ha cometido el mismo fallo, así se le recomienda a la gente que CFW utilizar, que por lo visto a esa gente pasan del tema.
Pues dean que no hable mucho xDD que si el usa la sc 10 para la sc8 de hermes entonces tambien esta ocupando el espacio de la sc 10 que tambien usan los mfw para llamar hvcalls y repito esta sc tambien la tienen los cfw rebug rogero etc y la mayoria de los mfw como estos, asi que no veo por donde anda criticando este tio.
una pregunta,cuando paso los juegos de psx1 al disco duro de mi ps3 puedo hacer que se me vean con las portadas los juegos en el iris manager?es que no he podido conseguirlo,lo he probado de mil maneras:imagen de 800 pixels,nombrada cover en mayuscula,etc...)

y otra cuestion,porque decis que es mejor que multiman?sin ánimo de ofender a nadie lo veo bastante más cutre e incompleto,la única ventaja que le veo es para jugar a los juegos de psx,un saludo
karlostek escribió:una pregunta,cuando paso los juegos de psx1 al disco duro de mi ps3 puedo hacer que se me vean con las portadas los juegos en el iris manager?es que no he podido conseguirlo,lo he probado de mil maneras:imagen de 800 pixels,nombrada cover en mayuscula,etc...)
No lo conseguirás con solo nombrar la imagen a COVER en mayúscula, también tienes que poner en mayúsculas la extensión del archivo .JPG La nomenclatura correcta es COVER.JPG
Ejemplo de estructura de juego:

/dev_usb000
/PSXGAMES
/Metal Gear Solid
  |
  |--- COVER.JPG -> caratula
  |
  |--- MGS1.IMG -> disc 1
  |
  ---- MGS2.IMG -> disc 2


karlostek escribió:y otra cuestion,porque decis que es mejor que multiman?sin ánimo de ofender a nadie lo veo bastante más cutre e incompleto,la única ventaja que le veo es para jugar a los juegos de psx,un saludo
Nadie aquí está comparando y diciendo cual es mejor, si la única ventaja que le ves es para jugar a tus juegos de PSX, pues bien utilizalo para eso.
ps1_emu = 1080/50hz+60hz, 720/50hz+60hz, 576/50hz, 480/60hz.
ps1_netemu = 1080/60hz, 720/60hz, 576/50hz, 480/60hz.
PAL juegos demasiado rápido cuando se utiliza ps1_netemu (aparte de 576/50hz).
¿hay solución para este. (1080 y 720 modos)
Gracias.
Versión 2.11

- Se arreglan problemas de truncado de cadenas y con UTF8, como he puesto en el post principal.

Aquí tengo que decir que el truncado se producía por que D_Skywalk usba strok() qu elo que hace es trocear cadenas y al hacerlo, parte aquellas que puedan tener un simnolo buscado como por ejemplo, el '='.

Lo que he hecho ha sido reemplazar todo eso por rutinas propias, que son mejores para esa tarea y además, dejo abierta la posibilidad futura de poder buscar en secciones .

- Arreglado un problema en la salida del programa cuando se usaba el teclado osk: dicho problema se presentaba por que no cambia un flag y eso hacía que se liberara la memoria contenedor dos veces...

- Corregido el problema de uleep() en los juegos PSX

Y ahora vayamos por partes:

Faxtron escribió:En cuanto a lo del caso del copiado aqui te dejo un video de lo que pasa pues es mas facil de apreciar esto del expediente X :


Si hubieras especificado que el copiado era desde disco te habría dicho que ahí no hay doble barra alguna y que tal vez el problema, se deba a que a un problema en la lectura del disco que has metido, que no sale de ahí y hasta que no salga, no va a mostrar la salida en pantalla. La barra de copiado aparece al copiar juegos desde de PS3 o ISOS, pero en el copiado de disco PSX es importante observar los errores de lectura que te da y no puedo poner barra.

Faxtron escribió:Por otro lado el problema del MGS 4 que tenia lo pude resolver facil borre y reinstale desapareciendo el problema milagrosamente.


No es un problema milagroso: es que se copió mal o se instaló mal (en el caso de la PS3, si tiene activado permisos)

Faxtron escribió:En cuanto al icono, no, no esta caido el enlace sigue vivo desde que lo subi por primera vez aqui te lo dejo :


Coño, pues a mi me dió error de que el fichero había sido borrado o algo similar :p .

Ahora, como veras, lo he incluido

Sobre el resto que dices, que yo sepa, D_Skywalk no dijo que iba a adoptar el icono: a mí no me importa añadirlo y ofrecer dos versiones, pero en ese momento le correspondía a él tomar ese tipo de decisiones y bajo mi punto de vista, la forma de añadirlo es haciendo lo que he hecho ahora: dos versiones. Ahora, como venga jiXo a quejarse de que le estoy petando el servidor con las descargas, ya sabes la que tendrá que adelgazar [+risas]

Con respecto al señor Deank

1) La syscall 8 la añadí YO PRIMERO. Si un señor pasa de ella y mete rutinas, cuando hay un buen puñado de syscalls libres y además, podría unificar todas esas rutinas en una sola syscall (como hace la 8, que repito, LA DEBERIAN HABER RESPETADO), la culpa de lo que pase luego, la tiene el.

Si ellos se pasan la syscall 8 por el forro, ¿por que voy a tener que respetar lo que hace otro que no ha respetado el espacio de la syscall 8?. La culpa la tienen ellos.

2) La syscall 8 la ocupan con un LV1 peek en esos firmwares, pero nadie me lo dijo: lo tuve que descubrir por mi cuenta, por que repito, aquí todo el mundo esconde las cartas, menos yo, que las publico todas por que yo no estoy para tonterías. Fácilmente, podría restaurarlo, es más, podría camuflar la syscall para que actuara de LV1 peek y de syscall 8, pero no me sale de las pelotas

3) Al ser un LV1 Peek es inocua la llamada a esa parte, por cierto, pero la culpa la tiene quien la usó sin pensar que ya tenía un uso. Por cierto, Deank , si usas la 10, hijo, esa es LV1 Call en esos firmwares!!!!

4) Cómo podéis apreciar, he metido un chequeo que pide reiniciar si se detecta un payload que no es el que debería haber: que más puedo hacer.

5) El payload de PSX comprueba si el espacio está libre antes de proceder a instalarse: si no lo está, no se instala. Ahora bien, si alguien mete algo en esa parte y ni siquiera se molesta en avisarme para poder encontrar una solución... que luego no se queje: yo no le digo a nadie el firmware que se tiene que instalar, ni les digo que usen Iris Manager si les va mal.

6) Es cierto que intervengo usleep (¿acaso lo he ocultado?), pero Deank tiene una forma muy divertida de decir las cosas: el sabe o debería de haber visto, en el código, que mi intención es dejar pasar todos los usleeps excepto los que van asociados al loop EBUSY, que solo permito 1 ms y que solo afectaría al emulador.

Desafortunadamente y como uno es humano y hacer programa en ensamblador es complicado, equivoqué la comparación y en realidad, hacía todo lo contrario: yo creo que no hace falta montar un circo para decirle a alguien que ha cometido un error en alguna parte (es lo bueno de hacer público los fuentes que si te equivocas y no ves un fallo, alguien puede verlo por ti).

7) Si uso la syscall es por que es un método mucho mejor que ir parcheando programas y más interesante para cualquier dev que se precie. En un principio pensé que se hacían multiples lectura de sector por algunos problemas que tuve, pero luego vi que en realidad no era así (de hecho, había un bug que impedía que la rutina pudiera leer varios sectores XD y recuerdo que lo comenté en el hilo). Si he metido código para que la rutina pueda leer varios sectores, es por que debería hacerse así, aunque no he probado si realmente funciona bien ¿algún problema con eso?. De hecho, gran parte de esas rutinas se podrían utilizar para otras cosas y el código que yo hago no es un resultado final si no que siempre se puede perfeccionar y otros pueden intervenir, por que esto es un proyecto que tiene CODIGO ABIERTO, a diferencia de otros.

De todas formas, Deank debería saber que ciertos juegos requieren de más datos de los que el suministra. Yo no soy perfecto y puedo cometer errores como todo el mundo, pero si tan listo es Deank ¿que hace basándose en mi trabajo que tanto parece criticar?.

Me recuerda a las tonterías que soltó en su momento otra persona que no voy a mencionar, por que agua pasado no mueve molino.

Por cierto, todo lo que yo publico está únicamente testeado por mí en parte: no debería hacer falta que ponga la palabra BETA para que se supiese que es una BETA por que al final, añadir esa palabra, acaba sonado a excusa barata para cuando algo haya falla: yo no necesito esconder mis errores, que los tengo, como todo el mundo

Saludos
Gracias Estwald por esta nueva version mañana por la mañana la pruebo [sonrisa] .

Y no creo que el comentario de Deank sea una critica sino una observacion [ginyo] .

Que bonito seria que fuerais amigos [amor] pero eso lo veo dificil.


Mucho animo y no te calientes que en realidad no vale la pena [beer] un saludo campeon.
GUSMAY escribió:Gracias Estwald por esta nueva version mañana por la mañana la pruebo [sonrisa] .

Y no creo que el comentario de Deank sea una critica sino una observacion [ginyo] .

Que bonito seria que fuerais amigos [amor] pero eso lo veo dificil.


Mucho animo y no te calientes que en realidad no vale la pena [beer] un saludo campeon.


Que deje de hacer observaciones a quien no debe, reporte los bugs (si los ve) a quien debe y libere el código fuente, que ya va siendo hora.

Así ganaríamos todos, pero va a ser que él no es así XD
ERMaCDR escribió:
karlostek escribió:una pregunta,cuando paso los juegos de psx1 al disco duro de mi ps3 puedo hacer que se me vean con las portadas los juegos en el iris manager?es que no he podido conseguirlo,lo he probado de mil maneras:imagen de 800 pixels,nombrada cover en mayuscula,etc...)
No lo conseguirás con solo nombrar la imagen a COVER en mayúscula, también tienes que poner en mayúsculas la extensión del archivo .JPG La nomenclatura correcta es COVER.JPG
Ejemplo de estructura de juego:

/dev_usb000
/PSXGAMES
/Metal Gear Solid
  |
  |--- COVER.JPG -> caratula
  |
  |--- MGS1.IMG -> disc 1
  |
  ---- MGS2.IMG -> disc 2


karlostek escribió:y otra cuestion,porque decis que es mejor que multiman?sin ánimo de ofender a nadie lo veo bastante más cutre e incompleto,la única ventaja que le veo es para jugar a los juegos de psx,un saludo
Nadie aquí está comparando y diciendo cual es mejor, si la única ventaja que le ves es para jugar a tus juegos de PSX, pues bien utilizalo para eso.



muchas grácias me sirvió perfecto
@Estwald

Muchas gracias por : la nueva version, por la explicacion y por agregar esa alternativa con el icono para los interesados. Grande, muy grande eres en esta scene somos afortunados de tenerte en ella. [plas]
gracias por la actualización , y por la explicación tambien

bueno muchos ya lo sabran supongo , pero lo pongo para quien tiene 0 conocimientos de programacion como yo [ayay]

para compilar la versión stealth hay que agregar esto en la herramienta Make_PKG

BUILD_STEALTH=yes


estuve mirando el archivo makefile y mientra probaba algunos comandos para intentar crear la versión stealth ,di con el correcto [+risas]

aqui esta por si no me explique bien

http://rghost.net/43855289

y aqui esta el iris 2.11 stealth tambien http://rghost.net/43855104


Saludos
HI, I dont hablar español, así que estoy usando Google Translate, espero que haga un buen trabajo.

¿Puedo obtener una característica adicional a Iris Manager, para cambiar el diseño de 4x3 a 8x4.
Solo se necesita mucho tiempo para desplazarse hacia abajo cuando usted tiene un montón de juegos en un disco duro.

gracias
NakedFaerie escribió:HI, I dont hablar español, así que estoy usando Google Translate, espero que haga un buen trabajo.

¿Puedo obtener una característica adicional a Iris Manager, para cambiar el diseño de 4x3 a 8x4.
Solo se necesita mucho tiempo para desplazarse hacia abajo cuando usted tiene un montón de juegos en un disco duro.

gracias


Editando lo escrito asi como Maito pues paso de molestar. Si supiera como hacerlo tenlo por seguro que ni tan siquiera una sugerencia te daba disculpa el atrevimiento.
Tengo un problema. Me gustaría usar la función del arranque del último juego ejecutado (mantener L1 mientras abres el iris, era así?).

Lo que pasa es que no consigo arrancar ningún juego directamente (direct boot) desde el Iris (pantallazo negro. Tengo bien el lector y siempre tengo un disco dentro... ¿Domo debo configurar el iris para que inicie el juego sin salir al XMB?

Tengo el cfw 4.31
Estwald leyendo en los foros en ''pitinglish'' hay usuarios que reportan que a partir de la v2.01 no les funciona el FTP, al parecer no pueden obtener la lista de directorios. Uno de ellos dice estar usando la v1.60 beta 4 con un ID diferente como FTP.

Saludos.
Maito escribió:
NakedFaerie escribió:HI, I dont hablar español, así que estoy usando Google Translate, espero que haga un buen trabajo.

¿Puedo obtener una característica adicional a Iris Manager, para cambiar el diseño de 4x3 a 8x4.
Solo se necesita mucho tiempo para desplazarse hacia abajo cuando usted tiene un montón de juegos en un disco duro.

gracias


Faxtron says that, at this time, this feature is not available in Iris Manager. He consideer is a good idea to implement it next releases, why don't you tell with Estwald in order to add it?

If you have a lot of games of ps3 or psx mixed in your hard drives, at least, you can choose what kind of game you want iris manager to show by pressing R2 or L2 (one of them but, at this moment I don't remember the exact button). It will use the boxes to be filled by one of the game type of your choice by pressing those buttons.

See you.

--------------------------------------------------

Lo que dice Faxtron es que, en estos momentos, esa característica no está disponible en Iris Manager. Él considera que es una buena idea el implementarlo para las siguientes versiones. ¿Por qué no se lo comentas a Estwald por si lo puede añadir?

Si tienes un montón de juegos, entre los de ps3 y los de psx, al menos, puedes pulsar R2 o L2 para que Iris Manager pueda elegir mostrar los de un tipo u otro.

Nos vemos.


Dato con R1 y L1 pasas de paguina,enhorabuena Estwald y cia.... [poraki]

Saludos
Maito escribió:
NakedFaerie escribió:HI, I dont hablar español, así que estoy usando Google Translate, espero que haga un buen trabajo.

¿Puedo obtener una característica adicional a Iris Manager, para cambiar el diseño de 4x3 a 8x4.
Solo se necesita mucho tiempo para desplazarse hacia abajo cuando usted tiene un montón de juegos en un disco duro.

gracias


Faxtron says that, at this time, this feature is not available in Iris Manager. He consideer is a good idea to implement it next releases, why don't you tell with Estwald in order to add it?

If you have a lot of games of ps3 or psx mixed in your hard drives, at least, you can choose what kind of game you want iris manager to show by pressing R2 or L2 (one of them but, at this moment I don't remember the exact button). It will use the boxes to be filled by one of the game type of your choice by pressing those buttons.

See you.

--------------------------------------------------

Lo que dice Faxtron es que, en estos momentos, esa característica no está disponible en Iris Manager. Él considera que es una buena idea el implementarlo para las siguientes versiones. ¿Por qué no se lo comentas a Estwald por si lo puede añadir?

Si tienes un montón de juegos, entre los de ps3 y los de psx, al menos, puedes pulsar R2 o L2 para que Iris Manager pueda elegir mostrar los de un tipo u otro.

Nos vemos.


The problem is I have 1 PSX game and about 60 PS3 games. Now if I wanted to play a game say Need For Speed Hot Pursuit I have to click down for many pages. If it was 8x4 I would click down about 3 times.
Thats just 1 HDD, when I connect up the 2nd USB HDD and all the internal games its over 100 games and just takes way too long with the 4x3 view as it is now.
MultiMan has the 8x4 and I was using that for ages till DeamK screwed it up and this got released and now I use this as its better but the 4x3 is the only problem I've been having with it.

-

El problema es que tengo un juego de PSX y cerca de 60 juegos de PS3. Ahora bien, si yo quería jugar un juego dicen Need For Speed ​​Pursuit Hot tengo que hacer clic abajo para muchas páginas. Si se trataba de 8x4 que se haga clic abajo alrededor de 3 veces.
Eso es sólo un disco duro, cuando me conecto a la segunda unidad de disco duro USB y todos los juegos internos de sus más de 100 juegos y sólo toma demasiado tiempo con la vista 4x3 como lo es ahora.
Multiman tiene el 8x4 y yo estaba usando durante siglos hasta que DeamK me equivoqué y esto quedó liberado y ahora yo uso esto como su mejor, pero el 4x3 es el único problema que he tenido con él.
Use L2 R2 to show psx games only.
Me he registrado para darle las gracias por este fantástico homebrew! ¡Muchas gracias!

ERMaCDR escribió:Estwald leyendo en los foros en ''pitinglish'' hay usuarios que reportan que a partir de la v2.01 no les funciona el FTP, al parecer no pueden obtener la lista de directorios. Uno de ellos dice estar usando la v1.60 beta 4 con un ID diferente como FTP.

Saludos.


Yo soy la persona que está utilizando 1.60 beta4 con un ID diferente como FTP. Es más estable que otras alternativas! [carcajad]

PS.: El español no es mi lengua materna, pido disculpas por la "traducción de Google".
5434 respuestas