From WikiTemp, the GBAtemp wiki
The WiiFree Team Logo

WiiFree Info

A PIC12F629

WiiFree is an open-source PIC based modchip.
It supports various chip installations:

Chip Price (approx) Pins Soldering points LED support LCD support
PIC 12F629 1.01$ 8 5 Yes No
PIC 12F675 1.10$
PIC 12F683 1.29$
PIC 16F628 2.33$ 18 Yes
PIC 16F628A 1.86$


source: WiiFree official forum

This is what is does:

  • Automatic detection of the region, for the regionfree fix (the first time an working Wii game is used)
  • Run gamecube originals
  • Run gamecube backups
  • Partial regionfree support for gamecube games (originals and backups)
  • Run Wii originals
  • Run Wii backups
  • Partial regionfree support for Wii games (backups only) (must be patched to same region as Wii)
  • Support for DMS, D2A and D2B!!
  • configurable Speedfix
  • Support for alle media: DVD+R, DVD+RW, DVD-R, DVD-RW
  • Configuration DVD for setting up your region
  • Support for 12F629, 12F675 and 12F683 chips (the installation for the 12F683 is the same as the 12F629)

Installing info

8 pins PICs installation schematic
LED installation schematic
18 pins PICs installation schematic + LED + LCD

You only have to solder 5 points. See images on the right for installation schematics.

LEDs installation is optional.

Status LED behaviour (source: manual.txt)
IDLE One steady LED one blinking LED (the blinking LED indicated that the chip communicates with the drive)
Patching Both LEDs are steady
Patching successfull The steady LED toggles, the blinking LED starts blinking again
Patching unsuccessfull The steady LED does not toggle, the blinking LED starts blinking again
Configuration of region alternate blinking of both LEDs for a shor period of time

With the WiiFree EasyConnect mod (see external links at the bottom of the page) you can do a "Quicksolder" installation.

Programming info

ExtraCheap programmer

source: WiiFree official forum, gsm2xtreme's 3ad

Programming Wiifree under Windows XP with JDM or cheap programmer.

  • Copy icprog.sys to same destination as Icprog.exe
  • Start icprog.exe -> if you get an error just ignore this
  • Go to "Settings" then "Options" then "Programming"
  • Check "Verify during programming"
  • Go to "MIsc" and check "Enable NT/2000/XP Driver" and restart ic-prog
  • Go to "settings" then "hardware" and check if you choose "JDM Programmer" and com1
  • Select "PIC12F629" in upper right drop-down box.
  • Open Wiifree HEX and then you can programm it to PIC.
  • when pop-up "OsCCAL = 3428h Do you want to use value from file (3FFFh) instead?" press "NO"

The extra-cheap programmer on the left can program a PIC12F629. It can be built with less then 10$


source: WiiFree official forum

