Talk:CHIP-8

Discrepancies between interpreter implementations
This article lists the SCHIP versions of the opcodes 8XY6, 8XYE and FX55 and FX65 – these instructions differ from the original CHIP-8 implementation on the COSMAC VIP in some crucial ways. Cowgod's Chip-8 Technical Reference uses the SCHIP implementation. Cowgod and, by extension, this Wikipedia article, has been the source of many confusions among emulator developers throughout the years (MattMik's "Mastering CHIP-8" is more accurate to the original CHIP-8). I have a mind to update this article to list the discrepancies, probably with some footnotes like the one on the FX1E opcode, just giving a heads up here before I do. (I'm a little surprised MattMik has commented on this talk page without adding this information himself, since he's done extensive research on this!) More information: https://github.com/JohnEarnest/Octo/blob/gh-pages/docs/SuperChip.md#Compatibility --Spug (talk) 19:49, 1 November 2019 (UTC)
 * I went ahead and implemented these changes. Not perfect, references are simply URLs etc, but it's a start and I think it's more informative than it was. Feel free to improve it; like I said, I think this article is used as a reference by many emulator developers, and it'd be nice if it were informative, somewhat complete, and didn't blindly reference one implementation. I might have been a bit too verbose though. --Spug (talk) 22:03, 1 November 2019 (UTC)

Opcode Descriptions
The descriptions of certain CHIP-8 opcodes are not always clear, and sometimes they are completely wrong. For example, the description of opcode DXYN ignores the fact the CHIP-8 sprite drawing involves using the I register. MattMik (talk) 02:35, 6 August 2008 (UTC)

Does a reliable source list mnemonics? --Damian Yerrick (talk | stalk) 01:44, 30 January 2010 (UTC)

The article still fails to specify three endianness issues: Can someone check the sources and clarify these issues? --Damian Yerrick (talk | stalk) 21:19, 30 June 2011 (UTC)
 * Are the instructions big- or little-endian?
 * Are the rows of 8 pixels stored with the most significant bit on the left or on the right?
 * Is the output from FX33 big- or little-endian?


 * CHIP-8 instructions are stored most significant byte first.
 * Displayed bytes have the most significant bit on the left.
 * FX33 deposits the most significant of three decimal digits in the byte given by the I register, in the big-endian fashion.

The above three items are from the description of FX33 on page 13, and the display example on page 15, of the RCA COSMAC VIP CPD18S711 Instruction Manual Wlindley (talk) 09:03, 3 July 2011 (UTC)

Removing MegaChip?
As the MegaChip Simulator and Documentation is not available on the revival studios homepage and as there aren't any other MegaChip Simulators, the MegaChip part of the article should be removed imho. —Preceding unsigned comment added by 195.226.104.68 (talk) 13:30, 13 May 2008 (UTC)

I agree, it seems as if the creator of MegaChip only added the reference to attract users to his website. Unless he posts any information or details about MegaChip, we should remove his reference. MattMik (talk) 02:37, 6 August 2008 (UTC)

Community
Should there be a discussion about the hacker / hobbyist community that wrote a large number of CHIP-8 programs in the late 1970s? At one time there was a magazine, "VIPER" edited by Tom Swan. Swan also published "PIPs for VIPs" ("Pretty Impressive Programs") which included several CHIP-8 games and an ASCII Text Editor in 1802 assembly; in the 1990s he wrote a series of programming books. Wlindley (talk) 14:29, 13 May 2008 (UTC)

I think that's a great idea. If those publications were online, we could simply link to them; maybe with a mini index? —Preceding unsigned comment added by 195.226.104.68 (talk) 14:55, 13 May 2008 (UTC)

Conditional opcodes
The C pseudo code for the 3XNN and 4XNN opcodes is inconsistent with their explanation; the next instruction would only be executed if the condition inside the if is true, contrary to what the explanation column states. Which column reflects their actual behavior? --91.116.187.100 (talk) 19:06, 4 April 2019 (UTC)
 * Usually, the skip opcode would be combined with a following jump opcode which would jump over the code in the conditional block. So, to execute a conditional block if (Vx == NN), you would do 3XNN followed by a jump past the conditional block. The 3XNN would skip over the jump if (Vx == NN), and would then execute the conditional block. Conversely, if (Vx != NN), it would not skip over the jump, it would take the jump, and jump past the conditional block. As an aside, if your conditional block would consist of a single opcode, then you would use the inverse test to skip over it. Often, a conditional block will be several opcodes long, though.Digital Brains (talk) 15:54, 24 June 2019 (UTC)

Relationship to fantasy consoles
We were looking into this out of curiosity, and the comment about fantasy consoles caught our eye as a tremendous PICO-8 fan - is there a citation somewhere for CHIP-8 being among the inspirations for the fantasy console? Our understanding of the chronology was that Zep's choice to describe the PICO-8 and Voxatron as fantasy consoles was what gave inspiration to the modern wave of such machines, and in Zep's PRACTICE 2018 talk about the development of the PICO-8, there was no mention of the CHIP-8.

Like, obviously, as a fantasy console fan, we're really excited by the CHIP-8, but the resemblance might be accidental. If the CHIP-8 was an inspiration for the fantasy console movement, that would be great to know - maybe the TIC-80 dev or Pixel Vision 8 dev or someone at the NYU Game Center or ... anyone? talked about the CHIP-8 in the 2015 to 2018?

But if we don't have a citation, I don't think we can say that CHIP-8 inspired fantasy consoles.

Edit 7 January 2024: Removed claim of inspiration. I think it warrants a "See also" link - there's actually a "See also" link the other way on the fantasy console page - but pending some evidence I think the similarities are largely coincidental.

- Robin Z (talk) 19:13, 30 December 2023 (UTC)