Giter Site home page Giter Site logo

louisopen / picoboot Goto Github PK

View Code? Open in Web Editor NEW

This project forked from webhdx/picoboot

0.0 0.0 0.0 62.87 MB

Raspberry Pi Pico (RP2040) based IPL replacement modchip for GameCube

License: GNU General Public License v2.0

Python 39.01% C 32.29% CMake 28.69%

picoboot's Introduction

PicoBoot

PicoBoot

This is a long awaited IPL replacement modchip for Nintendo GameCube. It's open source, cheap and easy to install.

Features

  • it's open source
  • uses $4 Raspberry Pi Pico board
  • very easy installation, only 5 wires to solder
  • programmable via USB cable, without any drivers and programs
  • automatically boots any DOL app of your choice
  • uses "IPL injection" approach superior to mods like XenoGC

Video guides and overview of the features

๐Ÿ›  Installation guide

1. Prerequisites

Links above are affiliate and I get small comission ๐Ÿ’ต if you buy these products. Thanks to everyone who used links above ๐Ÿ™

2. Flashing Raspberry Pi Pico board

Go to the latest release page and download picoboot.uf2 file. Now connect Raspberry Pi Pico board to your computer while holding BOOTSEL button pressed. If it's been done correctly you'll see RPI-RP2 mass storage device show up. Drag and drop picoboot.uf2 file to that device. It'll automatically eject and green LED will light up if it was programmed correctly. Unplug USB cable from Pico and proceed with hardware installation.

3. Preparing SD card

Format your SD card to FAT32 or exFAT. Download the latest Swiss release from here and grab swiss_rXXXX.dol file, rename it to ipl.dol and copy to the root of your SD card.

4. Hardware installation

Wiring diagram

FAQ

Can I use new Pico W board?

It depends. According to the reports it works but the green LED won't light up which may be confusing at first. I haven't tested it personally therfore I can't provide you with any support at this time. It's planned to fully support Pico W and WiFi functionalities in the future.

My console doesn't start - I see a black screen.

This indicates problem with wiring. Make sure there are no unintentional shorts near RTC-DOL (U10) IC. It's recommended to use wires as short as possible. The wires can't be too thin, you need at least 26 AWG for 3.3V and GND. Optimal location for PicoBoot is between controller port board and fan assembly. Especially I do not recommend installing PicoBoot in Serial Port 1 slot - it makes wire runs too long and may stop working with future updates! Use only official diagrams, any alternative soldering points and chip locations are not guaranteed to work.

I don't understand how it's better than XenoGC

XenoGC is a drive modchip, it can only patch disc data on the fly. This means you have to use a boot disk to run Swiss and play games from an SD card. PicoBoot uses completely different approach - injects custom payload during console boot sequence. This means it can load any application instead of a built in GameCube menu. It will work even if your disc drive is not working.

I installed your modchip and now my console doesn't work

Sorry. I do not take reponsibility for any damage done by installing this modchip. Do it at your own risk!

Can I use other RP2040 boards?

Yes, go for it. Just respect the license agreements and don't expect me to provide any support for your board. PicoBoot only supports official Raspberry Pi Pico module at the moment.

Will it work if I have XenoGC installed?

Yes, you can use it with XenoGC intalled.

I appreciate your work. Can I support you in any way?

This project is free and available for everyone. If you want to support it anyway, consider using โค๏ธ Sponsor button.

Compiling firmware

Make sure your Raspberry Pi Pico environment is set up on your machine.

Build Makefile and all required build scripts:

# cmake .

Then grab any DOL file you'd like to boot and run processing script:

# ./process_ipl.py iplboot.dol ipl.h

Do not change ipl.h output file name.

Once it's ready and ipl.h file has been created you can build the firmware:

# make

If everything worked you should see new file picoboot.uf2 created in the main project directory. Now hold BOOTSEL button on Raspberry Pi Pico and connect USB cable. New mass storage device will appear. Copy picoboot.uf2 file to RPI-RP2 device. Once it's done it'll automatically eject itself. Disconnect the cable and you're all done.

Hall of Fame

I'd like to thank people who helped making PicoBoot possible:

Acknowledgements

Some parts of this project use GPL-2.0 licensed code from:

picoboot's People

Contributors

kjuno avatar webhdx avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.