Parece que Tmbinc enseño una parte de su projecto:
(Disculpen,no me dio tiempo de traducirlo)
Fuente :
http://www.gcdev.com
Ok, i think all of your read my plans on how to overtake the world leadership by making a rom replacement without any commercial background. (by the way, i want to thank my employer for giving me enough money *and* still allow me to have enough time to do stuff like that. Thus this little commercial break: If you ever want buy a DVB receiver, get a linux powered
Anyway.
I want to receive some (technical) comments what we need and what we don't need.
First, my hack requires GND, VCC3, VCC5 (optional, for external MAX232), CLK, DI, DO, DO-loop. That are some more wires than the 4 wires of the viper. Most of the wires are really easy to solder, except the lifted pin.
So on the first view, their method seems better. The reason i don't like it is simply that it requires an awful hack to intercept the boot process.
My method is to completely replace the rom chip (from the EXI's point of view), and loop-through it when required.
This allows me to simply add features to the IPL chip. Normally, the ROM, RTC and SRAM is mapped into the "memory space" of the chip.
For example the professionell nintendo devkits have an FPGA instead (plus the IPL chip for SRAM and RTC), and do it pretty much like i do (and i promise, i didn't knew that before , and replace the rom and add GPIOs (used for I2C) or a serial port.
I like that method, as it allows one to talk to the chip very "natively". The way the viper communicates is really "strange".
The way they do it involves problems with other devices on the exi bus, my method should be clean. There's a config byte in the memory space, which can be written to control an optional complete looptrough (for booting the original bios), and some GPIOs (for example for debug LEDs).
I'm implementing an UART-like device, but currently i'm running out of CPLD space, thus maybe i can't implement RX. But probably it can be optimized later to allow everything.
Flashing is done in parallel. I will build severeal different headers, which will all connect to a 15-pin connector which will nicely fit into the gamecube. The external adapters can be used to either jtag flash the CPLD, to use serial port, to programm serially or, maybe, to attach something like an USB chip - or they can be used as GPIO for any hardware you like to attach.
From the software side:
I'll build a real IPL replacement, with a graphical menu, and it will be able to:
- boot from game DVD
- boot from SD card (using SD<->EXI adapter like the nintendo SD card adapter)
- boot from network (BBA)
- boot original bios
- boot differnet images from ROM
- maybe boot from memory card
The software can be updated in-system as well as externally using a parallel plug. I prefer the in-system way, but in case you break everything, it will allow to flash it externally, too.
My mod does have these DVD-cover-hack. I don't know what it is good for, i guess it's only to have a method of booting the original bios by sensing the switch. If it ever becomes necessary to override this switch, we can add it without any problems.
Someone said that there is a bios which can be flashed to the viper, which allows booting burned DVDs. I doubt that, but if it's true, it can surely be ported to my mod as well as a loader which can be loaded using psoload.
So that announced hack should be really no advance of the viper, if it exists at all.
What do you think? What would like to see as a feature? I'll write linux drivers for all components (serial port, if it gets implemented in a usable way, mtd driver for flash, GPIO stuf...), and provide all necessary documentation on how to use them, for the people who don't want to read the source (as said - i'm going to release all sources and stuff for free)
And finally i'd like to have a more decent name than "ipl replacement". Be creative - how would you name such a thing?
Que les parece? Opinen