Emulador de Arcade Galaxian escrito en FreeBasic

Foro dedicado a la emulación de sistemas clásicos en el PC o en otros sistemas.
jepalza

Emulador de Arcade Galaxian escrito en FreeBasic

Mensajepor jepalza » 03 Dic 2013, 08:46

Estoy escribiendo un emulador del juego de arcade Galaxian completamente en Basic (freebasic), y aunque está en fase super-ultra-alfa (injugable aún), pongo un avance por si os queréis divertir retocando el fuente. Si lográis mas avances que yo, lo comentáis y entre todos, lo mismo lo convertimos en el BasicMAME del futuro...

Podéis bajaros la cutre-versión de google drive AQUI
Las teclas son:
1 y 2 jugadores
3 y 4 monedas
O y P mover nave
ESPACIO disparar
ESC salir

Como es versión alfa, le fallan docenas de cosas, por ejemplo, colores, sonidos, movimientos y giros. Vamos, que es injugable.
Lo empecé hace una semana por diversión, y lo estoy tratando de hacer sin mirar las "chuletas" de internet, o sea, sin mirar como lo han hecho otros emuladores, de modo que se convierte en un "prueba/error" de horas y horas. La razón de hacerlo en Basic, es por su sencillez, y por ver hasta dónde se puede llegar.

galaxian_beta1.png
galaxian_beta1.png (39.1 KiB) Visto 6937 veces


ACTUALIZADO (04-12-13): he actualizado el fuente a versión Beta1, por que ya funciona decentemente bien. Los bichos ya se mueven y se puede jugar decentemente. Fallan los colores y los giros de los bichos, que cuando van a atacar girando, se pierde el gráfico. He reparado los colores. Los he copiado de un pantallazo del emulador del MAME, sacando su código de color con el paint del guindous. Ya se parece mas al galaxian :gamers:

Nueva actualización: ya giran bien los bichos (creo). He visto algún fallo al girar y tambien cuando los bichos vuelven a su sitio, pero son males menores.

Avatar de Usuario
Hark0
Amiga 1200
Amiga 1200
Mensajes: 1695
Registrado: 11 Jul 2012, 23:44
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: (Otro)
Primera consola: (Otro)
Ubicación: Cornellà de Llobregat - Barcelona
Contactar:

Re: Emulador de Arcade Galaxian escrito en FreeBasic

Mensajepor Hark0 » 03 Dic 2013, 10:10

jepalza escribió:Estoy escribiendo un emulador del juego de arcade Galaxian completamente en Basic (freebasic), y aunque está en fase super-ultra-alfa (injugable aún), pongo un avance por si os queréis divertir retocando el fuente. Si lográis mas avances que yo, lo comentáis y entre todos, lo mismo lo convertimos en el BasicMAME del futuro...

Podéis bajaros la cutre-versión de google drive AQUI
Las teclas son:
1 y 2 jugadores
3 y 4 monedas
O y P mover nave
ESPACIO disparar
ESC salir

Como es versión alfa, le fallan docenas de cosas, por ejemplo, colores, sonidos, movimientos y giros. Vamos, que es injugable.
Lo empecé hace una semana por diversión, y lo estoy tratando de hacer sin mirar las "chuletas" de internet, o sea, sin mirar como lo han hecho otros emuladores, de modo que se convierte en un "prueba/error" de horas y horas. La razón de hacerlo en Basic, es por su sencillez, y por ver hasta dónde se puede llegar.

galaxian_basic_1.png


Descargado!
Osea, es un emulador "basado en lo que has jugado/visto visualmente en el original?

Vale, viendo el SRC, tacho lo dicho... :oops:

Pregunta: ¿que "pinta" el fichero hard.bas (Spectrum) en el proyecto? ¿se usa? hmmm :P
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA.

jepalza

Re: Emulador de Arcade Galaxian escrito en FreeBasic

Mensajepor jepalza » 03 Dic 2013, 11:58

Hark0 escribió:Pregunta: ¿que "pinta" el fichero hard.bas (Spectrum) en el proyecto? ¿se usa? hmmm :P


Es que lo primero que hice fué un emulador de Spectrum con los fuentes. Ya lo comenté hace un tiempo, en un hilo sobre emuladores hechos en basic, que pasó un poco desapercibido. Si quieres los fuentes, los tengo, te los dejo en el Drive, en 3,2,1... ya

Subido AQUI

Comentar, que este emulador solo es mio en un 25% por decir algo. El resto, cogí uno que estaba en C y lo fuí convirtiendo a basic y aportando lo necesario para que andara en el freebasic. O sea, que no es mérito mio.

Y el del Galaxian, lo que he hecho es coger el núcleo del Z80 que estaba preparado para el Spectrum, y quitarle todo hasta dejarlo Z80 puro y empezar a meter cosas del Galaxian. Es una forma de diversión.

Avatar de Usuario
UFO
Atari 1040 STf
Atari 1040 STf
Mensajes: 803
Registrado: 19 Feb 2010, 15:16
Sistema Favorito: PC
primer_sistema: MSX
consola_favorita: Sega Genesis/Megadrive
Primera consola: TV Games/Pong Clone
Gracias dadas: 43 veces
Gracias recibidas: 4 veces

