Programar emulador Atari ST

Buenas, llevo varios dias buscando un emulador de Atari ST que funcione bien en un setup a 15khz par windows

basicamente, lo que queria era un emulador que arranque en fullscreen, tome linea de comando para ser lanzado desde frontend, soporte baja resolucion, y tenga soporte para doublebuffer si es SDL, o vsync para modos DX

Nada, que no he tenido suerte, ni un puñetero emulador de todos los existentes, al menos que yo probara, cumple estos requerimientos

Algunos son buenos (Steem), otros una reverenda mierda (Hatari), pero ninguno cumple para poder funcionar en los parametros que necesito



Asi que estaba pensando en escribir un emulador, bien simple, que cumpla con lo que necesito, nada mas


Alguno tiene experiencia escribiendo emuladores? para darme una mano de como comensar


Hace poco escribi un core de motorola 68000 en assembler para un mame custom que hice, pero no estoy muy puesto en escribir lo demas, vamos, todo lo que no sea ensamblador

Habia pensado en escribirlo en Visual Basic o VisualC, tengo instalado la version de Visual Studio 6


Me voy a ver a brasil/croacia

Saludos
¿Y has pensado en la posibilidad de coger el código fuente de Steem y adaptarlo/añadirle a esas características? Desconozco si está disponible en la web pero en caso contrario podrías ponerte en contacto por si pudieras tener acceso.

A modo de anécdota, yo echo de menos un emulador de Atari ST con la calidad de WinUAE.

Un saludo.
No la verdad, estuve echando un vistazo a los codigos de algunos emuladores opensource, y ninguno me convence

Estaba pensando en encontrar algun emulador, y darle las reformas que necesite, y cambiarle el core al que escribi yo en ASM, ya que necesito que funcione en un Pentium 3

Pero como no vi nada de mi gusto, pense en escribir uno, o de 0, o basandome en el gui de algun otro emu, que tampoco quiero inventar la rueda [+risas]

El tema es que estoy un poco verde, hace años que no programo nada que no sea assembler
Si lo programas en ensamblador siempre tirara mejor y podrias portarlo a otras plataformas (adaptando las instrucciones) , olvidate en visual, mejor en c/c++ y parte en emsamblador ya que tu solo necesitas como resultado un comando, no interfaz grafica. Yo programe un juego en c hace mil años, un paint en c para msdos con turbo c, supongo que las librerias de c han cambiado mucho porque era un puto coñazo trabajar con pantallas y no iba especialmente rapido (el juego)
Karaculo, no se programar en C

En realidad, tengo unos conocimientos vagos de C, pero no me siento comodo con ese lenguaje, porque me trabaria a los dos minutos

La portabilidad me da igual la verdad, con que funcione en windows 95 para arriba me vale


Estuve echando un vistazo a otros emuladores, y leyendo algunos documentos. El tema que como el target es un pentium 3 de gama baja, la mayoria de los emus existentes modernos, al tener core en C, petardean que da gusto

Creo que si puedo tomar prestado el gui, y las diferentes librerias de otro emu, me vendria al pelo. Tipo aceso a memoria, disco, interrupciones, y lo unico que tendria que hacer es rescribir las partes vitales en assembler, y meter mi core

Bueno, me pondre a ello, la semana que viene, tengo un viaje en avion de mil horas mas o menos, y tendre tiempo


La rabia que me da, es que hay algunos buens emus aun vivos, como el hatari, pero luego, vas a los foros, haces algunas preguntas, y los mismos developers no tienen ni paja idea. Es increible

Yo solo quiero jugar... jaja, no me interesa toda la parte del emulador fuera de eso, como TOS, demos, y cosas varias

Bueno no me soprende, el otro dia, hablando con el programador del emulador de Megadrive en PS2, le digo "oye, tu emulador esta rescalando incorrectamente en 240p" y me contesta "No entiendo que me dices, nunca jugue a una megadrive" :-| :O me quede de piedra


Si alguno ya estuvo puesto en el mismo tema, escucho ideas
theelf escribió:Bueno no me soprende, el otro dia, hablando con el programador del emulador de Megadrive en PS2, le digo "oye, tu emulador esta rescalando incorrectamente en 240p" y me contesta "No entiendo que me dices, nunca jugue a una megadrive" :-| :O me quede de piedra


