Resource icon

YAOSM v1.9 v1.9

yaosm version version 1.9
--------------------------
Yet Another OpenSource Modchip version 1.9

USE IT AT YOUR OWN RISK!


Features
--------
- 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

*Partial support.
See http://wiki.gbatemp.net/index.php/Wii_Region_Patcher_Compatibility_List for more info.

**Partial support, for 100% support use GCOS.
See: http://psx-scene.com/forums/yaosm/55455-gcos-multigame-version-howto.html and http://psx-scene.com/forums/404629-post1.html


Things that are still missing
-----------------------------
- Gamecube audiofix


Quickstart
----------
1. Program your chip with the hex file that match the chip you've choosed to use.
2. Connect the chip to your Wii. (http://psx-scene.com/forums/wiifree...12f629-progging-wiikey-install-have-look.html)
3. Make sure the first disc you use is a game from your own region.
4. If you later on want to tweak the speed settings, use the configuration disc.


Chip compability
----------------
Hexfiles are included for the following PICs:
12F629/12F675
12F635
12F683
16F627/16F627A/16F628/16F628A/16F648A
16F630/16F676
16F636/16F639
16F684
16F87/16F88

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
- Internal oscillator (Sure, you can use an external if you really want to)


Installation
------------
An excellent guide for opening and modding your wii can be found here:
http://psx-scene.com/forums/wiifree...12f629-progging-wiikey-install-have-look.html

By default the chip has automatic region detection and speedfix 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.

If you, by mistake, used an import as the first disc then the chip will not play ANY backup discs
after that and you will need to reprogram the chip or you can use the configuration disc found here:
http://psx-scene.com/forums/yaosm/5...ation-discs-everything-else-you-may-need.html


Configuration
-------------
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)
0x02-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)
0x02-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)
0x01-0xFF = Enable the chip disable feature (this is the default)

byte 5 and higher = This part of the eprom contains 109 bytes of patch data which will result in 281
bytes of drivecode that is necessary to bypass the check performed by SMG.
Do NOT change ANY of these bytes!


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.
(http://psx-scene.com/forums/yaosm/5...ation-discs-everything-else-you-may-need.html)


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
disc.


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.


Changes
-------
1.9
- 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.

1.8
- 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

1.7
- Re-added support for 12F635/16F636/16F639 as it has been fixed (bug in GC basic)
- Minor code optimizations (saving a couple of bytes)

1.6
- 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).

1.5
- 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.

1.4
- 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)

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

1.2
- Fixed problem with Gamecube original imports.

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

1.0
- Initial release.


Credits
-------
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.

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

emu_kidid
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.

Microchip
For their free samples program. I would never have learned PIC programming without it.

Erant
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.

It is also heavily optimized and on a 12F629 there is still 20% free space in the coding area
and most of the eprom is unused. I expect that if I ever figure out how to do a GC audiofix
it will be using drivecode and I believe the remaining code space and eeprom should be enough
for that.

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.

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.
You won't need it now but who knows what will be needed in the future.

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. You'll find it here: http://psx-scene.com/forums/yaosm/5...ation-discs-everything-else-you-may-need.html

I also strongly recommend the GCOS multigame creator that you can find here here:
http://psx-scene.com/forums/yaosm/55455-gcos-multigame-version-howto.html

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 Super Paper Mario from USA and I live in Europe but I've heard that it
can brick my Wii. Is that true?
A: From what I've heard Super Paper Mario will update your Wii if it doesn't allready have the
latest system update installed and using an import will make it update your Wii with the wrong
update. The safe way is said to make sure you've updated your Wii before you run the game for
the first time. But if you ask me, I would recommend waiting for a PAL version to be released.

Other games has been reported to semi-brick Wiis so that it will become impossible to enter the
Wii settings so great care should ALWAYS be taken when running imports.

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: Super Mario Galaxy still give me an "Error 001" message when I try to start it. Why?
A: For chips with only 128 bytes of eeprom only the drivecode for DMS/D2A or D2B is stored.
Choosing the wrong hex for your Wii will result in exactly this problem. The chips with
256bytes of eeprom, like the 12F683, doesn't have this problem.

Q: This is so great and I really appriciate your work, do you accept donations?
A: Yes I do, but remember yaosm is FREE. You do not need to donate anything unless you really
want to. For more information go here: http://psx-scene.com/forums/yaosm/61433-donations.html
Author
SylverReZ
Downloads
98
Views
867
First release
Last update
Rating
0.00 star(s) 0 ratings

More resources from SylverReZ

General chit-chat
Help Users
  • No one is chatting at the moment.
  • BigOnYa @ BigOnYa:
    I went to auction at a mom/pops video game store few months ago that was closing, and bought 11 slims for $200, 1 was DOA but 10 work fine. so hella deal. Already rgh3'ed 8 of them. But most younger kids don't even want anymore, unless it plays stupid "fortnight", or newer shit.
  • K3Nv2 @ K3Nv2:
    Think I'm gonna use my giftcard balance on a nice pair of headphones but $100 is still limited
  • K3Nv2 @ K3Nv2:
    Soundcore q30s are nice but they leak so much sound it sounds like speakers
  • Psionic Roshambo @ Psionic Roshambo:
    Ken spend the 100 on a gun and skii mask, wait for a jogger at the park jewelry money and headphones!
    +1
  • K3Nv2 @ K3Nv2:
    If only Amazon sold guns
    +1
  • K3Nv2 @ K3Nv2:
    Fucking dick heads think it's a bad idea to get a gun 2 days later
    +1
  • BigOnYa @ BigOnYa:
    Wait, I thought you were the dickhe...nvm
    +1
  • K3Nv2 @ K3Nv2:
    I got balls on my chin and two dicks on my forehead sir
    +1
  • BigOnYa @ BigOnYa:
    Sorry, no offense there double dickhead chinballs.
    +1
  • K3Nv2 @ K3Nv2:
    Chicks still love it
    +1
  • BigOnYa @ BigOnYa:
    "Mommy, look, what is that?". "That's your soon to be daddy."
    +1
  • K3Nv2 @ K3Nv2:
    That you'll only see once
    +2
  • Veho @ Veho:
    Double dickhead chinballs is still better than double dickhead eyeballs.
    +1
  • Veho @ Veho:
    As in, the balls will grow in your eye sockets.
  • K3Nv2 @ K3Nv2:
    I paid 5 grand to get them moved to my chin
    +1
  • Veho @ Veho:
    This you?
  • K3Nv2 @ K3Nv2:
    My hair can't be that cool
    +1
  • Veho @ Veho:
    Ah, yes, portrait mode, surely the best way to film a row of people. If only there were some way to fit a wider shot, at the expense of height... if only...
    +1
  • K3Nv2 @ K3Nv2:
    4k portrait mode?
    +1
    K3Nv2 @ K3Nv2: https://youtu.be/Rx-KuevU4h4?si=1MoSvL-y5fFFHf58 Damn kinda sad for Iran +1