[Devlog] Vircon32: Creando mi propia consola

carra

Hoy he estado de "promoción" de la consola jeje.

He estado grabando un video como invitado, con una youtuber relativamente conocida (100.000 subs). Es un gameplay de unos de mis juegos para la consola. Ya os avisaré cuando salga el video, aún no sé cuándo lo va a publicar. Además salgo yo :sunglasses:. Eso sí, se le ha hecho un poco difícil el juego :dizzy_face:. Pero es normal, no está hecho para pasárselo en un solo día...

12
7 días después
carra

Estos días me ha dado un capricho y he estado trabajando en algo que no tenía previsto. Aún no lo tengo del todo acabado pero casi, os pongo un GIF para abrir boca:

Esto que veis es un emulador de OTRA pequeña consola virtual que se llama Chip-8. Muchos no lo conoceréis pero es un sistema muy sencillo que se usaba en algunas calculadoras gráficas para hacer jueguecillos. De hecho este que véis es de los más avanzados.

Y no, no me me confundido de hilo. Esto es un emulador que corre en Vircon32. Es decir, un emulador dentro de otro emulador :rofl:. Las roms de chip-8 se cargan de la única manera posible, que es con la memory card. También he hecho un pequeño programa que convierte las roms a este formato.

Este emulador ya lo hice para PC en su día y como es sencillo lo he portado. En realidad ya está terminado pero hay ciertas ineficiencias en el emulador de Vircon que tengo que mejorar para que pueda correr ciertos juegos de Chip-8. Esto es porque en cada frame pueden tener que dibujarse hasta 8192 pixels de chip-8 de forma independiente.

La consola en sí, aunque no está pensada para funcionar de esa manera, sí puede hacerlo (eso sí, he tenido que usar un poco de assembler). Pero mi implementación de esto con OpenGL no es la más óptima para hacer miles de llamadas por frame. De hecho si hacéis las cuentas, 8192 * 60 = casi medio millón de quads dibujados por segundo.

6
carra

Bueno, al final se nos ha juntado todo el mismo día :rofl:
Aquí tenéis mi video de gameplay con Adri:

5
carra

Ya he terminado y subido el emulador de chip-8 para vircon. Le añadí algunas cosillas como poder cambiar los colores de la pantalla:

Como chip-8 tiene 16 teclas he tenido que mapearlas usando 2 mandos. Para cada rom los controles pueden ser distintos así que hay varios layouts para intentar encontrar el que más nos convenga.

Podéis encontrar el emulador en su página de itch.io.

A partir de ahora las descargas de roms las redirigiré casi todas a itch.io o GitHub. Las roms de Vircon32 son relativamente grandes, así que esto ahorrará mucho tráfico en la propia web. Así, en caso de que un día haya muchas descargas, aguantará bastante más.

4 1 respuesta
Jastro

#544 guapisimo.

Ha seguido la gente haciendo mas cosas para vircon? se que habia varios usuarios que estaban haciendo cosas

1 1 respuesta
carra

#545 Sí hay un nuevo juego, ya lo terminaron. Pero aún no he tenido tiempo de subirlo a la web y grabar un video. Durante el fin de semana seguramente lo veréis :relaxed:

1
r2d2rigo

Que cargues los juegos desde la memory card me parece un cerebro galaxia de flipar.

@carra para ya de hacer cosas chulas y dejar al resto del foro en evidencia.

3 1 respuesta
carra

#547 Es que no había más opciones! Era o eso, o tener que incluir unas cuantas roms fijas dentro del propio cartucho :man_shrugging:

1 respuesta
r2d2rigo

#548 si me parece la polla, feels de los 90s con el net yaroze que solo podias hacer juegos enanos que cupiesen en una memory card.

1 respuesta
carra

#549 ostia, la Net Yaroze! Hacía años que no oía hablar de ella jeje

carra

Aprovechando que no he escrito aún la especificación de la SPU, acabo de añadir también un nuevo puerto al chip de sonido. Ahora se podrá leer y cambiar la posición de reproducción de los canales de sonido. Esto nos va a permitir hacer algunos efectos de audio, como ecos, y sincronizar sonidos (entre sí, o con eventos del propio juego). Para rollos tipo música dinámica vendrá bastante bien.

Esto lo llevaba tiempo pensando, y no lo había incluido hasta ahora por no condicionar demasiado la implementación del audio. Pero creo que en realidad el audio ya estaba condicionado a hacerse de una determinada manera por los efectos que ya existían, sobre todo los bucles configurables. Así que tampoco restringimos nada más incluyendo esto, y es bastante útil.

Por supuesto esto no supone ningún problema de compatibilidad con lo que ya existía. Ni a nivel de ejecución (las roms en sí), ni de código fuente.

6
carra

Acabo de subir JellyFish, el nuevo juego para la consola hecho por The R.

En este juego somos una medusa y tenemos que esquivar otros seres marinos para seguir vivos. Si conseguimos un record, podemos guardar nuestra puntuación en la memory card para siguientes partidas. Como veréis el concepto de juego es sencillo pero gráficamente no está nada mal y usa alguna característica avanzada.

6
11 días después
carra

