Insane Contraption
Posted: Fri Dec 27, 2019 3:49 pm
So at last I started building hardware. Quite an adventure, now hopefully I have something which should not have too many defects. That is, it didn't go up in smoke when applying power, and the programmer sees the chip!
This for now is more or less an E-Uzebox with an ATmega1284 and a 18MHz crystal, otherwise I followed an E-Uzebox schematics with some changes applied here and there, such as notably putting Sync on a PWM capable pin.
There is more to it though, as I laid this one out with the intention of being compatible with a more elaborate plan involving a 32KBytes static RAM chip and a few latches. The novelty of that system is that it could palettize video through the RAM chip by diverting the chip's data to the video DAC, so you could OUT palette indices as addresses, allowing high-resolution 4bpp, while outside video, you could still use it as normal, as significantly faster random accessible external memory than an SPI RAM. So the overall design would be that game binaries created for this currently assembled system would run on the bigger one as well.
The 1284 has a quite crazy possibility for video coding (on this smaller system primarily) as the full address space is populated, there are high-resolution video modes which would rely on this. Next thing is that I am going to build a bootloader capable to support this (using only every second 128 word Flash page, leaving the upper halves of 256 word segments free, available for games).
Emulation is (will be) possible by porting CUzeBox to this or adding support for it, the overall mechanics are not too complex, even the bigger system having the RAM chip would do well, and notably due to the 18MHz clock, actually could perform better than Uzebox.
Otherwise next steps would be building a prototype of the bigger system, creating a bootloader, then eventually I might also design PCB for it (wow, building this prototype stuff, producing all that entangled mess of wiring is difficult!). NTSC support would be provided in a similar way to Uzebox, however the NTSC chip clocked on its own. It wouldn't really be a problem, the color clock could slightly drift, but that's all (there are other projects out there using this solution).
Source compatibility with Uzebox migth be possible to some degree. At least I figured out how I could sort of get Mode 3 on this thing, with some limitations, but maybe I could eventually create a kernel which provides an interface sufficiently similar to Uzebox Mode 3 for making it easier to realize a game which could be compiled for both.
Anyway, still quite a way to go to get there, first to see whether this thing ends up blowing up something else than itself and so on
This for now is more or less an E-Uzebox with an ATmega1284 and a 18MHz crystal, otherwise I followed an E-Uzebox schematics with some changes applied here and there, such as notably putting Sync on a PWM capable pin.
There is more to it though, as I laid this one out with the intention of being compatible with a more elaborate plan involving a 32KBytes static RAM chip and a few latches. The novelty of that system is that it could palettize video through the RAM chip by diverting the chip's data to the video DAC, so you could OUT palette indices as addresses, allowing high-resolution 4bpp, while outside video, you could still use it as normal, as significantly faster random accessible external memory than an SPI RAM. So the overall design would be that game binaries created for this currently assembled system would run on the bigger one as well.
The 1284 has a quite crazy possibility for video coding (on this smaller system primarily) as the full address space is populated, there are high-resolution video modes which would rely on this. Next thing is that I am going to build a bootloader capable to support this (using only every second 128 word Flash page, leaving the upper halves of 256 word segments free, available for games).
Emulation is (will be) possible by porting CUzeBox to this or adding support for it, the overall mechanics are not too complex, even the bigger system having the RAM chip would do well, and notably due to the 18MHz clock, actually could perform better than Uzebox.
Otherwise next steps would be building a prototype of the bigger system, creating a bootloader, then eventually I might also design PCB for it (wow, building this prototype stuff, producing all that entangled mess of wiring is difficult!). NTSC support would be provided in a similar way to Uzebox, however the NTSC chip clocked on its own. It wouldn't really be a problem, the color clock could slightly drift, but that's all (there are other projects out there using this solution).
Source compatibility with Uzebox migth be possible to some degree. At least I figured out how I could sort of get Mode 3 on this thing, with some limitations, but maybe I could eventually create a kernel which provides an interface sufficiently similar to Uzebox Mode 3 for making it easier to realize a game which could be compiled for both.
Anyway, still quite a way to go to get there, first to see whether this thing ends up blowing up something else than itself and so on