Primeros pasos para pogramar un emulador

Foro dedicado a la emulación de sistemas clásicos en el PC o en otros sistemas.
ZX81
MSX Turbo R
MSX Turbo R
Mensajes: 487
Registrado: 20 Abr 2005, 19:18
Gracias dadas: 3 veces

Re: Primeros pasos para pogramar un emulador

Mensajepor ZX81 » 03 Sep 2021, 09:37

Bubu escribió:ZX81, yo cuando hice mi emulador no usé java, pero la operación para hacer el AND de 8 bits creo recordar que no era tan simple como el "&" que tú esas en java, como en esta instrucción:

Código: Seleccionar todo

int flagCTemp = leeF() & FLAG_C;


¿Seguro que así de simple es un AND de 8 bits en java?

Por otra parte, ¿te funciona ADD A, B y no te funciona ADD A, A?


En principio sí, el AND se hace así en java.

Sí ADD A,B funciona, pero da error en ALO A,A que se supone que es ADD A,A, vamos eso pienso yo, porque mirando el código del test Z80doc.tap aparece esa instrucción en la prueba ALO A,A.

https://github.com/raxoft/z80test

Saludos.
10 REM ESTA LINEA NO HACE NADA

ZX81
MSX Turbo R
MSX Turbo R
Mensajes: 487
Registrado: 20 Abr 2005, 19:18
Gracias dadas: 3 veces

Re: Primeros pasos para pogramar un emulador

Mensajepor ZX81 » 03 Sep 2021, 09:46

Namek escribió:Si quieres te puedo pasar mi proyecto JAVA que emula BASIC perfectamente, o al menos eso creo yo, incluso me funcionan algunos juegos como EXPLODING FIST o HIGHWAY ENCOUNTER.


Muy interesante tu emulador en java, me ha gustado porque se ve muy compacto.
Con mi emulador de momento sigo igual, con los mismos errores, no he conseguido ver donde están los fallos. Ahora me he dado cuenta de otro fallo que tiene, cuando haces CAPS SHIFT+SYMBOL SHIFT y luego pulsas CAPS SHIFT + un color, por ejemplo el 1(azul), los caracteres no se tiñen de azul, siguen con el mismo color.

Bueno, seguiremos buscando los fallos. Intentare ayudarme de tu emulador para ir comparandolo con el mío, para ver sin consigo resolver los problemas que tiene. ](*,)

Saludos.
10 REM ESTA LINEA NO HACE NADA

Avatar de Usuario
Namek
Atari 1040 STf
Atari 1040 STf
Mensajes: 838
Registrado: 11 Jul 2011, 13:13
Gracias dadas: 18 veces
Gracias recibidas: 63 veces

Re: Primeros pasos para pogramar un emulador

Mensajepor Namek » 03 Sep 2021, 16:06

Si quieres puedes pasarme tu código de emulación del Z80 y le doy una mirada a ver si yo veo donde tienes los errores, o mándame un binario y hago pruebas a ver si me hago una idea de que instrucciones fallan.

ZX81
MSX Turbo R
MSX Turbo R
Mensajes: 487
Registrado: 20 Abr 2005, 19:18
Gracias dadas: 3 veces

Re: Primeros pasos para pogramar un emulador

Mensajepor ZX81 » 04 Sep 2021, 00:59

Namek escribió:Si quieres puedes pasarme tu código de emulación del Z80 y le doy una mirada a ver si yo veo donde tienes los errores, o mándame un binario y hago pruebas a ver si me hago una idea de que instrucciones fallan.

Hola,
Perfecto, te lo acabo de enviar.

Saludos.
10 REM ESTA LINEA NO HACE NADA

Avatar de Usuario
Bubu
Atari 1040 STf
Atari 1040 STf
Mensajes: 886
Registrado: 04 Abr 2018, 23:10
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Atari 2600
Primera consola: Nintendo GameBoy
Gracias dadas: 20 veces
Gracias recibidas: 60 veces

Re: Primeros pasos para pogramar un emulador

Mensajepor Bubu » 04 Sep 2021, 21:12

Esto de los pogramas de testeo me parece curiosísimo, resulta que si se lo metes a los emuladores "senior", en plan Spectaculator, ZxSpin, etc, todos dan fallos en alguna prueba. Así que me paese a mí que el propio pograma de testeo no debe estar muy bien que digamos...
Si algo funciona... ¡¡NO LO TOQUES!! ¡¡NI DE COÑA!!

Avatar de Usuario
Namek
Atari 1040 STf
Atari 1040 STf
Mensajes: 838
Registrado: 11 Jul 2011, 13:13
Gracias dadas: 18 veces
Gracias recibidas: 63 veces

