Página 1 de 3

Emulador de Sega Master System en Basic

Publicado: 06 Dic 2013, 12:44
por jepalza
Pongo aquí otro de los emuladores que he hecho en Basic (FreeBasic) en ESTE enlace.

El mérito no es mio al 100%, al igual que ocurre con otros como el de Spectrum que he publicado hace poco. En este caso, estoy empleando el emulador de Z80 que convertí a FreeBasic desde C y el módulo de VDP (controladora de vídeo de SMS/GG) que es de otro usuario. Yo simplemente, he juntado todos los módulos, les he dado "nueva" vida en FreeBasic y un simple menú de cargar cartuchos. Poco mas que el 25% del trabajo es mio, el resto es de fuentes libres de la red.

Funciona BASTANTE mal, tanto, que no llega ni a la mitad los juegos que funcionan. Y de la GameGear menos aún. Pero como ya he dicho otras veces, hago esto por diversión, no por ganar un concurso o dinero. Lo importante es el esqueleto, el núcleo del emulador. El resto, es echarle paciencia e ir depurando hasta lograr un funcionamiento mas limpio. (y que tenga sonido).

sms_emulador_freebasic.jpg
sms_emulador_freebasic.jpg (42.75 KiB) Visto 6906 veces



Viendo los progresos con varios emuladores, la verdad, dan ganas de juntarlos todos, y hacer el primer emulador multisitema en Basic del mundo.... :jumper:

Edición: corregidos un par de fallos que impedían cargar juegos muy grandes. Ahora carga mas y mejor. Los muy grandes, como el R-TYPE de 1mega, van lentos, por que el incesante y contínuo mapeo de ROM y RAM que hace. Tengo que mirar ese a ver si lo mejoro. Los de GG siguen con el mismo problema. 8-[

Actualización: he corregido el problema de la velocidad. Ahora, va mas rápido.

Re: Emulador de Sega Master System en Basic

Publicado: 06 Dic 2013, 14:10
por Kusfo
Oh! mola! bajando!

Re: Emulador de Sega Master System en Basic

Publicado: 06 Dic 2013, 14:28
por jepalza
Estaba revisando un poco lo que tengo, y me he dado cuenta de que le he dejado deshabilitadauna linea importante, que si ella, muchos juegos de tamaños mayores a 64k no funcionan.
Lo corrijo luego, junto con alguna mejora que me ha dado por hacerle. La versión que tienes ahora, fallan muchos juegos, sobre todo los de GG.

edito: ya está, he subido una versión corregida que carga mas cartuchos que antes. El R-TYPE da gusto verlo, pero va muy lento aún. Tengo que mejorar el mapeo, que tarda mucho tiempo.

Re: Emulador de Sega Master System en Basic

Publicado: 06 Dic 2013, 18:58
por Kusfo
Bajada la nueva versión!

Hay un bug al seleccionar roms, si hay 3 , solo se muestran 2, siempre hay una que no sale.

He probado el Rtype, para ser una versión tan primigenia, funciona muy bien!, lento pero bien!

Re: Emulador de Sega Master System en Basic

Publicado: 06 Dic 2013, 19:29
por jepalza
Vaya, acabo de subir otra versión hace dos minutos, con el problema de la velocidad corregido.
Miro a ver eso del menú, pero poco mas voy a hacer. No me quiero meter a fondo. La idea era mostrar su funcionamiento, poco mas. No quiero llevarlo al 100%. Seguro que alguien lo pilla y lo completa mas que yo.

Por cierto, antes de corregir el fallo de la velocidad, en un I7 iba bien, y en un Pentium centrino 1700 iba lento, pero ahora va bien en ambos.

-- Actualizado 06 Dic 2013, 19:39 --

El fallo del fichero que "se pierde" es muy sencillo, solo es añadir una línea.
Antes:

Código: Seleccionar todo

Sub eligecartucho()
    Dim fichero As String
    Dim f As Integer = 0
    Dim x As Integer
    Dim y As Integer =0
    Dim Salir As Integer = 0
    Dim Encontrados( 7000 ) As String
   
    Cls
    fichero = Dir( directorio+"*", fbArchive )
    Do
        f+=1
        encontrados(f)=fichero
        fichero = Dir( )
    Loop While Len( fichero ) > 0
    ' "borramos" los ultimos 20 para crear un espacio vacio
    For x=f To f+20:encontrados(x)=" ":Next


Ahora:

Código: Seleccionar todo

Sub eligecartucho()
    Dim fichero As String
    Dim f As Integer = 0
    Dim x As Integer
    Dim y As Integer =0
    Dim Salir As Integer = 0
    Dim Encontrados( 7000 ) As String
   
    Cls
    fichero = Dir( directorio+"*", fbArchive )
    Do
        f+=1
        encontrados(f)=fichero
        fichero = Dir( )
    Loop While Len( fichero ) > 0

    f+=1 ' -------------------------------->>>>>> añadir esta linea

    ' "borramos" los ultimos 20 para crear un espacio vacio
    For x=f To f+20:encontrados(x)=" ":Next

Re: Emulador de Sega Master System en Basic

Publicado: 07 Dic 2013, 08:03
por Hark0
Dios... y tiene más emuladores en la saca.... :shock:

¿de donde ha salido este hombre? :mrgreen: ;)

