webhdx / PicoBoot

Raspberry Pi Pico (RP2040) based IPL replacement modchip for GameCube
GNU General Public License v2.0
1.42k stars 90 forks source link

IPL binary processing #22

Open 9ary opened 1 year ago

9ary commented 1 year ago

Currently the PicoBoot build process involves running a PicoBoot-specific script on the DOL to be included in firmware. While it's not a bad idea to keep this separate from the upstream iplboot build script, I think the process should at least be automated.

Additionally, I believe we've discussed using a very small stub as the IPL binary in order to load an unencrypted DOL from PicoBoot flash. This would do two things:

Of course all of this is predicated on overhauling the current codebase to remove the need to duplicate bits in the payload, and enabling PicoBoot to process commands from the GC.

toru173 commented 1 year ago

Why do we duplicate bits? I assumed it was either:

A) To get the same bit on 4 pins simultaneously, to allow for higher drive current B) To accomodate for some voodoo required in the Pico’s PIO.

Extrems commented 1 year ago

The answer is A). Although only 2 pins are actually used, webhdx found it only worked with 3-4 pins.

criptych commented 1 year ago

The answer is A). Although only 2 pins are actually used, webhdx found it only worked with 3-4 pins.

If that's the case, why set the drive current to 4ma and duplicate pins instead of using one pin set to 8ma? Honestly curious, I figure there's an aspect I'm missing since it's specifically set to 4ma (although that's apparently the default as well).