2.51 - 2.51b : Updated installation schematic. All binaries/sources remain the same. 16F628A confirmed to work.
2.50 - 2.51 : Added bunch of features for the LCD screen:
-Shows chipset (D2A,D2B)
-Shows region (JAP,USA,EUR,OFF,N/A)
-Shows drivespeed (2x,4x,6x)
-Shows chip activity
-Setting region @ first succesful boot
-Checking original/backup
-Patching backups
-Bad connection (soldering job) check... hehehe
Also updated schematics, now using USB 5v point, and LCD support for 16F628A (compiles, unable to test, should be ok, let us know). We used a 2x16 LCD as basis for the lcd messages, as it's the most common size. More and longer lines are easily implemented, so give a shout on the forums if you'd be interested in that. Also we don't have every LCD in the world so give us your input if something is up, should work though, first make sure you didnt fuck up yourself. 12F6xx code remains the same.
2.44a - 2.45 : Added a manual.txt on how to use WiiFree. Only patching the maxdiscsize if it wasn't recognized by the drive now (which could result in better dectection of media in some cases). Official support for 16F628(A), now the LEDs are working on the proper pins. Added compiler_constants library, so you should be able to compile WiiFree yourself now. 2.44 - 2.44a : Fixed a tiny bug in the media compatibility. And offcourse releasing a new version before you guys could test
2.44 (sorry). Promise: no new patch before the weekend!!
2.43c - 2.44 : Made the disc patching more generic, which seems to solve some problems people experience. Fixed the lack of sleep.
2.43a - 2.43c : Updated the installation schematic for the 16F628. The code/hex is the same as 2.43a. Added a tool to fix gamecube audiostreaming.
2.43 - 2.43a : Lack of sleep bug.
2.42a - 2.43 : Fixed a bug where in some cases after leaving the Wii off for an extended period of time, the region patching gave problems.
2.42 - 2.42a : Fixed 16F628 support (please test, because we don't have a 16F628). For 12F629, 12F675 and 12F683 nothing changed.
2.41 - 2.42 : We did have to do some reinserts again with our different region games.. So this is another attempt to 100%. The status LED now only toggles after successfull patching.
2.40 - 2.41 : Again we improved the region patching for Wii games, hopefully no more reinserts. (because we want it 100% right instead of 99%)
2.39a - 2.40 : Blinking LEDs after successfull configuration. More robust detection of autoregion. Made the code better readable and documented.
2.39 - 2.39a : Sometimes the region could be automatically set to the region of an import game if that was the first one inserted. Now it will only set the region to the region of a game that starts succesfully. Added fast blinking leds for 12F683 when the region is patched. Autoregion patching does not work when the disc is already in the drive when the Wii is powered on.
2.38b - 2.39 : Better automatic detection of region (and a way out if it goes wrong). Even if the region is set wrong the !!NEW!! ConfigDVD will always boot, so you can reset the region. Better region patching for GC discs. We really need your input.. especially the testresults. As WiiFree gets more and more mature, there are more and more things that can go wrong. Testing just takes most of our time (and more and more time with each release), so it would be a great if you could help us out on testing (not only the bad results, but also the good results are welcome). Special thnx goes out to Bell again for his great ideas and building things so fast that we have difficulty keeping up.
2.38a - 2.38b : fixed bug where you couldn't set the speed anymore with the config dvd. Better automatic detection of region.
2.38 - 2.38a : fixed a bug in GC/Wii disc detection
2.37 - 2.38 : Automatic detection and setting of region, the first time a Wii game from the Wii's region is used. Disabling the region patch from the config DVD, disables the region patch AND the automatic configuration of the region. Partial regionfree support for GameCube games (both originals and backups). Documented some source. WiiFree is now published under a license (WTFPL).
2.36 - 2.37 : Original Wii import support. Try the 2.36 version to test the GC import experimental support
2.35 - 2.36 : Using speedfix method used in 2.34a instead of the one in 2.33a, it works better on our consoles.
2.34a - 2.35 : Created a version with experimental GameCube regionfree (thnx to Bell). And changed the region patching to only 2 bytes per region We need your feedback!! And please feel free to modify the source and submit your modifications. Sorry for the bad documentation of the source (lack of time).
2.33 - 2.34a : Just messed around with the speedfix again. Tell us what works best, version 2.33 or 2.34. Version a, fixed bug in new configuration code
2.32 - 2.33 : Your daily update of WiiFee ;-) This time we reduced the size of the code with 20% and changed the moment of the speedfix.
2.31 - 2.32 : Again changed the patching routine. Better timing for region patch... Almost full 12F629. Updated the Readme. Made more friends :-)
2.30 - 2.31 : Changed the patching of backups. Faster/better detection/starting of backups. No more strange noises coming from the drive.
2.29 - 2.30 : Some code optimisations
2.28 - 2.29 : We need testresults, the problem is that we don't have a lot of Wii's to test on. Something that works here, might nog work on other Wii's. Feel free to alter the code to something that works fine on your Wii, and post the results. 2.29test1 has been renamed to 2.29
2.27 - 2.28 : Just experimented with the code.
2.26 - 2.27 : We think we improved the region patching. Please tell us if it is really better or not!!
2.25 - 2.26 : Optimized code, some stuff might work better. Configurable region and speedsettings with the NEW config dvd. You might experience flickering of the config menu, sorry but we didn't feel like fixing that at the moment. You can set the region and speed in the hex file by changing the DATA EEprom byte 0 and 1. Byte 0 is the region: 0 for JAP, 1 for USA, 2 for EUR, FF for none. Byte 1 is te speedsetting: 0 for low, 1 for medium, FF for max Or just use the config dvd the old config dvd wont work anymore.
2.24 - 2.25 : Cleaned the code. Removed a loop which could influence the region patching. Improved region patching
2.23 - 2.24 : Fixed minor bug with infinite loop
2.22 - 2.23 : Again we think we've done it.. Lack of sleep and not owning all the Wii's in the world sometimes makes it difficult to design a modchip. Anyways, we would like to thank you for your feedback on the forum. Keep posting your feedback, it's greatly appreciated
2.21 - 2.22 : Improved detection mechanism
2.20 - 2.21 : Fixed bug where originals were not detected in some cases
2.00b5 - 2.20 : Full drive speed support. All media support (DVD+R, DVD+RW, DVD-R, DVD-RW).
2.00b3 - 2.00b5 : Fixed big BUG!! Thank you all for testing and suggesting improvements.
2.00b2 - 2.00b3 : Fixed original Wii games not playing. Fixed some gc games not playing.
2.00b1 - 2.00b2 : Better detection of backup discs, due to updated patching method. If none of your discs is working, you've got the regionsettings wrong.
1.51 - 2.00b1 : Added Multiregion support for Wii games. Use the configuration DVD to set your region. Or use one of the supplied hexes.
1.50 - 1.51 : Updated the code, added comments. Better detection of backup disc insert. Cleaner drive detection and alternate LED blink when error.
1.23 - 1.50 : GC backups support!!! Updated the patching code, removed the wait_disc routine AND ..... Disco!!!
1.22 - 1.23 : Updated the code, functionality is the same.

