Presenting: emulators/ucon64, the multipurpose game backup utility

2013-08-05 20:08

uCON64 is a multipurpose video game backup utility now available in FreeBSD Ports as emulators/ucon64.

It can, for example, toggle region flags on a Sega Saturn disc image, convert images for use on flash carts and classic HK copiers, pad ROM images, check ROM images against your DATabase, or apply fan-made fix and translation patches in IPS, APS, PPF.

To demonstrate, I applied J2s’s Final Fantasy IV translation patch to a Japanese Final Fantasy IV ROM image and converted it for play on my copier:

unzip ff4ev321.zip
  1. Archive: ff4ev321.zip
  2. inflating: FF4EV321.IPS
  3. inflating: ff4ev321.txt
ucon64 Final\ Fantasy\ IV.smc -i FF4EV321.IPS
  1. uCON64 2.0.0 Unix (FreeBSD) 1999-2005
  2. Uses code from various people. See 'developers.html' for more!
  3. This may be freely redistributed under the terms of the GNU Public License
  4. Wrote backup to: Final Fantasy IV.bak
  5. Applying IPS patch...
  6. Patching complete
  7. Wrote output to: Final Fantasy IV.smc
  8. NOTE: Sometimes you have to add/strip a 512 bytes header when you patch a ROM
  9. This means you must modify for example a SNES ROM with -swc or -stp or
  10. the patch will not work

Fixed the header checksum:

ucon64 --snes --chk Final\ Fantasy\ IV.smc
  1. uCON64 2.0.0 Unix (FreeBSD) 1999-2005
  2. Uses code from various people. See 'developers.html' for more!
  3. This may be freely redistributed under the terms of the GNU Public License
  4. /usr/home/nicole/ff4/Final Fantasy IV.smc
  5. Super Com Pro/Super Magicom/SMC/Super Wild Card (1.6XC/2.7CC/2.8CC/DX/DX2)/SWC
  6. 000081b0 20 bc fe 60 ad e3 0f 20 bc fe 60 ff 20 f0 94 6b ..`... ..`. ..k
  7. 000081c0 46 69 6e 61 6c 20 46 61 6e 74 61 73 79 20 34 20 Final Fantasy 4
  8. 000081d0 28 4a 32 65 29 20 02 0a 03 00 c3 01 33 53 cc ac (J2e) ......3S..
  9. Super Nintendo Entertainment System/SNES/Super Famicom
  10. Final Fantasy 4 (J2e)
  11. Square
  12. Japan
  13. 1572864 Bytes (12.0000 Mb)
  14. Padded: Maybe, 16 Bytes (0.0001 Mb)
  15. Interleaved/Swapped: No
  16. Backup unit/emulator header: Yes, 512 Bytes
  17. HiROM: No
  18. Internal size: 8 Mb
  19. ROM type: (2) ROM + SRAM + Battery
  20. ROM speed: 200 ns (SlowROM)
  21. SRAM: Yes, 8 kBytes
  22. Version: 1.1
  23. Checksum: Bad, 0xcdef (calculated) != 0xaccc (internal)
  24. Inverse checksum: Bad, 0x3210 (calculated) != 0x5333 (internal)
  25. Checksum (CRC32): 0x3b97b364
  26. Wrote backup to: Final Fantasy IV.bak
  27. 000081dc 10 32 ef cd .2..
  28. Wrote output to: Final Fantasy IV.smc

Converted it to Game Doctor format for my GD-SFIII:

ucon64 -q -gd3 Final\ Fantasy\ IV.smc -o .
  1. uCON64 2.0.0 Unix (FreeBSD) 1999-2005
  2. Uses code from various people. See 'developers.html' for more!
  3. This may be freely redistributed under the terms of the GNU Public License
  4. Wrote backup to: ./sf12Fin.bak
  5. Wrote output to: ./sf12Fin

Split the image to fit on 1.4MB diskettes:

ucon64 -s sf12Fin -o .
  1. uCON64 2.0.0 Unix (FreeBSD) 1999-2005
  2. Uses code from various people. See 'developers.html' for more!
  3. This may be freely redistributed under the terms of the GNU Public License
  4. /usr/home/nicole/ff4/sf12Fin
  5. Game Doctor SF3(SF6/SF7)/Professor SF(SF II)
  6. 000081b0 20 bc fe 60 ad e3 0f 20 bc fe 60 ff 20 f0 94 6b ..`... ..`. ..k
  7. 000081c0 46 69 6e 61 6c 20 46 61 6e 74 61 73 79 20 34 20 Final Fantasy 4
  8. 000081d0 28 4a 32 65 29 20 02 0a 03 00 c3 01 10 32 ef cd (J2e) .......2..
  9. Super Nintendo Entertainment System/SNES/Super Famicom
  10. Final Fantasy 4 (J2e)
  11. Square
  12. Japan
  13. 1572864 Bytes (12.0000 Mb)
  14. Padded: Maybe, 16 Bytes (0.0001 Mb)
  15. Interleaved/Swapped: No
  16. Backup unit/emulator header: Yes, 512 Bytes
  17. HiROM: No
  18. Internal size: 8 Mb
  19. ROM type: (2) ROM + SRAM + Battery
  20. ROM speed: 200 ns (SlowROM)
  21. SRAM: Yes, 8 kBytes
  22. Version: 1.1
  23. Checksum: Ok, 0xcdef (calculated) == 0xcdef (internal)
  24. Inverse checksum: Ok, 0x3210 (calculated) == 0x3210 (internal)
  25. Checksum (CRC32): 0x857d14c8
  26. Wrote output to: ./SF12FINA.078
  27. Wrote output to: ./SF12FINB.078

Then, copied over to two 3.5” diskettes:

Mac OS 9 Finder showing file copy to diskette.

Loaded it:

Game Doctor SF-III loading patched Final Fantasy IV image from diskette.

Super Famicom with Game Doctor SF-III running Final Fantasy IV.

And played!