yaosm version version 1.7
--------------------------
Yet Another OpenSource Modchip version 1.7
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)
- Fully configurable speed setting
- Automatic region detection
- Stealth (well, at least as much "stealth" as any other Wii modchip currently available)
- "Safe" Configuration disc
*Partial support.
See [url escribió:http://wiki.gbatemp.net/index.php/Wii_Region_Patcher_Compatibility_List[/url] 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.htmlThings 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/54303-guide-soldering-troubleshooting-pic12f629-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 (has been confirmed to work on 16F628, other are untested)
16F630/16F676
16F636/16F639
16F684
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)
- Eprom memory for easy configuration (can be hardcoded though)
- 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/54303-guide-soldering-troubleshooting-pic12f629-progging-wiikey-install-have-look.htmlBy 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/56191-yaosm-resources-configuration-discs-everything-else-you-may-need.htmlConfiguration
-------------
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)
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/56191-yaosm-resources-configuration-discs-everything-else-you-may-need.html)
Schematics 12F6xx 16F630/x6/84 16F639 16F62x/4x
---------- __ __ __ __ __ __ __ __
V = 3.3v 1|V G|8 1|V G|14 1|V G|20 1|I O|18
G = Ground 2|L2 C|7 2|L2 C|13 2|L2 C|19 2| C|17
C = Clock 3|L1 O|6 3|L1 O|12 3|L1 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| L2|13
L1= LED 1 (optional) 7|_____|8 7| |14 7| L1|12
L2= LED 2 (optional) 8| |13 8| |11
Connect LEDs like this: L1<>+LED-<>R<>G 9| |12 9|_____|10
Use 680ohm for R with red LEDs and 470ohm 10|_____|11
with yellow or green LEDs.
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.
LEDs (optional)
---------------
The LEDs are optional and here's a short description on what they do.
LED1: Lights up when patching backups and when patching the region.
Also flashes quickly four times when settings are saved to the eprom.
LED2: Is lit when waiting for disc and unlit when disc has been detected.
Changes
-------
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 LED1 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
Always including the source with the hex file. That's the spritit!
Feel free to borrow anything from my code if you find something you can use.
The OpenWii team
At last it seems you've gone from delayed source to open source.
WAB
Good luck with your PS3.
FuzzyLogic
I learned lots of PIC assembler just reading your code. Cool mod, the 10F202.
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.
Microchip
For their free samples program. I would never have learned PIC programming without it.
Nintendo
For understanding that the fun factor is more important than the horsepower.
All the people in the WiiNewz forums.
The feedback given to the different WiiFree version is invaluable information.
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/56191-yaosm-resources-configuration-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.
Q: Can you port yaosm to
?
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.]bell - creador de yaOSM