[Devlog] Vircon32: Creando mi propia consola

carra

Ya que estoy en racha voy a ver si continúo. He empezado a hacer el código para el solitario. La música ya me la terminaron y los gráficos ya los tengo dibujados (la baraja completa de cartas ya os la enseñe aquí).

También tengo ya bastante planificado el espacio en pantalla, algo así es lo que manejo de momento:

5
7 días después
carra

Esta es la intro para el solitario. Me he currado un efecto pseudo-3D para las cartas que giran y se voltean, creo que ha quedado bien :smiley:

11 1 respuesta
thenanox

#482 se ha quedado de pm

1
9 días después
carra

Nuevo juego terminado: Solitario


Pues ya tenemos otro juego más: la versión Vircon32 del clásico solitario de cartas. Como siempre lo podéis descargar desde la web, en itch.io, y el código fuente lo tenéis en GitHub.

Os dejo aquí mi video de gameplay con una partida.

La verdad es que programar la lógica de este juego ha sido más complejo de lo que creía. Por el hecho de jugarse sin ratón hay que determinar dónde te lleva cada dirección que pulsas, y esto también depende de cuántas cartas tienes en cada escalera, etc. Para simular el sistema típico de arrastrar cartas he creado un sistema en el que puedes tener cartas en la mano, que te va mostrando a la izquierda. Primero tomas las cartas y van a tu mano, y desde ahí las puedes soltar en otro lugar (si las reglas lo permiten), o cancelarlo y devolverlas a su sitio.

7 1 respuesta
thenanox

#484 me gusta mucho la decision que has tomado de "user experience" de tener el in hand a la izquierda para resolver el problema de las cartas que tienes en la mano. a parte de eso, me flipa seguir viendo lo bien que funcionan los juegos. congrats de nuevo!

3 1 respuesta
carra

#485 Gracias! Hombre van bien porque me tomo tiempo de probarlos bastante y dejarlos pulidos. Además tengo que dejar el código fuente organizado y eso ayuda también.

Pues mi idea inicial era el sistema de "in hand" que se ve ahí, pero luego jugándolo vi que quedaba un poco confuso. Al final le tuve que añadir que también muestre (oscurecidas) las cartas que has cogido en su posición original, y entre eso y las transiciones visuales ya se hizo mucho más fácil de seguir según juegas.

1
carra

Pues la consola ya empieza a tener un pequeño catálogo!
He hecho este "flyer" que muestra todo lo que se pueden considerar "juegos terminados":

Ahora voy a pasar algunas semanas avanzando otras tareas del proyecto. En concreto, ahora mismo tengo sobre la mesa:

  • Arreglar un par de bugs del compilador que he encontrado
    (aunque no parecen afectar a ningún juego actual)
  • Expandir el compilador para mejorar el lenguaje de programación
  • Empezar a crear nuevas librerías
  • Terminar la especificación parte 5 (chip de sonido), que ya está a medias

También estoy empezando a dedicar un poco de tiempo a preparar ciertas tareas nuevas para el proyecto de la consola en general, que no puedo desvelar aún :smirk:

8 1 respuesta
Jastro

#487 vas a tope. Ha tomado muy buena forma, a ver si poco a poco, vas pillando mas comunidad

1
thenanox

la verdad que en MV hacemos poco comparado con el currazo que haces. ke tal te va por reddit?

1 1 respuesta
carra

#489 Pues no he posteado nada por allí jaja.

Hay todavía algunos canales que no he usado donde podría dar a conocer la consola. Pero no lo voy a hacer aún, ya sabéis que esto es algo a largo plazo. Habrá un cierto punto en el que me interesará, cuando esté todo más completo y maduro, pero de momento todavía no. En Discord sí estoy más activo, y alguno ha mostrado un poco de interés. Un chaval se ha hecho su propia Bios con su propia versión del logo de arranque jeje

1 1 respuesta
Ridote

#490 yo que sé, tienes ya la consola suficientemente avanzada para intentar empezar a captar el interés del público, creo yo. Mira en la jam que se presentaron dos randoms y uno hizo un pacman que medio funcionaba bien, en dos días.

1 respuesta
carra

