Karoshi MSX Community
05 de Julio de 2021, 07:08:38 pm *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias:
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: [1] 2 3
  Imprimir  
Autor Tema: Presentación de mí mismo y de proyecto para desarrolladores...  (Leído 18911 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Mortimer
Karoshi Lover
***
Mensajes: 216


WWW
« : 05 de Diciembre de 2008, 10:36:13 am »

Hola, no sé si este será el mejor sitio para presentarme, pero cómo será dónde más participe pues allá voy: Vuelvo a la carga tras muchos años de barbecho, y con varios proyectos, el más interesante creo que una herramienta para programar 'bocetos' de juegos desde Java, y que también quiero que se convierta en una herramienta de depuración y generación automática de código.

Voy a copiar un POST de un hilo konamito.com (dónde también podéis leer más cosas sobre mí: http://www.konamito.com/node/1756) para que os hagáis una idea de lo que pretendo:

Citar
Voy a intentar explicar un poco mejor la idea, aunque me cuesta explicarlo porque hasta para mí es un poco escurridiza y tiene muchos enfoques posibles.

Imaginaos un emulador MSX típico (Y básico), tiene virtualizados los elementos de entrada/salida que interactúan directamente con el usuario: VDP, PSG, teclado, Joysticks... y también por supuesto la CPU, la RAM y la ROM. El proceso normal de funcionamiento es que la CPU va recogiendo instrucciones de la memoria, las procesa junto con los datos de los dispositivos de entrada, y el resultado los vierte en los de salida. Si alguien tiene alguna duda hasta aquí que levante la mano Smile

Pues bien, sigamos imaginando, ahora cogemos ese emulador, y construimos una serie de funciones en el lenguaje con el que está programada la herramietna para interactuar con los elementos de entrada/salida, (como hace BASIC) ¿Qué tenemos? Pues algo que desde fuera parece un MSX, pero que se puede programar rápida y fácilmente con toda la potencia del ordenador anfitrión con sus gigas de RAM y potencia de cálculo, por eso decía lo de 'casi infinitos recursos'.

Por ejemplo, imaginad que queremos ver cómo quedaría un Sprite dando vueltas en círculo, si hemos creado las funciones podría quedar tan "sencillo" como:
 
Código:
msx.InitScreen(1);
Sprite misprite=new(Sprite(PATRON_SPRITE1));
int x=0;
while (!msx.KeyPressed()){
 msx.put_sprite(0, sin(x)*40, cos(x)*40, misprite);
 x++;
 msx.WaitVSync;
}

Como veis, se pude usar la potencia del lenguaje anfitrión, y se pueden abstraer las funciones útiles de bajo nivel, de BIOS, de BASIC o inventar las que se crean necesarias. Y lo interesante es que esto al ejecutarse, simplemente enviará al VDP virtual la misma serie de 'outs' que si se programara en un MSX real, de hecho, se podrían capturar y hacer una especie de película para verlo en un MSX real.

Por supuesto, no es todo tan fácil y bonito, cuando queramos portar a un MSX real, todas las limitaciones seguirán estando ahí, así que habrá que ir portando manualmente y si no hemos tenido cuidado, puede que lo que hemos creado no sea viable. Para evitar un poco esto, se podrán poner restricciones en cuanto a la cantidad de bytes que puede asimilar el vdp por refresco, memoria usada para guardar los patrones, y cosas así.

Bueno, si sigue alguien despierto después del tocho espero que le haya quedado algo más claro, la herramientas también tiene otras vertientes, principalmente para depuración orientada a VDP, y quizás ayuda a la ingeniería inversa. Ya os seguiré contando.

An, todo lo estoy desarrollando en JAVA, con la ventaja de que las demos se podrá ver en un página web a modo de applet sin más complicaciones, y la aplicación completa podrá correr en cualquier ordenador y SO que tenga una JVM.

Os dejo el enlace a una prueba técnica, que simplemente redibuja cada segundo una hipotética VRAM de basura aleatoria cada segundo: http://sagaz.es/MSX/TMS9918.htm

Pues para ser el primer post bastante largo me ha quedado... Ya me contáis que os parece la idea, si hay cosas parecida, y todo lo se que os ocurra.

Saludos y gracias
En línea
Jon_Cortazar
Administrator
Karoshi Forum's God
********
Mensajes: 2777



WWW Email
« Respuesta #1 : 07 de Diciembre de 2008, 09:40:05 am »

Aupa, Mortimer! Bienvenido a esta comunidad! Wink

Lo que comentas parece interesante, lo que ocurre es que, claro, aún teniendo apariencia MSXera, en realidad no lo es: digamos que sería una especie de PC con la capacidad de salida restringida con las mismas pautas que el MSX.

De cualquier forma, y aunque no es santo de mi devoción (yo prefiero trabajar para MSX directamente), sería interesante ver un hyper juego con zooms, rotaciones, etc... y con aspecto MSXero. Aunque claro, solo sería eso, aspecto MSXero Wink

A ver que le parece a la gente, independientemente de por donde tire cada uno (o de su purismo) puede ser algo muy curioso de ver... adelante! Y, de nuevo, bienvenido  Wink

En línea

Jon Cortázar Abraido (aka El Viejo Archivero)
RELEVO Videogames
[Dioniso: La cafeína está haciendo su trabajo; yo espero hacer el mío.]
[pitpan: Me sigue pareciendo más productivo jugar al SNAIL MAZE que seguir esta discusión.]
k0ga
Karoshi Fan
**
Mensajes: 85


Email
« Respuesta #2 : 08 de Diciembre de 2008, 10:31:41 am »

Hola, no sé si este será el mejor sitio para presentarme, pero cómo será dónde más participe pues allá voy: Vuelvo a la carga tras muchos años de barbecho, y con varios proyectos, el más interesante creo que una herramienta para programar 'bocetos' de juegos desde Java, y que también quiero que se convierta en una herramienta de depuración y generación automática de código.


Anda otro malagueño ^^!. Pues que sepas que no estas solo. Actualmente alli hay unos 5 o 6 usuarios que solemos quedar para echarnos nuestras partidas al MSX un par de veces al mes. Pues eso, un saludo
En línea
Mortimer
Karoshi Lover
***
Mensajes: 216


WWW
« Respuesta #3 : 09 de Diciembre de 2008, 11:00:49 am »

Aupa, Mortimer! Bienvenido a esta comunidad! Wink

Lo que comentas parece interesante, lo que ocurre es que, claro, aún teniendo apariencia MSXera, en realidad no lo es: digamos que sería una especie de PC con la capacidad de salida restringida con las mismas pautas que el MSX.

De cualquier forma, y aunque no es santo de mi devoción (yo prefiero trabajar para MSX directamente), sería interesante ver un hyper juego con zooms, rotaciones, etc... y con aspecto MSXero. Aunque claro, solo sería eso, aspecto MSXero Wink

A ver que le parece a la gente, independientemente de por donde tire cada uno (o de su purismo) puede ser algo muy curioso de ver... adelante! Y, de nuevo, bienvenido  Wink


Muchas gracias por la bienvenida.

Lo que comentas de un 'super MSX'  sería sólo una de las facetas posibles, y quizás la menos útil aunque puede ser divertido cómo dices meterle caña al VDP, sería algo así cómo si a un Turbo R le hubieran puesto VRAM de doble puerto para que la CPU pudiera modificarla entera sin problemas en cada retrazo...

Pero lo que quiero potenciar más es su utilidad para tirar bocetos y para depuración, y también se podría utilizar para precompilar efectos o hacer animaciones que después pudieran correr en un MSX real, se pueden abrir muchas posibilidades.

Y bueno, ya os iré enseñando las novedades y pidiendo opiniones sobre las distintas formas de enfocar las cosas para intentar que sea una herramienta útil para todos.

Saludos
En línea
Mortimer
Karoshi Lover
***
Mensajes: 216


WWW
« Respuesta #4 : 12 de Diciembre de 2008, 08:23:03 am »


Anda otro malagueño ^^!. Pues que sepas que no estas solo. Actualmente alli hay unos 5 o 6 usuarios que solemos quedar para echarnos nuestras partidas al MSX un par de veces al mes. Pues eso, un saludo

Mmmm, muy interesante, ya me contaréis la próxima vez que quedéis a ver si puedo pasar a conoceros  Cheesy
En línea
Carlos Maidana
Karoshi Newbie
*
Mensajes: 7


Hardware Phanatic!


WWW
« Respuesta #5 : 02 de Enero de 2009, 12:57:36 am »

Hola a todos!!
Digo yo, no hay alguna forma de poder hacer lo inverso?
Esto seria, que en el bluemsx cuando uno hace un out o inp, exista una libreria o algo encargado de detectarlo e informarlo a una aplicacion externa??
La idea es poder utilizar el programa de simulacion electronica Proteus junto con el bluemsx para que uno haga el diseño del circuito y cuando en el bluemsx se efectue una operacion de i/o en el rango de puertos que utiliza el circuito del proteus, ese byte de datos sea tomado por el simulador y actue en el circuito.

Para esto logicamente se deberia hacer un plugin para el proteus.
Lograr esto seria barbaro ya que el proteus es genial!!, puede simular hasta microcontroladores o displays LCD,y (por lo menos a mi Tongue) me seria fantastico tener algo asi.

Saludos!
En línea

Mortimer
Karoshi Lover
***
Mensajes: 216


WWW
« Respuesta #6 : 02 de Enero de 2009, 09:24:29 am »

Hola a todos!!
Digo yo, no hay alguna forma de poder hacer lo inverso?
Esto seria, que en el bluemsx cuando uno hace un out o inp, exista una libreria o algo encargado de detectarlo e informarlo a una aplicacion externa??
La idea es poder utilizar el programa de simulacion electronica Proteus junto con el bluemsx para que uno haga el diseño del circuito y cuando en el bluemsx se efectue una operacion de i/o en el rango de puertos que utiliza el circuito del proteus, ese byte de datos sea tomado por el simulador y actue en el circuito.

Para esto logicamente se deberia hacer un plugin para el proteus.
Lograr esto seria barbaro ya que el proteus es genial!!, puede simular hasta microcontroladores o displays LCD,y (por lo menos a mi Tongue) me seria fantastico tener algo asi.

Saludos!


No conozco Proteus, pero si tiene algún método para captar datos en tiempo real de alguna fuente, seguro que se puede hacer lo que comentas, aunque depende de las posibilidades de captar datos de Proteus quizás haya que modificar o programar algún módulo para bluemsx. Supongo que lo difícil sería conseguir que todo fuera lo suficientemente suave. ¿Puedes poner algún enlace a la documentación de Proteus?

Saludos
En línea
Mortimer
Karoshi Lover
***
Mensajes: 216


WWW
« Respuesta #7 : 11 de Enero de 2009, 05:07:51 pm »

Hola, os escribo para contaros las novedades de mi enjendro aún sin nombre, que ya está lo suficientemente avanzado para poder hacer cosillas interesantes, como esta demo que os quiero enseñar en screen 1 con los 32 sprites posibles en pantalla, 31 rebotando contra los bordes y uno controlable con los cursores. De fondo, un scroll básico muldireccional redefiniendo un pattern al vuelo. Toda la lógica del programa está escrito en Java y ataca al emulador del TMS como si fuera un Z80. Para probarlo haced click en la imagen de abajo, y para poder usar los cursores para probar el scroll haced click dentro del applet. Ya me contáis que os parece.

Saludos

En línea
Mortimer
Karoshi Lover
***
Mensajes: 216


WWW
« Respuesta #8 : 06 de Febrero de 2009, 09:28:28 am »

Hola chicos, os voy a enseñar mis avances en este proyecto. (Básicamente, en esta primera fase, crear un VDP virtual y programarlo directamente en Java.)

El VDP lo tengo ya casi terminado, me falta SCREEN 3, Sprites doubled sized, y otras cosillas que apenas se usan y que no son prioritarios ahora. También he creado las funciones de alto nivel conforme las he ido necesitando para hacer lo que veis, pero faltan muchas más por hacer. Por último, respecto a la versión anterior he separado totalmente la emulación de VDP en dos capas apiladas, pensando en el soporte para depuración, así que va un pelín más lento aunque con ordenadores rápido no se nota.

Básicamente el protojuego consiste en una nave que se mueve y dispara, un fondo dinámico con scroll multidireccional pixel a pixel, y unos sprites siguiendo sinusoides. Si alcanzamos un enemigo con un disparo este vuelve a la parte superior de la pantalla. Así de sencillo.

Además de lo pobre de los gráficos (¿Algún grafista en la sala  Roll Eyes?), todavía faltan cosas básicas que espero terminar pronto: Marcadores, más de un disparo en pantalla, movimiento del Scroll más coherente, explosiones... Pero bueno, os podéis hacer una idea. Y recordad, que lo que veis es 100% emesequiable, 'sólo' habría que reprogramar lo que está en Java en ensamblador...

Ya me contáis las impresiones, haced click en la imagen para probarlo:



Saludos

PD: Os recuerdo que a veces hay que pinchar con el ratón dentro del applet para activar el teclado. Funionan los cursores y la barra espaciadora.
En línea
SapphiRe_MSX
Visitante
« Respuesta #9 : 06 de Febrero de 2009, 10:01:44 am »

Y digo yo... ¿sería posible hacerlo al revés? Me explico: tienes un programa ya compilado para MSX y te gustaría presentarlo pero sin distribuirlo. ¿Sería posible hacer algo de forma que se pudiera usar con esto que estás haciendo? Podría estar muy bien para presentar betas sin tener que distribuirlas... sólo es una idea Roll Eyes Roll Eyes
En línea
Mortimer
Karoshi Lover
***
Mensajes: 216


WWW
« Respuesta #10 : 06 de Febrero de 2009, 10:22:55 am »

Y digo yo... ¿sería posible hacerlo al revés? Me explico: tienes un programa ya compilado para MSX y te gustaría presentarlo pero sin distribuirlo. ¿Sería posible hacer algo de forma que se pudiera usar con esto que estás haciendo? Podría estar muy bien para presentar betas sin tener que distribuirlas... sólo es una idea Roll Eyes Roll Eyes

Sí, y es una muy buena idea Wink El problema, si se quisiera ejecutar un binario MSX, es  que habría que construir un emulador de MSX completo (o que emule al menos todo lo que necesite el juego), y además hacer que no sea fácil extraer el juego y hacerlo rular por ahí... Otra peguita sería que la sensación del juego sería tan buena cómo bueno fuera el emulador. Pero luego, se podrían abrir muchas posibilidades, como que las betas caducasen, que recopilasen información automáticamente sobre como ha jugado el tester para afinar la dificultad, validación para poder jugar...

Tengo proyectado a medio plazo programar un emulador cuasi completo en Java (De hecho ya estoy desnudando al Z80: http://www.konamito.com/node/2108 ), así que apunto esta idea a la lista de deseos.

Saludos
En línea
SapphiRe_MSX
Visitante
« Respuesta #11 : 06 de Febrero de 2009, 10:56:13 am »

Sí, y es una muy buena idea Wink El problema, si se quisiera ejecutar un binario MSX, es  que habría que construir un emulador de MSX completo (o que emule al menos todo lo que necesite el juego), y además hacer que no sea fácil extraer el juego y hacerlo rular por ahí...

Sí, no es algo trivial, lo reconozco. Pero es una idea.

Citar
Otra peguita sería que la sensación del juego sería tan buena cómo bueno fuera el emulador.

Cierto.

Citar
Pero luego, se podrían abrir muchas posibilidades, como que las betas caducasen, que recopilasen información automáticamente sobre como ha jugado el tester para afinar la dificultad, validación para poder jugar...

Lo que daría mucho juego a la hora de desarrollar nuevos juegos (valga la redundancia).

Citar
Tengo proyectado a medio plazo programar un emulador cuasi completo en Java (De hecho ya estoy desnudando al Z80: http://www.konamito.com/node/2108 ), así que apunto esta idea a la lista de deseos.

Supongo que lo conoces ya, pero por si acaso te recomiendo encarecidamente el libro "Undocumented Z80 documented". Algo IMPRESCINDIBLE a la hora de programar en ensamblador y, por supuesto, a la hora de hacer un emulador de Z80. Si no lo tienes, mándame un privado que te lo envío por correo.
En línea
Mortimer
Karoshi Lover
***
Mensajes: 216


WWW
« Respuesta #12 : 06 de Febrero de 2009, 11:14:51 am »

Supongo que lo conoces ya, pero por si acaso te recomiendo encarecidamente el libro "Undocumented Z80 documented". Algo IMPRESCINDIBLE a la hora de programar en ensamblador y, por supuesto, a la hora de hacer un emulador de Z80. Si no lo tienes, mándame un privado que te lo envío por correo.

¿Te refiereres al de Sean Young ? Porque me lo sé ya casi de memoria...  Undecided

Es el que estoy usando para introducir en la BBDD todo el comportamiento del micro, es decir, estoy pasando todo lo que hay en las tablas de instrucciones pensadas para que lo entiendan humanos, a un formato de tablas entendible por el ordenador, y a partir de ahí poder generar el emulador o los emuladores que hagan falta...

Lo que no sé es si abrá una versión más actualizada al que tengo, que es la Version 0.9, 14th June, 2005

Saludos

En línea
SapphiRe_MSX
Visitante
« Respuesta #13 : 06 de Febrero de 2009, 11:30:20 am »

¿Te refiereres al de Sean Young ? Porque me lo sé ya casi de memoria...  Undecided

Ese, ese. Por supuesto.

Citar
Lo que no sé es si abrá una versión más actualizada al que tengo, que es la Version 0.9, 14th June, 2005

Yo tengo una versión posterior, concretamente la "Version 0.91, 18th September, 2005". Si me dices un correo te la envío, porque (mirando el changelog) hay alguna que otra modificación con respecto a la que tú tienes.

Edito: no hace falta que me digas ningún correo, puedes bajarte la última versión (que es la que tengo yo) de aquí http://www.myquest.nl/z80undocumented/
« Última modificación: 06 de Febrero de 2009, 11:33:45 am por SapphiRe » En línea
Mortimer
Karoshi Lover
***
Mensajes: 216


WWW
« Respuesta #14 : 06 de Febrero de 2009, 06:03:43 pm »

¿Te refiereres al de Sean Young ? Porque me lo sé ya casi de memoria...  Undecided

Ese, ese. Por supuesto.

Citar
Lo que no sé es si abrá una versión más actualizada al que tengo, que es la Version 0.9, 14th June, 2005

Yo tengo una versión posterior, concretamente la "Version 0.91, 18th September, 2005". Si me dices un correo te la envío, porque (mirando el changelog) hay alguna que otra modificación con respecto a la que tú tienes.

Edito: no hace falta que me digas ningún correo, puedes bajarte la última versión (que es la que tengo yo) de aquí http://www.myquest.nl/z80undocumented/

Gracias mil, por suerte las correciones en el documento afectan sólo al registro de refresco y a la instrucción DAA, a las que todavía no les había metido mano  Cheesy
En línea
Páginas: [1] 2 3
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2013, Simple Machines XHTML 1.0 válido! CSS válido!