Gameboy on prop idea
CPU: 8-bit custom Sharp microprocessor running at 4.19 MHz. Similar to the 8080 with some of the z80s instructions
RAM - 8kb Internal sram
Video RAM - 8kb
ROM - On-CPU 256-byte bootstrap; 256 kb, 512 kb, 1 Mb, 2 Mb, 4 Mb and 8 Mb cartridges
So I tend to have random ideas and this was one of them. With the exception of cartridge sizes I think the propeller could pull this off assuming the emulation of the instruction set can be pulled off with less than 16kb.
I'm going to assume that the data on the cartridges is only pulled off when it's needed because of the 8kb ram limit. My idea is to put the roms on an SD card and just pull the data as needed. The graphics can't be too big since they are only 2bit and only 4 shades of grey.
What do you guys think? I was thinking of trying something like this on my gadgetgangster board with the touch screen. Have on screen controls since there is only a handful of buttons needed. It would make for a cool time waster I think.
EDIT - I did some more looking and it's been done with the arduino so I'm positive it can be done with the Prop.
http://technabob.com/blog/2008/10/27/arduino-gamepack-make-your-own-open-source-gameboy/
RAM - 8kb Internal sram
Video RAM - 8kb
ROM - On-CPU 256-byte bootstrap; 256 kb, 512 kb, 1 Mb, 2 Mb, 4 Mb and 8 Mb cartridges
So I tend to have random ideas and this was one of them. With the exception of cartridge sizes I think the propeller could pull this off assuming the emulation of the instruction set can be pulled off with less than 16kb.
I'm going to assume that the data on the cartridges is only pulled off when it's needed because of the 8kb ram limit. My idea is to put the roms on an SD card and just pull the data as needed. The graphics can't be too big since they are only 2bit and only 4 shades of grey.
What do you guys think? I was thinking of trying something like this on my gadgetgangster board with the touch screen. Have on screen controls since there is only a handful of buttons needed. It would make for a cool time waster I think.
EDIT - I did some more looking and it's been done with the arduino so I'm positive it can be done with the Prop.
http://technabob.com/blog/2008/10/27/arduino-gamepack-make-your-own-open-source-gameboy/
Comments
The NES (6502-based) has been successfully emulated before (see: http://forums.parallax.com/showthread.php?t=119075), so it probably could be done.
Heater's ZiCog (http://forums.parallax.com/showthread.php?p=788511) would be useful.
There were a few other threads discussing the Gameboy here:
http://forums.parallax.com/showthread.php?t=119839
http://forums.parallax.com/showthread.php?t=111208
As far as I can tell the arduino GamePak kit doesn't look like it is a Gameboy emulation. However if you did want to make a Gameboy-like system, that is certianly a good way of doing it.
ZiCog is my Z80 that runs CP/M 2 as linked above.
User PullMoll has an even more advanced version that runs MP/M and has been used for Sinclair ZX81 and Spectrum emulators I believe. See here:
http://forums.parallax.com/showthread.php?t=121579&highlight=shot
I was wrong about the RAM. Some cartridges expand the RAM available to the unit so it would require some extra ram to work. So this might require more hardware than I thought at first. Same thing goes for the NES were the cartridge can add RAM.
Didn't someone already start a GameBoy emulation project?
Where is PullMoll he's been very quite recently?
I do suspect it would be a net saving in memory given all the Z80 codes not used.
I think pullmoll has been doing some paid work. Hopefully not taking too much time away from the propeller - his input here would be most appreciated.
Also I want to make a ZiCog that uses Bill's VM Cog for external memory so that it will run on any platform that is supported by VmCog. Will be slower but at least pretty much anyone could run it.
Of the ones that are different, take as an example from the qZ80 so instead that is going to be the same as LD (HL),A which happens to be opcode 77, and then INC HL which is opcode 23.
Looking at the Gameboy opcodes, I think there are a number of examples where we don't actually need any new opcode emulation, but rather, a different combination of existing opcodes. So that ought to make coding those handful of unique codes a lot easier.
With BST maybe we could add an #ifdef for Gameboy and put some #ifdefs around those handful of opcodes?