Diamondwolf3393 2021-09-29 21:11 (Edited)
A little while ago I was pondering, when I began thinking of creating a LowRes Coder emulator inside of LowRes NX. It certainly would be semi-possible, but outside of my range of abilities. Then, I started thinking about fantasy consoles as a whole, and here's where I got my crazy idea: I wanna create a fantasy console myself! Here are the specs I've come up with so far.
It uses a screen buffer, like LowRes Coder, with a resolution of 80x60.
It has an emulated WRAM of 256 bytes.
Input registers after the RAM.
Color palette of 8 individual colors, no redefinability.
Best of all, it can be programmed in machine code, which can be written with an assembler which I will also make! BASIC will not be included, but if you wanna, you can make an interpreter for it.
It will be made in Processing, programmed in Python.
G-9 2021-09-30 04:50
U sure that 80x60 isn’t too small ? Otherwise, good idea, good luck
moechofe 2021-09-30 05:41
I think, you need to write down your specs and do the math. I'm not sure it will fit in 256 bytes.
And, I may have wrong but low-res nx do not have a screen buffer because you access the pixel directly, but throughout sprites and background cells states.
Designing a assembly language probably means designing a machine code directly, or perhaps, you wan't to write a assembly interpreter.
Anyway, good luck with your project.
Diamondwolf3393 2021-09-30 16:15 (Edited)
@moechofe The screen buffer is actually separate from the rest of the ram, and is accessed through special commands I made. The screen buffer is like that of LowRes Coder, not LowRes NX. It uses a custom CPU architecture I've been working on and plays genuine binary ROM files that have been assembled using my assembler. As for the reason why it only has 256 bytes of WRAM, that's just because of the limit of 8-bit memory addresses. 256 bytes of WRAM still means that you can have 256 byte-long "variables." The system does not support declared variables, and you must use the WRAM for storing data. Strings and text will not be included, so you'll have to create your own text systems.
Diamondwolf3393 2021-09-30 16:16
@G-9 Well, by default, the original LowRes Coder was 64x64, but you could redefine the resolution to be as high as 128x128.
Diamondwolf3393 2021-10-01 00:02 (Edited)
This is a demonstration of what this console's assembly will look like:
set 0001 0040 set 0002 0030 nop col 0001 csb col 0000 psp 0001 0002 jmi 0249 0001 0038 tsv 0249 0001 0000 jmi 0250 0001 0042 jmi 0251 0001 0046 jmi 0252 0001 0050 efm jmp 0007 dec 0001 jmp 0007 inc 0001 jmp 0007 dec 0002 jmp 0007 inc 0002 jmp 0007 end
After compiling, it comes out looking like this:
moechofe 2021-10-02 08:42
@Diamond Have you already decided to limit the WRAM at 256 bytes? Because, like the Gameboy, you can combine 2 registers to address 16 Kibi (bc,de,hl)
Diamondwolf3393 2021-10-02 17:01
That's a good idea, but I'd have to redo most of my previous work, which is fine.