Re: Emulador de Arcade Galaxian escrito en FreeBasic

Mensajepor UFO » 03 Dic 2013, 12:03

Puf, qué artista, jepalza. Larga vida al BASIC!
-

Avatar de Usuario
Hark0
Amiga 1200
Amiga 1200
Mensajes: 1695
Registrado: 11 Jul 2012, 23:44
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: (Otro)
Primera consola: (Otro)
Ubicación: Cornellà de Llobregat - Barcelona
Contactar:

Re: Emulador de Arcade Galaxian escrito en FreeBasic

Mensajepor Hark0 » 03 Dic 2013, 12:21

jepalza escribió:
Hark0 escribió:Pregunta: ¿que "pinta" el fichero hard.bas (Spectrum) en el proyecto? ¿se usa? hmmm :P


Es que lo primero que hice fué un emulador de Spectrum con los fuentes. Ya lo comenté hace un tiempo, en un hilo sobre emuladores hechos en basic, que pasó un poco desapercibido. Si quieres los fuentes, los tengo, te los dejo en el Drive, en 3,2,1... ya

Subido AQUI

Comentar, que este emulador solo es mio en un 25% por decir algo. El resto, cogí uno que estaba en C y lo fuí convirtiendo a basic y aportando lo necesario para que andara en el freebasic. O sea, que no es mérito mio.

Y el del Galaxian, lo que he hecho es coger el núcleo del Z80 que estaba preparado para el Spectrum, y quitarle todo hasta dejarlo Z80 puro y empezar a meter cosas del Galaxian. Es una forma de diversión.


YO TE ENVIDIO MACHO!!!! QUE DE CONOCIMIENTOS!!!! =D>

(me encanta eso de "te los dejo en el Drive, en 3,2,1... ya".... jajajaja)

BAJANDO!!!!!!!!!!!!

Me temo :mrgreen: que ya tengo la excusa que buscaba para catar A FONDO freebasic, mientras "remeno" ese Speccy... ;)

No te puedes NI IMAGINAR el alegrón que me acabas de dar con este fichero... ;)

(otro mes sin actualizar mi juego/mi blog) :meparto:
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA.

jepalza

Re: Emulador de Arcade Galaxian escrito en FreeBasic

Mensajepor jepalza » 03 Dic 2013, 12:49

Si tanto te gusta, lo siguiente, puede ser un emulador de 6510 (commodore 64), otro de 6502 (NES), otro mas de Z80 (Gameboy) y de Sega Master System, uno de Apple-ii (inacabado, solo modo texto) otro de 6809 (Thomson M05)..... Vamos, que será por emuladores en freebasic. Algunos los he "trasferido" de otros sistemas (hechos por otras personas, adaptados por mi), y otros los he hecho yo desde cero, como el del 6809.
Tengo pendiente el del 68000 para un Macintosh Plus, que se me resiste (no por velocidad, sino por complejidad)

¿se nota que me gusta el basic? \:D/

Avatar de Usuario
Hark0
Amiga 1200
Amiga 1200
Mensajes: 1695
Registrado: 11 Jul 2012, 23:44
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: (Otro)
Primera consola: (Otro)
Ubicación: Cornellà de Llobregat - Barcelona
Contactar:

Re: Emulador de Arcade Galaxian escrito en FreeBasic

Mensajepor Hark0 » 03 Dic 2013, 13:47

jepalza escribió:Si tanto te gusta, lo siguiente, puede ser un emulador de 6510 (commodore 64), otro de 6502 (NES), otro mas de Z80 (Gameboy) y de Sega Master System, uno de Apple-ii (inacabado, solo modo texto) otro de 6809 (Thomson M05)..... Vamos, que será por emuladores en freebasic. Algunos los he "trasferido" de otros sistemas (hechos por otras personas, adaptados por mi), y otros los he hecho yo desde cero, como el del 6809.
Tengo pendiente el del 68000 para un Macintosh Plus, que se me resiste (no por velocidad, sino por complejidad)

¿se nota que me gusta el basic? \:D/


Y a mi!

¿Y un Altarir 8800? :mrgreen:

con sus luces que se encienden y se apagan... se encienden y se apagan... se encienden y se apagan... se encienden y se apagan... :lol:


Lo que me gusta y llevo AÑOS buscando, es un emulador de ZX Spectrum en Basic "puro y duro"... no me sirve el de VisualBasic... como ya he comentado por aquí "gasto" GLBasic, pero viendo las excelencias de FreeBasic me temo que acabaré abandonando GLB... :mrgreen:

(por cierto no encuentro versión FreeBasic para Macos ¿existe?)...



Cagada temporal!!! (ver pantallazo)

Solventada una vez he visto que tu rom eran 0 bytes... ya he puesto la correcta. Faltaba y se colgaba...
;)

Ahora, a examinar las tripas! :mrgreen:

Por cierto, source comentado =D>

-- Actualizado 03 Dic 2013, 14:57 --

Pregunta:

¿que diferencia hay entre main.bas y spectrum.bas? viendo así por encima veo que son ¿lo mismo?

