Creando juegos de ZX Spectrum para Interface 2 (cartuchicos)

Soporte técnico sobre los lanzamientos de MojonTwins y comentarios sobre los güegos. Ofrecemos soporte técnico con Fourspriter, te ayudamos con ZX Basic o Z88DK, te damos pistas some cómo saltarse un bicho y cosas así.

Moderador: na_th_an

Avatar de Usuario
radastan
Mensajes: 692
Registrado: Vie, 20 Ago 2010, 12:54
Contactar:

Creando juegos de ZX Spectrum para Interface 2 (cartuchicos)

Mensajepor radastan » Jue, 03 Abr 2014, 13:09

Estoy ultimando algo para Retromadrid, un juego sencillo en 16K para usarlo desde un cartucho IF2.
Ya he preparado el entorno para generar cartuchos (habrá apartado en el curso de Z88DK, tranquilos) pero si leo los puertos del teclado la cosa no va... o eso parece. En un programa de ejemplo me muestra un mapeado en pantalla sin problemas, pero cuando pulso teclas el muñeco dice que quietecito está muy agusto.

¿Me equivoco en algo? ¿es cosa de las interrupciones?
antoniovillena
Mensajes: 494
Registrado: Jue, 24 Oct 2013, 15:52

Re: Creando juegos de ZX Spectrum para Interface 2 (cartuchicos)

Mensajepor antoniovillena » Jue, 03 Abr 2014, 14:25

No deberías tener problemas en leer las teclas desde el puerto (con IN X, (C) ó IN A, ($FE)). Ahora bien, si quieres algo en alto nivel, que tenga en cuenta el código ascii de la tecla y que te detecte pulsaciones por separado, necesitas un manejador de teclado como el que tiene la ROM del Spectrum. Yo tengo mi propia versión de manejador que hice recientemente para el firmware del ZX-Uno que ocupa menos que la del Spectrum y básicamente hace lo mismo, está en dicho repositorio.
antoniovillena
Mensajes: 494
Registrado: Jue, 24 Oct 2013, 15:52

Re: Creando juegos de ZX Spectrum para Interface 2 (cartuchicos)

Mensajepor antoniovillena » Jue, 03 Abr 2014, 14:27

Si lees por puerto no necesitas interrupciones. Sin embargo para el manejador sí que las necesitas.
Avatar de Usuario
radastan
Mensajes: 692
Registrado: Vie, 20 Ago 2010, 12:54
Contactar:

Re: Creando juegos de ZX Spectrum para Interface 2 (cartuchicos)

Mensajepor radastan » Jue, 03 Abr 2014, 14:43

Leo por puerto, pero no consigo detectar la pulsación de las teclas. Estoy usando la conocida rutina que ya comentamos:

$this->bbcode_second_pass_quote('', 'i')nt __FASTCALL__ port_in (int port)
{
#asm
ld b, h
ld c, l
ld h, 0
in l, (c)
#endasm
}


Si genero un TAP normal lee perfectamente las teclas, si hago un cartucho ROM no (y no está colgado, hago animación de lo que sea también y funciona).

Muy raro.