Page 1 of 3

Streetwalrus's first GameCube

Posted: Tue Oct 07, 2014 9:09 am
by novenary
(Before you ask, I'm Streetwalrus, I'm just using my old username here. :P)

So you may have noticed me on IRC during the past week. This is what I've been up to.
I wanted to run homebrew with whatever hardware I had lying around so I grabbed my unused Raspberry Pi and a bare metal tutorial, and set out to make a XenoGC clone.

Have some pics.

CN302 connector under the DVD controller board with wires attached :
Image

I tapped into the 5V line on the motherboard to power the Pi :
Image

The wire harness comes outside the back through holes I'd made for a previous audio jack mod. I used a connector from a floppy drive ribbon cable to attach it to the Pi :
Image

And here's the finished product. I have a 2043 block memory card in slot A and a 32GB SD in slot B :
Image

Source and schematics attached. I hope you like it.

Re: Streetwalrus's first GameCube

Posted: Tue Oct 07, 2014 10:46 am
by Diminuendo
as cool as using a raspberry pie for a Xeno is, I feel like it's a bit of a waste of the Pis potental

What else could be added to that pie to extend the functionality of the gamecube? >:)

Re: Streetwalrus's first GameCube

Posted: Tue Oct 07, 2014 10:56 am
by novenary
I know, right. :P

I'm pretty sure I can try to do other stuff with it, I just need to add more wires. Especially since I can insert stuff in the waiting loop that watches the drive for resets. I'm going to see how I can make it upload larger files, then I'll replace XenoShell with Swiss.

Re: Streetwalrus's first GameCube

Posted: Wed Oct 08, 2014 1:40 am
by Diminuendo
so wait we could use a pi as a WKF?

Re: Streetwalrus's first GameCube

Posted: Wed Oct 08, 2014 5:35 am
by novenary
I don't think so. The Xeno is definitely able to override disc contents (that's how it detects keys on bootup, by patching the game's apploader) but the SPI interface is way too slow to do anything as interesting as a WKF.

Oh by the way, I'm reading parts of YAGCD and I finally understand the IPL replacement exploit... >:D Only problem is, I need an SPI slave and the one in the Pi isn't exposed on the GPIO header (except on model B+ which I don't have).

Re: Streetwalrus's first GameCube

Posted: Thu Oct 09, 2014 4:45 am
by Duhasst0
Had to double check but the beaglebone black has that feature. You probably don't have that but I do, how did you do that on the pi? What software?

Re: Streetwalrus's first GameCube

Posted: Thu Oct 09, 2014 7:16 pm
by Plastic
Wow this could really open some doors and the pi is readily available too.

Re: Streetwalrus's first GameCube

Posted: Fri Oct 10, 2014 6:25 am
by novenary
Duhasst0 wrote:Had to double check but the beaglebone black has that feature. You probably don't have that but I do, how did you do that on the pi? What software?
I thought I'd posted a reply but it didn't go through apparently. I'm just bitbanging the GPIO pins. The source is attached to the first post. I basically reimplemented the Atmega side of the Xeno while keeping the GameCube side of things untouched.

Re: Streetwalrus's first GameCube

Posted: Fri Oct 10, 2014 6:34 am
by Duhasst0
Yeah I noticed the software after I posted, I just really like what you have done here and just overlooked the software.

I am going to have to alter the code a bit since it's going to need to be done for the bone. Just have to find time and need to research more, I don't have access to the Web at work so no research can be done there. Gotta look up some stuff and work on it at work then test at home.

Re: Streetwalrus's first GameCube

Posted: Fri Oct 10, 2014 6:40 am
by Diminuendo
ok, so what functions could we add using a pi on top of acting as a Xeno.

I imagine anything to do with video processing is out, (too much lag) maybe we could use it a a game recorder though.

I think I remember the GCs high speed port can be used to load games, maybe we could use it as a game loader through there?

Alternate boot mode for the Pi which makes use of the GCs controllers? Play Shovel Knight on my GC?

Re: Streetwalrus's first GameCube

Posted: Fri Oct 10, 2014 7:02 am
by novenary
Hmmm if I understand yagcd correctly, hi-speed port is connected to the east bridge which is an 8 bit, 81MHz parallel bus. I don't know how far GPIO using the GPU can go but it's definitely impossible with the Pi's CPU (which can apparently toggle a pin at about 14MHz).

Re: Streetwalrus's first GameCube

Posted: Sat Oct 11, 2014 3:48 am
by Diminuendo
would using a beaglebone or something instead work?

Re: Streetwalrus's first GameCube

Posted: Sat Oct 11, 2014 3:50 am
by Duhasst0
It should, runs Linux, had more gpios and has i2c, spi, and pwm.


EDIT: also, the rpi-gpoi.h file would need a rewrite, that I have noticed, other than that I haven't really gone through the source enough to really see if there is anything thing else that needs reworked.

Re: Streetwalrus's first GameCube

Posted: Sat Oct 11, 2014 6:35 am
by novenary
Hmmm I didn't write that header. :P What's the problem with it ?

Also my code runs on bare metal, since the Pi is powered by the GC it has to boot fast. It also gives me more accurate/constant timing and more CPU time if I wanna extend functionality.

Re: Streetwalrus's first GameCube

Posted: Sun Oct 12, 2014 5:35 pm
by Duhasst0
Well if used for the beaglebone black it doesn't set the right gpio values. I could be wrong but that is just my opinion. I haven't had much time at all to mess with anything. I will be watching tho cause this is interesting, I may go and get s pi anyway since that's all the microcenter near here stocks stuff for. Well that and arduino.

Re: Streetwalrus's first GameCube

Posted: Sun Oct 12, 2014 5:44 pm
by novenary
Oh right, the GPIO stuff is hardware specific of course. I didn't understand that you were talking about porting my code. Feel free to do that, just note that the CN302 connector uses 3.3V logic and I have no idea if it's 5V tolerant.

Re: Streetwalrus's first GameCube

Posted: Sun Oct 12, 2014 8:25 pm
by Lander
This can be a bit crazy, but with a Raspberry Pi, can someone replicate the functionality of a BBA???

Also, I posted your project in some forum in Chile ;)

