dolphin/Source/Core
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
..
AudioCommon cmake: Move PulseAudio detection to AudioCommon 2017-02-07 23:35:44 +01:00
Common Merge pull request #4839 from leoetlino/better-warnings 2017-02-08 14:00:12 +01:00
Core IOS: Implement MIOS functionality 2017-02-08 15:07:34 +01:00
DiscIO Core: Convert State enum into an enum class 2017-02-05 08:32:23 -05:00
DolphinQt2 CMake: add CMAKE_CONFIGURE_DEPENDS on Data/Sys 2017-02-06 13:55:35 -08:00
DolphinWX DolphinWX: Fix overclock slider clock display 2017-02-08 15:07:34 +01:00
InputCommon Merge pull request #4839 from leoetlino/better-warnings 2017-02-08 14:00:12 +01:00
UICommon Merge pull request #4839 from leoetlino/better-warnings 2017-02-08 14:00:12 +01:00
VideoBackends Merge pull request #4859 from lioncash/opcodedecoder 2017-02-08 18:12:11 +13:00
VideoCommon Merge pull request #4859 from lioncash/opcodedecoder 2017-02-08 18:12:11 +13:00
CMakeLists.txt