Catrin Labs Computers : The Beginning

Some time ago 8-Bit Guy presented a wonderful idea, to design a retro computer using modern technology. This is something that I had flying around my head once I started porting Prince of Persia for the Atari 800 (probably), so when I was watching this video I had a felling of “this is it”. Sadly, as the video progressed the project quickly went to a different route than I expected and checking their Facebook group where the design is discussed I feel like the project got a bit de-railed. So, given the resources that we have today I thought, why not creating one by myself?

Let’s go a little back on this story. Why one would be interested on designing a retro computer? Who will use it? For what? Some of the answers to these questions are in that same video. At least for me, the interesting part of an old computer is that the resources are scarce on those, and that limitation forces the programmer to think in creative solutions, you can see a bit of this done with the PICO-8 platform.  Today we can do almost anything that we want in a computer, but without limits the fun is lost. Although this lack of limitations is convenient to solve complex and “serious” problems, at the same time for me it turns coding in something rather boring.

Ok, but who will use it?

For this question the answer is quite simple: Me. If other crazy guys like me want to jump aboard then well, they are welcomed! But this is something personal first, if I will live another 30-40 years there is enough time to have fun with a project like this.

Considering other people, this is not necessarily a computer to be sold. It even doesn’t need to exist in physical form. With the emulation technology that we have today – I know something about it – one can integrate several computer parts and work with that. If the project gains traction may be someone with the skills can help to build a board and make this computer exists physically. It would be a dream if one could put a project like this in an existing case that have designs that I like a lot, like the C64C and the XE line of Atari computers. But for now that’s just a dream.

Design criteria

First, this project is not about one computer, but a computer line. There are enough hardware differences to distinguish at least two interesting generations: 8 bit and 16 bit. In the 8 bit generation let’s think about what we have now: The Atari 800, C64, ZX Spectrum, MSX and Amstrad basically. And in the 16 bit generation we have the Atari ST and Commodore Amiga and probably a few others. A new computer for each generation should be similar in technology but with some needed changes. First, proprietary components like the video chips cannot be used (ULA, ANTIC, GTIA, VIC, etc.) Second, ultra modern components would not be used because it breaks the idea of this project, discarded is having things like hardware accelerated 3D graphics and stuff.

Another important criteria is the availability of components. At least the CPU, audio and components like memory and other low level chips can be “off the shelf” parts. For the video chip it gets a bit more complicated because with the exception of VGA compatible graphic ships, there are no off the shelf components that could be used considering the first criteria.

Another criteria is the type of software that this project is targeted for. We don’t need to run productivity applications – we can use modern computers for that – so 80 columns text modes or hi resolution modes with 2 colors don’t make major sense. We only need something that can support good looking games on old analog TV screens running at the 4:3 aspect ratio.

Finally, there is the WOW factor. Let’s think we are living in 1988 and a new 8 bit computer is announced, what announce would get us excited and make us save every penny day after day to purchase that new computer? A similar effect happened when we saw magazine ads showing awesome screenshots, although many times the games were not as they appeared in paper. I remember when the 130XE was announced, at first I thought about how cool could the new graphics and audio capabilities be, but at the end it was only more memory available. A bummer. Another example is the Atari ST ad that you can see featured in this post, it looked stunning in the screenshots, but in reality the color palette looked more artificial, it didn’t have hardware scroll and in general it wasn’t so good compared with the Amiga.

I also think in computers like the Amstrad one, it wasn’t so popular at its time, but today the new coders are making awesome new games, and something similar is happening with the C64. So, why don’t having a new computer that allow coders to do games like these from the start?

Base hardware

The following definitions are only the original ideas, let’s think that I’m writing it here only to not forget it in the feature, but also it helps define a base line and helps to start talking about alternatives if anyone is interested. It can be taken as a brainstorming, may be some combinations are impossible or they break the defined criteria, but time will tell.

Hardware for the 8 bit computer

  • Processor: MOS 6502 and Zilog Z80,  Dual Boot like the C128
  • Audio: Stereo. There are several options here, the Pokey is quite popular and it has a very distinctive sound and it has powerful tools to create music. We also have the OPL based chips, they are quite abundant and they can improve even a C64 where they have the awesome SID chip. At last, the famous PSG is an excellent choice too, and it has the characteristic sound of that age.
  • Memory: 128K
  • Video:
    • Composite output
    • 256×192 pixels
    • 16 color modes with a 256 or 512 color palette
    • Display lists
    • Bitmap and Tiled mode
    • Text Mode: 40×24, 16 colors, redefinable chars
    • 32 sprites with 16 colors (1 transparent)
    • Video Ram: 128K
    • Scanline interrupts
    • Vertical Blank interrupt
    • Hardware scrolling
    • (well this seems like the VDP from the MSX2)
  • 2 Joystick ports
  • 2 Buttons per joystick
  • Analog controllers (mouse, paddle)
  • SD Card storage
  • SDK: BASIC and Assembler primarily

It must be taken in account that the video hardware is limited by the whole system performance. A CPU like the ones proposed can’t handle big chunks of memory, so a high resolution mode adds the problem that the whole frame can’t be modified in one frame per second. That’s why the Tiled mode, a good text mode and display lists are added. Those allow to mix several video modes in one screen, letting the video chip do the best that it can with little memory.

Keeping the hardware similar to what existed at that time allow to port or remake some games using the enhanced hardware. Think of remakes of 8 bit classics like Draconus, Montezuma or The Great Escape but using more colors and better audio options. With more audio channels there is no need to choose between “music” and “sfx”, they both can be handled at the same time. One can see these type of remakes in existing systems, like porting some Spectrum Games to the more powerful MSX2 computer.

Hardware for the 16 bit computer

  • CPU Motorola 68040 at 40Mhz
  • Audio: Stereo OPL3 + 4 panneable DAC channels. This allows the best of both worlds, now there is no need to emulate synths with samples and viceversa.
  • Memory: 4MB
  • Video:
    • Composite and Component video output
    • 320×240 pixels
    • 256 colors from a 262.144 colors palette
    • Display lists
    • Bitmap mode
    • Text Mode: 40×24 chars, 16 colors, redefinable chars
    • BitBlt and Fill (no sprites)
    • Scaling and rotation
    • Video Ram: 512K
    • Scanline interrupt
    • Vertical Blank interrupt
    • Hardware scrolling
  • 2 Joystick ports
  • 2 Buttons per joystick
  • Analog controls (mouse, paddle)
  • SD card storage
  • SDK: C and Assembler

Although there are two computer generations here, it doesn’t mean that it will be a simultaneous work. It’s convenient to start with the smaller one and with that experience continue with the next generation… in any case, I still have 30-40 years to do it.

Some crazy ideas

Components like the CPUs have physical restrictions, mainly the max clock rate, but still there are some hardware experiments with these processors overclocked so this always can be considered a possibility. For example, the 6502 typically runs under 2Mhz, but it can be ran at 10Mhz.

Following there are some videos that can be taken as an inspiration, there you can see what is being done with the 8 bit computers that were designed in the eighties, even when they are very limited, hi skilled programmers have achieved what the original designers never thought it could be done.