lauantai 24. lokakuuta 2020

What's this project all about?

Hey there! 

So what's all this KAPE homebrew stuff all about? Well, a couple
of months ago I needed something to direct my attention to. So I started reading and watching videos on YouTube about 8bit computers. I decided I want to design and make my own 8bit computer as well, and that's what KAPE is all about.

As everything needs a name to be able to talk about them, I decided to call this project KAPE. KAPE is short for 8bit game machine, but in Finnish (Kasibittinen Pelikone). The current design goals are as follows:

  1. 6502 as the main CPU
  2. At least 64k RAM (Maybe more with some paging techniques?)
  3. A minimalist base ROM of 2K that lives in the top 2K of the memory map
    1. This ROM is just a bootloader, and will load from a swappable Serial ROM to memory and runs that
  4. Expansion Bus w/ edge connectors that tap directly into the CPU Address and Data Buses in addition with a few control signals
  5. Peripherals with a VIA chip (6522) and serial communications with either an ACIA (6551) or some other, perhaps more modern UART chip
  6. Address decoding with either common glue logic chips or a single ATF22V10C GAL chip.
One of the main goals for the board design and material choices is to have as a little an amount of components as possible, and use mostly through-hole components. These chips need to be able to sourced easily either a few at a time from places like AliExpress or Ebay, but it would be nice if they would still be in production and could also be sourced from big chip resellers like Digikey or Mouser. 

I will be prototyping this whole thing in breadboards (thanks Ben Eater for the videos about breadboard computers! Helped me a lot on this). Eventually the end product will be a computer-in-a-keyboard-case kind of deal (a la C64, Amiga 500, etc.) with a 60% keyboard with some additions - mainly arrow keys and ESC, possibly some others. All in a custom PCB inside a custom case, what could be better than that! I've been working on this for months now, and I expect the end result to be done and ready in a year or two.

The main board part is still yet to be designed in any meaningful way, except I've been thinking about things like these for the most part. Currently the most interesting progress I've made is with the GPU. As I'm going to design a 2D platformer with exploration and fighting elements a la metroidvania that the computer will be running - in addition to other software - I will need tile-based graphics rendering with sprite support. The design goals for the KAPE GPU are as follows:

  1. Resolution of 256x192
  2. Output a PAL RGB signal
  3. At least 16 colors
  4. At least 1 background tile layer
  5. Sprite support for multiple 8x8 sprites on anywhere on screen (with variable hotspot)
  6. At least 25 fps refresh
I haven't decided on whether I would use any scroll registers or not. I was also debating a long time on whether to just get a V9958 graphics chip used in MSX systems as that would somewhat fit my requirements, but in the end I opted to go for modern microcontrollers and use AVR chips for graphics generation. The idea is to use the graphics card in the expansion bus, so in case decided to change my mind later, I can just yank the GPU out and design a new one. One possibility would be to just use a STM32F411 MCU for graphics generation, as it would definitely be fast enough and has a lot of RAM as well as supports DMA operation from memory to pinouts, AND it has breadboardable breakout board readily and cheaply available, but currently I'm just having too much fun creating the GPU on AVRs.

Early prototype output, straight output from an Arduino UNO through some resistors and a composite output (a monochrome output with 104x192 or 13x24 text output)



Ei kommentteja:

Lähetä kommentti

Project update 2023

So, last post seems to be from summer 2021. Not even that long ago, eh? :D Well, time for an update then! Anyhoo, paradoxically a lot has ha...