Consola Vircon32
Inglés Español

Proyecto

Página principal Qué es Vircon32 ▶ Preguntas comunes Enlaces

Software

Emulador RetroArch Juegos ROMs de test Kit de desarrollo Librerías

Documentos

Especificación Guías rápidas Tutoriales Referencia API C

Otros

Versiones físicas Imágenes
Vircon32: Preguntas comunes

Esta sección enumera las preguntas que la gente suele hacer sobre Vircon32 en general. Aquí las encontrarás agrupadas por categorías y con todas las respuestas.

Preguntas generales

¿Has hecho todo esto tú solo?

Sí. Diseñé el sistema, programé el emulador y las herramientas de desarrollo, escribí la documentación, hice juegos y programas de prueba, creé este sitio web, etc. Tuve algo de ayuda aquí y allá. Un compañero de trabajo me ayudó con la impresión 3D. Contraté a gente en Fiverr para hacer algunos activos de los juegos. Y hubo personas de la comunidad que también ayudaron con scripts CMake y varias ideas y pruebas.

¿Por qué no vendes nada de tu trabajo en esto?

Hago esto porque me encanta, y no espero ganar dinero. Lo que quiero es que haya el mayor número posible de personas que jueguen a la consola y creen juegos para ella. Cobrar por cualquier cosa, o no tener el diseño y el código fuente abiertos significaría que probar Vircon32 es menos accesible. Podría plantearme abrir un patreon si eso me diera la oportunidad de crear contenido para Vircon32 a tiempo completo, pero eso sólo tendría sentido si hubiera una base de usuarios lo bastante grande.

¿Abandonarás el proyecto si la consola no gana usuarios?

No. Me gustaría que el proyecto creara una comunidad, pero al final lo hago para mí mismo. Aun así, seguiré haciendo el proyecto lo más accesible posible para otras personas, escribiendo tutoriales, creando ejemplos, etc.

¿Tienes intención de vender versiones físicas de la consola y los juegos?

No, diseño y hago versiones físicas por diversión, pero no espero hacer ningún lanzamiento comercial. Sería demasiado trabajo y los precios tendrían que ser muy caros para ser rentables. Además, no creo que hubiera suficiente gente interesada.

¿Hará una versión FPGA de la consola?

Me gustaría, pero para esto harían falta muchos conocimientos en diseño FPGA y de VHDL o Verilog, que no tengo. Aún así, como la consola está completamente documentada, cualquiera podría hacerlo.

Emulador e implementación

¿Tu emulador soportará savestates o filtros gráficos?

No. Mi emulador es la "implementación oficial" de la consola. Está pensado para que funcione tal y como lo haría la versión normal de la consola, sin ninguna función extra ni ventajas adicionales para el jugador. Por supuesto, cualquiera podría basarse en mi emulador para incluir estas características, o hacer sus propios emuladores a su gusto.

¿Puedo jugar a Vircon32 en mi teléfono o navegador?

De momento, no. Soy programador de aplicaciones de escritorio, así que no tengo los conocimientos para portar el emulador a esos sistemas. Aún así, hay un par de opciones. El emulador C++ actual podría compilarse para la web utilizando Emscripten. Además, cualquiera puede hacer su propio emulador para estos sistemas si quiere, ya que todo es de código abierto y está completamente documentado.

¿Añadirás <X característica> a la consola?

No. Vircon32 pretende ser un sistema estandarizado para conseguir la máxima compatibilidad de sus juegos en cualquier implementación que cumpla el estándar. Como tal, es un sistema cerrado con una misma y única versión para todo el mundo. No se publicarán nuevas versiones ni cambios futuros a menos que se encuentren fallos importantes en el diseño.

Capacidades de la consola

¿Entonces, Vircon32 es como una PSX pero sin 3D?

Más o menos. Ése sería un buen resumen, pero por supuesto hay muchas otras diferencias (menos relevantes). Esto se debe a que Vircon32 no intenta ser un clon de la PSX ni de ninguna otra consola, y su forma de funcionar es diferente. Aún así, si piensas en juegos 2D de la época de PSX, Vircon32 debería poder reproducir la mayoría de ellos.

