[Devlog] Vircon32: Creando mi propia consola

carra

Aunque he estado subiendo actualizaciones a GitHub, han pasado 6 meses desde la última vez que hice releases para descargar. Así que he subido las nuevas versiones:

Emulador de Vircon32 v23.1.16
Herramientas de desarrollo de Vircon32 v23.1.16

El emulador es ahora prácticamente "final". Incluye correcciones para todos los bugs conocidos, y añade soporte para Raspberry Pi 4. También es compatible con la velocidad final aumentada de la CPU. Esta fue la actualización final del diseño de la consola, a menos que se encuentre algún problema grave de diseño. Pero con la cantidad de software que hay ya para la consola, creo que sería difícil que pase eso ya.

Las herramientas de desarrollo seguirán actualizándose, pero incluyen actualizaciones importantes desde la última versión. Aparte de la corrección de errores, las declaraciones parciales (en funciones, estructuras y uniones) no estaban aún presentes en la versión anterior.

5
carra

Como ya dije quiero hacer aunque sea pequeñas pruebas de varios géneros. Ahora estaba empezando una prueba de concepto sencilla para algo tipo RPG. Así me queda de momento:

De momento me han dibujado esta base del personaje andando (las bases es algo que usan mucho en RPG maker), junto con el árbol y esas pocas tiles. Lo justito para hacer esa pequeña prueba que véis. El gif está recortado claro, el personaje no es tan enorme :rofl:

11
M

Sin tener ni del tema, pero sería posible replicar un hardware similar al de la psx o N64, imitando su carencia para que de esta manera sus juegos se sientan auténticamente retro.

Ni te parece mucho 64 MB de RAM?

1 respuesta
carra

#603 Vaya, me acabo de dar cuenta de que en el post inicial aún no había actualizado las características de las consolas a las definitivas... Sí, en el pasado tuvo 64MB y era mucho. Ahora se ha reducido a 16 MB, que sigue sin ser poco pero no es tan exagerado.

Sobre el tema del hardware, el problema que tienen los componentes retro es que son muy complejos, a veces están poco documentados, y además es complicado trabajar con ellos por varias cosas. Mi consola está pensada no solo para tener esa esencia arcade/retro, sino también para facilitar las cosas a quien quiera crear juegos. Así no hay que preocuparse por cosas como sprites, paletas, secuenciar los chips de sonido, etc... Y si a alguien sí le apetece pegarse con esas cosas le va a ser mejor hacer juegos para consolas clásicas directamente.

4
carra

He estado trabajando un poco en la documentación. A raíz de un comentario en Discord, surgió la duda de si la CPU hace bit shift lógico o aritmético, que no estaba mencionado en la especificación. Lo he reescrito para que no haya duda: es shift lógico (siempre se introducen ceros), ya que esta instrucción está pensada para manipular bits, no para realizar operaciones con números.

También he aprovechado para actualizar las API de C en la web, y las guías de la consola y el compilador, que habían quedado anticuadas con las últimas versiones. También en breve subiré una guía más, que será una pequeña introducción al lenguaje C para quien no lo conozca. No es un tutorial que enseñe a programar, ya que va a asumir conocimientos básicos (conceptos como variables, funciones, arrays...), pero puede ser útil a quien programe otros lenguajes y no se anime a probar Vircon32 por no saber C.

Teniendo ya esto, las especificaciones completas, las nuevas versiones lanzadas, y el port a Raspberry Pi, creo que el proyecto se va acercando a un punto en que ya tiene una cierta madurez. Aún me quedan algunas cosas, como actualizar un poco la web y crear un repo para los elementos físicos que he ido haciendo (cartuchos, manuales, etc). Pero cuando lo haga seguramente me plantearé intentar ir promocionando un poco la consola para darla a conocer en más sitios.

5
carra

Ya me han pixelizado los personajes para mi clon de snow bros.
Comparativa:

Ahora faltan las animaciones.

13 1 respuesta
neil90

#606 Tienen una pinta estupenda!

1
carra

Sí, la verdad. También yo los he mejorado después. Para no gastar mucho, suelo buscar en Fiverr gente con portfolios decentes pero más o menos barato. Lógicamente no van a ser tan buenos como los más pros, y a mi me va a tocar retocar más, pero sí me ahorran bastante trabajo.

carra

Tenía ganas de empezar a mostrar alguna cosa más avanzada, como efectos tipo pseudo 3D o modo 7. He estado preparando esta demo tipo OutRun:

Por el momento esto solo va a ser una demo técnica, de hecho aquí no hay realmente conducción (la curvatura de la carretera la controlamos nosotros y el coche siempre está en el centro). Pero algún día se podría convertir en algo jugable si tengo tiempo entre tantos proyectos. O también puede servir a otros que quieran hacer un juego de carreras. Quiero subir pronto un video a YouTube explicando cómo montado esta demo.

21 3 respuestas
Jastro

#609 Si no recuerdo mal, asi era como se hacia siempre los juegos antiguos, coche en el centro y generando carretera para dar sensacion de conduccion

