Ir a contenido


No te pierdas nada a la vez que nos apoyas desde las redes sociales.

Últimos comentarios

Información del archivo

  • Añadido el: Nov 20 2007 21:44
  • Actualizado el: Jan 14 2008 02:44
  • Tamaño: 161.59K
  • Visitas: 5627
  • Descargas: 567

Descargar YAOSM 2.0


yaosm version version 2.0
Yet Another OpenSource Modchip version 2.0


- Supports DMS/D2A/D2B chipsets
- Wii originals
- Wii original imports*
- Wii backups
- Wii backup imports*
- Gamecube originals
- Gamecube original imports**
- Gamecube backups
- Gamecube backup imports**
- Gamecube homebrew
- All medias (DVD-R, DVD-RW, DVD+R, DVD+RW)
- Dual Layer support
- Fully configurable speed setting
- Automatic region detection
- Stealth (well, at least as much "stealth" as any other Wii modchip currently available)
- "Safe" Configuration disc
- Optional status LED
- Optional disable switch (solder wire to reset switch)
- GameID overriding for some GameID's that was blocked by firmware 3.0
- Support for Super Mario Galaxy backups
- Gamecube audiofix

*Partial support.
See http://wiki.gbatemp....patibility_List for more info.

**Partial support, for 100% support use GCOS.
See: and


