Wiikey Fusion API

From GC-Forever Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

This page will hold information regarding the reversing of the Wiikey Fusion API from the Wiikey Fusion game selection menu. It's purpose is so that Swiss can support booting games from it.

Types of Commands

It appears the Wiikey Fusion has two types of commands. One set is to access the SPI Flash and one is to access the SD card/Settings.

Commands

SD Based

(All commands set DILENGTH (0xCC006018) and DIIMMBUF (0xCC006020) to 0 before running).

DICMDBUF0 (0xCC006008) DICMDBUF1(0xCC00600C) DICMDBUF2 (0xCC006010) Type Returns Description
0xDD000000 offset (16bit) data (16bit) IMM Status (?) Write to Wiikey Fusion RAM (used to store offset locations for the current "disc")
0xDE000000 offset (32bit) 0x5A000000 IMM Status (?) Set Offset
0xDF000000 0x00010000 0x00000000 IMM No SD Card detected if ((Response & 0x000F0000) == 0x00070000) SD Card Detect

SPI Based

Embedded bootable disc layout

An El-Torito Bootable GC Disc with the following details sits on the Wiikey Fusion Flash

Offset Description Size
0x00000000 Standard GC Header "GWKP99" with magic (C2339F3D) at 0x1C 0x20
0x00000020 Standard Game Name "WKF!" 0x04

Flash Layout

The flash is basically an El-Torito Bootable GC Disc with some "firmware" related data injected into it.

Offset Description Size
0x00000000 El-Torito bootable GC disc image 0x70000
0x001D2440 Custom Apploader Header to extend it for the region override patch ("2009/01/01", 0x81204000 0x00004590 0x00020000) 0x20
0x001D6460 Extra apploader data for region free and other settings 0x590
0x001E1000 Firmware(?) 0x3800
0x001F0000 Serial 0x10
0x001F1000 Firmware(?) Backup 0x3800

Extra Notes

  • The Wiikey Fusion only likes to perform reads to 32 byte aligned buffers
  • Writing anything to dvd[0] or dvd[1] will make a normal read fail on the WKF
  • It is catered around WBFS format and FAT fragmented files may not be an option