Archive for the ‘Gaming’ Category

Using a TL866II+ programmer to update GCDual firmware

Monday, January 20th, 2020

I have a GCDual board, which is a modification for a Nintendo Gamecube to give it HDMI output. Firmware updates for this little PCB come out occasionally and to apply them requires attaching an EEPROM/flash programmer to the various pins and rewriting the chip directly.

I got wind of the latest 3.0a firmware update that actually lays the groundwork for future updates to be applied through software instead and figured it would be good have this.

There is a video that shows how to do the firmware update however I had a few issues with that process:

  1. I haven’t actually installed the PCB yet, (it’s in my TODO pile). This isn’t actually a problem as in the video, the 3.3V is provided by the Gamecube PSU instead of the programmer, but the programmer can supply this. In theory it should also negate taking precautions to ensure that the programmer doesn’t accidentally short something on the main Gamecube board.
  2. The process is using a CH341A programmer which I don’t have, and if I did get one it seems to be poorly supported on macOS. The programmer looks like it just needs to be able write SPI flash devices.

I do have a TL866II+ programmer which has a 6-pin ICSP port and comparing the pinout of that and the CH341A programmer looks like both programmers have the same required pins. The TL866II+ comes with an ICSP harness that is terminated as 6 individual female sockets so with a piece of pin header I arranged the pins in the correct order. Here is how the programmer expects the pins to be arranged logically:

So it was just a case of marrying those up to the header on the GCDual PCB. For reference it was 1-3, 2-2, 3-1, 4-4, 5-6, 6-5 for each pin on the TL866II+ to the GCDual respectively, with pin #1 on the GCDual being GND. This is what it looks like:

You can then insert the pins into the GCDual PCB and use a bit of light pressure to make contact without the need to solder anything:

Note that you need to bridge the two solder pads marked JP2 at the top right of the PCB in order to do anything with the flash chip otherwise the FPGA will fight with your programmer on the SPI bus when power is applied and you’ll read and/or write garbage.

Now we just need to flash the chip. For driving the programmer, I use the open source minipro rather than the provided software. The only bit of required information is the make & model of the flash chip; the original video shows it being programmed as an M25PE40 but my PCB actually has an MX25L4006E. The datasheets show these two chips are mostly identical anyway however minipro likes to check the chip ID. Writing the new firmware is as simple as the following:

$ minipro -i -p MX25L4006E -s -w GCDual_ADV7125_3.0a.bin
Found TL866II+ 04.2.109 (0x26d)
Activating ICSP...
Chip ID OK: 0xC22013
Warning: Incorrect file size: 346144 (needed 524288)
Erasing... 1.71Sec OK
Protect off...OK
Writing Code...  5.19Sec  OK
Reading Code...  2.48Sec  OK
Verification OK
Protect on...OK

The flags used are: use ICSP instead of the ZIF socket (-i), choose the correct flash chip (-p MX25L4006E), don’t complain that the firmware is smaller than the capacity of the chip (-s), and provide the firmware itself (-w ...).

Remember to remove the solder bridge with some wick prior to installing the PCB.

PlayStation 3 HDD Upgrade

Thursday, December 30th, 2010

I recently got Gran Turismo 5 for my PS3 and it helpfully offered to install bits of itself to the hard disk to speed things up. I think it claimed about 10GB was needed and at the time I just accepted it. Then I got thinking, along with this I’ve blindly installed a fair bit of downloadable content for GTA IV and Dragon Age: Origins and so far nothing has told me the hard disk is full but I wondered how close I was.

A quick spot of archaeology found the box and apparently I had been a tight-arse and only purchased the 40GB model and the system settings indicated I had just over 3GB left so the next decent-sized DLC would’ve bitten me.

Thankfully I had recently upgraded my MacBook Pro with a whopping 750GB hard disk so I had the original 160GB gathering dust, plenty big enough. Sony make it really easy to upgrade the hard disk with clear instructions, all I needed to do first was perform a full backup to some external USB storage prior to swapping the hard disks over. I warn you now, this takes ages. The backup process claimed to back up 27GB (where’s my other 10GB gone?) and that took around an hour. Maybe I’m just expecting too much out of USB2?

Most of this is obvious stuff, but I remembered there was some brouhaha about some content such as game save data being non-transferable and I knew Dragon Age was one such game. I assume this is to prevent trading save games to unlock trophies as part of some sort of willy waving contest but this has the knock on effect of being unable to transfer the data if you replace your PS3 for some reason. While I was waiting for the backup to finish I considered what might be happening:

  • Does the process skip non-transferable data?
  • Does it back it up and then not restore it?
  • Does it back it up, restore it and then prevent you from loading it within the game?
  • Does a PS3 with a different hard disk count as a different system?

I assumed it wouldn’t be so silly to include the hard disk in the system profile but upon restoring the first thing I would do is check which save game data was restored and if it still worked or not, keeping the original 40GB hard disk safe so I could always downgrade again and reconsider.

Upon swapping the hardware, the PS3 correctly reformatted the hard disk which still had the OS X partitioning present and then I started the restore process which took even longer than the initial backup, I think it took about an hour and a half.

The process seems to have worked and restored everything, my Dragon Age game saves still seem to load with no problems. Weirdly the PS3 now reports that I’ve used 47GB on the new hard disk, whereas I had only used around 34GB on the old one accounting for the stupid capacity rounding hard disk manufacturers love to use, so either there’s quite the rounding error going on or the PS3 reserves a percentage of the disk for its own purposes.