[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[16])
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.
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[16])
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.