Close
0%
0%

Standalone Gameboy Player

Turning Nintendo's Gamecube accessory into a standalone console.

Similar projects worth following
This project aims to add a power supply, controller input, AV output and ancillary components to the Nintendo Gameboy Player, turning it into a standalone console that can be used without a Gamecube.

Overview

The Gameboy Player accessory allowed Gamecube owners to play Gameboy Advance, Gameboy Color and Gameboy games via their console. It connected via the accessory port and a boot disc provided the software to allow the Gamecube to interface with it, providing control, video and audio output.

Inside the Gameboy Player

For my project I'm working with a European (UK) version. Opening up the case revealed a single PCB, shielded with metal casing. My board is marked as DOL-GBS-20. I've seen photos of boards marked DOL-GBS-01 and DOL-GBS-10 which are slightly different; for this project I'll only be describing information and modifications for the DOL-GBS-20. They may not work if repeated on other board revisions.

There are three main areas of interest on the board. At the back is the Gamecube connector/interface, at front right are various voltage regulators and lastly at front left is the CPU and ancillary components.

The CPU (marked CPU AGB A) on the bottom of the board is the same as the CPU in the original Gameboy Advance. There's a supporting SRAM chip, link port and of course the game slot.

The board naturally lacks other normal GBA components such as the screen, buttons and speaker. There also isn't a clock crystal directly connected to the CPU - more on this later.

The interface takes up the job of communicating between the Gamecube and the GBA CPU. This area is dominated by the GBS-DOL chip which on one side connects to the Gamecube port and on the other to the pins of the GBA CPU. In theory GBS-DOL emulates the screen, button and speaker circuitry, passing control inputs from the Gamecube and returning audio/visual data to be processed by the Gamecube.

Finally the power zone regulates power to the interface and GBA zones.

Options for taking the Gamecube out of the loop

There are two ways to achieving this that sprang to mind. The first is to emulate the Gamecube through the interface port with some kind of microcontroller. The second is to take GBS-DOL out of the loop as well and hook up control, audio and video circuitry directly to the GBA CPU. The latter seemed within my abilities.

Let there be light - or at least, power

The first thing I tackled was the power zone. There were test points for the various voltage lines, including the line for the interface zone and lines for the GBA zone. Analysing the board layout led me to believe the board was probably powered by 3.3V, as there were regulators for 2.5V and 5V but not 3.3V as needed by the GBA zone. Hooking up a 3.3V power supply to the board via Gamecube connector pin 1 and GND to connector pin 2 resulted in power to GBS-DOL but not the GBA zone.

After analysing the components and routing in the power zone, it appears that TP50 controls the power transistor and regulators for the GBA zone. I hooked up TP50 to 3.3V, checked the other power TPs and confirmed that the expected voltages were present - and thus the GBA zone should be 'switched on'. This means that GBS-DOL can turn just the GBA components on and off, and that I could do so too.

Test Point

Expected Voltage

Equivalent GBA voltage line

TP46

3V

VDD3

TP47

5V

VDD5

TP48

2.5V

N/A (GBS-DOL VDD)

TP49

2.5V

VDD2

TP51

3.3V

N/A (board VCC)

Clock and control

One obvious missing component from the GBA zone is the clock crystal. Instead there is a clock crystal labelled 33WKSS4BT connected to GBS-DOL. This appears to be a 33.554432MHz Kinseki crystal, which is 8x the normal GBA crystal frequency. It's likely GBS-DOL does a clock division and outputs to the GBA CPU.

TP32 is connected to CK1 on the CPU and CK2 appears to be unconnected. With power to the board, there didn't appear to be a clock signal when hooked up to a basic logic analyser. This might not be the same for other board revisions - Mogi_codemasterv needed to lift the corresponding pin on GBS-DOL to hook up an external clock and get it working. Both of us are using a clock signal generated...

Read more »

  • Integrating a different HDMI encoder

    kyokohunter07/18/2021 at 15:29 0 comments

    After the issues with the vertical alignment and sound output with the HDMI encoder used by gbaHD, I went in search of an alternative encoder. I've been working to integrate hdl-util's HDMI 1.4b encoder; when I tested their demo I got sound and although the vertical alignment issue persisted, the much smaller vertical sync size means that it's far more likely that the GBA video would appear fully on my TV.

    One idea for the vertical sync is to hold the output on the GBA clock on startup for a few cycles. It'd be a bit of a blunt workaround but may help for my particular build and setup.

    I haven't yet got a workable output, which I think is down to getting the timings just right. The GBA video needs to lead the HDMI video, but if it's too fast either the line buffer will overfill or the GBA will do a frame refresh before the HDMI video has been drawn. I need to work on a model of the video timings so I can find the right balance.

    Updates from here on will probably be a bit slow as I take it a bit easier on this project. And if new Analogue Pocket pre-orders come up before I've completed this, I'll probably mothball the project. Hopefully I can get it working before that!

  • Gordon's alive!

    kyokohunter06/17/2021 at 16:45 0 comments

    Progress has been a bit slow but I've finally got some form of video output thanks to Zwenergy's gbaHD project. It's not correctly vertically aligned, which I think might be due to a poor SPS (vsync) connection. I also don't have audio output; it seems hit or miss if your TV is compatible with the audio output format. I'm using a SNES Classic Mini controller as opposed to the original SNES controller and that seems to be working fine. Finally I noticed I'm not getting GameBoy Player features (okay, just rumble really) in games which I have some thoughts on why that's happening, although actually having working rumble is beyond the scope of what I'm planning. I'll be updating the project details slowly with more details on the above developments!

  • Flex PCB test point connector

    kyokohunter02/17/2021 at 16:28 0 comments

    I designed and ordered some flex PCBs from Oshpark to make it easier to tap into the test points on the Gameboy Player.

    My designs are simple - I found a couple of minor issues where I got the alignment of a couple of pads out and I could have taken a bit more time to include a few more test points, routing the PCB(s) around other components.

    I found it fairly easy to solder the boards in and they'll make it much easier to solder wires to the test points, as well as providing some much needed mechanical strength to the soldered connections to the test points. I can also tap into some of the test points with pigtail clips before committing to soldering wires.

  • HDMI incoming...

    kyokohunter02/12/2021 at 15:42 1 comment

    I started this project after coming across InsideGadgets AdvanceVGA board, which adds VGA out to the original Gameboy Advance. I ordered one last December and I can't wait to get it working with the Gameboy Player. Since then I'd also come across the GBAHD project, which uses a SeeedStudio Spartan Edge Accelerator board with an FPGA to add HDMI out. So I thought, why not try both VGA and HDMI out?! I'm excited as this will be my first FPGA project. It'll be a while before I have time to get it working, but I'm looking forward to it and with the help of Codemasterv who has also been investigating the use of GBAHD with the Gameboy Player hopefully we'll crack it sooner rather than later!

View all 4 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates