dolphin/Source
Léo Lam fdfe57a49b IOS: Implement MIOS functionality
This implements MIOS's PPC bootstrapping functionality, which enables
users to start a GameCube game from the Wii System Menu.

Because we aren't doing Starlet LLE (and don't have a boot1), we can
just jump to MIOS when the emulated software does an ES_LAUNCH or uses
ioctlv 0x25 to launch BC.

Note that the process is more complex on a real Wii and goes through
several more steps before getting to MIOS:

* The System Menu detects a GameCube disc and launches BC (1-100)
  instead of the game. [Dolphin does this too.]

* BC, which is reportedly very similar to boot1, lowers the Hollywood
  clock speed to the Flipper's and then launches boot2.

* boot2 sees the lowered clock speed and launches MIOS (1-101) instead
  of the System Menu.

MIOS runs instead of IOS in GC mode and has an embedded GC IPL (which
is the code actually responsible for loading the disc game) and a PPC
bootstrap code. To get things working properly, we simply need to load
both to memory, then jump to the bootstrap code at 0x3400.

Obviously, because of the way this works, a real MIOS is required.
2017-02-08 15:07:34 +01:00
..
Android Core: Convert State enum into an enum class 2017-02-05 08:32:23 -05:00
Core IOS: Implement MIOS functionality 2017-02-08 15:07:34 +01:00
DSPSpy Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
DSPTool DSP: Namespace remaining un-namespaced DSP code 2016-12-31 17:20:14 -05:00
PCH Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
UnitTests Merge pull request #4809 from Orphis/cmake_windows 2017-02-03 08:33:13 -05:00
VSProps Merge pull request #4408 from leoetlino/usb 2017-02-07 09:17:05 +13:00
.clang-format clang-format: Sort windows.h before other headers 2017-01-23 00:35:09 -08:00
CMakeLists.txt cmake: Don't use unqualified target_link_libraries 2017-02-08 03:07:43 +01:00
dolphin-emu.sln Implement experimental Vulkan backend 2016-10-01 02:40:01 +10:00