This project is still EXPERIMENTAL, please consider that it might not work consistently and on all consoles.
This is a patch for HG/SS games that enables communications with the Pokewalker without needing a IR capable cartridge, as it uses the 3DS built-in IR transceiver. Thanks to RTCom, the ARM7 processor is able to communicate with the ARM11, which has access to the IR transceiver registers.
If you are interested in another project related to Pokewalker hacking, check pwalkerHax. You can find a demo of my two projects in action Here (pwalkerHax + RtcPwalker).
- Patch the TWL_FIRM using TWPatch, make sure that RTCom is enabled before patching. You can use this guide as a reference on how to patch the firmware and how to load it when using TWiLight Menu++.
- NOTE: If you decide to patch the TWL_FIRM enabling RTCom only you can just leave the patched
TwlBg.cxiin thesd:/luma/sysmodules/, in this way every time you boot a DS game, the patched TWL_FIRM will be loaded. Just remember to enableexternal FIRMs and modulesin the Luma3DS configuration.
- NOTE: If you decide to patch the TWL_FIRM enabling RTCom only you can just leave the patched
- The game patch is implemented as an Action Replay code: just add the Action Replay code relative to your game version to your usrcheat.dat file or directly use the usrcheat.dat provided (place it in
_nds/TWiLightMenu/extras/). All files can be found in the releases GitHub section. - Enable the patch in the cheat menu of TWiLight Menu++.
- Communication with the Pokewalker is tricky, as the 3DS needs to follow the strict timings of the Pokewalker. RTCom adds a big overhead to the communication, thus the communication is SLOW and UNSTABLE, but it works 😉. Simply try again if it fails, especially when sending the pokemon to the Pokewalker, it should work after a few tries. If it still doesn't work, try to return to the Pokewalker selection menu and try again.
- Make sure to point the Pokewalker towards the 3DS IR transceiver, which is the black spot on the back side of the console.
- If the game doesn't boot while the patch is enabled, it means that you don't have RTCom installed: make sure that TWiLight Menu is loading the patched TWL_FIRM.
- This patch was only tested on an Old3DS, as it is the only console I have access to. It should work on a New3DS as well, but I can't guarantee it.
- I haven't tested if the game works while this patch is enabled, so I would recommend to disable it if you want to play the game normally, even though there shouldn't be any problem.
This project wouldn't have been possible without the contributions of the community, in particular:
- TWPatch/RTCom by Sono and Gericom.
- Circle Pad patch for SM64DS by Shoco -- I borrowed many parts of his code.
- Pokewalker hacking by Dmitry -- Thanks to his excellent work I was able to understand the communication protocol between the Pokewalker and the game, it was very useful during debugging.
- libn3ds by profi200 -- I used his implementation of the i2c protocol to communicate with the IR transceiver.
This project required many hours of reverse engineering and painful debugging, if you appreciate my works and want to support me, you can offer me a coffee ☕❤️.
