Inspired by RAP, I decided to write a C8 emulator too. Here's the progress so far:
Documents used:
1. Chip8 thread on Emutalk:
http://www.emutalk.net/showthread.php?t=19894
2. Chip8 thread on our forums
3. Cowgod's documentation:
http://devernay.free.fr/hacks/chip8/C8TECH10.HTM
4. Wikipedia:
http://en.wikipedia.org/wiki/CHIP-8
5. David Winter's docs:
http://www.pdc.kth.se/~lfo/chip8/CHIP8.htm
Opcodes:
Regular C8:
0nnn - SYS addr: Yes(Ignored)
00E0 - CLS: Yes
00EE - RET: Yes
1nnn - JP: Yes
2nnn - CALL: Yes
3xkk - SE: Yes
4xkk - SNE: Yes
5xy0 - SE: Yes
6xkk - LD: Yes
7xkk - ADD: Yes
8xy0 - LD: Yes
8xy1 - OR: Yes
8xy2 - AND: Yes
8xy3 - XOR: Yes
8xy4 - ADD: Yes
8xy5 - SUB: Yes
8xy6 - SHR: Yes
8xy7 - SUBN: Yes
8xyE - SHL: Yes
9xy0 - SNE: Yes
Annn - LD: Yes
Bnnn - JP: Yes
Cxkk - RND: Yes
Dxyn - DRW: Yes
Ex9E - SKP: Yes
ExA1 - SKNP: Yes
Fx07 - LD: Yes
Fx0A - LD: Yes
Fx15 - LD: Yes
Fx18 - LD: Yes
Fx1E - ADD: Yes
Fx29 - LD: Yes
Fx33 - LD: Yes
Fx55 - LD: Yes
Fx65 - LD: Yes
Total:
35/35
Super C8:
00Cn - SCD: No
00FB - SCR: No
00FC - SCL: No
00FD - EXIT: No
00FE - LOW: No
00FF - HIGH: No
Dxy0 - DRW: No
Fx30 - LD: No
Fx75 - LD: No
Fx85 - LD: No
Total:
0/10
Grand Total:
35/45
Compatibility List[
Playable,
Ingame,
Title,
Broken]:
Pong:
Title: Never crashes, graphics glitches.
Blitz:
Broken: Crashes after about 3 seconds, graphics glitches.
Status:
Registers/memory array written out: Yes.
Graphics: Yes, DirectX for now.
Sound: Not yet[Who cares? It's a bloody beep!].
Input: Not yet.
Update March 26: It has graphics!!
Update(2/27/2009): I'm going to rewrite this thing from scratch eventually in C++/SDL. Here's the 'final' version of the old source, for those who might want to see it:
http://code.google.com/p/chip8-emu/
Update(3/26/2009): "Rewrite" is complete. The emulator is using C++/DirectX[for now]. No source release yet, as I want it to work as close to 100% as possible before sharing. If you want proof, I'll show the source, but it's not ready for general consumption yet.
Last edited by Dax; March 26th, 2009 at 18:19..
Reason: Status of emulator