[Super/MEGA]CHIPX thread Let's keep a CHIPX discussion thread. CHIP8 Specs: 16 8bit general purpose registers(really, 15 registers, as Register F(16) is typically used as a flag for subtraction/addition/sprite collision) 16bit Program Counter(Ranges from 0-0xFFF) 16bit Memory addressing register(referred to as I) 8bit Stack Pointer(can be any size you want, it doesn't matter, but I use 8bit; it simply points to a 16bit elementn the stack) 256 byte stack(16 16bit spaces(something like u16 Stack) 4KBytes RAM(512 bytes reserved for chip8 font at location 0x000-0x050(80 bytes), and interpreter(which on emulators, will be zeroes since the interpreter would be useless)) 64 x 32 screen resolution 2 colour screen(black and white) Hex keypad for input(16 keys, labeled 1-0, A-F) Note: Super/Mega are both backward compatible with CHIP8, and inherit its base specs[except for MEGAChip, which gains colour]. They simply add on to CHIP8. SuperChip 48 Specs: 128 x 64 screen resolution Adds 7 8bit registers(HP48 flags?) SuperChip 48 adds new opcodes: 00CN* Scroll display N lines down 00FB* Scroll display 4 pixels right 00FC* Scroll display 4 pixels left 00FD* Exit CHIP interpreter 00FE* Disable extended screen mode 00FF* Enable extended screen mode for full-screen graphics DXYN* Show N-byte sprite from M(I) at coords (VX,VY), VF := collision. If N=0 and extended mode, show 16x16 sprite. FX30* Point I to 10-byte font sprite for digit VX (0..9) FX75* Store V0..VX in RPL user flags (X <= 7) FX85* Read V0..VX from RPL user flags (X <= 7) MEGAChip Specs: - 256x192 resolution - Indexed coloring (255 colors max + transparency) - Fixed high-speed speed in megachip mode - Custom sprite sizes - Update timing at ClearScreen - Extended I-register range (24 bit addessing, 32MB max) - Digitised sound (mono 8bit) - Downward compability (you can run your old CHIP/S-CHIP games) - Spritecolor 0 = transparent. - Spritecollision will occur if (backgroundcolor>0) when plotting spritepixel. MEGAChip adds new opcodes: 0010+ Disable Megachip mode (MEGAoFF) 0011+ Enable Megachip mode (MEGAON) 01nn+ I=(nn<<16)+nnnn , PC+=2; (LDHI I,nnnnnn , always follow LDHI with a NOP) 02nn+ Load nn-colors palette at I (LDPAL nn) 03nn+ Set Sprite-width to nn (SPRW nn) 04nn+ Set Sprite-height to nn (SPRH nn) 05nn+ Set Screenalpha to nn (ALPHA nn, will become FADE nn) 060n+ Play digitised sound at I (DIGISND), will add n for loop/noloop 0700+ Stop digitised sound (STOPSND) 080n+ Set sprite blendmode (BMODE n) (0=normal,1=25%,2=50%,3=75%,4=addative,5=multiply) 00BN+ Scroll display N lines up (SCRU n) Documents: 1. Chip8 thread on Emutalk: Chip 8 - EmuTalk.net 3. Cowgod's documentation: Cowgod's Chip-8 Technical Reference 4. Wikipedia: CHIP-8 - Wikipedia, the free encyclopedia 5. David Winter's docs: CHIP8 6. CHIP8 tutorial by Codeslinger(Try to avoid using this unless you really need help since it has full source!): codeslinger.co.uk 7. MEGAChip document from the development kit: chip8.com - Dedicated to Chip-8 , SuperChip and MegaChip Emulation / Development 8. RCA 1802(required for hybrid CHIP8 games) CPU documents: COSMAC ELF and the TinyELF Emulator - The 1802 in Microcomputer History RCA 1802 - Wikipedia, the free encyclopedia The 1802 Instruction Set http://mess.redump.net/sysinfo:vip RCA Cosmac VIP - Instruction manual for VP-111 RCA COS/MAC Microprocessor Trainers RCA 1802 http://www.hobbylabs.org/files/1802/RCA1802UserManual1976.pdf Test ROM(s)/Public Domain ROM(s): Snafu by Shendo Source to above rom by Shendo 0xFX0A test rom by Shendo Test rom by tronix286 Test rom by BestCoder Cool stuff/toys: Chip8 pascal compiler by tronix286 Update (August 7, 2012): Updated first post with yet another new test rom by BestCoder.