¬_¬ ¬_¬ ¬_¬ Manda narices...

Estás en lo cierto, no hay ningún emulador de Atari ST que funcione nativamente en 15khz, yo también me pegué un palizón sin suerte (igual hago una 2ª batida). Mucha suerte con ese emu, a eso se llama coger el toro por los cuernos :-)
Yo wiituka/pituka, los hice cogiendo de aquí y allá, y conociendo el hard, claro. La mejor fuente ahora mismo que no se como de verde estará sería MESS/UME ¿le has echado un ojo?

Un Saludo y suerte tio :)
Bueno muchachos, buenas y malas noticias


Las malas, no dormi, me quede toda la noche despierto, y estoy reventado... me apasiona programar, valla mierda


La buena, es esta

Imagen


No me den credito! basicamente, estuve echando vistazo a otros sources, y como injectar mi codigo del motorola 68k, y al final lo logre

Lo bueno, es que tengo ya todo el tema del vsync atado, ya explicare

Saludos


AxelStone escribió:Estás en lo cierto, no hay ningún emulador de Atari ST que funcione nativamente en 15khz, yo también me pegué un palizón sin suerte (igual hago una 2ª batida). Mucha suerte con ese emu, a eso se llama coger el toro por los cuernos :-)



No tio, creeme, busque hasta debajo de las piedras...

Si encuentras un emulador de Atari ST que cubra esas necesidades que comento, te hago un monumento...

Incluso probe algunos mas "oscuros" como el aranyn, qie parecia ser la solucion al ser de consola, con parametros, y muy "toqueteable"

Me encontre con dos problemas, primero, el backend de SDL, no tiene doublebuffer, el de OpenGL es lento, y el emulador en si, aunque dicen que es rapido :-? va lentisimo en el pentium 3... supongo que sera rapido en un PC moderno



Igualmente ya no me preocupo, creo que ya tengo la solucion de forma casera

Te aviso apenas la tenga, asi nos quedamos con un emu para nuestros frontends


jeje, saludos




D_Skywalk si le eche un ojo, pero esta demasiado verde en lo referente a atari st

Saludos!
theelf escribió:Estuve echando un vistazo a otros emuladores, y leyendo algunos documentos. El tema que como el target es un pentium 3 de gama baja, la mayoria de los emus existentes modernos, al tener core en C, petardean que da gusto


Petardean porque estarán mal programados o serán emus que quieren llegar aun mínimo de fidelidad o son emus de consolas que piden bastante recursos.

Amos no me jodas , ahora resulta que un emulador de Atari ST no se puede programar en C sin petardear en un Pentium 3 que es un buen bicho [qmparto]

Además que muchos exageráis la majia de del ASM sobretodo a la hora de trabajar en procesadores modernos.
Programando como dios manda y sabiendo usar el compilador lo mas seguro es que te genere código mas eficiente del que programarías tu a menos que seas un super guru del ASM.

Y que un emulador de Atari ST en un Pentium III programado en C tiene que correr bien por narices.

Habia pensado en escribirlo en Visual Basic o VisualC, tengo instalado la version de Visual Studio 6


Pues tirara peor que uno programado en C , eso seguro.
Si quieres hacer algo serio y decente reaprendete C y utiliza alguna librería como allegro o SDL.
De lejos la mas correcta y mejor opción.

Creo que si puedo tomar prestado el gui, y las diferentes librerias de otro emu, me vendria al pelo. Tipo aceso a memoria, disco, interrupciones, y lo unico que tendria que hacer es rescribir las partes vitales en assembler, y meter mi core


No creo que eso este en ninguna librería , si no mas bien en el codigo del mismo emulador.
Si quieres hacer eso , la mejor opción pero de lejos es pillar algún emulador ya hecho y modificarlo.

No te convence ninguno? De verdad crees que en dos o tres viajes de avión vas a programar un emu mejor de lo que ya hay? en Visual C?

Mejor modifica alguno y métele las características que quieres que son bastante sencillas de implementar.


Si lo programas en ensamblador siempre tirara mejor y podrias portarlo a otras plataformas (adaptando las instrucciones)


