|
|
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. |
|
|
|
|
|
|
 |
Source - commboy.asm |
text/plain |
|
 |
Full project zip |
application/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. |
|
|
|
|
|
|
 |
Source - GBClient.java |
text/plain |
|
|
|
|
|
|
## 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. |
|
|
|
|
|
|
 |
Source - GBServer.java |
text/plain |
|
|
|
|
|
|
## 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 |
|
|
|
|
|
|
 |
Start with the Gameboy Color |
image/jpeg |
|
 |
Build a circuit around MAX232CPE |
image/jpeg |
|
 |
Put it in an attractive project box |
image/jpeg |
|
 |
Get your TINI... |
image/jpeg |
|
 |
And put it all together |
image/jpeg |