This blog aims to follow the development of my FPGA based Spectrum Compatible computer. The ZX Prism should remain compatible with the ZX Spectrum whilst expanding its graphics and memory.

Saturday, July 16, 2016

Solid progress...

So much progress since the last update! First up, I finally found why esxDOS wasn't working properly on Prism. Turns out that the divMMC automapper was working perfectly. The problem was actually with the SPI port. +3eMMC was working fine because it uses the SPI port slightly differently to esxDOS. A couple of tweaks to the SPI port implementation's sorted everything out - now both esxDOS and +3eMMC work perfectly.

FINALLY!

I was just about to give up on ever seeing this....

Getting esxDOS working means that I can use emulated TRDOS to try out some of the Russian software, some of which works best with no memory contention, or needs more than 128K of memory.

Fire And Ice running from TRD file. A fun and pretty platform puzzle game, similar to Solomon's Key

Mortal Kombat, running from TRD

Graphics modes, graphics modes... What would a Prism update be without more graphics modes? Firstly, I revisited Gigablend mode - this is a mode which blends the main and shadow screen together to give more colours - basically a hardware implementaiton of the software "Gigascreen" effect found in many Russion demos.

Looking back through the blog, I noted that I'd not said much about the 4 plane (16 colour) 256x192 mode. This works in a similar way to the Amiga - 4 bitplanes of pixel data which mean each pixel can be one of 16 colours (ie there is no colour clash). Of course, being Prism, this isn't restricted to the 16 default colours, they can be user defined. Here's a few examples

But what about brand new modes?

How about a completely bonkers 4096 colour mode? Brainbow mode is a 3 plane 256x192 resolution mode with a twist. Each pixel can be one of 8 colours (black, blue, red, magenta, green, cyan, yellow or white/grey) the twist is that each 8x8 "attribute" square has a defined red, green and blue element intensity level. Probably of limited usefulness, but hey - it's up to 4096 colours on screen at once.

It really is quite bonkers...

What else? Well definitely more useful are the new linear modes. In addition to the Radastan and Zesarux linear modes, Prism's ULA2 also has its own linear modes - two of which have been implemented to date.

Hand-converted from a 256 colour BMP... ignore the couple of alignment errors ;)

Due to the data needed to be moved around, these modes are probably more useful for splash screens or perhaps static pictures in adventure type games than they would be for actual arcade games (happy to be proven wrong though!)

please give more technical information if you canmore about the video modes and the ram they use please your work looks fantastic512 x 384 has to be directx openGLIDE compatible but will need a lot of processing power - is there any way that you could squeeze a couple of ez80190's in there somehow! no one seems to be developing open architecture parallel computers oh dear i seem to have lost the plot again!well all the best any way

There's already quite a bit of technical information on this blog - although admittedly a lot of it needs updating as the specification has evolved over the last couple of years.

512x384 mode is basically four normal Spectrum screens, one stored in each 8K VRAM block. You can actually switch to this mode, then load a Spectrum game and it plays in the top-left quarter of the screen.

I've no idea why you're talking about directx/openGLIDE compatibility - Prism isn't a PC, or a program running on a PC so directX doesn't enter into it at all.

Likewise, Prism is basically an FPGA with some memory chips and a few other bits of supporting hardware bolted onto it - its CPU is modelled within the FPGA and it's modelled on a Z80 not an ez80190 as I want it to be able to run (most) Spectrum software :)

No. Prism's an FPGA based computer with the Z80 CPU modelled. It can run at 56MHz, but crashes if interrupts are enabled (at least it does at the moment). I have no idea of the ez80190's specification as I've never looked at it.

Thanks for your enthusiasm Roger. The honest answer is that I have no idea when I'll finish, and I'm not planning on building them to sell (but I will work with anyone who's interested in building them to sell).

You can try Prism (and other new hardware like ZX Uno and TB Blue/Next) by using the Zesarux emulator - it emulates all of those plus the traditional Spectrums