[qmparto] [qmparto] [qmparto] [qmparto] [qmparto] [qmparto]
Claro hombre solo hay que "adaptar las instruciones" , que es cosa fácil y sencilla.
Los registros también son idénticos de una maquina a otra y la memoria esta mapeada igual.
Y esta claro que el código optimizado para un micro va a funcionar igual de bien en el otro( o va siquiera a funcionar a secas) , porque las CPU funcionan todas igual y tienen instrucciones parecidas
Mucho mejor que la implementación del compilador en esa plataforma optimice el código específicamente para el micro donde va a parar.

Lo que tu propones seria básicamente escribir el programa otra vez.

Las malas, no dormi, me quede toda la noche despierto, y estoy reventado... me apasiona programar, valla mierda


No es muy sano por mucho que te apasione quedarse toda la noche despierto para hacer lo que sea.
Ni sano ni muy normal.
Espero que estés de vacas o tengas festivo porque vas a ir al curre hecho una ñapa [carcajad]

No me den credito! basicamente, estuve echando vistazo a otros sources, y como injectar mi codigo del motorola 68k, y al final lo logre


Inyectar no has inyectado nada porque se ve claramente en la captura y lo dices tu , tienes el código del programa , simplemente has sustituido tu función por la que venia por defecto ( que supongo habrá sido su buen curro)

Lo que me gustaría saber es si de verdad has conseguido mejorar el rendimiento o existe alguna diferencia.

Lo que tu querías no era la salida 15khz y la entrada de argumentos por la terminal?
Pituka, está programado en C y corría en una GP32 a 133Mhz like a charm :)

Ese pantallazo tiene pitanza, y ya por preguntar y ser molestoso,
¿podremos disfrutarlo también los linuxeros? ;)

kappa64, a lo mejor te he leído mal pero me ha parecido un poco destroller el comentario :-|
Estoy de acuerdo que SDL sería el mejor entorno para un emulador, pero quizás solo quiere disfrutar programando en ASM... No creo que lo haga para ganarse nada, simplemente lo está compartiendo [facepalm]

A mi me parece bien hasta que lo hiciera solo para tostadoras con arm4, todo lo que sea cacharrerar bienvenido sea, nunca sabes el día de mañana que te puede venir bien a ti o al propio theelf ein?
Pues, estoy haciendo el GUI en Visual Basic, asi q linux queda fuera

Estoy viendo el codigo fuente de un emulador llamado steem, y sacar todo lo util, para poder armarme algo a mi medida, y no perder mucho tiempo

Por ahora le llame al proyecto emuST
Bueno, había editado para responder a kappa64, pero da igual XD

Por cierto, yo anoche hasta las 3am y a las 7am me ha levantao el enano... no es sano, cierto, pero a veces el cacharreo me puede!! [mad]

Un Saludo! [+risas] [+risas]
D_Skywalk escribió:Bueno, había editado para responder a kappa64, pero da igual XD

Por cierto, yo anoche hasta las 3am y a las 7am me ha levantao el enano... no es sano, cierto, pero a veces el cacharreo me puede!! [mad]

Un Saludo! [+risas] [+risas]



Totalmente hombre, hay que cuidarse... y te lo dice uno que se fue a acostar a las 6 y tuvo que levantarse a las 9 a trabajar... jajajajaja

Siento que no te valla en linux mi invento, es que la idea es poder usarlo en el mini PC que estoy armando con el frontend Mala, Windows XP, y un procesador de 1ghz, pero que para ahorrar energia y calor, lo dejo en unos 200-300 mhz cuando se puede, usando el speedstep

Hya algunos emus, que a 200mhz, tiran de lujo, y es genial eso en veranito, ya que el miniPC es totalmente pasivo

Saludos
ves escribió:Hola theelf echa un vistazo a swichtres
http://forum.arcadecontrols.com/index.p ... 023.0.html

Saludos



Buenas maestro! gracias por el aporte

El tema es que para que switchres funcione, el emulador tiene que poder leer el archivo que genere