Después de algún tiempo he conseguido que me impriman un prototipo de cartucho. Así es como ha quedado. Estéticamente lo único que me puede tocar arreglar es intentar alisar un poco la parte de arriba.


Antes de esto hubo algún intento fallido que se imprimió mal. Justo salía mal por la parte de abajo y no servía porque los pivotes para insertar en la consola estaban deformados. Pero este ya tiene bastante buena pinta.

Aún no he podido ir a recogerlo pero mientras intentaré imprimir las pegatinas, y buscar los tornillos para la unión.

7 1 respuesta
Ridote

#553 te lo han imprimido con una impresora 3D o qué? Por aquí por el foro había gente con impresoras, @totespare @kalgator @nezbo

2 respuestas
thenanox

#554 -> #494

carra

#554 Jeje hombre ya pero con vosotros en el foro no tengo contacto físicamente. En realidad esto ya se lo había pedido a un par de chavales que conozco que tienen impresora, lo que pasa es que a veces la gente te dice que sí, y luego no termina de ponerse con ello :sweat_smile:. Ahora me lo ha hecho un colega del curro

1 respuesta
Ridote

#556 Siempre les puedes pedir que te hagan el favor y les pagas los gastos de envío + materiales. Yo que sé, yo propongo ideas para que otros colaboren, mientras no me salpique a mí todo perfecto.

1 1 respuesta
carra

#557 jeje oye si quieres te lo pido para que lo puedas abandonar

1
gogogo

nah, lo de carra y este proyecto es god tier. Cada vez que leo un update flipo más xD

Tienes toda mi envidia sana y mis máximos respetos 👏👏

6 1 respuesta
carra

#559 Gracias! Ojalá no me dieran pájaras y lo pudiera avanzar más...
Pero bueno, alguien tiene que compensar todos los proyectos que abandonáis :rofl::rofl:

2
carra

Jajaja en el Discord estaban intentando meter el video de Bad Apple en una rom de vircon :sweat_smile:

carra

Acabo de subir al repo una librería para manejar mapas de tiles. Creo que os va a ayudar bastante a los que queráis trastear o crear un jueguecillo para Vircon. Acompañando a esta librería (como en todas las que hago) va un pequeño programa de ejemplo donde podéis ver cómo se usa, pero básicamente una vez definido nuestro mapa y las tiles usarlo en un programa se reduce a algo como esto:

Como véis es bastante más corto y sencillo que tener que programaros las funciones para dibujar tilemaps desde cero. Además también nos automatiza la gestión de la cámara para poder hacer el scroll y dibujar en pantalla según la vista que queramos.

Tanto la librería como el ejemplo incluyen muchos comentarios, pero por si acaso los conceptos no están claros, o para quien quiera profundizar más en cómo está hecho, he incluido también una pequeña documentación en PDF explicando las ideas básicas.

4
carra

Para cuando tenga el cartucho voy a ver si puedo ir imprimiendo unas pegatinas de prueba. Me faltaba hacer el diseño de la típica pegatina trasera (la de las típicas advertencias de no desmontar, etc) así que lo acabo de hacer. En tamaño real es pequeña (50 x 30 mm). Así ha quedado:

7
carra

He subido otra librería que os puede ser útil: una para manejar fuentes de texto "custom" y no usar la que viene por defecto. En este caso os he definido 2 tipos de fuentes que podéis usar:

Una fuente de texto normal
En esta fuente podemos tener todos los caracteres para escribir textos.
Esta tiene soporte para fuentes de anchura fija o variable.
Nos permite alinear el texto horizontalmente y con multi-línea.

Una fuente sólo para números
Útil si solo vamos a mostrar puntuaciones y similares.
Sólo hace falta definir los dígitos 0-9, y los símbolos punto y menos.
También permite, para marcadores, forzar un número de dígitos fijo
(por ejemplo, rellenar con ceros y hacer 14 -> 00014)


Por ejemplo:
Si definimos una fuente de cada tipo, para mostrar en pantalla esto:

Usando la librería lo haríais así:

4
carra

¡Ya tenemos los prototipos de los primeros cartuchos de Vircon! :smiley:
Esta es la pinta que tienen:


Además os traigo algo que creo que os gustará. He grabado un video más largo, en español, y os enseño todo el proceso que he seguido para crear estos prototipos de cartuchos y sus cajas. Aquí lo tenéis:

12 3 respuestas
Jastro

#565 deme 10 por favor

1
-tarkens-

#565 Brutal! :D

1
Geck0

#565 joder, q pofesional xD Quedan perfect "en persona"

1 1 respuesta
carra

#568 Bueno, de cerca se notan las líneas de que está impreso en 3D. Miré también si lo podía imprimir en resina pero parece que así queda bastante quebradizo. Estaría bien para la foto pero para usarlos no tanto

1 respuesta
Geck0

#569 imagino que está impreso en PLA, si fuera ABS creo que hay métodos para "difuminar" eso con acetona o algo así.

También puedes pasarle selladora y pintarlo, pero claro, ya ahí no se cómo te afecta a la hora de enchufarlo...

Igualmente la presentación así como está sigue siendo muy chula.

1 respuesta