Re: Streetwalrus's first GameCube

Posted: Sun Oct 12, 2014 9:35 pm
by novenary
Hmmm I don't think so. Hooking up to the EXI bus requires an SPI slave which is unfortunately not exposed on my revision of the Pi. The hardware is in the SoC and the pins are exposed on model B+ so you can give it a shot.

Re: Streetwalrus's first GameCube

Posted: Mon Feb 09, 2015 12:21 am
by thefinestdoge
excuse my noobness, but can someone send me a pre-compiled version?

Re: Streetwalrus's first GameCube

Posted: Thu Feb 12, 2015 10:06 pm
by novenary
Hmmm sure thing. Do you have the hardware ready ?

Just prepare a regular raspbian sd card then replace the kernel.img with the one attached (unzip first).

Re: Streetwalrus's first GameCube

Posted: Sun May 17, 2015 8:44 pm
by ArchReaper450
I'm a new to using the RaspberryPi for a XenoGC clone but I feel like I'm missing a step. The programing part of it really

Re: Streetwalrus's first GameCube

Posted: Thu May 21, 2015 11:18 am
by novenary
I think I stated it in the readme. Grab the kernel from the post above and replace the Linux one with mine on your SD card.

Re: Streetwalrus's first GameCube

Posted: Thu Dec 17, 2015 8:47 am
by gabeNcubeN
I know this is kind of a Necropost, but Yes I got my Gamecube working with this method!

Image

I'll be using this in the meantime while I wait for an AVR programmer in the mail.

Re: Streetwalrus's first GameCube

Posted: Tue Jan 03, 2017 4:45 pm
by nitroxeno
Streetwalker wrote:Hmmm sure thing. Do you have the hardware ready ?

Just prepare a regular raspbian sd card then replace the kernel.img with the one attached (unzip first).
I just picked up a gamecube from a garage sale and just so happen to have a few Raspberry Pis laying around in my junk drawer. Thinking of giving this a try, did you ever figure out how to replace XenoShell with Swiss? Thanks!

Re: Streetwalrus's first GameCube

Posted: Tue Jan 03, 2017 9:28 pm
by novenary
It's possible to do it but I've never bothered, I've been using a DVD to boot swiss. I have a qoob pro now so I desoldered the pi from my dvd drive.
I'd recommend you make the atmega version of the xeno which is a lot less annoying since it can fit inside the drive. This was just an experiment and a temporary solution (which I ended up using for two years), since I couldn't order/didn't want to wait for parts back then.