Re: Primeros pasos para pogramar un emulador

Mensajepor Namek » 04 Sep 2021, 21:26

No, es que como ya he dicho hacer un emulador perfecto tiene miga, si te fijas los emuladores que fallan lo hacen siempre en los mismos test, y si pruebas SpecEmu 3.1 o JSpeccy 0.93.1 veras que no fallan ni uno.

Aquí tienes algunas pruebas que hicieron en Spectrum Computing Forum https://spectrumcomputing.co.uk/forums/ ... 21b381ddc3

ZX81
MSX Turbo R
MSX Turbo R
Mensajes: 487
Registrado: 20 Abr 2005, 19:18
Gracias dadas: 3 veces

Re: Primeros pasos para pogramar un emulador

Mensajepor ZX81 » 05 Sep 2021, 22:06

ZX81 escribió:
Namek escribió:Si quieres te puedo pasar mi proyecto JAVA que emula BASIC perfectamente, o al menos eso creo yo, incluso me funcionan algunos juegos como EXPLODING FIST o HIGHWAY ENCOUNTER.


Muy interesante tu emulador en java, me ha gustado porque se ve muy compacto.
Con mi emulador de momento sigo igual, con los mismos errores, no he conseguido ver donde están los fallos. Ahora me he dado cuenta de otro fallo que tiene, cuando haces CAPS SHIFT+SYMBOL SHIFT y luego pulsas CAPS SHIFT + un color, por ejemplo el 1(azul), los caracteres no se tiñen de azul, siguen con el mismo color.

Bueno, seguiremos buscando los fallos. Intentare ayudarme de tu emulador para ir comparandolo con el mío, para ver sin consigo resolver los problemas que tiene. ](*,)

Saludos.


Hola,
Lo primero dar las gracias a Namek, que de un simple vistazo a mi código se dio cuenta de que en las instrucciones IX+d e IY+d el desplazamiento "d" sólo podía tomar los valores de (0 a 255), en vez de (-128 a 127). Ahora ya se muestran los colores cuando pulsas CAPS SHIFT+SYMBOL SHIFT y luego pulsas CAPS SHIFT + un color.
color.PNG
color.PNG (5.41 KiB) Visto 4964 veces


También se ha arreglado la carga de TAPs, cargan los programas, aunque algunos se cuelgan, imagino que también por algún error en la emulación que no encuentro.
andAttack.PNG
andAttack.PNG (8.57 KiB) Visto 4964 veces

profanation.PNG
profanation.PNG (24.58 KiB) Visto 4964 veces


Tampoco me funcionaba la combinación CAPS SHIFT y BREAK para detener un programa en BASIC, echando un vistazo al emulador que me pasó Namek me di cuenta que no había implementado la lectura del teclado en la instrucción IN A,(N), una vez corregido ya funciona correctamente.

Ahora sólo me quedaría buscar porque se cuelga el emulador en algunos programas, implementar el sonido (BEEPs) y añadir los t-states, porque todo va super rápido

Saludos.
10 REM ESTA LINEA NO HACE NADA

ZX-81
Amstrad PCW 8256
Amstrad PCW 8256
Mensajes: 128
Registrado: 04 Ene 2013, 16:43
Sistema Favorito: Spectrum +2
primer_sistema: ZX81
consola_favorita: Nintendo DS/3DS
Primera consola: Sega Genesis/Megadrive
Ubicación: La orilla del mar Mediterráneo
Gracias dadas: 16 veces
Gracias recibidas: 27 veces
Contactar:

Re: Primeros pasos para pogramar un emulador

Mensajepor ZX-81 » 05 Sep 2021, 22:46

ZX81 escribió:
Ahora sólo me quedaría buscar porque se cuelga el emulador en algunos programas, implementar el sonido (BEEPs) y añadir los t-states, porque todo va super rápido

Saludos.


Si quieres ver algo más, siempre puedes mirar el código de mi emulador, JSpeccy, que también está escrito en Java. En mis repos también tienes el código del core Z80 que gasta el emulador en Java y en C++, y que implementan una Z80 completa, con (casi) todos los bells & whistles.

Eso sí, te deseo buena suerte con él, si es que se te ocurre publicarlo. El 90% de la gente directamente odia Java, aunque no tienen ni idea de qué va la fiesta. Desde el 2011, me he encontrado con montones de personas que rajan del emulador sin siquiera haberlo probado.