Re: Emulador de Sega Master System en Basic

Publicado: 07 Dic 2013, 09:02
por jepalza
Hark0 escribió:Dios... y tiene más emuladores en la saca.... :shock:

¿de donde ha salido este hombre? :mrgreen: ;)


La "rama" que mas me gusta de la programación, es la "emulación" (que no "simulación") y el 3D, y siempre en Basic.
Tendré unos 30 emuladores empezados, de los cuales, unos 10 en "C" y el resto Basic. Los de "C" creo que están todos por la red circulando, y los de basic, solo está el del Thomson M05, el resto, los que he dejado ahora por aquí, y los que nunca he dejado, ni creo que deje, o bien por que no emulan bien o por que son super-ultra-alfas, como el del "Macintosh Plus" que ya publiqué unas imágenes, pero que no consigo avanzar. (o el del Star Rider).
Tengo por ejemplo un emulador de HP48 que hice en "C" allá por el 96, que he tratado de convertir a Basic, pero no lo he logrado aún. Otro del CHIP8, otro del ZX81 que solo visualiza texto en lugar de gráficos, otro dela intellivisión o del Elektor TV Games, pero todos incompletos, que algún día acabaré.

Me encanta empezar una cosa, pero si me atasco muchos días, lo abandono y empiezo otra hasta que un día se enciende la bombillita y retomo alguno de los abandonados. El que mas tiempo lleva abandonado y mas veces he retomado, es el del StarRider, que no soy capaz de seguir, por lo complejo que es (lleva unos 4 núcleos independientes y tres CPU 6809, y no logro que todo vaya acorde)

-- Actualizado 07 Dic 2013, 09:06 --

jepalza escribió:.... Otro del CHIP8


Me cito a mi mismo, por que de pronto, me ha dado por dejar este emulador. Es tan simple, que se puede dejar como fuente "a pelo", por si alguien lo quiere seguir.
Funcionaba bastante bien, pero está obsoleto y viejo. Necesita una actualización completa, por que en un PC moderno va a 3000 por hora (lo hice en el 94 en QuickBasic, y en 2009 lo pasé a FreeBasic, pero lo dejé tal cual, sin completar ni reparar)

Re: Emulador de Sega Master System en Basic

Publicado: 07 Dic 2013, 10:08
por Zardoz
=D> =D> =D> =D>

Re: Emulador de Sega Master System en Basic

Publicado: 07 Dic 2013, 13:54
por radastan
jepalza escribió:Tendré unos 30 emuladores empezados, de los cuales, unos 10 en "C" y el resto Basic. Los de "C" creo que están todos por la red circulando, y los de basic, solo está el del Thomson M05, el resto, los que he dejado ahora por aquí, y los que nunca he dejado, ni creo que deje, o bien por que no emulan bien o por que son super-ultra-alfas, como el del "Macintosh Plus" que ya publiqué unas imágenes, pero que no consigo avanzar. (o el del Star Rider).
Tengo por ejemplo un emulador de HP48 que hice en "C" allá por el 96, que he tratado de convertir a Basic, pero no lo he logrado aún. Otro del CHIP8, otro del ZX81 que solo visualiza texto en lugar de gráficos, otro dela intellivisión o del Elektor TV Games, pero todos incompletos, que algún día acabaré.


Vamos, que tu eres como yo, de los que se quedan programando hasta las 1 de la mañana para sacar algo de tiempo.

:tecle:

Para la siguiente Retromadrid nos vamos a ver con ojeras hasta el cuello. <XX

Re: Emulador de Sega Master System en Basic

Publicado: 08 Dic 2013, 11:55
por Kusfo
He probado la nueva version con la nueva velocidad, y el Rtype va de lujo!! :-D