Saludos
Yo por algun lado tengo el source del CaSTaway de psp que me lo paso el autor nose si te podria valer para algo, en su momento me puse en contacto con el que programo el emu de mega para ps2 pero decia que pasaba de ponerse a portarlo a ps2 [buuuaaaa]
Hola Theelf, Swichtres se encarga de poner la resolucion que configures con los present de tu monitor, el emu no necesita saber ni leer ningun fichero,solo soportar fullscreen y tener alguna resolucion acorde a tu configuracion, para mas dudas en windows pasate por retrovicio.



Saludos.
Buena gente, subo el hilo, porque tengo novedades

Tengo ya una beta del emulador de Atari ST, que funciona en frontends a baja resolucion (320x240)

Todos aquellos que tengan algun setup similar, o sea, PC a 15khz 240p, o PC VGA que soporte 320x240, y le interesa, me comenta, y le paso una compilacion

Funciona en windows 95 o superior, probado en windows 98 SE y XP


Estuve haciendo algunas optimizaciones al codigo original en el que me base, y logre fullspeed en el portatil Pentium 1 200mmx que tengo, asi que basicamente, deveria funcionar en cualquier cafetera/tostadora que tengan en casa


Saludos
theelf escribió:Buena gente, subo el hilo, porque tengo novedades

Tengo ya una beta del emulador de Atari ST, que funciona en frontends a baja resolucion (320x240)

Todos aquellos que tengan algun setup similar, o sea, PC a 15khz 240p, o PC VGA que soporte 320x240, y le interesa, me comenta, y le paso una compilacion

Funciona en windows 95 o superior, probado en windows 98 SE y XP


Estuve haciendo algunas optimizaciones al codigo original en el que me base, y logre fullspeed en el portatil Pentium 1 200mmx que tengo, asi que basicamente, deveria funcionar en cualquier cafetera/tostadora que tengan en casa


Saludos


¿Tienes previsto implementar modos de video compatibles con VGA? En caso afirmativo no tendría problema en probarlo intensivamente ya que ahora mismo no tengo el PC dedicado a 15Khz/240p disponible.

Por otro lado y si me permites una sugerencia, sería muy interesante que tu emulador pudiera utilizar filtros HLSL similares a MAME para mejorar la señal de video en pantallas LCD/LED. Desconozco el nivel de complejidad que supone tal añadido, pero si fuera posible creo que mejoraría un montón el resultado final para todos aquellos que no utilizaran resoluciones nativas.

Un saludo.
Buenas hodor, gracias

Pues, el unico modo que probe es 320x200, 640x200 parece que en juegos no se usa demasiado, y 640x400 no me interesa al ser entrelazado

Devido a que solo me centre en la salida 1:1 de 320x200, la verdad que es imposible aplicar filtros o nada asi a la primera

Sinceramente, la atari ST no me interesa demasiado, solo programe esto, para poder tener algunos juegos en el PC a resolucion nativa, al no encontrar ninguna otra solucion

Saludos
theelf escribió:Buenas hodor, gracias

Pues, el unico modo que probe es 320x200, 640x200 parece que en juegos no se usa demasiado, y 640x400 no me interesa al ser entrelazado

Devido a que solo me centre en la salida 1:1 de 320x200, la verdad que es imposible aplicar filtros o nada asi a la primera

Sinceramente, la atari ST no me interesa demasiado, solo programe esto, para poder tener algunos juegos en el PC a resolucion nativa, al no encontrar ninguna otra solucion

Saludos


Sería un bombazo que llegaras a programar un emulador fiel al Atari y que pudiera mostrar resoluciones nativas. Vamos, yo al menos sería feliz :)
Fiel al ST es dificil, ya que para eso habria que invertir muchas horas, cosa que no tengo, demas, que no es la funcion que buscaba, si no mas bien un trabajillo rapido, para mi mini PC


Pero resolucion nativa, era justamente, uno de los dos puntos por la cual tuve que programar esto, porque no encontraba nada. El segundo, era linea de comandos para frontends, cosa que tambien agrege


TOS y Maniac Mansion en mi trinitron, usado el emulador

Imagen

Imagen

Imagen

Imagen



Lo que pasa, es que la ST la tuve hace... mil años, ya no me acuerdo mucho de ella. Vamos, que se usarla, y recuerdo de como programar en la ST, pero minimo...

Mas la tengo presente por el m68k que por la maquina en si
21 respuestas