No veas como avanza la vircon32

2 2 respuestas
carra

#610 No, no estabas fijo. Te movías para esquivar otros coches, y en las curvas te podías llegar a salir si no frenabas

2 respuestas
Jastro

#611 cierto! Como ha sido el proceso del pseudo 3D? Ha sido complicado meterlo?

1 respuesta
tDarka

#610 #611 Yo lo que he entendido es que había juegos que la técnica a usar era que el coche no 'aceleraba' ni iba mas lento, sino que te podías desplazar lateralmente y lo que se hacia era mover constantemente el mundo hacia atras. Un concepto que sino estoy equivocado no era ni novedoso ya que habia juguetes en la epoca que lo hacian.

He intentado buscar alguno pero no he encontrado nada de la época, pero para que os hagáis una idea es esto.

PD: A todo esto buen curro, es impresionante.

1 2 respuestas
carra

#613 Jajaja yo tenía un juguete de ese tipo! Visto ahora parece lo más cutre del mundo. Me imagino que en juegos clásicos simplemente pondrían una "fuerza" que te mueve hacia afuera de la curva, para simular la inercia, y eso te movía lateralmente el coche.

#612 Bueno tiene un poco de complicación con las fórmulas, pero es que yo ya hice en época de MS-DOS un renderer 3D por software así que sabía lo básico. Pero lo que siempre cuesta es ajustar fino todo para que visualmente se vea bien. Aquí lo que haces es tener objetos con una posición 3D que transformas a coordenadas 2D con un factor de escalado. Y la carretera la dibujas a base de líneas horizontales, calculando cómo debe quedar cada una.

2
r2d2rigo

@carra desgraciao danos acceso 3D en vircon

2 respuestas
jarobado

Muy guapo #609

#613 Este era mítico

2 1 respuesta
tDarka

#616 OOOOOOO ESSSSEEEEEEEE. Recuerdo desbloqueado, una pasada. Pues yo tengo entendido que muchos juegos usaron este concepto. Bueno yo tuve uno que no era tan guapo pero era de esa marca y se parecia bastante. O quizas era este, pero es que hace ya tantos años...

carra

#615 Jajaja me temo que no va a poder ser... Pero creo que había otra consola tipo play 1 que sí tenía motor 3D. Le puedes echar un ojo

1 respuesta
r2d2rigo

#618 no no a mi no me recomiendes mierdas de terceros, en mi corazón solo hay hueco para vircon32

6 1 respuesta
carra

#619 Oooh con eso me tienes ganado 😁

gogogo

#615 yo creo que en 6 meses máximo hay add-on rollo 32x o megaCD

4
carra

Ya subí la demo técnica del coche, por si alguien quiere probarla o mirar el código. Aparte, también he creado por fin un nuevo repositorio en GitHub (el quinto, y por el momento el último) para los elementos físicos de la consola, juegos, etc. Gracias a esto, ahora ya podéis leer los manuales de juegos en PDF online, directamente desde el repo.

Ahí he subido los cartuchos en 3D, los manuales, etiquetas, cajas, plantillas para las bandejas de los juegos, logotipos... Algo que igual os llama la atención es que he maquetado las cajas y manuales usando PowerPoint. Quizá hay opciones mejores, pero no me manejo bien con Inkscape y similares. En su día usé Visio que era bueno para esto, pero como no está muy extendido he preferido evitarlo y usar algo más "estándar" que todo el mundo pueda abrir o editar.

4
carra

Estos días he estado dando una buena actualización a la web. Para irla preparando para promocionar, he metido también esta imagen que vaya creando un poco de hype ya desde la página principal jeje.

También he actualizado algunas secciones que estaban un poco obsoletas y he metido un F.A.Q. bastante completo con muchas preguntas y respuestas que me he ido encontrando aquí, en Discord, Twitter y demás. Además en breve va a haber un par de secciones nuevas (que aún no están). Una para hablar de las librerías que he ido creando, y otra con las versiones físicas que he creado hasta ahora (cartuchos, cajas y manuales, y mis planes para la consola en sí).

7 1 respuesta
carra

He ampliado el ejemplo de RPG que os enseñé. Así es como queda por ahora.

He desarrollado un pequeño sistema para hacer diálogos y escenas scriptadas muy básicas, como la que véis. El control de la escena puede detectar cuándo se da un evento, manejar a los 2 personajes y crear secuencias de diálogos.

10 1 respuesta
Jastro

#624 que pasote

1
carra

Me he montado este video "promocional" para la consola.
¿Qué os parece?

9 2 respuestas
Jastro

#626 Muy chulo! Me lo he visto entero

1
r2d2rigo

#626 pero haber avisado y le hacia algun apa;o al virconstein con el cambio de velocidad de la cpu que hiciste, miarma.

1 respuesta
carra

#628 Pues no se me ocurrió jeje.
Aparte como tampoco te hemos visto mucho últimamente...

1 respuesta
r2d2rigo

#629 yo siempre lurkeo, otra cosa es que no postee porque ya no hago gamedev 🌚

1 respuesta