Firmware download

External Links

WiiFree Forum
WiiFree Development Forum
WiiFree EasyConnect MOD
WiiFree France

WiiFree Art

 UMMMMMMMMMM@   nMMMMMMMMMMM.  .MMMMMMMMMMMEMMMMMMMMMM@  @MMMMMMMMMMX    .tQ@MMMMMMMc                                                                  
 QMcXCCCCCC1M   M#7CCCCCCCcMt  .MYXCCCCCtYMM#cXCCCCCCtM  Mo7XCCCCCYM#   $M@02tCCCCYMQ                                                                  
 cMS222222IUM,  MZz22222222MM  BMt22222I2IME@Y1nnnnnnUM  MU1nnnnnntMM  MMW9II2I2SntM@                                                                  
 .MW9888888AM7 .MUZ88888889MM  MMUZ888889$$vM0WWWWWWW$M  M#QWWWWWW0M$  M08b88889#M@MQ                                                                  
   MZbbEEEbZ#M MZ8bEEEEEEbbAM SMUbEEEEE8bM AMz988888ZEM  ME6Z88888U@MMzAbbEEEb8bE9zMMMzZbbbbb8E8U88ZBM MMAbbbbbb6#$6bbEE00WMM   @Mb8bbbbb90@Z8bEE0Q0MM 
   MW8bEEEb80M.M2bbEEEEEEEbAMvB@6bEEEEE9#M EMIbEEEEb8EM  M08bEEEEb2@$@MM9bEEEbbb9MMM0M28bbbbb8998bbZBM1MSZ8bbbE6MW@@A8bbEE00M:  MEZ8bbbb8WMIMA8bbEE0bMI
    M9bbEEEbo@MzZbEEbWMAbbb9oMMn8EEEEE8bM  WMIbEEEEb8EM  M08bEEEEbUM@  MZbbEEEEbAM.  M6bEEEEEE9@M     M0ZbEEEEbb9Z6AbbbbbbbZBM BMUbEEEEb8868U8bbbbbb81@
    MW8bEEEb2#Mz8bEE6@M28bbZnMMobEEEEE9@M  BMIbEEEEb8EM  M08bEEEEbUM@  MZbbEEEEbAM.  M6bEEEEEE2M      M0ZbEEEbbbAU69966666AIQM BMUbEEEEbb8IA99666666A7@
    cMIbbEEbZZ8bbEE8bMYM2bb860E8bEEEEbIM.  $MIbEEEEb8EM  M08bEEEEbUM@  MZbbEEEEbAM.  M6bEEEEEbZM      MQZbEEEEb2M. MWA999966$M BMUbEEEEEA@@ EM2699996zM
     MZbbEEbbbbbEEEA@Q MAbbb8ZbbEEEEE8EM   $MIbEEEEb8EM  M08bEEEEbUM@  MZbbEEEEbAM.  M6bEEEEb88M      MQZbEEEEbzMi MQUA66666WM $MUbEEEEbUMM EMoA66669t@
     MB8bEEEbbEEEEbzMY MB8bbbbbEEEEEE6@M   $MIbEEEEb8EM  M08bEEEEbUM@  MZbbEEEEbAM.  M6bEEEEbb8M      M$ZbEEEEbIMi MW9888889$M bMUbEEEEbAMM 8M2Z888bZ1@
     vMIbbEbbbbbEbAMM   Mb8bbbbbbbbEbIM.   $MIbbEbbb8EM  M08bbbEEbUM@  MZbbbbEbbAM.  M6bbEbbb88M       ZMB9bEbbEbEEAbbbbbAWMY    MM68Ebb8EZ0A8bbbE99MM 
      MUAAAAAAAA6AnME   MMzAAAAAAA6AU8M    @MnAAAAAAU9M  M8UAAA6AASM@ .M2AAAA6AAoM. .MoAAAAAAUUM.       YMM@066666696668#MM:      MMMW9A666669669QMME