About  Blog

Playpower.org

PLAYPOWER

We support affordable, effective, fun learning games. We're starting with an existing $10 TV-computer as a platform for learning games in the developing world.

Archives / Code

Contiki, CC65, and the original Famicom Modem

Thursday, March 5th, 2009

The Infamous Famicom Modem

The Infamous Famicom Modem

Playpower wants to make “the world’s most affordable home computer” more accessible to developers.  Sites like Retrozone have done a lot to make it easier for people to develop their own cartridges.  Brian Parker has even made a fine set of tutorials for programming assembly code on the NES.  But if we really want to open up development, we need to use a more accessible language.

So we’ve been playing around with cc65, an open source C compiler for 6502 chips.  This has enabled our Hangzhou friend Newsclan to produce a framework for easily making “Choose your own adventure” style games.   Unfortunately, the compiler libraries for cc65 don’t currently support all the NES hardware, but Ernesto in Argentina is making headway on that, using the NES system documentation.

If we could get cc65 to fully support the NES, we might be able to fully port the operating system Contiki, which was designed for 8-bit platforms.  Contiki offers a TCP/IP stack, with IRC, Telnet, and the world’s smallest web browser.  It has been previously been used to enable an Apple II to surf the web.

Lest you think that internet access on a famiclone is ridiculous, here’s a picture of the modem created for the Famicom back in 1988.  Over 10 million were sold in Japan, mostly for betting on horse races or trading stocks.  Here’s an article about the Famicom Communicator, hardware that is also likely in the public domain due to expired patents.

Developing New Software for the TV-Computer

Tuesday, February 17th, 2009

Our Hacked NES Dev Cartridge

Genuine NES Dev Cartridge

One of Playpower’s major goals is to create an open-source development kit for creating new games on the $12 TV-computer.  Currently, it is far more difficult to produce new software for the TV-computer than on, say, the iPhone.  Programming for the 6502 generally requires assembly coding, which is straightforward to learn, but is not terribly accessible.

Open-source developers have provided some great tools for this purpose, however.  Specifically, cc65.org is a community producing free C compilers for 6502-based systems (including the NES).  We’ll hopefully post some functional code this week, after testing it in our development cartridge.

Also, feel free to drop by our demo this Thursday, Feb 19, at the UC San Diego Engineering Research Expo, which is taking place on the first floor of Calit2.

Programming the NES in BASIC?

Monday, August 11th, 2008

In 2004, Bob Rost taught a class about programming NES games at Carnegie Melon University.  He built a compiler that enables a person to program NES games in BASIC.   He calls the framework nBASIC, and it is available on this page.  This makes programming so much easier!

Anuj and Jesse have been using nBASIC to start programming Ghanaian content on the $12 computer.  I told Bob about their work, and he replied to me saying:

Games from Bobs class

Games from Bob's class

I’m glad that my course materials have been helpful for you, and I hope the nbasic compiler and other tools prove to be beneficial as well (aside from their occasional bugs). Don’t hesitate to email again if you have any specific questions or design problems that you think I could help to answer.

As a side note, based your previous email, I think you’ll be pleasantly surprised at the efficiency of nbasic’s output in most cases, and the complexity of the games it will allow you to create in any given time frame. You are of course welcome to use, abuse, change, and distribute the source code in any way you like.

Best of luck to you and your team.
-Bob

That is incredible! Do you think this community could help improve the efficacy of nBASIC?  If we could program games using such an accessible language, this would substantially reduce the time, effort, and cash required to write a game in assembly code.  If we want to promote local game production, there needs to be an easier way to program.

Thanks, Bob!