#491 Sí, la cosa va estando ya más avanzada es cierto. Pero hay un par de puntos clave que me gustaría que estén ya hechos cuando esto pueda empezar a pegar un boom. Si de repente esto petara y lo conociera mucha gente, podrían perder el interés rápidamente. Y ya la oportunidad podría estar perdida, porque has quemado los cartuchos "buenos" antes de tiempo.

1
carra

Ya arreglé los 2 bugs que encontré en el compilador. No he creado nueva versión de DevTools aún, pero en GitHub está lo último. Por otro lado he actualizado la bios a versión 1.1. El único cambio relevante que tiene es que ahora voy a exigir a las bios que definan una región con un único pixel blanco. Esto puede parecer una tontería, pero con ese pixel y usando las transformaciones gráficas, los programas ahora podrán dibujar en pantalla formas sencillas sin necesidad de incluir siquiera ninguna textura.

Para aprovechar eso estoy creando una librería para dibujar primitivas sencillas. La librería permite dibujar: pixeles, líneas, rectángulos (rellenos o no), círculos (rellenos o no) y arcos. Aquí veis un ejemplo con todo eso:

Hay que decir sin embargo que la forma de dibujar en pantalla de Vircon no está pensada para esto y, aunque sean posibles, estas rutinas de dibujo no van a ser ni especialmente rápidas ni muy precisas.

2
carra

AVISO: Es un post tocho

Bueno, aunque pensaba estar estos días con la mejora del compilador al final me han dado ganas de ponerme con otras cosas. De las que aún no os había hablado... :rolling_eyes::smirk:. He estado dando algunos pasos para empezar a crear versiones físicas de la consola y sus elementos.

En concreto lo primero que voy a fabricar serán los juegos. Pensando en una consola basada en Raspberry lo que veo más práctico y sencillo es que el acceso a los juegos se haga por USB, es decir, cada juego sería un pendrive con un único archivo que sería la rom. He estado buscando algún pendrive con formas sencillas y fácil de fijar en un cartucho, y me hice con estos:

A partir de este modelo he creado un diseño en 3D para un cartucho que contenga el pendrive y que externamente sea como buscamos. El montaje se haría con 2 tornillos rosca chapa, tal que así:

El cartucho final quedará como veis aquí. Tendrá una pegatina frontal con el logo o portada del juego y una trasera con las típicas advertencias de no desmontar, no mojar, etc. Como véis lo voy a hacer lo más auténtico posible :grin:

Abajo lleva 2 guías cilíndricas que actúan como centradores, para que al meter el juego en la consola el USB macho se alinee con el conector hembra de la consola. Frontalmente tiene una ranura para bloquear el cartucho cuando la consola se enciende (parecido a la super nintendo) y detrás hay una hendidura que servirá de asa para meter los dedos y sacar el cartucho (parecido a los cartuchos de megadrive).

El diseño interior de las mitades de la carcasa sería este de abajo.

Ahora tendré que intentar hacer un prototipo impreso en 3D de estas piezas. Con él ya podré probar el encaje, holguras, etc. Y si funciona bien las encargaré después en alta calidad (resina) y crearé las pegatinas.

Los veteranos ya os habréis fijado en que el diseño del cartucho ha cambiado y ya no es el que usé en los renders del principio. Esto es normal, ahora he ido mucho más al detalle. Y cuando le toque a la consola seguramente pasará lo mismo. Es lo que tiene hacerse ya un diseño fabricable.

12 3 respuestas
Ridote

mola, me espero a los cartuchos recopilatorios de los +1000 juegos donde luego están todos repetidos y en verdad eran 27 juegos.

3 1 respuesta
carra

#495 Si Vircon llega a tener 27 juegos es que no va mal la cosa jeje

3 1 respuesta
Ridote

#496 lo decia por los cartuchos esos de gameboy que anunciaban con tropecientos juegos y luego el 80% eran repetidos jaja

1 respuesta
carra

#497 Ya ya, jeje. Si yo tuve más de uno de esos. De pequeño en vez de una Nintendo tuve una Nippon'do

1
r2d2rigo

#494 yo haria la carcasa asimetrica (como los cartuchos de SNES) para que sea mas facil alinearlos y no los intentes meter del reves por descuido.

2 respuestas
carra