¿Puede ejecutar DOOM?

La forma en que funciona Vircon32 no es la más adecuada para dibujar la pantalla como lo hace DOOM. Tal vez podría ejecutar una versión muy reducida (con baja resolución y frames por segundo). Aún así, la consola ya ha mostrado gráficos en primera persona usando raycasting como en Wolfenstein 3D.

¿No es un poco lenta la velocidad de la CPU?

Sí: máquinas como PSX funcionaban a 30 MHz. Pero la CPU de Vircon32 es más potente de lo que parece, porque ejecuta 1 instrucción por ciclo y tiene soporte para coma flotante. Aún así, he querido mantener los requisitos para ejecutar Vircon32 lo bastante bajos para que se pueda usar Vircon32 en smartphones o en una Raspberry.

¿Por qué tanta RAM?

La RAM de Vircon32 no es tan divisible como en otros sistemas: aunque trabajes con un solo byte necesitarás usar 32 bits. Como la memoria es un poco menos eficiente, se compensa con mayor cantidad. Aun así, cualquier sistema actual tiene mucha RAM en comparación. 16 MB no es mucho pedir, y debería ser suficiente para casi cualquier tipo de juego.

¿Puede soportar Vircon32 multijugador online?

La consola en sí no puede: es un sistema cerrado y no admite conectividad externa ni módulos de expansión. Aun así, podría haber implementaciones que permitieran conectar diferentes máquinas mediante capas de software adicionales. Algo así se hizo, por ejemplo, en el emulador de Super Nintendo Kaillera.

Temas técnicos y de desarrollo

¿Hay alguna forma de cambiar la resolución de pantalla o el modo de vídeo?

No. El entorno está pensado para ser el mismo para todo el mundo, para una mejor compatibilidad y para hacer las cosas lo más sencillas posible. Aún así, puedes utilizar algunos trucos como dibujar usando un factor de escala de 2 para simular una pantalla de 320x180.

¿Hay alguna forma de acceder a la memoria de vídeo/audio?

No. Los chips de gráficos y sonido son muy simples, y no permiten acceso directo a los pixels ni a los samples de sonido. Sólo puedes usar sus funciones estándar para producir imágenes y sonido. Además, los gráficos y el sonido de Vircon32 siguen el modelo de librerías de vídeo y audio actuales, como OpenGL y OpenAL. Son modelos pensados para trabajar con operaciones de alto nivel, en vez de opciones de bajo nivel como acceder directamente a la memoria de video/audio.

¿Por qué tu compilador usa una variante de C?

Hay varias razones. Para empezar, la arquitectura de esta consola tiene algunas cualidades especiales que hacen que ciertas características estándar de C sean difíciles de implementar o muy ineficientes. Por esta misma razón, el compilador existente tuve que hacerlo a mano. No soy un experto en compiladores, así que mis limitaciones también influyeron en el lenguaje. Otra cosa a tener en cuenta es que, al ser una consola, la librería estándar del lenguaje necesita ser adaptada. Algunas características de la librería estándar de C (por ejemplo: E/S de archivos) no tienen sentido en la consola, mientras que otras partes (como leer botones de los mandos) hubo que añadirlas.

¿Tu compilador soportará el lenguaje C estándar?

No, por las mismas razones de la respuesta anterior no podré hacer un compilador que soporte C estándar. También podría existir la opción de automatizar el proceso usando herramientas como LLVM. Por desgracia, escribir un backend de LLVM para esta CPU personalizada parece demasiado complejo para ser factible.

¿Soportarás otros lenguajes además de C y ensamblador?

Por ahora no tengo planes para hacerlo. Aún así, esta consola ejecuta programas como simples instrucciones de CPU, por lo que se podrían hacer compiladores o intérpretes para casi cualquier lenguaje si alguien quiere escribirlos. De todas formas, ten en cuenta que los lenguajes interpretados seguramente tendrán muy mal rendimiento en esta consola. También serían menos útiles comparado con otras plataformas, porque no hay una forma cómoda de escribir o editar texto desde la consola.