Hola, en un principio no es problema ni de la rom ni del emulador, parece se run problema del tio que la armo
A ver, estoy haciendo supociciones, ya que no investige la rom... mi idea es que o esa rom era PAL, o parchearon algunas partes usando el codigo de una rom PAL (que se yo.. por ejemplo la desensamblaron y le dieron a la maquinita de copiar/pegar)
Los 488 ciclos son los mismos en PAL o NTSC (bueno, casi, los cristales varian un pelin la frecuencia) porque las lineas son diferentes... asi que si, es un valor correcto
En PAL tenes 312 lineas (vblank+hblank) y en NTSC 262, pero en ntsc 60hz y en PAL 50hz, asi que se compensan (lineas/hz da el mismo resultado)
El problema es cuando tenes un juego programado para PAL, y lo forzas en NTSC que le da menos lineas, si el juego espera poder ejecutar codigo en esa parte del hblank que ya no existe dara un problema. Ahi los 488 ciclos no son "correctos"... no se si me hago entender... porque estas creando una situacion que no deveria darse
Tuve bastantes de esos dramas cuando estuve programando el emulador de MasterSystem para la PSP, ya que la mayoria de los juegos son PAL, cuando la portatil de sony, tiene un TFT de 60hz, asi que lo que hice fue extender las lineas, basicamente crear un modo PAL virtual
Eso en hardware real imagino es "imposible" va no... habria que cambiar el cristal...
Volviendo al tema, si aumentas los ciclos en teoria no deveria ser un problema, luego en la practica, es muy dificil decirlo, ya que cada juego es un mundo, y en esa epoca los programadores usaban muchos trucos
Teniendo en cuenta que arreglar la rom deve ser dificil (sabra dios que hicieron...), y que no parece ser un dump demasiado fiel.... lo mas logico seria meter un trozo de codigo que cuando detecte el CRC de esa rom, use mas ciclos, y si no, lo normal
Cada rom tiene un CRC unico, asi que no seria problema, no se algo tipo esto
if (cart.crc == 0xf9dbb533)
#define CYCLES_M68K_LINE 530
else
#define CYCLES_M68K_LINE 488
Sobre el Z80, en un principio imagino la variable
PicoSyncZ80 seria una buena candidata para comenzar. El tema es que el z80 es mas dependiente en este caso, ya que el 68k le pasa las instrucciones. Veo en el archivo "pico_int" una variable #define cycles_68k_to_z80 que habria que comprobar
Sinceramente, como no es un tema de mi interes, no lo he visto a profundidad, siento que no te pueda dar mejor informacion
Saludos