1. Program your chip with the hex file that match the chip you've choosed to use.
2. Connect the chip to your Wii. (
3. Make sure the first disc you use is a game from your own region.
4. If you later on want to change any settings, use the configuration disc.

Chip compability
Hexfiles are included for the following PICs:

Should be portable to any PIC chip that GCBasic supports and has the following requirements.
- 1024 words of program memory
- 64 bytes of ram
- A decent amount of hardware stack levels (no 12F509 is NOT a suitable chip)
- 128 bytes of eprom memory for configuration and drivecode (Actually only 6 bytes is needed for configuration
  if the program area is 2048 words or more)
- Internal oscillator (Sure, you can use an external if you really want to but is it worth the trouble?)

An excellent guide for opening and modding your wii can be found here:

By default the chip has automatic region detection, speedfix and audiofix enabled.
This can be changed by modifying the eeprom data before programming your chip or you can change it
later with the configuration disc (requires a GC controller).

Automatic region detection
The region setting will be configured automaticly the first time you insert a disc after programming
the chip so make sure that the first game you try is a disc from your own region. Doesn't matter if
it is a Wii or a Gamecube disc, backup or original.

If you, by mistake, used an import as the first disc then the chip will not play ANY backup or original discs
after that and you will need to reprogram the chip or you can use the configuration disc.

This is an explanation of the configuration bytes:

byte 0 = Regionpatching
0x00 = JAP, 0x01 = USA, 0x02 = EUR, 0x03 = disabled, 0x04-0xFF automatic region detection (default)

byte 1 = Speed setting (default speed for Wii backups)
0x00 = slow speed   (Gamecube speed)
0x01 = medium speed (Somewhere in between)
0xFF = fast speed   (Wii speed) (default)

byte 2 = Alternate speed setting (speed for Wii backups when same game is restarted)
0x00 = slow speed   (Gamecube speed)
0x01 = medium speed (Somewhere in between)
0xFF = fast speed   (Wii speed) (default)

byte 3 = Status LED behaviour when waiting for a new disc.
0x00 = LED is always off
0x01/0xFF = flashing (this is the default)
0x02/0xFE = fast flashing
0x03/0xFD = faster flashing
0x04/0xFC = insane flashing
0x80 = LED is always on but a bit dim
0x81 = LED is always on

byte 4 = Chip disable feature (you may want to disable this if you have a LED connected to pin3)
0x00 = Disable the chip disable feature (no weak pull-up on pin3)
0xFF = Enable the chip disable feature (this is the default)

byte 5 = Audiofix on/off
0x00 = Disable the Gamecube audiofix (always off)
0x01 = Disable audiofix by default (when powering up the Wii) and enable it by inserting a Wii disc before running your GC backup.
0x02 = Enable audiofix by default (when powering up the Wii) and disable it by inserting a Wii disc before running your GC backup.
0xFF = Enable the Gamecube audiofix (always on)(default)

byte 6 and higher = This part of the eprom contains patch data on the small chips (like 12F629/675)

About the speedpatching
Gamecube backups are not affected by the speed patching.

By default yaosm is configured to run Wii backups at full Wii speed however this can be changed if
you want to. The first speed setting (byte 1 in the eprom area) tells the chip what speed it should
use as default speed for Wii games. The alternate speed setting is used if you start a game, exit
to the menu, and the restart the same game.

Now some people, like me, prefer a silent console with slightly longer loading times so yaosm allows
you to configure those two speed settings.

So to get a silent Wii with the possiblity to turn on full Wii speed when you need it then you just
set the first speed setting (byte 1) to 0x00 before you program your chip. Wii backups will now run
the drive in Gamecube speed unless you exit the game and starts it again.

You can also do the opposite and set the first speed to fast and the alternate speed to slow. In this
configuration all Wii backups will run att full Wii speed but allows you to use slow speed if you choose
to by exiting the game and starting it again.

You can also change this whenever you want by using the configuration disc.

Schematics          12F6xx      16F630/x6/84     16F639      16F62x/64x/8x
----------           __ __         __ __          __ __          __ __
V = 3.3v           1|V   G|8     1|V   G|14     1|V   G|20     1|I   O|18
G = Ground         2|L   C|7     2|L   C|13     2|L   C|19     2|    C|17
C = Clock          3|D   O|6     3|D   O|12     3|D   O|18     3|     |16
O = Output         4|____I|5     4|    I|11     4|    I|17     4|     |15
I = Input                        5|     |10     5|     |16     5|G   V|14
                                 6|     |9      6|     |15     6|D   L|13
L = Status LED (optional)        7|_____|8      7|     |14     7|     |12
D = Disable switch (optional)                   8|     |13     8|     |11
Connect LED like this: L<>+LED-<>R<>G           9|     |12     9|_____|10
Use 680ohm for R with red LED and 470ohm       10|_____|11
with yellow or green LED.

For 12F629, 12F635, 12F676 and 12F683 chips the pinout is identical to WiiFree/OpenWii(PIC version)/Wiinja

Here's an attempt of showing the solderpoints on the Wii with ASCII:

            V  G
       *          *
--->* I C    * * *
/      * O      * - *
|               * * * *
|      | |            *
| * *  * * *     =
|       ||||||||||||||||||||
|      /                    
|     -                      -
|     -      Panasonic       -
|     -       G2C-D2B        -
|     -   (or DMS or D2A)    -
|     -                      -

  NOTE:  If you lack the solder point that the arrow points at, don't worry, it just means that you
         have the new circuitboard. The only modchip I know that uses that point is the WiiKey.

Status LED (optional)
Lights up when patching backups and when patching the region.
Also flashes quickly four times when settings are saved to the eprom.

The default behaviour for the LED is to flash when waiting for the chip is waiting for a new disc
change (idle) but that can be changed with a configuration byte in the eprom or with the configuration

For some chips there are a 2-LED version where the second LED should be connected to the pin marked as
"D" in the schematic above. That also means those versions doesn't come with a chip disable feature.

Disable switch (optional)
By soldering a wire between pin3 on the chip and the middle "pin" on the Wii reset switch the chip
can be disabled by holding the reset button while powering on the Wii. It may be easier and less
dangerous to just connect an on/off switch between ground (pin8) and pin3. I do not recommend soldering
to the reset switch unless you know what you are doing.

At the moment there doesn't seem to be a necessary to ever disable the chip so this feature should
be considered as highly optional.

If you have a LED attached to pin3 then it will "glow" since the chip configures this pin as an input
pin with a weak pull-up (to make sure it is always read as high unless it is connected to ground). If
this bothers you then the chip disable feature can be disabled completely by modifying the eprom data
before programming the chip or by using the configuration disc.

- Added Gamecube audiostreaming fix.

- Added GameID patch for Action Replay discs, all credit for this goes to Nekokabu. Consider this
  feature as experimental as it will only work on some AR versions.
- Added fix for Super Mario Galaxy backups.

- Sacrificed one of the status LED in favour of becoming 100% pin compatible with Wiinja chips which
  means that the chip can also be disabled by solder a wire between pin3 and the middle pin on the
  reset switch.
- Added a configuration byte to control the behaviour of the status LED when the chip is idle.
- Added a configuration byte to enable/disable the chip disable feature.
- Added support for dual layer discs.
- Added GameID overriding for GameIDs starting with W and Y (Makes them usable again on firmware 3.0)
- Changed GameID for future config discs
- Re-added support for 12F635/16F636/16F639 as it has been fixed (bug in GC basic)
- Minor code optimizations (saving a couple of bytes)

- Removed support for 12F635/16F636/16F639 since it has never been working.
- Redesigned the speed patching and made it fully configurable.
- Enabled the quick 4 flashes on status LED when eprom is updated.
- Added support for yaosm configuration disc.
- Removed support for rescue discs (no longer needed).

- Further optimizations to the code and fixed an issue with version 1.4.
  Version 1.5 hopefully is what version 1.4 should have been.

- Increased the number of loops before giving up while detecting type of game,
  which resulted in better detection of imports.
- Optimized the code for speed and size. New code is 22.5% smaller than version 1.3.
- Added silent mode (Speedfix default off but can be turned on when needed)
- Enabled support for rescue disc (reset/disable region patching)

- Fixed problem with imported Gamecube promotional and demo discs.
- Added medium speedfix since it works better for some people.

- Fixed problem with Gamecube original imports.

- Wii Original Imports shouls now work (thanks to the WiiFree team).
- Also region detection with originals now works.
- Some minor code optimizations.

- Initial release.

The WiiFree team, The OpenWii team, WAB, FuzzyLogic
     I've learned a lot from bits and pieces of your code...

The Great Cow Basic team
     Don't let the name fool you. The code is more efficient than you may think and
     the support is excellent.

     Excellent modding guide. Anyone planning to mod their Wii should read it.

     For the excellent GCOS and for further developing it to support dual layer discs.
Team Cyclops
     Without the Dual Layer checking tool, testing DL support would have been a lot harder.
     For their free samples program. I would never have learned PIC programming without it.

     I've borrowed code from the DVD tool sources to save time when relocating the mainloop
     and it certainly saved me some time.

The people on the yaosm forums at WiiNews
     Thanks for helping out with testing, it's really, really appriciated.
     Special thanks for those who provided the information needed to sort out the SMG problem.

All the people in the WiiNewz forums.
     The feedback given to the different WiiFree version has helped in the past.

Question & Answers
Q: Could you please port it to 12F509?
A: No, I actually tried, but that chip has too many limitations. It's just not worth the trouble.

Q: This is just a WiiFree clone isn't it?
A: No, I've studied the code for WiiFree, OpenWii, WAB and even the 10F202 assembler port of
   OpenWii 1.3. I've also done my own tests and experimented a lot. But sure, I didn't invent
   the wheel, it is, without doubt, very much based on WiiFree.

   I've tried to understand what each moment do and applied my own logic to it. Some parts like
   the gametype detection and when to do the regionpatching is something I've invented myself.
   I've borrowed from WiiFree, WiiFree has borrowed from yaosm. That's the good thing about free
   code. ->
   My primary goal with yaosm is that it should be stable. All releases so far has been stable,
   except for version 1.4 which turned out to be really unstable on DMS/D2A. I have a D2B chip
   so I had no way to predict this. Stability comes first, features comes second.
   WiiFree is no longer developed:

Q: But why?
A: Well, first of all the lack of include files to JalV2 makes it complicated to port WiiFree
   to other PIC chips. Secondly, it's great fun to write your own modchip and I wanted to learn
   more about PIC programming. Thirdly... Did I mention that it's fun?

Q: My 12F629/12F675/16F630/16F676 doesn't work!
A: Make sure you read the chip when it is new and write down it's bandgap setting. Make sure
   you use this bandgap setting when you program the chip. The programming software _should_
   preserve your bandgap setting but under some circumstances it may be overwritten and wrong
   bandgap setting can lead to an unstable or non-working chip.
   Also make sure you used the correct version. Due to space limitations in these chips (and
   a few others) there are one version for DMS/D2A and one for D2B.

Q: I'm about to buy a chip, which should I get?
A: I would go for the 12F683 since it is small, like the other 8-pin chips but has twice the
   amount of codespace and eeprom space compared to the 12F629/12F675. It also has the
   capability of running at 8MHz which is twice the speed of the 12F629/12F675 chips.
   Currently yaosm has come to the point where all features no longer fits into the smaller chips
   so a 12F683 is the right choice.

Q: WiiKey has all those fancy features like DVD-to-SD-card dumping and stuff, should I get one?
A: Guess what, that's just Gamecube homebrew applications and the WiiKey disc should work on
   just about any modchip that is currently available (except for the WiiKey-specific configuration)

Q: What about Gamecube imports, what's all this talk about GCOS?
A: With GCOS(Gamecube Operation System) you can boot Gamecube imports by first booting GCOS
   and then swap to your Gamecybe imports and let GCOS boot it.
   In fact the yaosm configuration disc doubles as a GCOS boot disc and it can be used to boot
   your Gamecube imports.

   I also strongly recommend the GCOS multigame creator that you can find here here:

   Apart from making it possible to put several GC backups on the same disc it boots the your imports.

Q: I'm planning to import games from USA and/or Japan and I live in Europe but I've heard that it
   can brick my Wii. Is that true?
A: Imported games has been reported to brick(can't even get into the menu), semi-brick Wiis(can't enter
   the settings) or just giving you duplicate news and forecast channels. Never ever use imported games
   unless you know what you are doing.
   To check what games are safe to run this page is a great resource: http://wiki.gbatemp....patibility_List

Q: Can you port yaosm to <insert any non-PIC chip here>?
A: yaosm is written in GCBasic and GCBasic only supports PIC processors. Porting it to any other
   chip requires a full rewrite to another programming language. PIC processors are small and
   inexpensive and you can build a cheap, but working, programmer for $5 or even less so why bother?

Q: What do you mean by "safe" configuration disc?
A: yaosm detects if the configuration disc has been inserted and only then will it allow changes to
   the eprom.

Q: Why isn't there a DMS version? I only found hex files for D2A and D2B.
A: The D2A version is also for DMS Wii's.

Q: Well, my DVD controller is a D2C, can I still use yaosm?
A: No, the D2C has closed the door for modchips that are designed for DMS/D2A/D2B Wii's however there
   are at least two commercial chips available for the D2C at the moment.

comments powered by Disqus