Hacking [RELEASE] drxtool - gamepad+drh firmware hacking utility

  • Thread starter Thread starter WulfyStylez
  • Start date Start date
  • Views Views 41,912
  • Replies Replies 81
  • Likes Likes 44

WulfyStylez

SALT/Bemani Princess
Member
Joined
Nov 3, 2013
Messages
1,149
Reaction score
2,627
Trophies
0
XP
2,888
Country
United States
Hey! I finally got around to rewriting this and making it more useful. Hopefully this will inspire and assist with some useful hacks and research. From the readme:

drxtool enables extraction, modification, and rebuilding of drc (gamepad) and drh (host) firmware binaries, including actual firmware (e.g. drc_fw.bin, drh_fw.bin) as well as language data (lang_00.bin, etc.) this subsequently allows for firmware RE and patching, switching out graphics, enabling debug modes, etc.
drop a binary onto drxtool to extract it to [filename]_extracted. it will be split into its components, including separate sections for firmwares. language files are a big blob since their layout is determined per-firmware-version.
drop an extracted folder onto drxtool to rebuild it to [foldername].bin.
in both cases, drxtool can be invoked from command line/terminal for additional debug output.

this has been tested and is working on all DRC, DRH, and language data dating back to the very first external beta builds for near-final gamepad hardware (v16, though v15 likely ran on this hardware as well). earlier hardware uses a different update format (the hw has all likely been destroyed by now.)

to flash binaries with ios-level hax, try bumping up the first big-endian u32 in blob_header.bin by 1, as well as bumping up the version in app.xml. updating VER_.bin isn't necessary as the gamepad and drh don't care what version they're on, only IOS.
other update methods include potentially using libdrc to push an update directly to the gamepad (strip the first 0x10 as this is a big-endian header used by IOS) or by writing the payload directly to the serial eeprom (strip the first 0x10+0x1000+0x4000), which is useful for unbricking.

good luck, and try not to brick!

changelog:
2.0 - 12/14/2016:
- initial public release
1.0 - 08/10/2016:
- it lives!


downloads (v2.0):
MEDIAFIRE
MEGA
 

Attachments

Last edited by WulfyStylez, , Reason: minor clarification
The files your tool (good tool!) supports are updates binaries.

In the full DRC firmware (32MBs - you can obtain it by hardware-dumping) 1st release, with no updates (so i suppose v5128):
ERR starts at: 0x1D2D8E
IMG starts at: 0x245830
INDX starts at: 0x100000
LVC starts at: 0x100070
UMI starts at: 0x23EEEE
VER starts at: 0x100070
WIFI starts at: 0x195AD8

The section in which they are located in the full firmware is 0x0100000 (8.388.608 bytes).
 
Last edited by asper,
this is for extracting the gamepad firmware drc_fw.bin drh_fw.bin and all the other stuff on the gamepad firmware
 
  • Like
Reactions: T9PRO
Yep, modifications to allow stuff like region unlocking/changing and enabling the DK Menu (not that you need it on retail, but...) are possible now. I'd check out libdrc's RE docs for a crash course on firmware format and gamepad internals, since there's quite a lot going on.
As an example, you can tear into the main ARM processor's firmware by loading LVC_.bin as ARM little-endian at address 0x0 in your tool of choice.

EDIT: I do have plans to release something allowing people to change boot screens too, as was demonstrated in the past. At the moment that tool's still in proof-of-concept state (haven't touched it since I made that video) and needs a rework, so expect to see it eventually.
 
Last edited by WulfyStylez,
I hate to ask, since this is a question that ALWAYS gets ask, but is it possible (in the future) to develop this to a point where you could stream the gamepad screen to a PC window?
 
  • Like
Reactions: yuyuyup
  • Like
Reactions: AboodXD
I think most dificult is the touch screen gamepad, i dont know if a gamepad stream on pc would be good.
@WulfyStylez we can control a game with Pro Controller and use a touch screen gamepad on other device?
Because Gamepad will not last forever, one day will broke. @Maschell is doing a great work with HID but we have to look a way to substitute touch screen, i dont know if this is possible.
 
Last edited by Antonio Ricardo,
  • Like
Reactions: TotalInsanity4
It isn't It still needs to be the same region as the base console to connect so JPN drc won't link to USA wii u.

I thought the problem was that it could link up and work normally until an update tries to apply, which will fail as the gamepad region does not match the console region.
 

Site & Scene News

Popular threads in this forum