This wiki page will be dedicated to the upcoming version of the VICERA fantasy console such as it's specs, the graphics engine, the controls, etc. The new version of the VICERA will include the new vic-sm8 stack-based CPU and will have some big improvements on debugging, extensibility and development experience.
If you want to use the current version, please visit https://cutebunni.es/vicera
For now this page will only be an idea gathering, all the ideas will be moved to another page once the VICERA will start to be actually documented.
As it is a fantasy console, it is important that the programmer feels
comfortable writing games for it.
sm8asm will probably not be the best for
that but I am thinking about creating a stack-based programming language that
compiles into sm8 assembly to improve the programming comfort.
I am thinking about making something similar to Forth with an stdlib but for now I want to keep this compiler as an idea. Maybe a wiki entry will come up when the idea will become clearer in my mind.
The GPU will lay on port
0x81. On start, the GPU will set up the
SDL window and renderer. Then the screen refresh will be on
OUT command in the
0x80, the device will check in the memory and refresh the screen, then
wait 1/60 seconds and finally return to the CPU.
The memory bindings will be similar to same than the original GPU.
The controller will lay on port
OUT command will push into the
stack a byte like it would be stored in
0xfff4 in the previous version of the
VICERA. See controller.h.
A netplay device is planned, allowing to play in multiplayer. For now the idea is not clear in my mind so more will come up here later once I have a complete idea of the netplay protocol.
Maybe a package manager would be great to download ROMs, IO devices, tools, etc.
The programmer will be allowed to write their own devices using the Janet programming language. I picked this language because LISPs are cool and is also easily embeddable as a scripting language in C.
With this, you can write your own debugging tools, devices to interract with the VICERA. Anything! To know more about how I/O works on the vic-sm8, see vic-sm8.