Vircon32: Difference between revisions

From Fantasy Console Wiki
Jump to navigation Jump to search
(initial page)
 
(updates from wikipedia draft)
 
(2 intermediate revisions by the same user not shown)
Line 2: Line 2:
'''Vircon32''' is a 32-bit system written by Carra that uses C as its development language, and includes a number of libraries intended to simplify game development. It includes a compiler and assembler, as well as various development tools for creating and compiling games.
'''Vircon32''' is a 32-bit system written by Carra that uses C as its development language, and includes a number of libraries intended to simplify game development. It includes a compiler and assembler, as well as various development tools for creating and compiling games.


The Vircon32 project is focused on being as open and accessible as possible. For that reason, the console design is fully documented and all related official software (emulator, development tools and [[Libretro]] core) is kept free and open source. It also places emphasis in not being tied to any external technologies like game engines, graphic libraries or file formats<ref name="devlog">''Devlog: Creando mi propia consola'' https://www.mediavida.com/foro/gamedev/devlog-vircon32-creando-mi-propia-consola-666980/24#695</ref>.
== Capabilities ==
The Vircon32 system itself is a set of specifications defining the limitations and capabilities of the various components. It uses a simplified 32-bit CPU running at 15 MHz, and has 16 MB of RAM. Floating point operations on the CPU are supported. To save games, the system provides 1 MB of storage in the form of a memory card.
The Vircon32 system itself is a set of specifications defining the limitations and capabilities of the various components. It uses a simplified 32-bit CPU running at 15 MHz, and has 16 MB of RAM. Floating point operations on the CPU are supported. To save games, the system provides 1 MB of storage in the form of a memory card.


The screen resolution is 640x360 (16:9), with 24-bit RGB color supported. The sound is stereo 16-bit at 44100 Hz (CD quality).
The screen resolution is 640x360 (16:9), with 24-bit RGB color supported. The sound is stereo 16-bit at 44100 Hz (CD quality). The graphics are based on texture atlases, and the system does not natively support 3D.


The system supports up to 4 gamepads with seven buttons each (A, B, X, Y, L, R, Start), plus a directional pad.
The system supports up to 4 gamepads with seven buttons each (A, B, X, Y, L, R, Start), plus a directional pad.


== Programming ==
Unlike many other FCs that use scripting environments as their main programming interface, Vircon32 defines an actual architecture with a custom [[instruction set architecture]], detailing components and communication at low level. ROM files contain compiled program binaries that the CPU executes as instructions.
The design of Vircon32 CPU is loosely based on the x86 processor, but unlike mainstream processors Vircon32 is a pure 32-bit machine: it cannot access individual bytes, or handle 8-bit/16-bit data formats.<ref name="procspec">''Vircon32 Spec part 3 - The processor (CPU)'', https://github.com/vircon32/Vircon32Documents/blob/main/Specification/English/PDF%20documents/Spec%20part%203%20-%20The%20processor%20(CPU).pdf</ref>
Vircon32 games are meant to be developed using an external toolchain. To that end, a set of cross-platform development utilities are provided to compile and assemble assets and code into Vircon32 ROMs. Games can currently be written in the C programming language or directly in assembly language<ref name="devtools">"Development tools", https://www.vircon32.com/devtools.html</ref>. Game assets are  .wav file for sound, and PNG images for textures. Each ROM is packed into a single file and includes binaries and assets.
== Platforms ==
In addition to its desktop emulator, the console also has a [[Libretro]] core and has been officially integrated into RetroArch<ref name="libretro">"Vircon32 Joins libretro/RetroArch", https://www.libretro.com/index.php/vircon32-libretro-core/</ref>, as well as the front-ends Lakka, EmuELEC, AmberELEC and ROCKNIX.


== Links ==
== Links ==
* [http://www.vircon32.com/ Official website]
* [http://www.vircon32.com/ Official website]
* [https://github.com/vircon32/Vircon32Documents Documentation]
* [https://github.com/vircon32/ComputerSoftware GitHub]
* [https://itch.io/jam/first-vircon32-jam First Vircon32 Jam]
* [https://itch.io/jam/first-vircon32-jam First Vircon32 Jam]
* [https://itch.io/jam/second-vircon32-jam Second Vircon32 Jam]
== References ==
[[Category:Fantasy consoles]]

Latest revision as of 17:22, 2 September 2024

Vircon32 logo

Vircon32 is a 32-bit system written by Carra that uses C as its development language, and includes a number of libraries intended to simplify game development. It includes a compiler and assembler, as well as various development tools for creating and compiling games.

The Vircon32 project is focused on being as open and accessible as possible. For that reason, the console design is fully documented and all related official software (emulator, development tools and Libretro core) is kept free and open source. It also places emphasis in not being tied to any external technologies like game engines, graphic libraries or file formats[1].

Capabilities[edit]

The Vircon32 system itself is a set of specifications defining the limitations and capabilities of the various components. It uses a simplified 32-bit CPU running at 15 MHz, and has 16 MB of RAM. Floating point operations on the CPU are supported. To save games, the system provides 1 MB of storage in the form of a memory card.

The screen resolution is 640x360 (16:9), with 24-bit RGB color supported. The sound is stereo 16-bit at 44100 Hz (CD quality). The graphics are based on texture atlases, and the system does not natively support 3D.

The system supports up to 4 gamepads with seven buttons each (A, B, X, Y, L, R, Start), plus a directional pad.

Programming[edit]

Unlike many other FCs that use scripting environments as their main programming interface, Vircon32 defines an actual architecture with a custom instruction set architecture, detailing components and communication at low level. ROM files contain compiled program binaries that the CPU executes as instructions.

The design of Vircon32 CPU is loosely based on the x86 processor, but unlike mainstream processors Vircon32 is a pure 32-bit machine: it cannot access individual bytes, or handle 8-bit/16-bit data formats.[2]

Vircon32 games are meant to be developed using an external toolchain. To that end, a set of cross-platform development utilities are provided to compile and assemble assets and code into Vircon32 ROMs. Games can currently be written in the C programming language or directly in assembly language[3]. Game assets are .wav file for sound, and PNG images for textures. Each ROM is packed into a single file and includes binaries and assets.

Platforms[edit]

In addition to its desktop emulator, the console also has a Libretro core and has been officially integrated into RetroArch[4], as well as the front-ends Lakka, EmuELEC, AmberELEC and ROCKNIX.

Links[edit]

References[edit]