Vamos, que si lo haces para aprender, cohonúo, pero como lo publiques, temo que te llevarás un chasco desagradable. Es lo que hay.
Todo espacio de dimensión finita distinta de cero con producto interno tiene una base ortonormal. Tiene sentido, cuando no piensas sobre ello.
Profesor de Matemáticas U.C. Berkeley

Empieza a jugar sin tener que compilar: JSpeccy
Emulador bare-metal para la Raspberry PI 2/3: ZXBaremulator

ZX81
MSX Turbo R
MSX Turbo R
Mensajes: 487
Registrado: 20 Abr 2005, 19:18
Gracias dadas: 3 veces

Re: Primeros pasos para pogramar un emulador

Mensajepor ZX81 » 05 Sep 2021, 23:09

ZX-81 escribió:
ZX81 escribió:
Ahora sólo me quedaría buscar porque se cuelga el emulador en algunos programas, implementar el sonido (BEEPs) y añadir los t-states, porque todo va super rápido

Saludos.


Si quieres ver algo más, siempre puedes mirar el código de mi emulador, JSpeccy, que también está escrito en Java. En mis repos también tienes el código del core Z80 que gasta el emulador en Java y en C++, y que implementan una Z80 completa, con (casi) todos los bells & whistles.

Eso sí, te deseo buena suerte con él, si es que se te ocurre publicarlo. El 90% de la gente directamente odia Java, aunque no tienen ni idea de qué va la fiesta. Desde el 2011, me he encontrado con montones de personas que rajan del emulador sin siquiera haberlo probado.

Vamos, que si lo haces para aprender, cohonúo, pero como lo publiques, temo que te llevarás un chasco desagradable. Es lo que hay.


Hola,
Sí, le acabo de echar un vistazo y tiene muy buena pinta, lo veo bastante completo y parece que no le falta de nada.
Sólo lo estoy haciendo para aprender, a ver si lo consigo, porque me está costando un montón. Vamos, que me estoy dejando la vista y veo que avanzo a paso de tortuga. :)

Saludos.
10 REM ESTA LINEA NO HACE NADA

ZX-81
Amstrad PCW 8256
Amstrad PCW 8256
Mensajes: 128
Registrado: 04 Ene 2013, 16:43
Sistema Favorito: Spectrum +2
primer_sistema: ZX81
consola_favorita: Nintendo DS/3DS
Primera consola: Sega Genesis/Megadrive
Ubicación: La orilla del mar Mediterráneo
Gracias dadas: 16 veces
Gracias recibidas: 27 veces
Contactar:

Re: Primeros pasos para pogramar un emulador

Mensajepor ZX-81 » 05 Sep 2021, 23:30

ZX81 escribió:
ZX-81 escribió:
ZX81 escribió:
Ahora sólo me quedaría buscar porque se cuelga el emulador en algunos programas, implementar el sonido (BEEPs) y añadir los t-states, porque todo va super rápido

Saludos.


Si quieres ver algo más, siempre puedes mirar el código de mi emulador, JSpeccy, que también está escrito en Java. En mis repos también tienes el código del core Z80 que gasta el emulador en Java y en C++, y que implementan una Z80 completa, con (casi) todos los bells & whistles.

Eso sí, te deseo buena suerte con él, si es que se te ocurre publicarlo. El 90% de la gente directamente odia Java, aunque no tienen ni idea de qué va la fiesta. Desde el 2011, me he encontrado con montones de personas que rajan del emulador sin siquiera haberlo probado.

Vamos, que si lo haces para aprender, cohonúo, pero como lo publiques, temo que te llevarás un chasco desagradable. Es lo que hay.


Hola,
Sí, le acabo de echar un vistazo y tiene muy buena pinta, lo veo bastante completo y parece que no le falta de nada.
Sólo lo estoy haciendo para aprender, a ver si lo consigo, porque me está costando un montón. Vamos, que me estoy dejando la vista y veo que avanzo a paso de tortuga. :)

Saludos.


Tómatelo con paciencia, que yo llevo desde septiembre del 2009 con él y aún no está acabado, aunque la verdad es que desde que empecé con ZXBaremulator casi no he programado nada para él, y de esto ya hace más de 4 años. Y está lejos de ser perfecto. Ni te imaginas en que embolao te has metido... :mrgreen:
Todo espacio de dimensión finita distinta de cero con producto interno tiene una base ortonormal. Tiene sentido, cuando no piensas sobre ello.
Profesor de Matemáticas U.C. Berkeley

Empieza a jugar sin tener que compilar: JSpeccy
Emulador bare-metal para la Raspberry PI 2/3: ZXBaremulator


Volver a “Emuladores”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 12 invitados