-- Actualizado 03 Dic 2013, 15:09 --

Error con Freebasic...

Te cuento que he hecho:
1- Descargar, unzip FB.
2- Descargar FBiDE, unzip, configurado path de FB y run.

Cargo TODOS los bas.
Quicklaunch al main.bas y obtengo esto:

Imagen

Tamaño REAL: https://lh6.googleusercontent.com/-D7U6 ... um_001.png

¿que hago mal o que me dejo?
Adjuntos
jetsetwilly_main_jepalza.png
jetsetwilly_main_jepalza.png (23.2 KiB) Visto 7042 veces
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA.

jepalza

Re: Emulador de Arcade Galaxian escrito en FreeBasic

Mensajepor jepalza » 03 Dic 2013, 14:35

¡Aaarrghhh! Me has hecho demasiadas preguntas a la vez, me he colapsado, como buen macho iberico...

Por partes: del freebasic para Mac, ni idea, de la ROM con "0" bytes, es por que has arrancado el emulador sin copiar la ROM original primero, y mi fuente, no se molesta en verificar si existe o no, y como no existe, crea uno vacio (ten en cuenta, que los fuentes "eran" para mi, no para distribuir, y me la "pelaba" andarme con florituras)
La diferencia entre "main" y "spectrum", ninguna, excepto que "main" es el nombre del emulador, por que realmente, el emulador no es un Spectrum, sino un emulador de Z80 al que se la ha acoplado un modulo Spectrum. Era solo una forma de llamarlos a ambos módulos.

Yo no uso el FBIDE, sino el FBEDIT, mas completo. pero da igual, funciona en ambos, son simples IDE para compilar, como si lo quieres compilar desde MSDOS, idem.
Para ejecutar el emulador, basta con cargar el SPECTRUM.BAS, nada mas que eso, y al ejecutarlo, el propio modulo enlaza el resto de ficheros (hard y z80). El Main es (o era segun se mire) el emulador de Z80 que lo fuí tocando hasta que se convirtió en SPECTRUM.BAS. Conservo ambos por si acaso.

Ya te digo, que todo esto que te he pasado no estaba pensado en distribución, era para mi, y me daba igual como lo guardara.

Lo que si me gusta hacer es comentar las cosas con mucho texto, por que mi cabeza de 46 años cada día olvida mas.

El emulador no es perfecto, tiene muchos fallos (a parte de no tener sonido), era solo una diversión mas.

Avatar de Usuario
zup
Amiga 2500
Amiga 2500
Mensajes: 3013
Registrado: 04 Sep 2009, 20:07
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo DS/3DS
Primera consola: Nintendo GameBoy
Ubicación: Navarra
Gracias dadas: 86 veces
Gracias recibidas: 360 veces
Contactar:

Re: Emulador de Arcade Galaxian escrito en FreeBasic

Mensajepor zup » 03 Dic 2013, 14:41

Llevo toda la semana exprimiendo la memoria del Spectrum para sacar bytes de donde no hay.

Al mencionar BASIC, lo primero que pienso es NOT PI.

Me pregunto... ¿a día de hoy merecen la pena las optimizaciones? En tiempos del Spectrum, ahorrarte 5 bytes por aparición del cero sí que podía merecer la pena (habría que consultar la penalización en tiempo de proceso); más tarde en tiempos de los 486 había bonificaciones si alineabas las instrucciones y los datos y si podías meter bucles enteros en la caché del micro.

¿Merece la pena a día de hoy intentar optimizar algo en el código, o la opción recomendable es dejar que se las entienda el compilador con el código?

P.D.: Sigo buscando como optimizar los números del 0 al 9 en BASIC (ver este hilo de speccy.org). Me interesa especialmente el número 2, que suele repetirse con mucha frecuencia.
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start.
Además vendo cosas!

jepalza

Re: Emulador de Arcade Galaxian escrito en FreeBasic

Mensajepor jepalza » 03 Dic 2013, 14:51

Hark0 escribió:Lo que me gusta y llevo AÑOS buscando, es un emulador de ZX Spectrum en Basic "puro y duro"...


El fuente que te he entregado, no es puro al 100%, pero casi diría que lo es en un 98%. Solo empleo cuatro cosas del basic moderno, como son las rotaciones de bits o el copiado de doble pantalla, para que no parpapdee. Pero son cosas, que con maña, las pasas a basic puro en un plis plas.

-- Actualizado 03 Dic 2013, 14:54 --

zup escribió:¿Merece la pena a día de hoy intentar optimizar algo en el código, o la opción recomendable es dejar que se las entienda el compilador con el código?

La última vez que tuve que optimizar un código, fué cuando hice el Abracadabra de Amstrad CPC, por que me obligaban los de "Proein Soft Line" (con razón) a que fuera compatible con el 464, y yo lo estaba haciendo en un 6128. Me las vi y deseé para ahorrar bytes donde pude.

Eso fué en el 88 o 89. Desde entonces, dada la potencia de los bichos y el exceso de memoria, ¿para que optimizar o comprimir?


Volver a “Emuladores”

¿Quién está conectado?

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