Monday, 30 November 2020

Lunchtime Coder #4-1 - 8080 Emulator for Space Invaders Arcade

The weary invaders take a break and a drink from a nearby lake..

For my next lunchtime coding project (well I think this one will be lunchtime and while wifey watches two hours of soaps in the evenings), I have decided to have a go at writing an emulator.

Some googling has told me that an 8080 emulator to run Space Invaders arcade is supposedly a reasonable entry level for a project like this, and if the emulator is successful, it should be able to run a few other arcade games too, and its only a few steps away from a Z80 emulator so it can always upgraded to a speccy emulator or more complicated arcade emulator later on.

I don't know a great deal about processors or emulation, so this is going to be a difficult project for me, and I am going to need to do a lot of reading up on how an 8080 processor works.

Dust can be the trickiest part of an old arcade board to emulate..

All good projects start off with a goal and a plan:

Goal - To write a full speed, fully working and playable Arcade Space Invaders emulator.

Plan:

1. Create a buffer of some sort to hold the Space Invaders roms and provide video and scratch RAM.
2. Write an 8080 emulator.
3. Write a screen interpreter.
4. Write an input / output interface (Controls, Coin mech., Dip Switches etc).
5. Write a sound interpreter.

Wow. As simple as that...

Some years ago I did a module on Digi-Tech as part of a course, and that included some entry level processor and machine code work. From what I can remember, processors are not capable of doing a huge amount. Mostly simple arithmetic and logic and/or comparisons. That and moving values from one location to another in the memory.
Sounds like a doddle....

So, I'd better make a start. More posts to follow...

No comments:

Post a comment