Programming, Retrocomputing, Video games, MSX and curiosities everywhere /
Programación, Retrocomputacion, videojuegos, MSX por doquier y curiosidades varias
Finalmente y tras una polémica innecesaria y negativa, ha concluido el concurso MSXDev'14 dandonos la victoria. Quiero dejar claro que URIDIUM ha quedado cerca y es un gran trabajo y un gran título para nuestros MSX, al igual que otros títulos presentados en esta DEV .. pero bueno .. al final nos ha tocado a nosotros y uno pues se alegra. Mas por sus compañeros de equipo que por uno mismo.
Desde aquí al resto de personas que han participado, que ánimo, en serio, hay juegos que a mi me encantan en su planteamiento, como el Gorgeus o el Nayade .. sobre todo un juego de naves tan potente que con más tiempo se podría convertir en un MegaROM de esos de Chapeau!
MSX2EVER - MSX2GETHER .. que no se nos olvide! .. fuera polémicas, todo constructivo, todo hacia delante, aquí ganamos todos porque cada segundo, cada minuto, cada hora que dedicamos al MSX lo gana toda su comunidad.
Y ahora me bajo a comprarme un bocata en honor de todos los concursantes del MSXDev!! :)
Bueno, pues un año más, muy contentos de haber concluido con éxito nuestro propósito de publicar un juego en el concurso MSXDev. Como ya sabréis algunos, se trata del juego Pretty Kingdom, un juego tipo puzzle con algo de arcade, muy colorista (gracias al trabajo de Dario Fas) y con una música fantástica del maestro Wyz que rezuma puro Konami por todos sus costados.
En cuanto al desarrollo...
Los tiempos se han llevado con calma, lo cual se agradece y mucho. No hemos sufrido estrés por hacer el juego, la verdad. No como en MonsterHunter que fue terrible :)
Sin embargo, le hemos dedicado constancia y no lo hemos dejado estar desde que publicamos la entrada en el concurso y esto creo que es clave.
En cuanto a lo técnico, el juego se trata de una ROM de 32Kb. Lo normal. Bueno, la verdad es que viniendo de programar los MegaROM, se ha sufrido y mucho esto de los 32Kb que se terminan enseguida. Hubo que pensar bastante bien como codificar las pantallas para que ocupasen lo mínimo posible. Todo byte que se ha introducido esta metido con el horror de que la ROM se pase de tamaño :)
El juego se ha desarrollado usando SDCC. La lógica del juego pues está en C y luego las rutinas de acceso a BIOS, música, sonido, gráficos en Ensamblador embebido.
Los gráficos los exportamos de photoshop a formato un formato gráfico comprimido MSX. La música nos la pasaban en formato .wyz y con una tool de NLKEngine se empaquetaba, se preparaban unas cabeceras y se dejaba lista para usarse dentro del engine del juego.
Construimos un pequeño editor para las pantallas, montado con NLKEngine y que machacaba la ROM para poder probarlos con el emulador y básicamente, esa era nuestra suite de desarrollo.
A última hora, probando ya el juego en MSXs de verdad, vimos cosas maravillosas que en emulador no ocurrían, lo cual, me sorprende y aún hace más mágico el universo retro y sus retro ordenadores que nunca podrán copiarse al 100%.
Pero ya está! publicado :) Esperamos que os guste y que consigáis llegar hasta el final del juego ... porque tiene final .. y no es un "GameOver" .. lo prometo! jajajaja :)
Un poco de historia .. que sino no tiene gracia esto :)
Intenciones
Con el propósito del proyecto MSX-VR .. ese en el que ando liado. Pues tenía en mente el hecho de poder conectar cartuchos de MSX real a los dispositivos o dispositivo hardware final que ejecutara todo el código del proyecto (véase un Android o un Rasberry o un Windows o un Linux o lo que sea)
Llevaba tiempo detrás de uno de esos "cacharritos" que sacó ASCII y más tarde SUNRISE ... y hace un par de semanas pues, se me dio la oportunidad de conseguir uno. Y eso hice, lo adquirí por un módico precio.
Lo cierto es que, cuando lo adquirí, no pensaba encontrarme tan solo en el fascinante mundo de entender el artilugio este ... pero vamos .. la soledad fue total XD .. menos mal que la gente te anima y apoya por la causa .. pero lo que es documentación o una mera pista de por donde van los tiros .. cero patatero.
Para decir verdad, el aparato este viene con un driver para Windows 32 bits hasta el XP. Y claro, de esto hace unos años y hoy en día pues ya están los Windows 64 bits y el Windows 7 y el Windows 8 .. pero no solo esto .. pues que también están los Android, los iOS, los Mac y los Linux y lo que venga bien.
Así que mi objetivo era ... entender este aparato y conseguir hacerlo funcionar en múltiples plataformas.
29 de Mayo
El aparato llega a casa y antes de tirarme a saco a mirar a bajo nivel, escupiendo bytes al driver USB a ver como me insultaba .. pues digo .. como todo, vamos a tantear el Internet.
En el Internet .. no hay nada de nada. Pero nada :)
Alguien habla del GameReader e incluso comenta cosas sobre el modelo de ASCII y de SUNRISE.
También veo pues que el del emulador del BLUEMSX se curró un dumpeador y un interface para atacar la MSXGR.DLL (el driver maravilloso y obsoleto que existía)
En conclusión .. No hay nada.
Así que lo siguiente es preguntar a la gente involucrada en el aparato .. no? .. pues eso hago .. hablo con la gente de SUNRISE y por lo visto, del hardware no tienen ni idea. Porras!!
Muy amables (todo hay que decirlo) ... me remiten al japones responsable de la creación del hardware ..ohhhh!!! mágico .. busco por Inet y el artista es el que está detrás de OCM (One Chip MSX) entre otras piezas de hardware magnificas.
La cuestión, consigo email y ataco directamente, primer intento ... resultado .. 0 respuestas jajajajaja
Persisto .. digo . .será porque soy un español maleducado con un inglés de pueblo poco polite .. ya sospecho que el hombre este será complicado de entrarle....
Pregunto a colegas del MSX y me dan alguna referencia alternativa de contacto .. la cosa no es fácil por lo visto. Y vuelvo a intentarlo.
Segundo intento ... miro en blogs de inglés polite, me lo curro ahí a tope como Shakespeare .. Mister y todo pongo .. resultados ... 0 respuestas!!! jajajjaja que triste soy.
En fin, durante dos días vago por las calles, triste ... no sabia que hacer con la caja negra esa que tenía encima la mesa... y como conectarme al trasto este por Dios!!
La Solución!
Que os creéis que os lo voy a contar . .así de fácil :)
Enga va ... pues na . .se me ocurrió meterme a escuchar directamente del driver USB de un Windows XP .. ahí .. mirando paquetes pasar en hexadecimal.
Monte un XP virtual y na . .a experimentar con el driver MSXGR.dll que si rula en XP y a ver hexadecimales pasar.
Cuando hackee todos los códigos .. pues me fui a mi Windows 7 original :) .. y ya supe que decirle al driver USB y en consecuencia al cacharrín .. lo pillé!!
Veis que fácil! :)
Prueba Empírica
He integrado todo este rollo en el proyecto MSX-VR y he montado un comando MSXVR-DOS llamado <GR> para ir haciendo probaturas. Un vídeo para vuestro deleite:
El día 6 de Mayo del 2014, por la noche, decidí quedarme a
ver un programa llamado Cuarto Milenio. En este programa pues cuentan cosas de extraterrestres,
fantasmas, etc. En fin, cosas místicas.
La cuestión, es que comentaron lo de los videojuegos de ATARI
encontrados en un estercolero de México. Juegos que enterró en 1983 ATARI por
motivos que ellos sabrán.
Me pareció súper chulo este hecho, por un lado por el
misterio de tener que tirar a la basura miles de cartuchos, por otro, el que
hace poco se decidieran a desenterrarlos.
Entre los miles de cartuchos enterrados, el juego de ET el
extra-terreste. Juego basado en la famosa película de Spielberg que a tantos
nos arrancó más de una lagrimita, snif! :)
Pues bien, con respecto al juego este de ET. Investigo por
la red de redes y veo que lo ponen de vuelta y media. La gente lo humilla,
dicen que es el peor juego de la historia, que llevó a la banca rota a Atari,
etc. No dicen nada bueno del juego, pero nada bueno ... así que mi
cabeza comienza a querer descubrir la verdad, desde la óptica del programador y
no desde la del jugador.
Detrás de este juego se encuentra el nombre de su diseñador
y supongo programador: Howard Scott Warshaw. Un señor que por lo visto, esto de
la informática le vino así como de rebote .. porque parece que andaba más
vinculado a cosas de psicología. Lo cual, para cosa de diseño de juegos, parece
que algo le pega. La cuestión, que el señor Warshaw se ganaba la vida como
diseñador de videojuegos.
A lo que vamos, día 7 de de Mayo (a la mañana siguiente) ...
pues me da por plantearme un reto .. uno de tantos :) .. como el de comerse 8
sandwiches .. o el de los dos kebab más un durum ... cosas raras en las que
siempre me acabo liando yo solo ... y como no, no podía ser distinto ahora. De
todos modos, esto tenía un objetivo más pretencioso ...el de buscar la verdad, como hacía el agente
Malder en la famosa serie :)
EL RETO
Hacer el juego de ET en un plazo no
superior a 48 horas.
MANOS A LA OBRA!
Primero me vi un video del juego, de un señor que con toda su paciencia
se lo pasa entero .. viendo el video comienzo a tener sudores fríos .. no
entiendo nada!! XD
Lo siguiente, me pillo 3 guías del juego ... acabáramos!! ..
cada una da detalles distintos de como se pasa y de la funcionalidad del mismo
.. Paco Porras! :)
Acto seguido, usando el emulador java de Atari .. me decido
a ver que guía dice la verdad y cual no .. por lo visto .. la versión fixed
(una que alguien corrigió para evitar bugs) y la no fixed .. pues son
ligeramente distintas o a saber que ROMS estoy ejecutando .. como se puede
observar es el caos dentro del caos.
Tras conseguir una maravillosa imagen de como se
conectan las pantallas entre sí (una verdadera locura cubica 3D) ... y mirando
su comportamiento loco en la máquina Java .. comienzo a ir entendiendo y
asimilando la idea del juego. No sé porque hizo esto el señor Warshaw, no sé si
por limitación de memoria o cosa técnica de la consola o solo por perversión de
psicólogo :)
A más que avanzo en su lógica .. más recuerdo ese tipo de
juegos de la época .. donde todo es un misterio .. te compras un juego pero no
sabes lo que compras .. porque es todo secreto.
Has de descubrir .. has de invertir tiempo y horas hasta
entender la esencia misma de su naturaleza. Compartir con tus colegas los
nuevos descubrimientos ... es algo mítico!
Sin embargo, cabe decir, que este juego sigue siendo un caos! :)
En cualquier caso, la IA me sorprende, que un personaje te atrape y te lleve a
la cárcel .. es genial!! Esto ya es más de lo que hacen muchos juegos AAA del
año 2014.
El sistema de símbolos extraños que según dónde estás hace
cosas .. es como ver "Alien Generation" pero con el video rebobinado
hacia atrás. Fantástico! . al final hasta se entiende que cada uno tiene su
funcionalidad .. muchas veces poco útil.
Es día 8 .. ayer pude dedicar unas 6 horas al juego. Hoy podré
dedicar unas 10 horas, por amor propio y por amor al arte... he conseguido
bastantes avances pero no voy a poder terminar con precisión pixel todo el
universo ET. Maldición!! .. la máquina de estados del engendro está llena de
meticulosos detalles.
He capturado la musiquilla del principio, algunos sonidos y
más gráficos .. acabo el día con prácticamente el juego completado. A falta de
pulir detalles de perfección.
El juego se puede jugar de principio a fin. Me faltan
algunos gráficos por ripear (muy pocos, nada a penas) y seguramente algún sonido que se me pueda haber
escapado. Pero bueno, el juego está todo ahí. Desde que la nave baja, hasta que
la invocas para ver el final de la casucha con el Elliot pegando vueltas. Sus
enemigos, comportamiento de powerups e incluso el sistema de puntuación (que
como digo no acaba de quedar del todo claro viendo las guías)
Es día 9 .. se acabó el tiempo!
CONCLUSION
Os dejo un link con el estado del juego para Windows.
Mi reflexión es que este juego no es el peor juego de la
historia. Quizás por los bugs y por el horror de caer y salir de los agujeros ..
pero si consideramos el juego en si mismo .. para la consola que era y para los
tiempos que eran .. año 82!! me parece impresionante la máquina de estados que
tiene y la profundidad de juego y su misterio y su frustración y su todo ..
esto tuvo que ser mítico en la época .. imagino a los colegas ahí intentado
descubrir los entresijos .. ahí todos locos, compartiendo ilusión :) .. ay
señor! si es que la humanidad avanza en cosas y retrocede entre otras al mismo
tiempo.
Saludos! y amad a los videojuegos .. porque son bellos.
Pues aquí llega la 0.20 cargadita de nuevas características:
- Reproducción de TMU (Trilotracker), PT3 (VortexTracker II), WYZ (WyzTracker XML)
- Reproducción de archivos de video EVA
- Añadido sonido stereo al MSXVR-SoundEngine
- Mejoras en la consola MSXVR-DOS
- También en la del MSXVR-BASIC
- Agregados nuevos formatos legibles en el visor de imágenes (.SCx, .GEx)
- Se pueden montar DSKs en en el sistema de unidades lógicas (comando MOUNT de MSXDOS)
Más los bugs que se van arreglando por aquí y por allá... y más cosas que podéis ir viendo en el ChangeLog.
Aquí os dejo un vídeo del MSX-VR reproduciendo un EVA:
No me cansaré de decir que ... Gracias a todos los que apoyan la idea y el proyecto ... no pasan por alto vuestros ánimos! :)
No es como tener una churrimanguera pero sin duda, es mucho mejor que la 0.18... aquí llega, con las Fallas requemedas, la nueva versión 0.19 con muchas novedades.
Le estoy dando vueltas y vueltas a como hacer para programar en el MSX3 y generar ROMs compatibles. Cuando digo programar, me refiero a hacerlo con el lenguaje molón de script que lleva incorporado. Hay que seguir pensándolo porque eso molaría bastante.
Una nueva versión 0.18 está disponible. Esta versión arranca tal y como se muestra en los videos. Permite trabajar desde MSXVR-VIEW. La idea es poder habilitar unas teclas de arranque rápido a MSXVR-DOS y a MSXVR-BASIC .. en plan .. si en el arranque estoy pulsando CONTROL.
También estoy terminando lo que sería el procedimiento y sistema (SDK) para el desarrollo de Apps dentro de MSXVR-VIEW, de esta forma, cualquier usuario podría hacer su propia aplicación tanto en ventana como para línea de comandos.
Hay una versión primaria del archivo <config.xml> que será el lugar donde los usuarios podrán configurar cosas del entorno MSX-VR. La idea es poder tener una tool en la propia suite que permita cambiar dicha configuración.
Ahora voy a centrarme en cerrar al completo tanto la consola MSXVR-DOS con todos sus comandos, como mejorar, depurar y terminar la consola MSXVR-BASIC. De esta forma también se podrá usar el MSXVR-BASIC como lenguaje para programar apps dentro de la suite. Que es lo suyo, no? :)
Pues nada, os mantengo informados de las novedades. Saludos!!
Más avances en el proyecto MSX-VR ...
En este caso, os enseño como ha quedado el terminal MSXVR-DOS. Con cierta funcionalidad e integración en el entorno de ventanas.
La idea es que desde MSXVR-DOS con la función "play" se puedan ejecutar todos los archivos multimedia conocidos (ROM, BAS, DSK, EVA, BGM, VGM, MUS, etc.) Además de tener soporte compatible con todas las versiones MSXDOS anteriores.
Os dejo un video:
Subo un video para que vayáis viendo el look y las cosas que se pueden ir haciendo con el invento este del MSX-VR :) la verdad es que va tomando color. Trabajar con el MSXVR-BASIC se hace un tanto más agradable. En el video no se ve, pero el editor permite trabajar en modo Tradicional y en Preprocesado. En este último, no hay números de línea que valgan. Se meten etiquetas @LABEL y puedes hacer un GOSUB LABEL.
Aún queda trabajo por hacer, pero se va avanzando. Poco a poco.
Luego, voy a crear una llamada a BASIC Extendido: CALL OS (_nombre, _params) desde la que se pueda hacer de todo. Desde cargar en VRAM un PNG, TGA, JPG, etc. o reproducir un audio o musica en formato OGG/WAV o cargar música FM/SCC/PSG. También estoy mirando de integrar el sistema de ventanas (MSXVR-VIEW) en el propio BASIC de forma que puedas arrancar aplicaciones BASIC sobre una ventana en forma de aplicación independiente.
Detrás de todo esto que se ve en el video, hay una máquina MSX emulada funcionando. O sea, para el próximo video os enseñare como arranco una ROM MSX al mismo tiempo que estoy editando BASIC o haciendo cualquier otra "gualtraperia".
Respecto a los nuevos modos gráficos ... tengo previsto crear alguno en plan Screen2 pero sin ventanas, 1024 Tiles o más. y con scroll pixel. Y luego modos bitmap con distintas resoluciones y colores.
Se aceptan sugerencias :)
NOTA: Todavía no voy a subir una actualización de todo esto. Básicamente porque quiero evitar bugs tontos y subir una versión lo más estable posible. Pues nada, aquí os dejo el video:
Pues nada, al final me he decidido en darle una vuelta al simulador MSXBASIC 5.0 y dotarlo de un entorno de ventanas MSXVIEW 2.0 y de emulación MSX. Todo integrado bajo un mismo software.
Me inventaré una nueva tarjeta de vídeo estilo V9999 :) y usaremos el chip OPL4 para el audio avanzado.
Al menos que sirva de experimento ... ahí os dejo un vídeo:
Bueno, un nuevo año comienza y nuevos proyectos surgirán y otros se terminaran. Sin duda!!
Como regalo de nuevo año, el sticker maravilloso creado por mi amigo y compañero de fatigas videojueguiles: Dario Fas Marín.
El juego ha quedado una cucada. Y encima la música amenizada por el máginifico Wyz.
La verdad es que poder trabajar y sacar proyectos con gente de este "pelaje" es siempre un placer y un honor. Gracias!!
- Una nueva actualización y nueva sección para el Knighmare Remake
- Y la foto con las pegatinas que Konami me envió junto al carta:
Las pegatinas acabaron en una carpeta del instituto :) .. ahí pegadas de cualquier manera. No todas son las enviadas por Konami .. a ver si me acuerdo:
- Esta esa del perro con el bate de Beisbol
- El Cosmic Wars
- Clue Brick
- Motocross Maniacs
- Top Gun
- Esa que parece del Castlevania, digo yo :)
- La del coche ese tipo Scalextrix
- MainStadium
- Y la del Pop'nTwinbee 3
Sí, me motivo, me cae un lagrimón del tamaño de "Candy Candy" y me pongo a programar tipo loco. Esta carta la envié en mi inglés lamentable de la época (un poco peor que el de ahora) allá en 1990 a la todopoderosa, magnánima e impresionante Konami Japan. Yo tendría pues a ver que reste .. a 2 le quito 3, mmmm ... jajajaja tenía 16 años. Madre mía!!
Lastima no tener la carta que envié porque tuvo que ser gloriosa. Me imagino a la peña de Konami partiéndose de risa.
Lo cierto es que igual resulta que este tipo de cartas las enviaba Konami como las que envía Bustamente a su legión de fans, a saber, pero yo en mi ignorancia, considero que ha sido algo sólo para mi XD ahora no me vengáis diciendo que todos tenéis una. :)
Junto al sobre me enviaron también pegatinas molonas de juegos tipo el Pop'n Twin Bee, Contra, etc. Las pegatinas las tengo todas pegadas (no podía ser de otra manera) en una carpeta que llevaba con gran satisfacción y orgullo al instituto. Que tiempos!
Mira que cosas mas chulas que me decían ... en fin, lo que si es seguro es que Konami ha cambiado, ya no es la misma. Todo ha cambiado, ya no es lo mismo. Sin embargo, aún podemos crear pequeños rincones de ilusión retro, que los hay, rincones por Internet, escondidos, como pequeños cofres enterrados en cavernas oscuras, rincones que conservan la ilusión por jugar a esos juegos a los que tenias que esperar un bocadillo (o dos si había un checksum error) para disfrutarlos. Viva lo retro!
Queremos que nos quede lo más chulo posible, así que seguimos dándole vueltas a los fondos y personajes. Ya tenemos enemigos que botan, dos jugadores simultáneos, columpios a los que hay que subirse para dar saltos, cajas sorpresa y cosas raras por doquier. Como si se tratase de un juego de 1984, claro que sí :)
Pues eso chavalotes! que ya va quedando menos para tener el primer escenario listo para jugarse con uno o dos jugadores simultáneos de nuestro último proyecto Demonizado y Nerlaskizado con sabor retro e inspirado en un clásico Konami para mi muy especial. No digo más, no digo más .. cállate ya! :)
Bueno, finalmente, viendo que hemos avanzando bastante en el motorcito de este juego para MSX y que, todo hay que decirlo .. trabajar en un 32Kb ROM no tiene nada que ver como trabajar en un 128Kb o 256Kb .. vamos, es ir 20 veces más deprisa. Tiempos de generación de la ROM, etc. Es todo más rollo en un MegaROM.
Pues eso, que me enrollo :) .. que como esto está avanzado (de hecho ya hay pantallas jugables) pues nos hemos decidido a publicar la entrada al concurso. Para ir animando el cotarro.
El juego es tipo Puzzle pero con dosis arcade. Vamos, el personaje dispara y mueve cajas y hace de todo un poco. Personalmente, me alegra muchísimo poder participar en el concurso y aportar mi granito de arena. MSX Power!
Bueno, ya es oficial . .ahora hay que terminarlo :)
De aquellas maneras si :) .. pero bueno .. ya se carga un banco de instrumentos, ya funcionan los CALL MUSIC y CALL VOICES y suenas los PLAY y bastantes ejemplos .FM ya suenan, incluso alguno hasta medio decente (jajaja que valor)
He subido un video para que podáis ver y oir con vuestros propios sentidos:
Poco a poco le vamos dando forma al engendro. Seguimos pues!
Bueno, como suele pasar en verano, mi necesidad de programar cosas raras se acrecenta y no he podido evitar avanzar un poco más este proyecto al que le queda bastante, al menos, en lo que a compatibilidad MSXBASIC se refiere.
Pero bueno, se pueden hacer bastantes cosas con él. Entre los últimos añadidos realizados, el más importante, el editor de programa multiline a golpe de tecla ESCAPE. Puedes intercambiar entre el interprete y el editor, permitiendo la edición del programa de forma bidireccional.
Ya podian haber inventado algo así en su día :)
Bueno, pues retomando de nuevo algunos de mis proyectos MSX, he decidido publicar la versión 0.0.12 del simulador MSXBASIC para Windows (por el momento) que he estado haciendo usando NLKEngine. Está lejos todavía de ser una versión beta oficial, faltan comandos por implementar y testear, muchos BAS que probar y ejecutar, la compatibilidad es relativa y en fin .. queda trabajo por hacer pero creo que la cosa va bien y ya se permiten hacer bastante cosas. De hecho, el programita de la BOLA que presenté en el concurso del MRC (el de las 10 líneas), esta hecho con este engendro infernal.
Bueno, los del esqueleto con kaliqueño rancio ya tenemos un blog retro indie donde ir anunciando nuestros juegos y novedades.
Comenzamos con el remake de Knightmare de Konami, después vino el Gazzel Quest, después el Cosmic Tiles y por último el Aircraft Little Heroes. Títulos con aire retro donde se busca disfrutar con lo que nos gusta hacer: crear videojuegos. Espero que os guste, pronto habrán más novedades!