He estado trabajando en mi propio emulador para el CPC, centrándome mucho en las herramientas de desarrollo, y he decidido compartirlo por aquí por si a alguien más le resulta útil
No os voy a soltar un parrafada enorme, pero básicamente:
Escrito en C/WASM, por lo que funciona directamente en el navegador
Empaquetado también en Electron, así que está disponible como aplicación independiente (para Windows y Linux)
Lo he diseñado para que pase la mayoría de los test de Shaker de Longshot, buscando la máxima precisión
Compatible con CPC 464, 664, 6128, 464 Plus, 6128 Plus y GX4000
Convertidor de imágenes, editor de sprites, editor de fuentes y editor de paletas integrados
Depurador con rastreador de haz (beam tracer), puntos de interrupción (breakpoints), puntos de interrupción de E/S y puntos de interrupción condicionales
Perfilador (profiler) con mapa de calor de memoria
Creador de cartuchos
Editor de ensamblador integrado que muestra cuántos NOPs consume cada instrucción
Editor de BASIC integrado para extraer o inyectar código fácilmente
Editor de discos integrado (archivos o sectores en hexadecimal)
Este es un conjunto de herramientas realmente bueno combinado en un IDE, fácilmente disponible en cualquier lugar. Es impresionante lo que se puede hacer hoy en día en un navegador. Como usuario de WinAPE, pude encontrar fácilmente la mayoría de las cosas que uso a menudo.
Para hacer pruebas, además de los programas de prueba incluidos, también usé mi pequeña pre-demo «circles» para ver si la emulación del CRTC funciona como se espera. ¡Y así es! Solo hay un pequeño detalle: en la parte inferior de la pantalla, las últimas cuatro líneas de píxeles no se ven como deberían. Parece que la imagen se desplaza hacia arriba cuatro líneas de píxeles. No puedo probarlo en hardware real, pero otros emuladores no muestran este efecto. La demo configura exactamente 272 líneas de píxeles y no se preocupa por las 40 líneas restantes. De alguna manera, la región visible parece estar un poco desplazada. En el hardware real, es posible que el marco del monitor cubra esto.
¡Impresionante trabajo, felicitaciones! Si pudieras añadir algunas barras de desplazamiento en la ventana del depurador, sería perfecto.
El filtro de TV se ve particularmente bien y realmente coincide con lo que tenía en ese entonces
Pregunta rápida: ¿en qué CRTC tuviste el problema? Veo que está completamente roto para el CRTC 3, más que solo unas pocas líneas de píxeles Voy a empezar a trabajar en eso primero.
Sí, yo también he notado un pequeño fallo con las imágenes en overscan. Muestra algunas líneas extra en la parte inferior.
Esta imagen es de 192x272. Adjunto el código fuente por si puede ayudar. Parece afectar a todos los tipos de CRTC.
He corregido el problema con el CRTC 3 que mostraba una imagen completamente rota.
Logré reproducir el problema de las líneas que te faltaban; huele al típico problema de sincronización Le estoy echando un vistazo ahora mismo, creo que voy por buen camino…
Listo, las 4 líneas han desaparecido, tu mapa ahora se muestra perfectamente Muchísimas gracias por los comentarios y las fuentes, de verdad lo aprecio <3
Emulador web actualizado y la versión independiente v1.1 recompilada (todavía estoy trabajando en un proceso adecuado de CI/CD y lanzamientos, así que estoy haciendo algo de trampita )
Ahora vuelvo a trabajar en la rama del CRTC 2, porque me he dado cuenta de algo feo
Tu problema debería estar resuelto ahora con la versión publicada (web y independiente). Avísame si notas algo raro, ¡y muchísimas gracias por toda la información y la demostración que compartiste!