massung / CHIP-8

Assembler and Emulator in Go
http://massung.github.io/CHIP-8
zlib License
254 stars 18 forks source link

Scrolling Up #6

Open JohnEarnest opened 6 years ago

JohnEarnest commented 6 years ago

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.

massung commented 6 years ago

@JohnEarnest thanks for the data! The @trapexit documentation you linked was a good chunk of my reference material (and debugging vs. other emulators). That page specifically calls out 0x00BN as a "scroll up" on the SCHIP-8.

I'm closing, assuming that you just misread something, but if I'm wrong, definitely re-open and explain what I missed. ;-)

Thanks for link to "quirks and undocumented bugs." I'll definitely give that a look-see.

JohnEarnest commented 6 years ago

My point is that @trapexit's documentation is incorrect.

The thread I linked includes information derived from a disassembly of the original HP-48 SCHIP interpreter demonstrating that it does not support an 0x00BN "scroll-up" instruction.

You'll also note that if you look at the original readme for SCHIP this instruction is not listed.

massung commented 6 years ago

Ah, I see. Sorry, I misread the original issue.