Back To Projects
SideWay - a Midway8080 Hardware Emulator
Actual screenshots from the emulator
What is Midway Hardware
Midway is a company that made Arcade game cabinets. This specific cabinet is from the early eighties,
and based around the intel 8080 microprocessor.
What is this emulator
It is a program I have made, that emulates in software all the included hardware functions of the hardware electronics
in the actual cabinet, so that the programs, i.e. the actual games written for the hardware can be run on the platform
where the emulator is run. Currently the platform is a PC with DOS, (or another DOS compatible OS), but a native Linux
version is planned and a JAVA port it thought of, when I have more time for this.
The result is that you can play the old games on your PC with this emulator.
How is this done
Well, a microprocessor interprets its instructions in a well defined way, setting flags, changing the program counter,
reads from memory writes to memory and so on. This behaviour can of course be programmed in software.
The documentetion of a processor is available from the manufacturer.
When that is done, allocate 64K of memory (8-bit processors cant use more anyway, normally), load in the program into the
correct locations of this memory and start up your software processor. It will now if done correctly run the game in
memory, without input and output of course.
If you now have the schematics for the hardware design, and the documentation of the chips it consists of,
you can analyse what should happen at a certain hardware write, and thus find when the game writes to the screen,
and how this should be decoded and then write a "screen driver", and in the same way a "sound driver", and so on.
In this case the hardware was mostly pretty basic so a couple of hours trial and error helped me do it without any documentation.
It took some time before I realised that some hardware shifters was used for the graphics and how they were adressed,
but the process was mostly stright forward.
Why
I remembered the Midway games gunfight and seawolf from my childhood, and wanted to see them again.
I was also interested in how the hardware was made in theese old cabinets, and this is an excellent way to find that out.
Do you want to try it ?
You can download it Here (v0.22a).
The binary is not allowed to be redistributed in any way.
The only place to get it should be from this webpage. You are also not allowed to have
direct links to the file from another webpage.
You will need the game software from the ROMS in the cabinets,
I cant provide them since they are copyrighted. They are available on the net, though ;)
Here is the Changelog, if you want to see what is new.
It runs Seawolf, Boothill, Gunfight, Space invaders, Amazing Maze,
Space invaders Deluxe + more
(21 games have attempts to emulation).
Some games is only supported very preliminary, but most of them work fine.
I have no time to work on this now, but eventually I will add all support for all games made for similar midway hardware.
A Linux version, and a better interface is also planned.
Seawolf, boothill, and Gunfight uses sound samples for the sound, but I dont have them,
if you have access to a cabinet and can record the soundeffects, Please contact me.
Here are Boothill samples.
Dont hesitate to post me bugreports for bugs not mentioned in the readme.
Where is the Source ?
Well, the code is written in a rather unplanned fashion and thus is a bit ugly. I would rather clean it
up before I publish it. Problem is lack of time. When I find time to do the Linux port,
I will clean it up while porting and then I will publish the full code.
If you have special interest in it, or perhaps would like to help me add the rest
of the Midway games for the same hardware (very easily done*), contact me and I can give you an "unofficial" source release.
(*) Also for not so experienced programmers. I can give you easy information on how to do it.
You must have a DJGPP + Allegro enviroment up and running and know how to use it though + access to copies of the ROMS for the additional games.
29136