#499 Pues no es imprescindible (el usb no está centrado) pero tampoco es mala idea. Lo que pasa es que modificar eso en el diseño cuando ya hay tantos detalles me va a ser complicado. Pero le podría dar una vuelta

1 respuesta
Kalgator

#500 Tan facil como hacer una hendidura o dos por la parte de detrás, así que no encaje, pero mola la idea!

Tienes impresora 3d?

1 respuesta
carra

#501 Sí, hay varias soluciones. Miraré opciones.

Tengo impresora, aunque es una bastante cutre. De momento el prototipo me lo va a imprimir un amigo

carra

#499 Al final sí lo he podido modificar. Tampoco es una diferencia enorme entre ambos lados (no puedo cambiar mucho más los radios sin cargarme nada) pero creo que sí es suficiente para que visualmente se note que no es simétrico. Y dando un cierto ajuste en la ranura de la consola se puede conseguir que al revés no entre, o que al menos se haga complicado. He tenido que reducir un poco el largo de la pegatina delantera para la nueva forma frontal.

5 2 respuestas
thenanox

#503 como sea un USB de los normales tendrás que ver como forzar que se coloquen en una dirección concreta porque sino luego va a pasar como todo USB...

tendrás que probar primero y no entra, darle la vuelta y que no encaje tampoco y por último ponerlo como al principio y que ya funcione

1 respuesta
carra

#504 Claro, los pendrives tienen que ir montados en el lado correcto, si no no entrarán. Aunque si alguien lo monta al revés bastaría con desmontar el cartucho y colocarlo bien.

Pendrives USB-C ni se me han pasado por la cabeza. Para algo de este tipo los veo excesivamente pequeños, y seguramente también saldrán bastante más caros. Para juegos de Vircon valen hasta pendrives antiquísimos de 1GB así que me he ido a lo barato. Y aún así no he encontrado packs de estos de menos de 16 GB. Al final compré los de 32, pero porque el precio era casi el mismo

r2d2rigo

#503 ole!

kidandcat

#494 Si el cartucho va a ser grandecito, te recomiendo que te hagas tu un conector custom, es sencillo, el USB solo tiene 4 cables, y puedes pillar conectores de todo tipo en cualquier parte.

Lo digo porque si los cartuchos son grandes, te va a costar mucho más hacer un buen sistema que fije bien el cartucho para que el USB encaje. Piensa que encajar un usb normal ya cuesta bastante.

1 respuesta
carra

#507 Bueno, si veo que en la práctica lo del USB no va bien lo miraré. Aún así nunca he usado un soldador de estaño, ni tengo ningún tipo de equipo para estas cosas así que eso ya sería más complicado.

De todas formas, una de las cosas que busco para esto es conseguir un diseño que se pueda llegar a construir más o menos cualquiera, no solo es por hacerme los juegos y la consola yo mismo. Por eso tiro a cosas estandar lo más posible, ahora mismo todo se podría hacer con una impresora 3D y una de papel (para las etiquetas). Y si alguien no las tiene, hay sitios donde se pueden encargar. Yo una vez que lo pruebe y lo de por bueno voy a subir los archivos 3D para que todo esto sea abierto.

Edit: El cartucho son 10 x 6 x 1,8 cm. Es grande comparado con el pendrive, pero tampoco es un cartucho de los más tochos. No es un juego de neo geo jajaja

carra

Estos días ha habido un par de personas que han aportado cosas para Vircon.

Por un lado en GitHub, acabo de aceptar una pull request de DeathKhan que ha mejorado la compilación en Linux. Ahora al instalar el emulador ya tiene su icono, y nos aparece en la lista de aplicaciones del sistema:

Por otro lado en Discord, el usuario The R ha creado su propia bios para la consola que podéis ver aquí:

Además también se ha creado una traducción al español de de mis juegos 2048 y Solitario. Aquí un ejemplo:

11
Aeran

Llevo siguiendo este hilo desde que se creó y cada vez que entro se me caen los huevos al suelo del currazo que lleva y lo maja que es la gente en el hilo. Me molaría ser capaz de aportar algo pero apenas se programar cositas básicas en Python, pero oye, al menos daros la enhorabuena a todos por qué veo cosas así y recobro la fe en la humanidad 😂

5 1 respuesta