What's new

Chip 8

hap

New member
Ohh, nice to see a message from you here David. Thank you for your work and games, it helped many emulation enthusiasts get into emulator programming.

1) I honestly don't know, there are many many CHIP-8 emulators/interpreters around. I could brag that my implementation includes basic Cosmac VIP emulation (1802 cpu and all), but I won't. :p What I do want to brag about is the two games I made, Rush Hour for CHIP-8 and Sokoban for Super-chip, available with source code at my homepage: http://tsk-tsk.net/
2) ask yourself, what programming language are you good at/comfortable with?

Cosmac VIP games, I don't know, I do know that there are some hybrid CHIP-8/1802 games online. There's a program pack on http://chip8.com if you want to check it out.
 

KrossX

クロッスエク&#
I've read the entire thread! *achievement unlocked* :sombrero:
And felt the need to register and post it, and go against the rules while at it...

PS: Hello~
 

suanyuan

New member
chip-8.png


I made a CHIP-8 emulator with C++:

* SuperChip8 support
* using GDI for display,
* windows API for keyboard
* windows API for sound
* drap and drop
* compile with CodeBlock + mingw

Source code and binary can download here:
 
Last edited:

Remote

Active member
Moderator
Now I have read it, is there a py 2.x or 3.x version of it? ;)

Or perhaps we could start a new thread and go step by step in py 2.x or 3.x? ;)
 
Last edited:

suanyuan

New member
Now I have read it, is there a py 2.x or 3.x version of it? ;)

Or perhaps we could start a new thread and go step by step in py 2.x or 3.x? ;)

I add SuperChip8 support today, fixed the bug, and update the download link.

alien.png
 
Last edited:

hwave

New member
I recently found my old chip8 emulator that I wrote lots of years back, so I got interested and started looking things up again. I found a really interesting blog with some pretty good research on the chip8 on the COSMAC VIP. It's here: http://laurencescotford.co.uk/?p=242

One interesting thing here is that the shift instructions have been done incorrectly in most emulators (according to this info, they should shift Vy and not Vx), and consequently a lot of games were written under the assumption that the shift is done on Vx. So implementing it correctly actually breaks things.

I haven't read through it all letter by letter yet however, but I'm curious if someone's attempted to use this information. I didn't see anyone referencing the mentioned blog anywhere (courtesy of google), so none posted any link to it from my knowledge. It's there anyway if anyones interested. And I should probably add, it's not my blog, and I have no affiliation whatsoever to the person/people running it. I will most likely add this into mine, just for the sake of it, but that'll be in 1 or 2 weeks, as I'm going on vacation in 2 days.
 

GamerCat

New member
Hey guys.
I've been writing CHIP8 emulator myself, and have found some undocumented (?) opcodes. One of them is 0xE7FF (Fishie.ch8). Does anyone know what it does, and where can I find a full list of opcodes?

Thanks.
 

jesper

New member
Are you sure about? My emulator runs Fishie.ch8 (are we both talking about program which renders fish-like shape?) but I didn't implemented such opcode. Maybe this is not an opcode but a sprite?
 

GamerCat

New member
Whoops, sorry, I was wrong a bit. I was not using my emulator, but rather using the disassembler (when I run it using emulator, everything is just fine). And what do you mean by sprite? AFAIK chip-8 file contains only instructions, 2 bytes each.
 

jesper

New member
You must know about sprites if you writing emulator.
Sprites are just bytes stored in memory. There is one instruction which handle drawing - DRW Vx, Vy, n (Dxyn). They draw n-byte sprite stored at location I (value of I register I) at (vx, vy).
 

GamerCat

New member
I know what are sprites, but I am talking about instructions loaded from the file.

P. S. Oh I see what you mean. They ARE stored in memory indeed. But AFAIK sprites are only 0-F letters, stored before 512'th byte in the program, and my disassembler is only scanning file's instructions which can't contain sprite data (AFAIK again, maybe I am wrong? First day in the emulators world).
 

Viata

New member
I don't understand.
This is my Chip-8 code:
http://www.pastebin com/SzjjhVhA
Of the games I have tried, Tetris and Pong worked well. But both were unable to print the score, it just keeps at 0. Invaders doesn't work.
But I can't see anything different between my cpu cycles codes and any other person.
Anyone knows the reason for this?
 
Last edited by a moderator:

jesper

New member
I know from my own (tiny) experience that debugging emulator is very hard work. You can try printing each operation your emulator performs and analyzing cpu state step by step. You should also have some kind of unit tests - this helps a lot.
 

shutterbug2000

New member
Hello emutalk!

Well, I just finished a chip 8 emu! Works pretty well, but with some sprite flickering in games.
(If anyone wants to help with that, much appreciated)
Well, the reason I'm here is because I wanted some advice. I want to know, if a gb, or nes emu would be easier. Thanks.
(Also, I made the chip-8 emulator on android, using libgdx.)
 

GamerCat

New member
Hello emutalk!

Well, I just finished a chip 8 emu! Works pretty well, but with some sprite flickering in games.
(If anyone wants to help with that, much appreciated)
Well, the reason I'm here is because I wanted some advice. I want to know, if a gb, or nes emu would be easier. Thanks.
(Also, I made the chip-8 emulator on android, using libgdx.)

Hey shutterbug2000! Welcome to emutalk.
Congratulations on finishing your emulator :). Btw flickering is not a bug in your emu - that's the problem of chip8 itself (Google about it).
I think GB (not color) would be easier to implement than NES (NES has colors IIRC).

Good luck!
 

Top