JonSharp.net:70:projects:gameboy_ethernet ======================================== # Gameboy Ethernet Project ## Overview The goal of this project was to allow a Nintendo Gameboy Color to function as a remote reporting tool via a standard Ethernet connection. This was accomplished using various hardware. Using a custom built RS232 convertor circuit, the Gameboy connects to the serial port of a special Java embedded device named TINI. The TINI hardware also includes an Ethernet interface, making the TINI essentially an Ethernet-to-Serial adapter. The TINI establishes a socket connection with our Java server which sends useful information back to the TINI which sends the output directly to the Gameboy’s LCD screen. Read the following sections for the details of each component. ## Hardware - Nintendo Gameboy Color - Dallas Semiconductor's TINI - RS232 signal convertor circuit ## GB Software The Gameboy software was written in assembly language (The Gameboy has a Z80 workalike CPU.) and assembled using Rednex Gameboy Development System. RGBDS The assembled ROM image was then flashed to a 4Mb Bung flash cartridge via Bung’s GB Xchanger. The original design and code are Ken Kaarvik’s. Many thanks go to Ken for the inspiration for this project, his code and permission to expand on his very excellent idea. The original code was once available on Ken’s page -- not sure if it still is. (TXT) Source - commboy.asm (BIN) Full project zip ## Java Client The Java client code runs on the TINI, providing the Gameboy with the connection to the Java server running on our Linux workstation. The client code begins by creating a serial port object and opening it. Then it opens a socket connection to the Java server. When the server sends the information to client, the client then outputs directly to Gameboy over the serial port. This is a simple application providing the Gameboy an Ethernet interface. (TXT) Source - GBClient.java ## Java Server The Java server is on a Linux system and remains open to connections while running. The server waits until a client connects and then sends out system information such as uptime and cpu temperature. (TXT) Source - GBServer.java ## Project Notes Many things were required to pull this project off. First, we had to learn assembly for which McKee Library proved helpful. Then we had to learn about the Gameboy’s hardware. The Internet is full of great resources for that. The MAX232CPE circuit was constructed in under 3 hours. The TINI we used is running TINI Firmware 1.01. In order to allow our Java client software to execute without invoking it manually, (telnet over the Ethernet device) we had to add a line to Slush’s (TINI’s shell) /etc/.startup file. All coding was done using Vim. Special thanks to Dr. Halterman for his help in this project! Here are some of the project costs: - TINI w/ board - $75 - Gameboy Color - $70 - Bung Flash cart and Xchanger - $90 - Parts for RS232 circuit - ~$15 - Hours of mad coding - priceless ## Pictures (IMG) Start with the Gameboy Color (IMG) Build a circuit around MAX232CPE (IMG) Put it in an attractive project box (IMG) Get your TINI... (IMG) And put it all together