Hola compañeros llevo un par de días dándome cabezazos con un pequeño código que quiero añadir a Wiituka.
La cuestión es que quiero meterle musiquita del amstrad al emulador mientras la gente está eligiendo el juego. En la versión estable que se puede usar ahora, metí mp3 como el formato a reproducir, pero eso me crea unos ejecutables muy gordos y claro teniendo un z80 y el ay emulado ¿por que no usarlos?
Total que me he puesto a portar a Wiituka un pequeño código: ay2sna. Pero no funciona bien... XD
Básicamente lo que hace es meter en 0000 este código:
Tanto el INIT como la INTERRUPT se leen del fichero AY, pero parece que el SNA resultante no es correcto, no se si el problema está en este código ASM o en el propio SNA -> GhostsNGoblins.ay.sna
Registros del SNA:
Documentación del formato: AYMakeR, el README.TXT
La cuestión es que si arranco WinApe pausado sin dejar que el cpc inicie cargo el SNA y se escucha la "musica" o más bien alguno serrando una puerta
... parece como si no fuera a la velocidad correcta (enlentecido quizás?)
Sino lo hago así el z80 se bloquea (y el WinApe tb). En caprice no consigo que haga nada XD
La verdad que mi conocimiento del Z80 es lo justo para ir mejorando el emulador en los ratos que tengo, pero nunca he programado lo suficiente en CPC como para saber donde puede estar el error. Aparentemente primero se desactivan las interrupciones para iniciar todo, luego se reactivan y se envía los datos desde el loop principal el código... no se parece todo correcto, no?
Un Saludo y cualquier ayuda será bienvenida
La cuestión es que quiero meterle musiquita del amstrad al emulador mientras la gente está eligiendo el juego. En la versión estable que se puede usar ahora, metí mp3 como el formato a reproducir, pero eso me crea unos ejecutables muy gordos y claro teniendo un z80 y el ay emulado ¿por que no usarlos?
Total que me he puesto a portar a Wiituka un pequeño código: ay2sna. Pero no funciona bien... XD
Básicamente lo que hace es meter en 0000 este código:
- Código: Seleccionar todo
0xF3, // DI
0xCD, 0x0C, 0x68, // CALL INIT
0xED, 0x56, // LOOP: IM 1
0xFB, // EI
0x76, // HALT
0xCD, 0x7F, 0x68, // CALL INTERRUPT
0x18, 0xF7 // JR LOOP
Tanto el INIT como la INTERRUPT se leen del fichero AY, pero parece que el SNA resultante no es correcto, no se si el problema está en este código ASM o en el propio SNA -> GhostsNGoblins.ay.sna
Registros del SNA:
- Código: Seleccionar todo
ayloader_header [0x1A] = 3; // I register
ayloader_header [0x1B] = 1; // IFF0
ayloader_header [0x1C] = 1; // IFF1
const unsigned short sp = aysong_get_sp (song); // VALOR devuelto 0
ayloader_header [0x21] = sp & 0xFF; // SP (low)
ayloader_header [0x22] = (sp >> 8) & 0xFF; // SP (high)
ayloader_header [0x23] = 0; // PC (low)
ayloader_header [0x24] = 0; // PC (high)
ayloader_header [0x25] = 1; // IM 1
ayloader_header [0x40] = 0x8C; // RAM/ROM configuration
ayloader_header [0x41] = 0xC0; // RAM selection
ayloader_header [0x55] = 0; // ROM selection
ayloader_header [0x6B] = 64; // Dump size in KB (low byte)
ayloader_header [0x6C] = 0; // Dump size in KB (high byte)
Documentación del formato: AYMakeR, el README.TXT
La cuestión es que si arranco WinApe pausado sin dejar que el cpc inicie cargo el SNA y se escucha la "musica" o más bien alguno serrando una puerta
... parece como si no fuera a la velocidad correcta (enlentecido quizás?)
Sino lo hago así el z80 se bloquea (y el WinApe tb). En caprice no consigo que haga nada XD
La verdad que mi conocimiento del Z80 es lo justo para ir mejorando el emulador en los ratos que tengo, pero nunca he programado lo suficiente en CPC como para saber donde puede estar el error. Aparentemente primero se desactivan las interrupciones para iniciar todo, luego se reactivan y se envía los datos desde el loop principal el código... no se parece todo correcto, no?
Un Saludo y cualquier ayuda será bienvenida

Mi Weblog Personal sobre linux, gp2x, emulacion, desarrollo, abandonware...
http://david.dantoine.org/
http://david.dantoine.org/


de cuando se alojaba en la Universidad de Valladolid ("En la era del ftp.gui.uva.es" si hasta suena bien para una peli de dinosaurios









