[Fantasy computer] Continuum 93
-
Hi there!
About a year ago I started developing a fantasy retro computer for PC Windows following up on my nostalgia on the computers in the 80's/90's era. The idea was to create this computer as an emulator of a CPU/hardware/video architecture that never existed, but I would design down to the assembly code instructions.
The purpose was to enable developers to write such retro games on a "machine" that has the proper limitations but also some special architecture that is meant for that exactly.So today there it is. A variable frequency CPU with 16MB of RAM, a video architecture with a 480x270 pixels 8bpp screen organized on configurable layers (up to 8) with a definable 255 colors palette per each layer.
I've also implemented an assembly instructions set inspired mainly by the Z80 CPU but also others, with 8 bit, 16 bit, 24 bit and 32 bit registers that support a wide variety of operations and also direct memory access. Registers are also compositional so you can work with a 32 bit register such as ABCD also on its components, such as ABCD, BCD, AB, A and so on.
There are some graphics acceleration features, but just for 2D at the moment.
On top of it, there's also a disassembler, step-by-step debugger that connects through the network directly to the emulator enabling easy debugging.
And, clearly, you can write programs directly in its assembly code (With Visual Studio Code) and the internal compiler (that is also accessible by interrupts) is able to compile and run them on the fly.Very long story short, it's still in development, but shaping up nicely.
For my next update step, I plan on porting it to some SBC's and I started with the Raspberry Pi family. Yesterday I had my first success on having it acrually run on Rpi zero 2w, 3a+, 3b+, 4 and 400.
Today I was searching for some OS that could run my emulator but also allow me to customize it to be minimal and run this on startup.Then, I found you guys! I very well knew the Retro Pi, but for some weird reason, it didn't cross my mind to consider it for my machine, so I had a few questions:
-
I'd like to test Continuum on it and see how well it runs on RetroPi. On Raspberry Pi OS, while the performance is decent, I feel there could be more performance squeezed out thinking to eventually make Continuum available for Retro Pi in the form or shape you would agree on (if). Is that possible?
-
Given there is no more software (yet) except my OS for it and some examples, would this be a signal that maybe step 1 should wait until at least a few games are written for it?
Let me know what is your thinking about this.
Oh, here's the latest update video on my project:
And you can download/use it for free from itch (for now, only the PC version available, haven't released the Rpi version yet):
https://enthusiastguy.itch.io/continuum93
Cheers!
-
-
Cool project !
I'd like to test Continuum on it and see how well it runs on RetroPi. On Raspberry Pi OS, while the performance is decent, I feel there could be more performance squeezed out thinking to eventually make Continuum available for Retro Pi in the form or shape you would agree on (if). Is that possible?
RetroPie is not an OS, the Pi image is based on Raspberry Pi OS Lite (without a desktop), so if it runs on RaspiOS then it will run on RetroPie (on the Pi) also.
Given there is no more software (yet) except my OS for it and some examples, would this be a signal that maybe step 1 should wait until at least a few games are written for it?
Probably. Similar to your 'fantasy computer, RetroPie includes support for Pico8 'fantasy console', which already has tons of games/programs available.
-
@mitu said in [Fantasy computer] Continuum 93:
RetroPie is not an OS, the Pi image is based on Raspberry Pi OS Lite (without a desktop), so if it runs on RaspiOS then it will run on RetroPie (on the Pi) also.
Ah, alright! When you say it has no desktop does this mean that it still has a window manager? Continuum can also run in a window. Sorry if this is a stupid question, I have just started getting my hands more deep on Linux, but I'll test this anyway!
@mitu said in [Fantasy computer] Continuum 93:
Probably. Similar to your 'fantasy computer, RetroPie includes support for Pico8 'fantasy console', which already has tons of games/programs available.
Fair point. I think for now I can give people the option to install it themselves on their RetroPie, as soon as I also figure it out myself :). Looks like I've got some digging to do.
Thanks for your help!
-
@EnthusiastGuy said in [Fantasy computer] Continuum 93:
Ah, alright! When you say it has no desktop does this mean that it still has a window manager? Continuum can also run in a window. Sorry if this is a stupid question, I have just started getting my hands more deep on Linux, but I'll test this anyway!
No, it means it runs directly from the console, without a window manager available. I wouldn't worry to much about this part at this stage.
Based on your Windows version, I'm guessing you're using (lib)SDL for the runtime, which means it might be able to run a program without the desktop (EmulationStation uses SDL also for video, audio and input handling and works fine without a desktop & window manager). If it's not going to work directly from the console, running from a desktop environment is also an option.
-
@mitu said in [Fantasy computer] Continuum 93:
Based on your Windows version, I'm guessing you're using (lib)SDL for the runtime
That is correct as far as I could also figure out. I'm using MonoGame with .NET 6.0. But while on the Raspberry Pi OS it was a rather smooth release, on DietPi for instance, it required me to install libsdl2-2.0 so your guess is spot-on.
I think I will need to recompile for linux-arm since I see that RetroPie runs on armv71 for both distributions I tried:
- retropie-buster-4.8-rpi2_3_zero2w.img
- retropie-buster-4.8-rpi4_400.img
(because currently testing on a Rpi 4)
However, the build I made on Raspberry Pi OS is aarch64, so binary won't work.
Fortunately, I think since I am using .NET 6.0, I can just do:dotnet msbuild ../../../'Continuum Emulator.sln' -p:Configuration=Release -p:RuntimeIdentifier=linux-arm
Will try it tomorrow, thanks again!
-
Alright, made it work and runs nicely!
Only one small problem remains, that is, the mouse API doesn't seem to pick up any mouse movements which leads me to think maybe I need a mouse driver loaded?
Looking forward to do some performance tests too later on.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.