I was invited to be a part of the design panel in LEVEL UP 2015 TAIWAN GAME DESIGN FESTIVAL (http://levelup-twgs.com/) at TECO New York. The curatorial team made a great effort to gather all the talented hard-working Taiwanese Indie game developers in New York. I really wanted to participate but was caught up with other projects and commitments. In order to contribute to this great event, I decided to give my presentation a playful kick by hacking together an 8-bit presentation on a NES cartridge!
I dug out my tool bag and all the sample codes I used to teach in class. With a little bit of CHR mashup, I was able to put the overall look-and-feel plus the basic platform mechanic together quickly. I soon ran into a problem on placing all the text in the presentation. Letters and symbols are treated as graphic tiles in NES, so if I want to write stuff on the screen I have to arrange and place them on the screen letter by letter. It is a PIA to do so. I decided to write a tool to do this for me – a typing tool for editing nametable.
The only challenge in building this tool is to decode CHR file with limited/raw binary support in Processing in comparison to C++. This could be fixed by writing my own shifting functions which turned out to be a breeze. I am started to see the potential of this tool and want to develop it further with extra functions like color picking, stamp, and creating nametables from an image file or from camera.
Every row (8 pixels across) in the 8×8 tile is 2 bytes of information. In order to get the wanted bits, I left shifted both bytes, masked the first byte for the least significant bit, right shifted the second byte by 1, added the two byte together, and lastly masked the sum for 2 least significant bits. This will give me either 0, 1, 2, or 3, which matches the 4 palette colors.
(((byte01 >> 7) & 0x01)+(((byte02 >> 7)) << 1)) & 0x03