ikorb / gcvideo

GameCube Digital AV converter
679 stars 85 forks source link

Learning How to Program GCVideo to Custom Shuriken V3 Wii Board #65

Closed Orcut closed 3 years ago

Orcut commented 3 years ago

Hello!

I was hoping I could get some help on figuring out how to program as I am very new to this process, and don't fully understand how it works or what is needed to program. I haven't been able to find any information that explains the process enough for me to understand unfortunately. I have a Shuriken V3 Wii board that is ready to install besides the programming that needs to be done. I was hoping someone would be able to help me, or point in the right direction of how the programming process works.

Thanks for your time! :)

ikorb commented 3 years ago

There are a number of possible methods for programming the board, but in the end they all amout to the same thing: Put the correct data in the external SPI flash. This requires specialized hardware.

I don't know anything about a "Shuriken V3 Wii" board (the real Shuriken V3 had a Gamecube-specific layout), but if it is similar to the original board, it will have contacts somewhere that can be used to connect an SPI programmer and a jumper that stops the FPGA from accessing the SPI flash while it is being programmed. You would need to find an SPI programmer and software that can drive it, connect it to the correct pins, connect the jumper that stops the FPGA and write the gcvideo-dvi-shuriken-v3-wii-3.0e-spirom-complete.bin file from the release archive to it. After that, you would remove the jumper, disconnect the SPI programmer and install the board, hoping that it works first try.

Another option would be to desolder the SPI flash chip from the board, write to it using a compatible chip programmer and re-solder it to the board again.

As for suitable programmers for either of these approaches, in theory just a Raspberry Pi and the command-line tool "flashrom" could work if you know your way around a LInux command line and can figure out the required connections. Another option that I've seen mentioned are the many cloned CH341A-based programmers that are commonly available on eBay and similar sites, but I'm not sure how user-friendly they are either.

Soory for the hand-wavy description, I have no idea what hardware you have in front of you and since it was designed and possibly manufactured by someone else, that party is the one that should provide support to you as they have informatin about it that I lack.

drandreas commented 3 years ago

@ikorb wrote a very good overview. I chose the route he suggested above using an RPi.

In my case I was flashing https://github.com/Arthrimus/Wii-HDMI:

  1. "Bridge" JP1 on the board to disable the FPGA so it does not interfere with the RPi accessing the SPI-Flash.
  2. Hookup the SPI-Bus (MISO, MOSI, SCLK, CS) to the default RPi PINs and also supply 3.3V and GND.
  3. Enable RPi's SPI-Flash/MTD driver by adding dtoverlay=jedec-spi-nor,flash-spi0-0 to config.txt of the RPi.
  4. During boot and the dmesg-command should show the RPi detecting the SPI-FLASH

Now you can access the Flash in linux e.g. with flashrom or as /dev/mtd*

Important: Remove the JP1-Bridge when you are done. JP1-Disables the FPGA-Startup