massung / chip-8 Goto Github PK
View Code? Open in Web Editor NEWAssembler and Emulator in Go
Home Page: http://massung.github.io/CHIP-8
License: zlib License
Assembler and Emulator in Go
Home Page: http://massung.github.io/CHIP-8
License: zlib License
Hi, I saw your Chip-8 Assembler and Emulator, they're great btw :3
but...
Unfortunately, there's a bug that might you solve,
Your emulator terminates when running this Chip-8 program:
Cycle counter 2
(actually, i did fix it so it could running on your chip-8 emulator now ._.)
Cycle counter 2 (Fixed)
I have more Chip-8 program that written by mine,
currently... Implementation of Single Precision Floating Number Arithmetic in progress,
The plan is to render mandelbrot, (even if it slow as hell)
It's written using Octo's assembler
The program suddenly terminates, simply running this CHIP-8 Instruction:
AFFF then FF55 or FF65,
My suggestion,
Loading register from memory at 0xFFF loads v0, but v1-vF settled to the zero,
Saving register to memory at 0xFFF only save v0, v1-vF values won't saved to memory
But what's method are used by my own Chip-8 emulator?
Loading register from memory at 0xFFF loads all register from memory 0xFFF & 0xFFF
Saving register to memory at 0xFFF save all register to memory 0xFFF & 0xFFF
So, memory values between 0x000 - 0x00E may changed due this instruction.
Sincerely, Thanks~
A-KouZ1
1NNN CALL NNN Call CHIP-8 subroutine at NNN
2NNN JP NNN Jump to address NNN
Should be the other way round I think.....
Hello, @massung.
Above is your 5x7 font file, what tools and fonts did you use to generate it?
I feel it is a very beautiful bitmap font. I'm glad if you can answer.
fuwangqin@fuwangqin-pc:~/go/src/CHIP-8$ go build -ldflags "-H windowsgui"
./main.go:248: undefined: sdl.LoadBMP_RW
./main.go:338: cannot convert ev.File (type string) to type *C.char
./main.go:339: undefined: sdl.KeyDownEvent
./main.go:340: ev.Keysym undefined (type sdl.Event is interface with no methods)
./main.go:343: ev.Keysym undefined (type sdl.Event is interface with no methods)
./main.go:398: undefined: sdl.KeyUpEvent
./main.go:399: ev.Keysym undefined (type sdl.Event is interface with no methods)
./main.go:581: cannot use x (type int) as type int32 in argument to Renderer.DrawPoint
./main.go:581: cannot use y (type int) as type int32 in argument to Renderer.DrawPoint
./main.go:658: cannot use x (type int) as type int32 in argument to Renderer.DrawLine
./main.go:658: too many errors
Hi,
I'm trying to build your emulator but i get a panic with the binary.
panic: Conflicting window flags specified
goroutine 1 [running, locked to thread]:
main.createWindow()
C:/Users/rsrim/go/src/github.com/massung/CHIP-8/main.go:217 +0x17d
main.main()
C:/Users/rsrim/go/src/github.com/massung/CHIP-8/main.go:173 +0x274
Any ideas ?
Your readme lists 0x00BN
as an SCHIP instruction which scrolls the screen up by N pixels. To the best of my knowledge SCHIP does not provide this instruction. It's a strange omission, admittedly. If you wish to keep this instruction, I'd advise categorizing it as an EXTENDED
operation.
You might also consider altering the encoding to 0x00DN
, as this would be compatible with XO-Chip, a set of extended instructions introduced in my emulator toolchain and used in several existing games.
Have a look at this discussion for some primary research. If you based your instruction set information on something other than the reference material gathered by @trapexit, it would be good to reach out to them and clear this up; CHIP-8 already has plenty of confusion surrounding its behavior!
You might also find this useful- it contains some details on quirks and undocumented bugs in the various canonical HP-48 interpreters.
I can't get bip sounds from this release.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.