diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml new file mode 100644 index 0000000000..c24ef128b8 --- /dev/null +++ b/.github/workflows/linux.yml @@ -0,0 +1,48 @@ +# This is a basic workflow to help you get started with Actions + +name: Linux CI + +# Controls when the action will run. Triggers the workflow on push or pull request +# events but only for the master branch +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + # Setup CMake + - name: Setup CMake + uses: Symbitic/install-cmake@v0.1.1 + with: + platform: linux + # Submoudle + - name: Checkout Submodles + run: git submodule update --init --recursive + # Setup Packages + - name: Setup Packages + run: sudo apt update && sudo apt upgrade && sudo apt install curl ffmpeg git libao-dev libasound-dev libavcodec-dev libavformat-dev libbluetooth-dev libevdev-dev libgtk2.0-dev libhidapi-dev libmbedtls-dev libminiupnpc-dev libopenal-dev libpangocairo-1.0-0 libpulse-dev libsfml-dev libswscale-dev libudev-dev libusb-1.0-0-dev libxrandr-dev qt5-default qtbase5-private-dev + # Run CMake + - name: Run CMake + run: mkdir build && cd build && cmake .. -G Ninja -DLINUX_LOCAL_DEV=true + # Build Project + - name: Run Make + run: cd build && ninja -j4 + # Configure Dolphin + - name: Configure Dolphin + run: cd build && cp -r ../Data/Sys/ Binaries/ && cp -r ../Data/User/ Binaries/ && cp -r ../Data/dolphin-emu.png Binaries/ && touch Binaries/portable.txt + # Upload Artifact + - name: Upload Build Artifact + uses: actions/upload-artifact@v2 + with: + name: DolphinMPN-Linux + path: /home/runner/work/dolphin-mpn-advanced-src/dolphin-mpn-advanced-src/build/Binaries/ diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml new file mode 100644 index 0000000000..8e49b1319e --- /dev/null +++ b/.github/workflows/macos.yml @@ -0,0 +1,51 @@ +# This is a basic workflow to help you get started with Actions + +name: macOS CI + +# Controls when the action will run. Triggers the workflow on push or pull request +# events but only for the master branch +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: macos-latest + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + # Setup CMake + - name: Setup CMake + uses: Symbitic/install-cmake@v0.1.1 + with: + platform: mac + # Setup Packages + - name: Setup Packages + run: brew install qt5 pkgconfig + # Use Static ZSTD + - name: Remove ZSTD + run: brew uninstall zstd curl php --force --ignore-dependencies + # Submoudle + - name: Checkout Submodles + run: git submodule update --init --recursive + # Run CMake + - name: Run CMake + run: mkdir -p build && cd build && cmake .. -G Ninja -DCMAKE_CXX_FLAGS="-Xclang -fcolor-diagnostics" -DCMAKE_PREFIX_PATH=$(brew --prefix qt5) + # Build Project + - name: Run Ninja + run: cd build && ninja -j4 + # Configure Dolphin + - name: Configure Dolphin + run: cd build && cp -r ../Data/Sys/ Binaries/ && cp -r ../Data/User/ Binaries/ && cp -r ../Data/dolphin-emu.png Binaries/ && touch Binaries/portable.txt + # Upload Artifact + - name: Upload Build Artifact + uses: actions/upload-artifact@v2 + with: + name: DolphinMPN-macOS + path: /Users/runner/work/dolphin-mpn-advanced-src/dolphin-mpn-advanced-src/build/Binaries/ diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml new file mode 100644 index 0000000000..5f458879d7 --- /dev/null +++ b/.github/workflows/windows.yml @@ -0,0 +1,40 @@ +# This is a basic workflow to help you get started with Actions + +name: Windows CI + +# Controls when the action will run. Triggers the workflow on push or pull request +# events but only for the master branch +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: windows-2022 + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + # Submoudle + - name: Checkout Submodles + run: git submodule update --init --recursive + # Setup MSBuild For Later Usage + - name: Setup MSBuild + uses: microsoft/setup-msbuild@v1.0.2 + with: + vs-version: '16.6.2' + # Run MSBuild + - name: Build Solution + run: msbuild "D:\a\dolphin-mpn-advanced-src\dolphin-mpn-advanced-src\Source\dolphin-emu.sln" /verbosity:minimal /property:Configuration=Release /property:Platform=x64 + # Upload Artifact + - name: Upload Build Artifact + uses: actions/upload-artifact@v2 + with: + name: DolphinMPN-win32 + path: D:\a\dolphin-mpn-advanced-src\dolphin-mpn-advanced-src\Binary\x64 \ No newline at end of file diff --git a/Data/Sys/Themes/Mario Party Netplay/classic.png b/Data/Sys/Themes/Mario Party Netplay/classic.png new file mode 100644 index 0000000000..823adf588b Binary files /dev/null and b/Data/Sys/Themes/Mario Party Netplay/classic.png differ diff --git a/Data/Sys/Themes/Mario Party Netplay/config.png b/Data/Sys/Themes/Mario Party Netplay/config.png new file mode 100644 index 0000000000..60f2f5bba3 Binary files /dev/null and b/Data/Sys/Themes/Mario Party Netplay/config.png differ diff --git a/Data/Sys/Themes/Mario Party Netplay/config@2x.png b/Data/Sys/Themes/Mario Party Netplay/config@2x.png new file mode 100644 index 0000000000..3ae361e4bd Binary files /dev/null and b/Data/Sys/Themes/Mario Party Netplay/config@2x.png differ diff --git a/Data/Sys/Themes/Mario Party Netplay/fullscreen.png b/Data/Sys/Themes/Mario Party Netplay/fullscreen.png new file mode 100644 index 0000000000..f054b2e26a Binary files /dev/null and b/Data/Sys/Themes/Mario Party Netplay/fullscreen.png differ diff --git a/Data/Sys/Themes/Mario Party Netplay/fullscreen@2x.png b/Data/Sys/Themes/Mario Party Netplay/fullscreen@2x.png new file mode 100644 index 0000000000..b4c9a67a86 Binary files /dev/null and b/Data/Sys/Themes/Mario Party Netplay/fullscreen@2x.png differ diff --git a/Data/Sys/Themes/Mario Party Netplay/gradient.png b/Data/Sys/Themes/Mario Party Netplay/gradient.png new file mode 100644 index 0000000000..563aa98187 Binary files /dev/null and b/Data/Sys/Themes/Mario Party Netplay/gradient.png differ diff --git a/Data/Sys/Themes/Mario Party Netplay/graphics.png b/Data/Sys/Themes/Mario Party Netplay/graphics.png new file mode 100644 index 0000000000..1368bfa583 Binary files /dev/null and b/Data/Sys/Themes/Mario Party Netplay/graphics.png differ diff --git a/Data/Sys/Themes/Mario Party Netplay/graphics@2x.png b/Data/Sys/Themes/Mario Party Netplay/graphics@2x.png new file mode 100644 index 0000000000..9d5b7ef99d Binary files /dev/null and b/Data/Sys/Themes/Mario Party Netplay/graphics@2x.png differ diff --git a/Data/Sys/Themes/Mario Party Netplay/open.png b/Data/Sys/Themes/Mario Party Netplay/open.png new file mode 100644 index 0000000000..be511045c6 Binary files /dev/null and b/Data/Sys/Themes/Mario Party Netplay/open.png differ diff --git a/Data/Sys/Themes/Mario Party Netplay/open@2x.png b/Data/Sys/Themes/Mario Party Netplay/open@2x.png new file mode 100644 index 0000000000..74bf96edb6 Binary files /dev/null and b/Data/Sys/Themes/Mario Party Netplay/open@2x.png differ diff --git a/Data/Sys/Themes/Mario Party Netplay/pause.png b/Data/Sys/Themes/Mario Party Netplay/pause.png new file mode 100644 index 0000000000..d86c61bce2 Binary files /dev/null and b/Data/Sys/Themes/Mario Party Netplay/pause.png differ diff --git a/Data/Sys/Themes/Mario Party Netplay/pause@2x.png b/Data/Sys/Themes/Mario Party Netplay/pause@2x.png new file mode 100644 index 0000000000..5e37d31f16 Binary files /dev/null and b/Data/Sys/Themes/Mario Party Netplay/pause@2x.png differ diff --git a/Data/Sys/Themes/Mario Party Netplay/play.png b/Data/Sys/Themes/Mario Party Netplay/play.png new file mode 100644 index 0000000000..24ff109725 Binary files /dev/null and b/Data/Sys/Themes/Mario Party Netplay/play.png differ diff --git a/Data/Sys/Themes/Mario Party Netplay/play@2x.png b/Data/Sys/Themes/Mario Party Netplay/play@2x.png new file mode 100644 index 0000000000..66a3956d87 Binary files /dev/null and b/Data/Sys/Themes/Mario Party Netplay/play@2x.png differ diff --git a/Data/Sys/Themes/Mario Party Netplay/refresh.png b/Data/Sys/Themes/Mario Party Netplay/refresh.png new file mode 100644 index 0000000000..94effe6e9a Binary files /dev/null and b/Data/Sys/Themes/Mario Party Netplay/refresh.png differ diff --git a/Data/Sys/Themes/Mario Party Netplay/refresh@2x.png b/Data/Sys/Themes/Mario Party Netplay/refresh@2x.png new file mode 100644 index 0000000000..2c226637a7 Binary files /dev/null and b/Data/Sys/Themes/Mario Party Netplay/refresh@2x.png differ diff --git a/Data/Sys/Themes/Mario Party Netplay/screenshot.png b/Data/Sys/Themes/Mario Party Netplay/screenshot.png new file mode 100644 index 0000000000..e59a846f86 Binary files /dev/null and b/Data/Sys/Themes/Mario Party Netplay/screenshot.png differ diff --git a/Data/Sys/Themes/Mario Party Netplay/screenshot@2x.png b/Data/Sys/Themes/Mario Party Netplay/screenshot@2x.png new file mode 100644 index 0000000000..cef81a14e8 Binary files /dev/null and b/Data/Sys/Themes/Mario Party Netplay/screenshot@2x.png differ diff --git a/Data/Sys/Themes/Mario Party Netplay/stop.png b/Data/Sys/Themes/Mario Party Netplay/stop.png new file mode 100644 index 0000000000..800dd355b1 Binary files /dev/null and b/Data/Sys/Themes/Mario Party Netplay/stop.png differ diff --git a/Data/Sys/Themes/Mario Party Netplay/stop@2x.png b/Data/Sys/Themes/Mario Party Netplay/stop@2x.png new file mode 100644 index 0000000000..fac4444aa0 Binary files /dev/null and b/Data/Sys/Themes/Mario Party Netplay/stop@2x.png differ diff --git a/Data/Sys/Themes/Mario Party Netplay/wifi.png b/Data/Sys/Themes/Mario Party Netplay/wifi.png new file mode 100644 index 0000000000..1c47de58e3 Binary files /dev/null and b/Data/Sys/Themes/Mario Party Netplay/wifi.png differ diff --git a/Data/Sys/Themes/Mario Party Netplay/wifi@2x.png b/Data/Sys/Themes/Mario Party Netplay/wifi@2x.png new file mode 100644 index 0000000000..cf0e9cdb7f Binary files /dev/null and b/Data/Sys/Themes/Mario Party Netplay/wifi@2x.png differ diff --git a/Data/Sys/Wii/btdinf.bak b/Data/Sys/Wii/btdinf.bak new file mode 100644 index 0000000000..8ad512e67d Binary files /dev/null and b/Data/Sys/Wii/btdinf.bak differ diff --git a/Data/Sys/Wii/clientca.pem b/Data/Sys/Wii/clientca.pem new file mode 100644 index 0000000000..b1321ea69d Binary files /dev/null and b/Data/Sys/Wii/clientca.pem differ diff --git a/Data/Sys/Wii/clientcakey.pem b/Data/Sys/Wii/clientcakey.pem new file mode 100644 index 0000000000..810c597d21 Binary files /dev/null and b/Data/Sys/Wii/clientcakey.pem differ diff --git a/Data/Sys/Wii/rootca.pem b/Data/Sys/Wii/rootca.pem new file mode 100644 index 0000000000..58e95b0640 Binary files /dev/null and b/Data/Sys/Wii/rootca.pem differ diff --git a/Data/Sys/Wii/shared1/00000000.app b/Data/Sys/Wii/shared1/00000000.app new file mode 100644 index 0000000000..58cd8e3ad0 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000000.app differ diff --git a/Data/Sys/Wii/shared1/00000001.app b/Data/Sys/Wii/shared1/00000001.app new file mode 100644 index 0000000000..25f846fb84 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000001.app differ diff --git a/Data/Sys/Wii/shared1/00000002.app b/Data/Sys/Wii/shared1/00000002.app new file mode 100644 index 0000000000..a2bf0d2344 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000002.app differ diff --git a/Data/Sys/Wii/shared1/00000003.app b/Data/Sys/Wii/shared1/00000003.app new file mode 100644 index 0000000000..b157517ad0 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000003.app differ diff --git a/Data/Sys/Wii/shared1/00000004.app b/Data/Sys/Wii/shared1/00000004.app new file mode 100644 index 0000000000..c05d8dc4df Binary files /dev/null and b/Data/Sys/Wii/shared1/00000004.app differ diff --git a/Data/Sys/Wii/shared1/00000005.app b/Data/Sys/Wii/shared1/00000005.app new file mode 100644 index 0000000000..4a114a5f0f Binary files /dev/null and b/Data/Sys/Wii/shared1/00000005.app differ diff --git a/Data/Sys/Wii/shared1/00000006.app b/Data/Sys/Wii/shared1/00000006.app new file mode 100644 index 0000000000..1d3e676ea6 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000006.app differ diff --git a/Data/Sys/Wii/shared1/00000007.app b/Data/Sys/Wii/shared1/00000007.app new file mode 100644 index 0000000000..0013676c29 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000007.app differ diff --git a/Data/Sys/Wii/shared1/00000008.app b/Data/Sys/Wii/shared1/00000008.app new file mode 100644 index 0000000000..08ea6d2037 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000008.app differ diff --git a/Data/Sys/Wii/shared1/00000009.app b/Data/Sys/Wii/shared1/00000009.app new file mode 100644 index 0000000000..d16acc346e Binary files /dev/null and b/Data/Sys/Wii/shared1/00000009.app differ diff --git a/Data/Sys/Wii/shared1/0000000a.app b/Data/Sys/Wii/shared1/0000000a.app new file mode 100644 index 0000000000..9acbb6bc03 Binary files /dev/null and b/Data/Sys/Wii/shared1/0000000a.app differ diff --git a/Data/Sys/Wii/shared1/0000000b.app b/Data/Sys/Wii/shared1/0000000b.app new file mode 100644 index 0000000000..d2ed46d21f Binary files /dev/null and b/Data/Sys/Wii/shared1/0000000b.app differ diff --git a/Data/Sys/Wii/shared1/0000000c.app b/Data/Sys/Wii/shared1/0000000c.app new file mode 100644 index 0000000000..de029837c4 Binary files /dev/null and b/Data/Sys/Wii/shared1/0000000c.app differ diff --git a/Data/Sys/Wii/shared1/0000000d.app b/Data/Sys/Wii/shared1/0000000d.app new file mode 100644 index 0000000000..05ec9f7d18 Binary files /dev/null and b/Data/Sys/Wii/shared1/0000000d.app differ diff --git a/Data/Sys/Wii/shared1/0000000e.app b/Data/Sys/Wii/shared1/0000000e.app new file mode 100644 index 0000000000..11f26ff1d9 Binary files /dev/null and b/Data/Sys/Wii/shared1/0000000e.app differ diff --git a/Data/Sys/Wii/shared1/0000000f.app b/Data/Sys/Wii/shared1/0000000f.app new file mode 100644 index 0000000000..61c88a32b4 Binary files /dev/null and b/Data/Sys/Wii/shared1/0000000f.app differ diff --git a/Data/Sys/Wii/shared1/00000010.app b/Data/Sys/Wii/shared1/00000010.app new file mode 100644 index 0000000000..f5dbc2ef66 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000010.app differ diff --git a/Data/Sys/Wii/shared1/00000011.app b/Data/Sys/Wii/shared1/00000011.app new file mode 100644 index 0000000000..e8bb8cb50f Binary files /dev/null and b/Data/Sys/Wii/shared1/00000011.app differ diff --git a/Data/Sys/Wii/shared1/00000012.app b/Data/Sys/Wii/shared1/00000012.app new file mode 100644 index 0000000000..14e301e8ad Binary files /dev/null and b/Data/Sys/Wii/shared1/00000012.app differ diff --git a/Data/Sys/Wii/shared1/00000013.app b/Data/Sys/Wii/shared1/00000013.app new file mode 100644 index 0000000000..ed760791fc Binary files /dev/null and b/Data/Sys/Wii/shared1/00000013.app differ diff --git a/Data/Sys/Wii/shared1/00000014.app b/Data/Sys/Wii/shared1/00000014.app new file mode 100644 index 0000000000..0827106c9f Binary files /dev/null and b/Data/Sys/Wii/shared1/00000014.app differ diff --git a/Data/Sys/Wii/shared1/00000015.app b/Data/Sys/Wii/shared1/00000015.app new file mode 100644 index 0000000000..6832bf42cb Binary files /dev/null and b/Data/Sys/Wii/shared1/00000015.app differ diff --git a/Data/Sys/Wii/shared1/00000016.app b/Data/Sys/Wii/shared1/00000016.app new file mode 100644 index 0000000000..f53e4a2532 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000016.app differ diff --git a/Data/Sys/Wii/shared1/00000017.app b/Data/Sys/Wii/shared1/00000017.app new file mode 100644 index 0000000000..3b3cc533eb Binary files /dev/null and b/Data/Sys/Wii/shared1/00000017.app differ diff --git a/Data/Sys/Wii/shared1/00000018.app b/Data/Sys/Wii/shared1/00000018.app new file mode 100644 index 0000000000..428bada52c Binary files /dev/null and b/Data/Sys/Wii/shared1/00000018.app differ diff --git a/Data/Sys/Wii/shared1/00000019.app b/Data/Sys/Wii/shared1/00000019.app new file mode 100644 index 0000000000..009b2d3aa9 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000019.app differ diff --git a/Data/Sys/Wii/shared1/0000001a.app b/Data/Sys/Wii/shared1/0000001a.app new file mode 100644 index 0000000000..899c12d409 Binary files /dev/null and b/Data/Sys/Wii/shared1/0000001a.app differ diff --git a/Data/Sys/Wii/shared1/0000001b.app b/Data/Sys/Wii/shared1/0000001b.app new file mode 100644 index 0000000000..1491637c85 Binary files /dev/null and b/Data/Sys/Wii/shared1/0000001b.app differ diff --git a/Data/Sys/Wii/shared1/0000001c.app b/Data/Sys/Wii/shared1/0000001c.app new file mode 100644 index 0000000000..0c6322c0c8 Binary files /dev/null and b/Data/Sys/Wii/shared1/0000001c.app differ diff --git a/Data/Sys/Wii/shared1/0000001d.app b/Data/Sys/Wii/shared1/0000001d.app new file mode 100644 index 0000000000..01c49a6a97 Binary files /dev/null and b/Data/Sys/Wii/shared1/0000001d.app differ diff --git a/Data/Sys/Wii/shared1/0000001e.app b/Data/Sys/Wii/shared1/0000001e.app new file mode 100644 index 0000000000..b126d70ec5 Binary files /dev/null and b/Data/Sys/Wii/shared1/0000001e.app differ diff --git a/Data/Sys/Wii/shared1/0000001f.app b/Data/Sys/Wii/shared1/0000001f.app new file mode 100644 index 0000000000..5e5a818ee7 Binary files /dev/null and b/Data/Sys/Wii/shared1/0000001f.app differ diff --git a/Data/Sys/Wii/shared1/00000020.app b/Data/Sys/Wii/shared1/00000020.app new file mode 100644 index 0000000000..1d70634e7e Binary files /dev/null and b/Data/Sys/Wii/shared1/00000020.app differ diff --git a/Data/Sys/Wii/shared1/00000021.app b/Data/Sys/Wii/shared1/00000021.app new file mode 100644 index 0000000000..aad7420782 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000021.app differ diff --git a/Data/Sys/Wii/shared1/00000022.app b/Data/Sys/Wii/shared1/00000022.app new file mode 100644 index 0000000000..0dde63e114 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000022.app differ diff --git a/Data/Sys/Wii/shared1/00000023.app b/Data/Sys/Wii/shared1/00000023.app new file mode 100644 index 0000000000..0f31c1847e Binary files /dev/null and b/Data/Sys/Wii/shared1/00000023.app differ diff --git a/Data/Sys/Wii/shared1/00000024.app b/Data/Sys/Wii/shared1/00000024.app new file mode 100644 index 0000000000..9b32d1217f Binary files /dev/null and b/Data/Sys/Wii/shared1/00000024.app differ diff --git a/Data/Sys/Wii/shared1/00000025.app b/Data/Sys/Wii/shared1/00000025.app new file mode 100644 index 0000000000..fc4d9f02b0 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000025.app differ diff --git a/Data/Sys/Wii/shared1/00000026.app b/Data/Sys/Wii/shared1/00000026.app new file mode 100644 index 0000000000..bff287b8b3 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000026.app differ diff --git a/Data/Sys/Wii/shared1/00000027.app b/Data/Sys/Wii/shared1/00000027.app new file mode 100644 index 0000000000..c73e281db6 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000027.app differ diff --git a/Data/Sys/Wii/shared1/00000028.app b/Data/Sys/Wii/shared1/00000028.app new file mode 100644 index 0000000000..be9b0098b5 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000028.app differ diff --git a/Data/Sys/Wii/shared1/00000029.app b/Data/Sys/Wii/shared1/00000029.app new file mode 100644 index 0000000000..9d2d2fdb0b Binary files /dev/null and b/Data/Sys/Wii/shared1/00000029.app differ diff --git a/Data/Sys/Wii/shared1/0000002a.app b/Data/Sys/Wii/shared1/0000002a.app new file mode 100644 index 0000000000..309c530d2f Binary files /dev/null and b/Data/Sys/Wii/shared1/0000002a.app differ diff --git a/Data/Sys/Wii/shared1/0000002b.app b/Data/Sys/Wii/shared1/0000002b.app new file mode 100644 index 0000000000..026ad65a2a Binary files /dev/null and b/Data/Sys/Wii/shared1/0000002b.app differ diff --git a/Data/Sys/Wii/shared1/0000002c.app b/Data/Sys/Wii/shared1/0000002c.app new file mode 100644 index 0000000000..24d5103f91 Binary files /dev/null and b/Data/Sys/Wii/shared1/0000002c.app differ diff --git a/Data/Sys/Wii/shared1/0000002d.app b/Data/Sys/Wii/shared1/0000002d.app new file mode 100644 index 0000000000..b0f766ca6d Binary files /dev/null and b/Data/Sys/Wii/shared1/0000002d.app differ diff --git a/Data/Sys/Wii/shared1/0000002e.app b/Data/Sys/Wii/shared1/0000002e.app new file mode 100644 index 0000000000..7c865791eb Binary files /dev/null and b/Data/Sys/Wii/shared1/0000002e.app differ diff --git a/Data/Sys/Wii/shared1/0000002f.app b/Data/Sys/Wii/shared1/0000002f.app new file mode 100644 index 0000000000..a3caade139 Binary files /dev/null and b/Data/Sys/Wii/shared1/0000002f.app differ diff --git a/Data/Sys/Wii/shared1/00000030.app b/Data/Sys/Wii/shared1/00000030.app new file mode 100644 index 0000000000..8ebed8fb7e Binary files /dev/null and b/Data/Sys/Wii/shared1/00000030.app differ diff --git a/Data/Sys/Wii/shared1/00000031.app b/Data/Sys/Wii/shared1/00000031.app new file mode 100644 index 0000000000..1f9396facb Binary files /dev/null and b/Data/Sys/Wii/shared1/00000031.app differ diff --git a/Data/Sys/Wii/shared1/00000032.app b/Data/Sys/Wii/shared1/00000032.app new file mode 100644 index 0000000000..e01d65f2dc Binary files /dev/null and b/Data/Sys/Wii/shared1/00000032.app differ diff --git a/Data/Sys/Wii/shared1/00000033.app b/Data/Sys/Wii/shared1/00000033.app new file mode 100644 index 0000000000..a8257f1030 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000033.app differ diff --git a/Data/Sys/Wii/shared1/00000034.app b/Data/Sys/Wii/shared1/00000034.app new file mode 100644 index 0000000000..9818f33d71 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000034.app differ diff --git a/Data/Sys/Wii/shared1/00000035.app b/Data/Sys/Wii/shared1/00000035.app new file mode 100644 index 0000000000..b9c05ca0b1 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000035.app differ diff --git a/Data/Sys/Wii/shared1/00000036.app b/Data/Sys/Wii/shared1/00000036.app new file mode 100644 index 0000000000..735d53c4c1 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000036.app differ diff --git a/Data/Sys/Wii/shared1/00000037.app b/Data/Sys/Wii/shared1/00000037.app new file mode 100644 index 0000000000..884c274a58 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000037.app differ diff --git a/Data/Sys/Wii/shared1/00000038.app b/Data/Sys/Wii/shared1/00000038.app new file mode 100644 index 0000000000..4e04b8c271 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000038.app differ diff --git a/Data/Sys/Wii/shared1/00000039.app b/Data/Sys/Wii/shared1/00000039.app new file mode 100644 index 0000000000..843d273d62 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000039.app differ diff --git a/Data/Sys/Wii/shared1/0000003a.app b/Data/Sys/Wii/shared1/0000003a.app new file mode 100644 index 0000000000..42ec1278f1 Binary files /dev/null and b/Data/Sys/Wii/shared1/0000003a.app differ diff --git a/Data/Sys/Wii/shared1/0000003b.app b/Data/Sys/Wii/shared1/0000003b.app new file mode 100644 index 0000000000..c7d01c5cac Binary files /dev/null and b/Data/Sys/Wii/shared1/0000003b.app differ diff --git a/Data/Sys/Wii/shared1/0000003c.app b/Data/Sys/Wii/shared1/0000003c.app new file mode 100644 index 0000000000..da3c37e42b Binary files /dev/null and b/Data/Sys/Wii/shared1/0000003c.app differ diff --git a/Data/Sys/Wii/shared1/0000003d.app b/Data/Sys/Wii/shared1/0000003d.app new file mode 100644 index 0000000000..ee607f0feb Binary files /dev/null and b/Data/Sys/Wii/shared1/0000003d.app differ diff --git a/Data/Sys/Wii/shared1/0000003e.app b/Data/Sys/Wii/shared1/0000003e.app new file mode 100644 index 0000000000..f122d8f2bd Binary files /dev/null and b/Data/Sys/Wii/shared1/0000003e.app differ diff --git a/Data/Sys/Wii/shared1/0000003f.app b/Data/Sys/Wii/shared1/0000003f.app new file mode 100644 index 0000000000..66f408a608 Binary files /dev/null and b/Data/Sys/Wii/shared1/0000003f.app differ diff --git a/Data/Sys/Wii/shared1/00000040.app b/Data/Sys/Wii/shared1/00000040.app new file mode 100644 index 0000000000..c566701f7f Binary files /dev/null and b/Data/Sys/Wii/shared1/00000040.app differ diff --git a/Data/Sys/Wii/shared1/00000041.app b/Data/Sys/Wii/shared1/00000041.app new file mode 100644 index 0000000000..2cea02bc5d Binary files /dev/null and b/Data/Sys/Wii/shared1/00000041.app differ diff --git a/Data/Sys/Wii/shared1/00000042.app b/Data/Sys/Wii/shared1/00000042.app new file mode 100644 index 0000000000..4cf1a0f5d4 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000042.app differ diff --git a/Data/Sys/Wii/shared1/00000043.app b/Data/Sys/Wii/shared1/00000043.app new file mode 100644 index 0000000000..c0912ea5e2 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000043.app differ diff --git a/Data/Sys/Wii/shared1/00000044.app b/Data/Sys/Wii/shared1/00000044.app new file mode 100644 index 0000000000..dde8744abb Binary files /dev/null and b/Data/Sys/Wii/shared1/00000044.app differ diff --git a/Data/Sys/Wii/shared1/00000045.app b/Data/Sys/Wii/shared1/00000045.app new file mode 100644 index 0000000000..0f484c3a6d Binary files /dev/null and b/Data/Sys/Wii/shared1/00000045.app differ diff --git a/Data/Sys/Wii/shared1/00000046.app b/Data/Sys/Wii/shared1/00000046.app new file mode 100644 index 0000000000..1e57197055 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000046.app differ diff --git a/Data/Sys/Wii/shared1/00000047.app b/Data/Sys/Wii/shared1/00000047.app new file mode 100644 index 0000000000..8649622dcb Binary files /dev/null and b/Data/Sys/Wii/shared1/00000047.app differ diff --git a/Data/Sys/Wii/shared1/00000048.app b/Data/Sys/Wii/shared1/00000048.app new file mode 100644 index 0000000000..952ba66fb1 Binary files /dev/null and b/Data/Sys/Wii/shared1/00000048.app differ diff --git a/Data/Sys/Wii/shared1/content.map b/Data/Sys/Wii/shared1/content.map new file mode 100644 index 0000000000..1767a7504d Binary files /dev/null and b/Data/Sys/Wii/shared1/content.map differ diff --git a/Data/Sys/Wii/shared2/ec/shopsetu.log b/Data/Sys/Wii/shared2/ec/shopsetu.log new file mode 100644 index 0000000000..4e4e493570 Binary files /dev/null and b/Data/Sys/Wii/shared2/ec/shopsetu.log differ diff --git a/Data/Sys/Wii/shared2/menu/FaceLib/RFL_DB.dat b/Data/Sys/Wii/shared2/menu/FaceLib/RFL_DB.dat new file mode 100644 index 0000000000..2991fa97bc Binary files /dev/null and b/Data/Sys/Wii/shared2/menu/FaceLib/RFL_DB.dat differ diff --git a/Data/Sys/Wii/shared2/menu/vc/settings.sav b/Data/Sys/Wii/shared2/menu/vc/settings.sav new file mode 100644 index 0000000000..6bb1bf4b5c Binary files /dev/null and b/Data/Sys/Wii/shared2/menu/vc/settings.sav differ diff --git a/Data/Sys/Wii/shared2/succession/shop.log b/Data/Sys/Wii/shared2/succession/shop.log new file mode 100644 index 0000000000..4e4e493570 Binary files /dev/null and b/Data/Sys/Wii/shared2/succession/shop.log differ diff --git a/Data/Sys/Wii/shared2/sys/SYSCONF b/Data/Sys/Wii/shared2/sys/SYSCONF new file mode 100644 index 0000000000..7772b3d53a Binary files /dev/null and b/Data/Sys/Wii/shared2/sys/SYSCONF differ diff --git a/Data/Sys/Wii/shared2/sys/net/02/config.dat b/Data/Sys/Wii/shared2/sys/net/02/config.dat new file mode 100644 index 0000000000..97fb42584d Binary files /dev/null and b/Data/Sys/Wii/shared2/sys/net/02/config.dat differ diff --git a/Data/Sys/Wii/sys/cert.sys b/Data/Sys/Wii/sys/cert.sys new file mode 100644 index 0000000000..32dd50ca02 Binary files /dev/null and b/Data/Sys/Wii/sys/cert.sys differ diff --git a/Data/Sys/Wii/sys/uid.sys b/Data/Sys/Wii/sys/uid.sys new file mode 100644 index 0000000000..bce5358b7a Binary files /dev/null and b/Data/Sys/Wii/sys/uid.sys differ diff --git a/Data/Sys/Wii/ticket/00000001/00000002.tik b/Data/Sys/Wii/ticket/00000001/00000002.tik new file mode 100644 index 0000000000..6f6465c04e Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/00000002.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/00000004.tik b/Data/Sys/Wii/ticket/00000001/00000004.tik new file mode 100644 index 0000000000..a3413b4bdb Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/00000004.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/00000009.tik b/Data/Sys/Wii/ticket/00000001/00000009.tik new file mode 100644 index 0000000000..664adadca3 Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/00000009.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/0000000a.tik b/Data/Sys/Wii/ticket/00000001/0000000a.tik new file mode 100644 index 0000000000..64f1f9571b Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/0000000a.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/0000000b.tik b/Data/Sys/Wii/ticket/00000001/0000000b.tik new file mode 100644 index 0000000000..e580792ba7 Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/0000000b.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/0000000c.tik b/Data/Sys/Wii/ticket/00000001/0000000c.tik new file mode 100644 index 0000000000..f053b9a181 Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/0000000c.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/0000000d.tik b/Data/Sys/Wii/ticket/00000001/0000000d.tik new file mode 100644 index 0000000000..b615126656 Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/0000000d.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/0000000e.tik b/Data/Sys/Wii/ticket/00000001/0000000e.tik new file mode 100644 index 0000000000..859bc49ce8 Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/0000000e.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/0000000f.tik b/Data/Sys/Wii/ticket/00000001/0000000f.tik new file mode 100644 index 0000000000..31760fb1c7 Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/0000000f.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/00000010.tik b/Data/Sys/Wii/ticket/00000001/00000010.tik new file mode 100644 index 0000000000..aec7672bfe Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/00000010.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/00000011.tik b/Data/Sys/Wii/ticket/00000001/00000011.tik new file mode 100644 index 0000000000..09e7b2758a Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/00000011.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/00000014.tik b/Data/Sys/Wii/ticket/00000001/00000014.tik new file mode 100644 index 0000000000..4e7d3c0d1b Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/00000014.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/00000015.tik b/Data/Sys/Wii/ticket/00000001/00000015.tik new file mode 100644 index 0000000000..7f6006a48b Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/00000015.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/00000016.tik b/Data/Sys/Wii/ticket/00000001/00000016.tik new file mode 100644 index 0000000000..ef1fecf18e Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/00000016.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/0000001c.tik b/Data/Sys/Wii/ticket/00000001/0000001c.tik new file mode 100644 index 0000000000..d85f5a98c1 Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/0000001c.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/0000001e.tik b/Data/Sys/Wii/ticket/00000001/0000001e.tik new file mode 100644 index 0000000000..3ec871179b Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/0000001e.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/0000001f.tik b/Data/Sys/Wii/ticket/00000001/0000001f.tik new file mode 100644 index 0000000000..f4982f4b6f Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/0000001f.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/00000021.tik b/Data/Sys/Wii/ticket/00000001/00000021.tik new file mode 100644 index 0000000000..4d656e7c61 Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/00000021.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/00000022.tik b/Data/Sys/Wii/ticket/00000001/00000022.tik new file mode 100644 index 0000000000..7c4aefe5e6 Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/00000022.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/00000023.tik b/Data/Sys/Wii/ticket/00000001/00000023.tik new file mode 100644 index 0000000000..84e14bac90 Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/00000023.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/00000024.tik b/Data/Sys/Wii/ticket/00000001/00000024.tik new file mode 100644 index 0000000000..162ef5422f Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/00000024.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/00000025.tik b/Data/Sys/Wii/ticket/00000001/00000025.tik new file mode 100644 index 0000000000..584b8b1828 Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/00000025.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/00000026.tik b/Data/Sys/Wii/ticket/00000001/00000026.tik new file mode 100644 index 0000000000..dab9a7d009 Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/00000026.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/00000032.tik b/Data/Sys/Wii/ticket/00000001/00000032.tik new file mode 100644 index 0000000000..b3ba0bdb35 Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/00000032.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/00000033.tik b/Data/Sys/Wii/ticket/00000001/00000033.tik new file mode 100644 index 0000000000..1c1e0c7209 Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/00000033.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/00000035.tik b/Data/Sys/Wii/ticket/00000001/00000035.tik new file mode 100644 index 0000000000..8fa5e36145 Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/00000035.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/00000037.tik b/Data/Sys/Wii/ticket/00000001/00000037.tik new file mode 100644 index 0000000000..d9ae4a737f Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/00000037.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/00000038.tik b/Data/Sys/Wii/ticket/00000001/00000038.tik new file mode 100644 index 0000000000..4b03c7f239 Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/00000038.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/00000039.tik b/Data/Sys/Wii/ticket/00000001/00000039.tik new file mode 100644 index 0000000000..12856cbd60 Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/00000039.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/0000003c.tik b/Data/Sys/Wii/ticket/00000001/0000003c.tik new file mode 100644 index 0000000000..3b0367c5c3 Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/0000003c.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/0000003d.tik b/Data/Sys/Wii/ticket/00000001/0000003d.tik new file mode 100644 index 0000000000..2bfd744951 Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/0000003d.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/00000046.tik b/Data/Sys/Wii/ticket/00000001/00000046.tik new file mode 100644 index 0000000000..eaf1970e5d Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/00000046.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/000000de.tik b/Data/Sys/Wii/ticket/00000001/000000de.tik new file mode 100644 index 0000000000..e8e13b3d8a Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/000000de.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/000000df.tik b/Data/Sys/Wii/ticket/00000001/000000df.tik new file mode 100644 index 0000000000..4c21cb2440 Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/000000df.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/000000f9.tik b/Data/Sys/Wii/ticket/00000001/000000f9.tik new file mode 100644 index 0000000000..d683b8188e Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/000000f9.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/000000fa.tik b/Data/Sys/Wii/ticket/00000001/000000fa.tik new file mode 100644 index 0000000000..463483d691 Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/000000fa.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/000000fe.tik b/Data/Sys/Wii/ticket/00000001/000000fe.tik new file mode 100644 index 0000000000..96141fe988 Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/000000fe.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/00000100.tik b/Data/Sys/Wii/ticket/00000001/00000100.tik new file mode 100644 index 0000000000..26c08b5168 Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/00000100.tik differ diff --git a/Data/Sys/Wii/ticket/00000001/00000101.tik b/Data/Sys/Wii/ticket/00000001/00000101.tik new file mode 100644 index 0000000000..84dde8306b Binary files /dev/null and b/Data/Sys/Wii/ticket/00000001/00000101.tik differ diff --git a/Data/Sys/Wii/ticket/00010002/48414241.tik b/Data/Sys/Wii/ticket/00010002/48414241.tik new file mode 100644 index 0000000000..126a358501 Binary files /dev/null and b/Data/Sys/Wii/ticket/00010002/48414241.tik differ diff --git a/Data/Sys/Wii/ticket/00010002/48414341.tik b/Data/Sys/Wii/ticket/00010002/48414341.tik new file mode 100644 index 0000000000..507277473f Binary files /dev/null and b/Data/Sys/Wii/ticket/00010002/48414341.tik differ diff --git a/Data/Sys/Wii/ticket/00010002/48414641.tik b/Data/Sys/Wii/ticket/00010002/48414641.tik new file mode 100644 index 0000000000..124b4cbb67 Binary files /dev/null and b/Data/Sys/Wii/ticket/00010002/48414641.tik differ diff --git a/Data/Sys/Wii/ticket/00010002/48414645.tik b/Data/Sys/Wii/ticket/00010002/48414645.tik new file mode 100644 index 0000000000..d523183609 Binary files /dev/null and b/Data/Sys/Wii/ticket/00010002/48414645.tik differ diff --git a/Data/Sys/Wii/ticket/00010002/48414741.tik b/Data/Sys/Wii/ticket/00010002/48414741.tik new file mode 100644 index 0000000000..5678f21698 Binary files /dev/null and b/Data/Sys/Wii/ticket/00010002/48414741.tik differ diff --git a/Data/Sys/Wii/ticket/00010002/48414745.tik b/Data/Sys/Wii/ticket/00010002/48414745.tik new file mode 100644 index 0000000000..95768c576b Binary files /dev/null and b/Data/Sys/Wii/ticket/00010002/48414745.tik differ diff --git a/Data/Sys/Wii/ticket/00010002/48415941.tik b/Data/Sys/Wii/ticket/00010002/48415941.tik new file mode 100644 index 0000000000..8204e3d1e2 Binary files /dev/null and b/Data/Sys/Wii/ticket/00010002/48415941.tik differ diff --git a/Data/Sys/Wii/ticket/00010008/48414b45.tik b/Data/Sys/Wii/ticket/00010008/48414b45.tik new file mode 100644 index 0000000000..36fca763b6 Binary files /dev/null and b/Data/Sys/Wii/ticket/00010008/48414b45.tik differ diff --git a/Data/Sys/Wii/ticket/00010008/48414c45.tik b/Data/Sys/Wii/ticket/00010008/48414c45.tik new file mode 100644 index 0000000000..17e0171864 Binary files /dev/null and b/Data/Sys/Wii/ticket/00010008/48414c45.tik differ diff --git a/Data/Sys/Wii/title/00000001/00000002/content/00000086.app b/Data/Sys/Wii/title/00000001/00000002/content/00000086.app new file mode 100644 index 0000000000..2ca083923b Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000002/content/00000086.app differ diff --git a/Data/Sys/Wii/title/00000001/00000002/content/00000087.app b/Data/Sys/Wii/title/00000001/00000002/content/00000087.app new file mode 100644 index 0000000000..3d5b853704 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000002/content/00000087.app differ diff --git a/Data/Sys/Wii/title/00000001/00000002/content/00000088.app b/Data/Sys/Wii/title/00000001/00000002/content/00000088.app new file mode 100644 index 0000000000..fa74534e45 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000002/content/00000088.app differ diff --git a/Data/Sys/Wii/title/00000001/00000002/content/title.tmd b/Data/Sys/Wii/title/00000001/00000002/content/title.tmd new file mode 100644 index 0000000000..e5c8b37271 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000002/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/00000002/data/cache.dat b/Data/Sys/Wii/title/00000001/00000002/data/cache.dat new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Wii/title/00000001/00000002/data/cdb.vff b/Data/Sys/Wii/title/00000001/00000002/data/cdb.vff new file mode 100644 index 0000000000..6948771527 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000002/data/cdb.vff differ diff --git a/Data/Sys/Wii/title/00000001/00000002/data/iplsave.bin b/Data/Sys/Wii/title/00000001/00000002/data/iplsave.bin new file mode 100644 index 0000000000..68f90a042f Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000002/data/iplsave.bin differ diff --git a/Data/Sys/Wii/title/00000001/00000002/data/play_rec.dat b/Data/Sys/Wii/title/00000001/00000002/data/play_rec.dat new file mode 100644 index 0000000000..fd22bd9b40 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000002/data/play_rec.dat differ diff --git a/Data/Sys/Wii/title/00000001/00000002/data/setting.txt b/Data/Sys/Wii/title/00000001/00000002/data/setting.txt new file mode 100644 index 0000000000..3123b0e055 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000002/data/setting.txt differ diff --git a/Data/Sys/Wii/title/00000001/00000002/data/state.dat b/Data/Sys/Wii/title/00000001/00000002/data/state.dat new file mode 100644 index 0000000000..8c535a3726 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000002/data/state.dat differ diff --git a/Data/Sys/Wii/title/00000001/00000004/content/00000009.app b/Data/Sys/Wii/title/00000001/00000004/content/00000009.app new file mode 100644 index 0000000000..d51727ada5 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000004/content/00000009.app differ diff --git a/Data/Sys/Wii/title/00000001/00000004/content/title.tmd b/Data/Sys/Wii/title/00000001/00000004/content/title.tmd new file mode 100644 index 0000000000..bacb5c3505 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000004/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/00000009/content/00000004.app b/Data/Sys/Wii/title/00000001/00000009/content/00000004.app new file mode 100644 index 0000000000..017c530371 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000009/content/00000004.app differ diff --git a/Data/Sys/Wii/title/00000001/00000009/content/title.tmd b/Data/Sys/Wii/title/00000001/00000009/content/title.tmd new file mode 100644 index 0000000000..35ce690334 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000009/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/0000000a/content/00000001.app b/Data/Sys/Wii/title/00000001/0000000a/content/00000001.app new file mode 100644 index 0000000000..d9f2307795 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000000a/content/00000001.app differ diff --git a/Data/Sys/Wii/title/00000001/0000000a/content/title.tmd b/Data/Sys/Wii/title/00000001/0000000a/content/title.tmd new file mode 100644 index 0000000000..d2185cfa87 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000000a/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/0000000b/content/0000000a.app b/Data/Sys/Wii/title/00000001/0000000b/content/0000000a.app new file mode 100644 index 0000000000..fb7f6de55a Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000000b/content/0000000a.app differ diff --git a/Data/Sys/Wii/title/00000001/0000000b/content/title.tmd b/Data/Sys/Wii/title/00000001/0000000b/content/title.tmd new file mode 100644 index 0000000000..d07d08d9b2 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000000b/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/0000000c/content/00000006.app b/Data/Sys/Wii/title/00000001/0000000c/content/00000006.app new file mode 100644 index 0000000000..ced4d6292e Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000000c/content/00000006.app differ diff --git a/Data/Sys/Wii/title/00000001/0000000c/content/00000007.app b/Data/Sys/Wii/title/00000001/0000000c/content/00000007.app new file mode 100644 index 0000000000..ac25a76409 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000000c/content/00000007.app differ diff --git a/Data/Sys/Wii/title/00000001/0000000c/content/title.tmd b/Data/Sys/Wii/title/00000001/0000000c/content/title.tmd new file mode 100644 index 0000000000..8dfa706f5a Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000000c/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/0000000d/content/0000000c.app b/Data/Sys/Wii/title/00000001/0000000d/content/0000000c.app new file mode 100644 index 0000000000..bc11d13f7c Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000000d/content/0000000c.app differ diff --git a/Data/Sys/Wii/title/00000001/0000000d/content/0000000d.app b/Data/Sys/Wii/title/00000001/0000000d/content/0000000d.app new file mode 100644 index 0000000000..198e51b0b8 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000000d/content/0000000d.app differ diff --git a/Data/Sys/Wii/title/00000001/0000000d/content/title.tmd b/Data/Sys/Wii/title/00000001/0000000d/content/title.tmd new file mode 100644 index 0000000000..37650616e8 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000000d/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/0000000e/content/0000000c.app b/Data/Sys/Wii/title/00000001/0000000e/content/0000000c.app new file mode 100644 index 0000000000..8023c5cbda Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000000e/content/0000000c.app differ diff --git a/Data/Sys/Wii/title/00000001/0000000e/content/0000000d.app b/Data/Sys/Wii/title/00000001/0000000e/content/0000000d.app new file mode 100644 index 0000000000..6ab8fce630 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000000e/content/0000000d.app differ diff --git a/Data/Sys/Wii/title/00000001/0000000e/content/title.tmd b/Data/Sys/Wii/title/00000001/0000000e/content/title.tmd new file mode 100644 index 0000000000..6188063580 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000000e/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/0000000f/content/00000003.app b/Data/Sys/Wii/title/00000001/0000000f/content/00000003.app new file mode 100644 index 0000000000..ee88cb59bb Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000000f/content/00000003.app differ diff --git a/Data/Sys/Wii/title/00000001/0000000f/content/0000000c.app b/Data/Sys/Wii/title/00000001/0000000f/content/0000000c.app new file mode 100644 index 0000000000..a3808e90d3 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000000f/content/0000000c.app differ diff --git a/Data/Sys/Wii/title/00000001/0000000f/content/0000000d.app b/Data/Sys/Wii/title/00000001/0000000f/content/0000000d.app new file mode 100644 index 0000000000..777c267aa8 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000000f/content/0000000d.app differ diff --git a/Data/Sys/Wii/title/00000001/0000000f/content/title.tmd b/Data/Sys/Wii/title/00000001/0000000f/content/title.tmd new file mode 100644 index 0000000000..9a2556400a Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000000f/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/00000010/content/00000002.app b/Data/Sys/Wii/title/00000001/00000010/content/00000002.app new file mode 100644 index 0000000000..543e7d5dd1 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000010/content/00000002.app differ diff --git a/Data/Sys/Wii/title/00000001/00000010/content/title.tmd b/Data/Sys/Wii/title/00000001/00000010/content/title.tmd new file mode 100644 index 0000000000..ec238c9b28 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000010/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/00000011/content/00000006.app b/Data/Sys/Wii/title/00000001/00000011/content/00000006.app new file mode 100644 index 0000000000..1b3c2abdd9 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000011/content/00000006.app differ diff --git a/Data/Sys/Wii/title/00000001/00000011/content/00000007.app b/Data/Sys/Wii/title/00000001/00000011/content/00000007.app new file mode 100644 index 0000000000..305ea53778 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000011/content/00000007.app differ diff --git a/Data/Sys/Wii/title/00000001/00000011/content/title.tmd b/Data/Sys/Wii/title/00000001/00000011/content/title.tmd new file mode 100644 index 0000000000..a2b1867513 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000011/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/00000014/content/00000002.app b/Data/Sys/Wii/title/00000001/00000014/content/00000002.app new file mode 100644 index 0000000000..1eae6d9f8e Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000014/content/00000002.app differ diff --git a/Data/Sys/Wii/title/00000001/00000014/content/title.tmd b/Data/Sys/Wii/title/00000001/00000014/content/title.tmd new file mode 100644 index 0000000000..17fe44b5d3 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000014/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/00000015/content/00000003.app b/Data/Sys/Wii/title/00000001/00000015/content/00000003.app new file mode 100644 index 0000000000..ee88cb59bb Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000015/content/00000003.app differ diff --git a/Data/Sys/Wii/title/00000001/00000015/content/0000000e.app b/Data/Sys/Wii/title/00000001/00000015/content/0000000e.app new file mode 100644 index 0000000000..5738aa7f86 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000015/content/0000000e.app differ diff --git a/Data/Sys/Wii/title/00000001/00000015/content/0000000f.app b/Data/Sys/Wii/title/00000001/00000015/content/0000000f.app new file mode 100644 index 0000000000..18e58e36df Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000015/content/0000000f.app differ diff --git a/Data/Sys/Wii/title/00000001/00000015/content/title.tmd b/Data/Sys/Wii/title/00000001/00000015/content/title.tmd new file mode 100644 index 0000000000..41ea43c292 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000015/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/00000016/content/0000000c.app b/Data/Sys/Wii/title/00000001/00000016/content/0000000c.app new file mode 100644 index 0000000000..e583766768 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000016/content/0000000c.app differ diff --git a/Data/Sys/Wii/title/00000001/00000016/content/0000000d.app b/Data/Sys/Wii/title/00000001/00000016/content/0000000d.app new file mode 100644 index 0000000000..7220b851b9 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000016/content/0000000d.app differ diff --git a/Data/Sys/Wii/title/00000001/00000016/content/title.tmd b/Data/Sys/Wii/title/00000001/00000016/content/title.tmd new file mode 100644 index 0000000000..2a6d188108 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000016/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/0000001c/content/00000018.app b/Data/Sys/Wii/title/00000001/0000001c/content/00000018.app new file mode 100644 index 0000000000..64e868d9ea Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000001c/content/00000018.app differ diff --git a/Data/Sys/Wii/title/00000001/0000001c/content/title.tmd b/Data/Sys/Wii/title/00000001/0000001c/content/title.tmd new file mode 100644 index 0000000000..2cd0239575 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000001c/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/0000001e/content/00000025.app b/Data/Sys/Wii/title/00000001/0000001e/content/00000025.app new file mode 100644 index 0000000000..ed98ccb358 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000001e/content/00000025.app differ diff --git a/Data/Sys/Wii/title/00000001/0000001e/content/title.tmd b/Data/Sys/Wii/title/00000001/0000001e/content/title.tmd new file mode 100644 index 0000000000..095f02b8ef Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000001e/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/0000001f/content/00000030.app b/Data/Sys/Wii/title/00000001/0000001f/content/00000030.app new file mode 100644 index 0000000000..669b666ffa Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000001f/content/00000030.app differ diff --git a/Data/Sys/Wii/title/00000001/0000001f/content/title.tmd b/Data/Sys/Wii/title/00000001/0000001f/content/title.tmd new file mode 100644 index 0000000000..e4a70f7c54 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000001f/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/00000021/content/0000001d.app b/Data/Sys/Wii/title/00000001/00000021/content/0000001d.app new file mode 100644 index 0000000000..508b865cd5 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000021/content/0000001d.app differ diff --git a/Data/Sys/Wii/title/00000001/00000021/content/title.tmd b/Data/Sys/Wii/title/00000001/00000021/content/title.tmd new file mode 100644 index 0000000000..1f7be34b69 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000021/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/00000022/content/0000001b.app b/Data/Sys/Wii/title/00000001/00000022/content/0000001b.app new file mode 100644 index 0000000000..497571a8aa Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000022/content/0000001b.app differ diff --git a/Data/Sys/Wii/title/00000001/00000022/content/title.tmd b/Data/Sys/Wii/title/00000001/00000022/content/title.tmd new file mode 100644 index 0000000000..4ea2272542 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000022/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/00000023/content/0000001b.app b/Data/Sys/Wii/title/00000001/00000023/content/0000001b.app new file mode 100644 index 0000000000..f63317e9c6 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000023/content/0000001b.app differ diff --git a/Data/Sys/Wii/title/00000001/00000023/content/title.tmd b/Data/Sys/Wii/title/00000001/00000023/content/title.tmd new file mode 100644 index 0000000000..68e8dab16c Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000023/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/00000024/content/0000001b.app b/Data/Sys/Wii/title/00000001/00000024/content/0000001b.app new file mode 100644 index 0000000000..3a74f56d38 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000024/content/0000001b.app differ diff --git a/Data/Sys/Wii/title/00000001/00000024/content/title.tmd b/Data/Sys/Wii/title/00000001/00000024/content/title.tmd new file mode 100644 index 0000000000..f012063421 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000024/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/00000025/content/0000001c.app b/Data/Sys/Wii/title/00000001/00000025/content/0000001c.app new file mode 100644 index 0000000000..954cada58f Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000025/content/0000001c.app differ diff --git a/Data/Sys/Wii/title/00000001/00000025/content/title.tmd b/Data/Sys/Wii/title/00000001/00000025/content/title.tmd new file mode 100644 index 0000000000..1b86e8ac22 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000025/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/00000026/content/00000012.app b/Data/Sys/Wii/title/00000001/00000026/content/00000012.app new file mode 100644 index 0000000000..0f28275465 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000026/content/00000012.app differ diff --git a/Data/Sys/Wii/title/00000001/00000026/content/title.tmd b/Data/Sys/Wii/title/00000001/00000026/content/title.tmd new file mode 100644 index 0000000000..8af49671fd Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000026/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/00000032/content/00000011.app b/Data/Sys/Wii/title/00000001/00000032/content/00000011.app new file mode 100644 index 0000000000..9a408bdb5c Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000032/content/00000011.app differ diff --git a/Data/Sys/Wii/title/00000001/00000032/content/title.tmd b/Data/Sys/Wii/title/00000001/00000032/content/title.tmd new file mode 100644 index 0000000000..ccce47bf51 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000032/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/00000033/content/0000000f.app b/Data/Sys/Wii/title/00000001/00000033/content/0000000f.app new file mode 100644 index 0000000000..01f8fc2353 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000033/content/0000000f.app differ diff --git a/Data/Sys/Wii/title/00000001/00000033/content/title.tmd b/Data/Sys/Wii/title/00000001/00000033/content/title.tmd new file mode 100644 index 0000000000..55247c2e21 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000033/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/00000035/content/00000016.app b/Data/Sys/Wii/title/00000001/00000035/content/00000016.app new file mode 100644 index 0000000000..5d24451119 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000035/content/00000016.app differ diff --git a/Data/Sys/Wii/title/00000001/00000035/content/title.tmd b/Data/Sys/Wii/title/00000001/00000035/content/title.tmd new file mode 100644 index 0000000000..cb9d6781f7 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000035/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/00000037/content/00000012.app b/Data/Sys/Wii/title/00000001/00000037/content/00000012.app new file mode 100644 index 0000000000..947cff1a3b Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000037/content/00000012.app differ diff --git a/Data/Sys/Wii/title/00000001/00000037/content/title.tmd b/Data/Sys/Wii/title/00000001/00000037/content/title.tmd new file mode 100644 index 0000000000..9bbc6e163f Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000037/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/00000038/content/00000012.app b/Data/Sys/Wii/title/00000001/00000038/content/00000012.app new file mode 100644 index 0000000000..e8c2860004 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000038/content/00000012.app differ diff --git a/Data/Sys/Wii/title/00000001/00000038/content/title.tmd b/Data/Sys/Wii/title/00000001/00000038/content/title.tmd new file mode 100644 index 0000000000..a748073bbf Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000038/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/00000039/content/00000015.app b/Data/Sys/Wii/title/00000001/00000039/content/00000015.app new file mode 100644 index 0000000000..f79fcb03d6 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000039/content/00000015.app differ diff --git a/Data/Sys/Wii/title/00000001/00000039/content/title.tmd b/Data/Sys/Wii/title/00000001/00000039/content/title.tmd new file mode 100644 index 0000000000..9ee917de79 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000039/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/0000003c/content/0000000f.app b/Data/Sys/Wii/title/00000001/0000003c/content/0000000f.app new file mode 100644 index 0000000000..ce7f4e252c Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000003c/content/0000000f.app differ diff --git a/Data/Sys/Wii/title/00000001/0000003c/content/title.tmd b/Data/Sys/Wii/title/00000001/0000003c/content/title.tmd new file mode 100644 index 0000000000..1bdc9d6555 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000003c/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/0000003d/content/0000000f.app b/Data/Sys/Wii/title/00000001/0000003d/content/0000000f.app new file mode 100644 index 0000000000..4962bb364a Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000003d/content/0000000f.app differ diff --git a/Data/Sys/Wii/title/00000001/0000003d/content/title.tmd b/Data/Sys/Wii/title/00000001/0000003d/content/title.tmd new file mode 100644 index 0000000000..b576abd564 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/0000003d/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/00000046/content/00000000.app b/Data/Sys/Wii/title/00000001/00000046/content/00000000.app new file mode 100644 index 0000000000..d616824dcf Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000046/content/00000000.app differ diff --git a/Data/Sys/Wii/title/00000001/00000046/content/title.tmd b/Data/Sys/Wii/title/00000001/00000046/content/title.tmd new file mode 100644 index 0000000000..d7a261641b Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000046/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/000000de/content/00000000.app b/Data/Sys/Wii/title/00000001/000000de/content/00000000.app new file mode 100644 index 0000000000..c0eb2db39f Binary files /dev/null and b/Data/Sys/Wii/title/00000001/000000de/content/00000000.app differ diff --git a/Data/Sys/Wii/title/00000001/000000de/content/title.tmd b/Data/Sys/Wii/title/00000001/000000de/content/title.tmd new file mode 100644 index 0000000000..7c5adf252a Binary files /dev/null and b/Data/Sys/Wii/title/00000001/000000de/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/000000df/content/00000000.app b/Data/Sys/Wii/title/00000001/000000df/content/00000000.app new file mode 100644 index 0000000000..c0eb2db39f Binary files /dev/null and b/Data/Sys/Wii/title/00000001/000000df/content/00000000.app differ diff --git a/Data/Sys/Wii/title/00000001/000000df/content/title.tmd b/Data/Sys/Wii/title/00000001/000000df/content/title.tmd new file mode 100644 index 0000000000..7978a95d01 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/000000df/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/000000f9/content/00000000.app b/Data/Sys/Wii/title/00000001/000000f9/content/00000000.app new file mode 100644 index 0000000000..3854334a53 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/000000f9/content/00000000.app differ diff --git a/Data/Sys/Wii/title/00000001/000000f9/content/title.tmd b/Data/Sys/Wii/title/00000001/000000f9/content/title.tmd new file mode 100644 index 0000000000..776961d4a0 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/000000f9/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/000000fa/content/00000000.app b/Data/Sys/Wii/title/00000001/000000fa/content/00000000.app new file mode 100644 index 0000000000..3854334a53 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/000000fa/content/00000000.app differ diff --git a/Data/Sys/Wii/title/00000001/000000fa/content/title.tmd b/Data/Sys/Wii/title/00000001/000000fa/content/title.tmd new file mode 100644 index 0000000000..f1bac48125 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/000000fa/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/000000fe/content/00000003.app b/Data/Sys/Wii/title/00000001/000000fe/content/00000003.app new file mode 100644 index 0000000000..017c530371 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/000000fe/content/00000003.app differ diff --git a/Data/Sys/Wii/title/00000001/000000fe/content/title.tmd b/Data/Sys/Wii/title/00000001/000000fe/content/title.tmd new file mode 100644 index 0000000000..c5acb63f71 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/000000fe/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/00000100/content/00000007.app b/Data/Sys/Wii/title/00000001/00000100/content/00000007.app new file mode 100644 index 0000000000..ab8982d787 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000100/content/00000007.app differ diff --git a/Data/Sys/Wii/title/00000001/00000100/content/00000008.app b/Data/Sys/Wii/title/00000001/00000100/content/00000008.app new file mode 100644 index 0000000000..01277adc08 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000100/content/00000008.app differ diff --git a/Data/Sys/Wii/title/00000001/00000100/content/title.tmd b/Data/Sys/Wii/title/00000001/00000100/content/title.tmd new file mode 100644 index 0000000000..e0c7c8ef96 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000100/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00000001/00000101/content/0000000b.app b/Data/Sys/Wii/title/00000001/00000101/content/0000000b.app new file mode 100644 index 0000000000..e6731f4938 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000101/content/0000000b.app differ diff --git a/Data/Sys/Wii/title/00000001/00000101/content/0000000c.app b/Data/Sys/Wii/title/00000001/00000101/content/0000000c.app new file mode 100644 index 0000000000..41b00fa374 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000101/content/0000000c.app differ diff --git a/Data/Sys/Wii/title/00000001/00000101/content/title.tmd b/Data/Sys/Wii/title/00000001/00000101/content/title.tmd new file mode 100644 index 0000000000..4cd28bd570 Binary files /dev/null and b/Data/Sys/Wii/title/00000001/00000101/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/52324445/content/title.tmd b/Data/Sys/Wii/title/00010000/52324445/content/title.tmd new file mode 100644 index 0000000000..5b94464603 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52324445/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/52324445/data/banner.bin b/Data/Sys/Wii/title/00010000/52324445/data/banner.bin new file mode 100644 index 0000000000..9b0df392d8 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52324445/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010000/52324445/data/savefile.dat b/Data/Sys/Wii/title/00010000/52324445/data/savefile.dat new file mode 100644 index 0000000000..fc93bf9c18 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52324445/data/savefile.dat differ diff --git a/Data/Sys/Wii/title/00010000/52345145/content/title.tmd b/Data/Sys/Wii/title/00010000/52345145/content/title.tmd new file mode 100644 index 0000000000..1813369c98 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52345145/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/52345145/data/Strikers2 b/Data/Sys/Wii/title/00010000/52345145/data/Strikers2 new file mode 100644 index 0000000000..5f4be4a8fd Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52345145/data/Strikers2 differ diff --git a/Data/Sys/Wii/title/00010000/52345145/data/banner.bin b/Data/Sys/Wii/title/00010000/52345145/data/banner.bin new file mode 100644 index 0000000000..1b2c49d126 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52345145/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010000/52345150/content/title.tmd b/Data/Sys/Wii/title/00010000/52345150/content/title.tmd new file mode 100644 index 0000000000..601e533a01 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52345150/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/52345150/data/Strikers2 b/Data/Sys/Wii/title/00010000/52345150/data/Strikers2 new file mode 100644 index 0000000000..da78519b88 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52345150/data/Strikers2 differ diff --git a/Data/Sys/Wii/title/00010000/52345150/data/banner.bin b/Data/Sys/Wii/title/00010000/52345150/data/banner.bin new file mode 100644 index 0000000000..696317ce1e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52345150/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010000/52363445/content/title.tmd b/Data/Sys/Wii/title/00010000/52363445/content/title.tmd new file mode 100644 index 0000000000..1e84a4d953 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52363445/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/52363445/data/RPClipDB.dat b/Data/Sys/Wii/title/00010000/52363445/data/RPClipDB.dat new file mode 100644 index 0000000000..746a8c0891 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52363445/data/RPClipDB.dat differ diff --git a/Data/Sys/Wii/title/00010000/52363445/data/RPMusic.dat b/Data/Sys/Wii/title/00010000/52363445/data/RPMusic.dat new file mode 100644 index 0000000000..8b3e713e1d Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52363445/data/RPMusic.dat differ diff --git a/Data/Sys/Wii/title/00010000/52363445/data/RPNandDB.dat b/Data/Sys/Wii/title/00010000/52363445/data/RPNandDB.dat new file mode 100644 index 0000000000..bcba5cbacb Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52363445/data/RPNandDB.dat differ diff --git a/Data/Sys/Wii/title/00010000/52363445/data/banner.bin b/Data/Sys/Wii/title/00010000/52363445/data/banner.bin new file mode 100644 index 0000000000..744ab8a4df Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52363445/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010000/52363445/data/wc24scr.vff b/Data/Sys/Wii/title/00010000/52363445/data/wc24scr.vff new file mode 100644 index 0000000000..a368cd2624 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52363445/data/wc24scr.vff differ diff --git a/Data/Sys/Wii/title/00010000/52464545/content/title.tmd b/Data/Sys/Wii/title/00010000/52464545/content/title.tmd new file mode 100644 index 0000000000..f3eb36a434 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52464545/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/52464545/data/FE10_US.dat b/Data/Sys/Wii/title/00010000/52464545/data/FE10_US.dat new file mode 100644 index 0000000000..8548c32814 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52464545/data/FE10_US.dat differ diff --git a/Data/Sys/Wii/title/00010000/52464545/data/banner.bin b/Data/Sys/Wii/title/00010000/52464545/data/banner.bin new file mode 100644 index 0000000000..8fc86e6157 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52464545/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010000/52484145/content/title.tmd b/Data/Sys/Wii/title/00010000/52484145/content/title.tmd new file mode 100644 index 0000000000..768a2ab1c2 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52484145/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/52484145/data/RPParty.dat b/Data/Sys/Wii/title/00010000/52484145/data/RPParty.dat new file mode 100644 index 0000000000..8e98670e2f Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52484145/data/RPParty.dat differ diff --git a/Data/Sys/Wii/title/00010000/52484145/data/banner.bin b/Data/Sys/Wii/title/00010000/52484145/data/banner.bin new file mode 100644 index 0000000000..3e7f9280a5 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52484145/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010000/524b3245/content/title.tmd b/Data/Sys/Wii/title/00010000/524b3245/content/title.tmd new file mode 100644 index 0000000000..071b875430 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3245/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/524b3245/data/banner.bin b/Data/Sys/Wii/title/00010000/524b3245/data/banner.bin new file mode 100644 index 0000000000..cf5b1ad5d3 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3245/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010000/524b3245/data/save.dat b/Data/Sys/Wii/title/00010000/524b3245/data/save.dat new file mode 100644 index 0000000000..b027fd2195 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3245/data/save.dat differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/content/title.tmd b/Data/Sys/Wii/title/00010000/524b3545/content/title.tmd new file mode 100644 index 0000000000..dd24dabcb3 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/FLF.bin b/Data/Sys/Wii/title/00010000/524b3545/data/FLF.bin new file mode 100644 index 0000000000..826556a2db Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/FLF.bin differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_00.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_00.jpg new file mode 100644 index 0000000000..cd6b5e9fbf Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_00.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_01.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_01.jpg new file mode 100644 index 0000000000..6dbfc2b57d Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_01.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_02.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_02.jpg new file mode 100644 index 0000000000..467e330b2f Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_02.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_03.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_03.jpg new file mode 100644 index 0000000000..62a0e8b410 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_03.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_04.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_04.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_04.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_05.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_05.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_05.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_06.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_06.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_06.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_07.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_07.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_07.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_08.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_08.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_08.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_09.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_09.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_0_09.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_00.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_00.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_00.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_01.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_01.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_01.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_02.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_02.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_02.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_03.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_03.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_03.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_04.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_04.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_04.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_05.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_05.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_05.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_06.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_06.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_06.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_07.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_07.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_07.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_08.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_08.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_08.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_09.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_09.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_1_09.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_00.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_00.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_00.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_01.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_01.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_01.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_02.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_02.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_02.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_03.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_03.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_03.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_04.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_04.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_04.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_05.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_05.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_05.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_06.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_06.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_06.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_07.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_07.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_07.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_08.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_08.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_08.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_09.jpg b/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_09.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/GF_2_09.jpg differ diff --git a/Data/Sys/Wii/title/00010000/524b3545/data/banner.bin b/Data/Sys/Wii/title/00010000/524b3545/data/banner.bin new file mode 100644 index 0000000000..4cfd4a7c1b Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524b3545/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010000/524d3845/content/title.tmd b/Data/Sys/Wii/title/00010000/524d3845/content/title.tmd new file mode 100644 index 0000000000..e6c599d20e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524d3845/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/524d3845/data/banner.bin b/Data/Sys/Wii/title/00010000/524d3845/data/banner.bin new file mode 100644 index 0000000000..4601762fc8 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524d3845/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010000/524d3845/data/mp8save.bin b/Data/Sys/Wii/title/00010000/524d3845/data/mp8save.bin new file mode 100644 index 0000000000..17373fd756 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524d3845/data/mp8save.bin differ diff --git a/Data/Sys/Wii/title/00010000/524d4245/content/title.tmd b/Data/Sys/Wii/title/00010000/524d4245/content/title.tmd new file mode 100644 index 0000000000..f354aaac1d Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524d4245/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/524d4245/data/banner.bin b/Data/Sys/Wii/title/00010000/524d4245/data/banner.bin new file mode 100644 index 0000000000..56baa5659a Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524d4245/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010000/524d4245/data/gamedata b/Data/Sys/Wii/title/00010000/524d4245/data/gamedata new file mode 100644 index 0000000000..cb05a59712 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524d4245/data/gamedata differ diff --git a/Data/Sys/Wii/title/00010000/524d4245/data/oekaki_0 b/Data/Sys/Wii/title/00010000/524d4245/data/oekaki_0 new file mode 100644 index 0000000000..2593561545 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524d4245/data/oekaki_0 differ diff --git a/Data/Sys/Wii/title/00010000/524d4245/data/oekaki_1 b/Data/Sys/Wii/title/00010000/524d4245/data/oekaki_1 new file mode 100644 index 0000000000..029411a72a Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524d4245/data/oekaki_1 differ diff --git a/Data/Sys/Wii/title/00010000/524d4245/data/oekaki_2 b/Data/Sys/Wii/title/00010000/524d4245/data/oekaki_2 new file mode 100644 index 0000000000..029411a72a Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524d4245/data/oekaki_2 differ diff --git a/Data/Sys/Wii/title/00010000/524d4745/content/title.tmd b/Data/Sys/Wii/title/00010000/524d4745/content/title.tmd new file mode 100644 index 0000000000..f33a74182c Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524d4745/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/524d4745/data/GameData.bin b/Data/Sys/Wii/title/00010000/524d4745/data/GameData.bin new file mode 100644 index 0000000000..1611373a52 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524d4745/data/GameData.bin differ diff --git a/Data/Sys/Wii/title/00010000/524d4745/data/banner.bin b/Data/Sys/Wii/title/00010000/524d4745/data/banner.bin new file mode 100644 index 0000000000..804db6f6c4 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524d4745/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010000/524f4445/content/title.tmd b/Data/Sys/Wii/title/00010000/524f4445/content/title.tmd new file mode 100644 index 0000000000..dee556669f Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524f4445/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/524f4445/data/SAVE0 b/Data/Sys/Wii/title/00010000/524f4445/data/SAVE0 new file mode 100644 index 0000000000..40434b346d Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524f4445/data/SAVE0 differ diff --git a/Data/Sys/Wii/title/00010000/524f4445/data/SAVE1 b/Data/Sys/Wii/title/00010000/524f4445/data/SAVE1 new file mode 100644 index 0000000000..87907689ab Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524f4445/data/SAVE1 differ diff --git a/Data/Sys/Wii/title/00010000/524f4445/data/banner.bin b/Data/Sys/Wii/title/00010000/524f4445/data/banner.bin new file mode 100644 index 0000000000..6ee9cf747c Binary files /dev/null and b/Data/Sys/Wii/title/00010000/524f4445/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010000/52524245/content/title.tmd b/Data/Sys/Wii/title/00010000/52524245/content/title.tmd new file mode 100644 index 0000000000..3fef8bf05d Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52524245/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/52524245/data/RIV_SAV_FILE b/Data/Sys/Wii/title/00010000/52524245/data/RIV_SAV_FILE new file mode 100644 index 0000000000..4f38955b39 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52524245/data/RIV_SAV_FILE differ diff --git a/Data/Sys/Wii/title/00010000/52524245/data/banner.bin b/Data/Sys/Wii/title/00010000/52524245/data/banner.bin new file mode 100644 index 0000000000..f490ef192c Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52524245/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010000/52534d45/content/title.tmd b/Data/Sys/Wii/title/00010000/52534d45/content/title.tmd new file mode 100644 index 0000000000..001c571e2d Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52534d45/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/52534d45/data/RPL061123001 b/Data/Sys/Wii/title/00010000/52534d45/data/RPL061123001 new file mode 100644 index 0000000000..20598a93b3 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52534d45/data/RPL061123001 differ diff --git a/Data/Sys/Wii/title/00010000/52534d45/data/RPL061124001 b/Data/Sys/Wii/title/00010000/52534d45/data/RPL061124001 new file mode 100644 index 0000000000..4ceb2b083b Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52534d45/data/RPL061124001 differ diff --git a/Data/Sys/Wii/title/00010000/52534d45/data/RPL061124002 b/Data/Sys/Wii/title/00010000/52534d45/data/RPL061124002 new file mode 100644 index 0000000000..b147d389f7 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52534d45/data/RPL061124002 differ diff --git a/Data/Sys/Wii/title/00010000/52534d45/data/RPL061206001 b/Data/Sys/Wii/title/00010000/52534d45/data/RPL061206001 new file mode 100644 index 0000000000..cf0c2cae80 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52534d45/data/RPL061206001 differ diff --git a/Data/Sys/Wii/title/00010000/52534d45/data/RPL061208001 b/Data/Sys/Wii/title/00010000/52534d45/data/RPL061208001 new file mode 100644 index 0000000000..d495017fec Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52534d45/data/RPL061208001 differ diff --git a/Data/Sys/Wii/title/00010000/52534d45/data/SYSTEM b/Data/Sys/Wii/title/00010000/52534d45/data/SYSTEM new file mode 100644 index 0000000000..94f5e2c9e5 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52534d45/data/SYSTEM differ diff --git a/Data/Sys/Wii/title/00010000/52534d45/data/banner.bin b/Data/Sys/Wii/title/00010000/52534d45/data/banner.bin new file mode 100644 index 0000000000..e961dc558b Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52534d45/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010000/52535045/content/title.tmd b/Data/Sys/Wii/title/00010000/52535045/content/title.tmd new file mode 100644 index 0000000000..fcccec920e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52535045/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/52535045/data/RPSports.dat b/Data/Sys/Wii/title/00010000/52535045/data/RPSports.dat new file mode 100644 index 0000000000..8f3b58a0c7 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52535045/data/RPSports.dat differ diff --git a/Data/Sys/Wii/title/00010000/52535045/data/banner.bin b/Data/Sys/Wii/title/00010000/52535045/data/banner.bin new file mode 100644 index 0000000000..41aa324eed Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52535045/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010000/52545a45/content/title.tmd b/Data/Sys/Wii/title/00010000/52545a45/content/title.tmd new file mode 100644 index 0000000000..77519e543a Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52545a45/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/52545a45/data/ZACKANDWIKI b/Data/Sys/Wii/title/00010000/52545a45/data/ZACKANDWIKI new file mode 100644 index 0000000000..b7756054ac Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52545a45/data/ZACKANDWIKI differ diff --git a/Data/Sys/Wii/title/00010000/52545a45/data/banner.bin b/Data/Sys/Wii/title/00010000/52545a45/data/banner.bin new file mode 100644 index 0000000000..4fa6332990 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/52545a45/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010000/53423445/content/title.tmd b/Data/Sys/Wii/title/00010000/53423445/content/title.tmd new file mode 100644 index 0000000000..4a03348221 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/53423445/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/53423445/data/GameData.bin b/Data/Sys/Wii/title/00010000/53423445/data/GameData.bin new file mode 100644 index 0000000000..9a5eebd2a5 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/53423445/data/GameData.bin differ diff --git a/Data/Sys/Wii/title/00010000/53423445/data/banner.bin b/Data/Sys/Wii/title/00010000/53423445/data/banner.bin new file mode 100644 index 0000000000..61dea101a0 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/53423445/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010000/53463845/content/title.tmd b/Data/Sys/Wii/title/00010000/53463845/content/title.tmd new file mode 100644 index 0000000000..c06c81fdcc Binary files /dev/null and b/Data/Sys/Wii/title/00010000/53463845/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/53463845/data/banner.bin b/Data/Sys/Wii/title/00010000/53463845/data/banner.bin new file mode 100644 index 0000000000..9fe00eaa6a Binary files /dev/null and b/Data/Sys/Wii/title/00010000/53463845/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010000/53463845/data/save.bin b/Data/Sys/Wii/title/00010000/53463845/data/save.bin new file mode 100644 index 0000000000..f9dccf3728 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/53463845/data/save.bin differ diff --git a/Data/Sys/Wii/title/00010000/534d4e45/content/title.tmd b/Data/Sys/Wii/title/00010000/534d4e45/content/title.tmd new file mode 100644 index 0000000000..3b031605ba Binary files /dev/null and b/Data/Sys/Wii/title/00010000/534d4e45/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/534d4e45/data/banner.bin b/Data/Sys/Wii/title/00010000/534d4e45/data/banner.bin new file mode 100644 index 0000000000..8837857f9b Binary files /dev/null and b/Data/Sys/Wii/title/00010000/534d4e45/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010000/534d4e45/data/wiimj2d.sav b/Data/Sys/Wii/title/00010000/534d4e45/data/wiimj2d.sav new file mode 100644 index 0000000000..c3a17e5372 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/534d4e45/data/wiimj2d.sav differ diff --git a/Data/Sys/Wii/title/00010000/534f4a45/content/title.tmd b/Data/Sys/Wii/title/00010000/534f4a45/content/title.tmd new file mode 100644 index 0000000000..cdb18157d2 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/534f4a45/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/534f4a45/data/banner.bin b/Data/Sys/Wii/title/00010000/534f4a45/data/banner.bin new file mode 100644 index 0000000000..1d26d00304 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/534f4a45/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010000/534f4a45/data/slot_0.sav b/Data/Sys/Wii/title/00010000/534f4a45/data/slot_0.sav new file mode 100644 index 0000000000..d53d8a4c5c Binary files /dev/null and b/Data/Sys/Wii/title/00010000/534f4a45/data/slot_0.sav differ diff --git a/Data/Sys/Wii/title/00010000/534f4a45/data/slot_1.sav b/Data/Sys/Wii/title/00010000/534f4a45/data/slot_1.sav new file mode 100644 index 0000000000..ef3705ea4f Binary files /dev/null and b/Data/Sys/Wii/title/00010000/534f4a45/data/slot_1.sav differ diff --git a/Data/Sys/Wii/title/00010000/534f4a45/data/slot_2.sav b/Data/Sys/Wii/title/00010000/534f4a45/data/slot_2.sav new file mode 100644 index 0000000000..ef3705ea4f Binary files /dev/null and b/Data/Sys/Wii/title/00010000/534f4a45/data/slot_2.sav differ diff --git a/Data/Sys/Wii/title/00010000/534f4d45/content/title.tmd b/Data/Sys/Wii/title/00010000/534f4d45/content/title.tmd new file mode 100644 index 0000000000..e797a48b53 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/534f4d45/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/534f4d45/data/Riq.dat b/Data/Sys/Wii/title/00010000/534f4d45/data/Riq.dat new file mode 100644 index 0000000000..8788883f38 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/534f4d45/data/Riq.dat differ diff --git a/Data/Sys/Wii/title/00010000/534f4d45/data/banner.bin b/Data/Sys/Wii/title/00010000/534f4d45/data/banner.bin new file mode 100644 index 0000000000..43052bfb47 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/534f4d45/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010000/53535145/content/title.tmd b/Data/Sys/Wii/title/00010000/53535145/content/title.tmd new file mode 100644 index 0000000000..b9f7373c2b Binary files /dev/null and b/Data/Sys/Wii/title/00010000/53535145/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/53535145/data/banner.bin b/Data/Sys/Wii/title/00010000/53535145/data/banner.bin new file mode 100644 index 0000000000..7355c21a00 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/53535145/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010000/53535145/data/save.dat b/Data/Sys/Wii/title/00010000/53535145/data/save.dat new file mode 100644 index 0000000000..1ed17fb54e Binary files /dev/null and b/Data/Sys/Wii/title/00010000/53535145/data/save.dat differ diff --git a/Data/Sys/Wii/title/00010000/53543745/content/title.tmd b/Data/Sys/Wii/title/00010000/53543745/content/title.tmd new file mode 100644 index 0000000000..97504df076 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/53543745/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/53543745/data/banner.bin b/Data/Sys/Wii/title/00010000/53543745/data/banner.bin new file mode 100644 index 0000000000..48b1f2c0ea Binary files /dev/null and b/Data/Sys/Wii/title/00010000/53543745/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010000/53543745/data/system.dat b/Data/Sys/Wii/title/00010000/53543745/data/system.dat new file mode 100644 index 0000000000..4e4e493570 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/53543745/data/system.dat differ diff --git a/Data/Sys/Wii/title/00010000/53543745/data/user.dat b/Data/Sys/Wii/title/00010000/53543745/data/user.dat new file mode 100644 index 0000000000..2d8cee8c2d Binary files /dev/null and b/Data/Sys/Wii/title/00010000/53543745/data/user.dat differ diff --git a/Data/Sys/Wii/title/00010000/53554b45/content/title.tmd b/Data/Sys/Wii/title/00010000/53554b45/content/title.tmd new file mode 100644 index 0000000000..02650e5f87 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/53554b45/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/53554b45/data/banner.bin b/Data/Sys/Wii/title/00010000/53554b45/data/banner.bin new file mode 100644 index 0000000000..d6af949368 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/53554b45/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010000/53554b45/data/savedata.dat b/Data/Sys/Wii/title/00010000/53554b45/data/savedata.dat new file mode 100644 index 0000000000..68465b09f7 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/53554b45/data/savedata.dat differ diff --git a/Data/Sys/Wii/title/00010000/53555045/content/title.tmd b/Data/Sys/Wii/title/00010000/53555045/content/title.tmd new file mode 100644 index 0000000000..8c50281744 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/53555045/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010000/53555045/data/banner.bin b/Data/Sys/Wii/title/00010000/53555045/data/banner.bin new file mode 100644 index 0000000000..a40d12f2ce Binary files /dev/null and b/Data/Sys/Wii/title/00010000/53555045/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010000/53555045/data/wiiparty.bin b/Data/Sys/Wii/title/00010000/53555045/data/wiiparty.bin new file mode 100644 index 0000000000..7f1d5f9821 Binary files /dev/null and b/Data/Sys/Wii/title/00010000/53555045/data/wiiparty.bin differ diff --git a/Data/Sys/Wii/title/00010001/4e415a45/data/EEP_NMWE b/Data/Sys/Wii/title/00010001/4e415a45/data/EEP_NMWE new file mode 100644 index 0000000000..8131fe8bb4 Binary files /dev/null and b/Data/Sys/Wii/title/00010001/4e415a45/data/EEP_NMWE differ diff --git a/Data/Sys/Wii/title/00010001/4e415a45/data/banner.bin b/Data/Sys/Wii/title/00010001/4e415a45/data/banner.bin new file mode 100644 index 0000000000..a2d97ef492 Binary files /dev/null and b/Data/Sys/Wii/title/00010001/4e415a45/data/banner.bin differ diff --git a/Data/Sys/Wii/title/00010002/48414241/content/00000022.app b/Data/Sys/Wii/title/00010002/48414241/content/00000022.app new file mode 100644 index 0000000000..0cdda6d467 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414241/content/00000022.app differ diff --git a/Data/Sys/Wii/title/00010002/48414241/content/00000032.app b/Data/Sys/Wii/title/00010002/48414241/content/00000032.app new file mode 100644 index 0000000000..72f5103102 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414241/content/00000032.app differ diff --git a/Data/Sys/Wii/title/00010002/48414241/content/0000003a.app b/Data/Sys/Wii/title/00010002/48414241/content/0000003a.app new file mode 100644 index 0000000000..8985a99d86 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414241/content/0000003a.app differ diff --git a/Data/Sys/Wii/title/00010002/48414241/content/0000004c.app b/Data/Sys/Wii/title/00010002/48414241/content/0000004c.app new file mode 100644 index 0000000000..283bf9c0fc Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414241/content/0000004c.app differ diff --git a/Data/Sys/Wii/title/00010002/48414241/content/0000004f.app b/Data/Sys/Wii/title/00010002/48414241/content/0000004f.app new file mode 100644 index 0000000000..4396d1844c Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414241/content/0000004f.app differ diff --git a/Data/Sys/Wii/title/00010002/48414241/content/00000050.app b/Data/Sys/Wii/title/00010002/48414241/content/00000050.app new file mode 100644 index 0000000000..0c4525bb45 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414241/content/00000050.app differ diff --git a/Data/Sys/Wii/title/00010002/48414241/content/00000051.app b/Data/Sys/Wii/title/00010002/48414241/content/00000051.app new file mode 100644 index 0000000000..3935fe84c1 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414241/content/00000051.app differ diff --git a/Data/Sys/Wii/title/00010002/48414241/content/title.tmd b/Data/Sys/Wii/title/00010002/48414241/content/title.tmd new file mode 100644 index 0000000000..c8f88c233e Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414241/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010002/48414341/content/00000016.app b/Data/Sys/Wii/title/00010002/48414341/content/00000016.app new file mode 100644 index 0000000000..1ba80e1a1a Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414341/content/00000016.app differ diff --git a/Data/Sys/Wii/title/00010002/48414341/content/00000017.app b/Data/Sys/Wii/title/00010002/48414341/content/00000017.app new file mode 100644 index 0000000000..0c4bc9dd4a Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414341/content/00000017.app differ diff --git a/Data/Sys/Wii/title/00010002/48414341/content/00000018.app b/Data/Sys/Wii/title/00010002/48414341/content/00000018.app new file mode 100644 index 0000000000..ec48896395 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414341/content/00000018.app differ diff --git a/Data/Sys/Wii/title/00010002/48414341/content/00000019.app b/Data/Sys/Wii/title/00010002/48414341/content/00000019.app new file mode 100644 index 0000000000..73ed752876 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414341/content/00000019.app differ diff --git a/Data/Sys/Wii/title/00010002/48414341/content/title.tmd b/Data/Sys/Wii/title/00010002/48414341/content/title.tmd new file mode 100644 index 0000000000..97d2eb8591 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414341/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010002/48414341/data/NigaoeCh.dat b/Data/Sys/Wii/title/00010002/48414341/data/NigaoeCh.dat new file mode 100644 index 0000000000..dcbcf2eba2 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414341/data/NigaoeCh.dat differ diff --git a/Data/Sys/Wii/title/00010002/48414641/content/00000001.app b/Data/Sys/Wii/title/00010002/48414641/content/00000001.app new file mode 100644 index 0000000000..b7d945afa6 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414641/content/00000001.app differ diff --git a/Data/Sys/Wii/title/00010002/48414641/content/00000002.app b/Data/Sys/Wii/title/00010002/48414641/content/00000002.app new file mode 100644 index 0000000000..73de877d35 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414641/content/00000002.app differ diff --git a/Data/Sys/Wii/title/00010002/48414641/content/00000003.app b/Data/Sys/Wii/title/00010002/48414641/content/00000003.app new file mode 100644 index 0000000000..65af4089f0 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414641/content/00000003.app differ diff --git a/Data/Sys/Wii/title/00010002/48414641/content/title.tmd b/Data/Sys/Wii/title/00010002/48414641/content/title.tmd new file mode 100644 index 0000000000..f0317fba3c Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414641/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010002/48414645/content/0000000a.app b/Data/Sys/Wii/title/00010002/48414645/content/0000000a.app new file mode 100644 index 0000000000..5fab305608 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414645/content/0000000a.app differ diff --git a/Data/Sys/Wii/title/00010002/48414645/content/0000000c.app b/Data/Sys/Wii/title/00010002/48414645/content/0000000c.app new file mode 100644 index 0000000000..33a3356c3b Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414645/content/0000000c.app differ diff --git a/Data/Sys/Wii/title/00010002/48414645/content/0000000d.app b/Data/Sys/Wii/title/00010002/48414645/content/0000000d.app new file mode 100644 index 0000000000..c5472b6645 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414645/content/0000000d.app differ diff --git a/Data/Sys/Wii/title/00010002/48414645/content/0000000e.app b/Data/Sys/Wii/title/00010002/48414645/content/0000000e.app new file mode 100644 index 0000000000..c10c03bdae Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414645/content/0000000e.app differ diff --git a/Data/Sys/Wii/title/00010002/48414645/content/0000000f.app b/Data/Sys/Wii/title/00010002/48414645/content/0000000f.app new file mode 100644 index 0000000000..51b2db01e8 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414645/content/0000000f.app differ diff --git a/Data/Sys/Wii/title/00010002/48414645/content/00000010.app b/Data/Sys/Wii/title/00010002/48414645/content/00000010.app new file mode 100644 index 0000000000..9934978ff8 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414645/content/00000010.app differ diff --git a/Data/Sys/Wii/title/00010002/48414645/content/00000011.app b/Data/Sys/Wii/title/00010002/48414645/content/00000011.app new file mode 100644 index 0000000000..09cac54901 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414645/content/00000011.app differ diff --git a/Data/Sys/Wii/title/00010002/48414645/content/title.tmd b/Data/Sys/Wii/title/00010002/48414645/content/title.tmd new file mode 100644 index 0000000000..993c9d8b2a Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414645/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010002/48414741/content/00000001.app b/Data/Sys/Wii/title/00010002/48414741/content/00000001.app new file mode 100644 index 0000000000..b7d945afa6 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414741/content/00000001.app differ diff --git a/Data/Sys/Wii/title/00010002/48414741/content/00000002.app b/Data/Sys/Wii/title/00010002/48414741/content/00000002.app new file mode 100644 index 0000000000..3c3062a697 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414741/content/00000002.app differ diff --git a/Data/Sys/Wii/title/00010002/48414741/content/00000003.app b/Data/Sys/Wii/title/00010002/48414741/content/00000003.app new file mode 100644 index 0000000000..65af4089f0 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414741/content/00000003.app differ diff --git a/Data/Sys/Wii/title/00010002/48414741/content/title.tmd b/Data/Sys/Wii/title/00010002/48414741/content/title.tmd new file mode 100644 index 0000000000..37cc14c851 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414741/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010002/48414745/content/0000000a.app b/Data/Sys/Wii/title/00010002/48414745/content/0000000a.app new file mode 100644 index 0000000000..1d446ea32d Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414745/content/0000000a.app differ diff --git a/Data/Sys/Wii/title/00010002/48414745/content/0000000b.app b/Data/Sys/Wii/title/00010002/48414745/content/0000000b.app new file mode 100644 index 0000000000..074deb9bb3 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414745/content/0000000b.app differ diff --git a/Data/Sys/Wii/title/00010002/48414745/content/0000000c.app b/Data/Sys/Wii/title/00010002/48414745/content/0000000c.app new file mode 100644 index 0000000000..9e31ea19d5 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414745/content/0000000c.app differ diff --git a/Data/Sys/Wii/title/00010002/48414745/content/0000000d.app b/Data/Sys/Wii/title/00010002/48414745/content/0000000d.app new file mode 100644 index 0000000000..9b208722f8 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414745/content/0000000d.app differ diff --git a/Data/Sys/Wii/title/00010002/48414745/content/00000011.app b/Data/Sys/Wii/title/00010002/48414745/content/00000011.app new file mode 100644 index 0000000000..2c7b802c54 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414745/content/00000011.app differ diff --git a/Data/Sys/Wii/title/00010002/48414745/content/00000012.app b/Data/Sys/Wii/title/00010002/48414745/content/00000012.app new file mode 100644 index 0000000000..f417053ad1 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414745/content/00000012.app differ diff --git a/Data/Sys/Wii/title/00010002/48414745/content/00000013.app b/Data/Sys/Wii/title/00010002/48414745/content/00000013.app new file mode 100644 index 0000000000..09cac54901 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414745/content/00000013.app differ diff --git a/Data/Sys/Wii/title/00010002/48414745/content/title.tmd b/Data/Sys/Wii/title/00010002/48414745/content/title.tmd new file mode 100644 index 0000000000..6f0c10f7c2 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48414745/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010002/48415941/content/0000000e.app b/Data/Sys/Wii/title/00010002/48415941/content/0000000e.app new file mode 100644 index 0000000000..21fbb6b7d1 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48415941/content/0000000e.app differ diff --git a/Data/Sys/Wii/title/00010002/48415941/content/0000000f.app b/Data/Sys/Wii/title/00010002/48415941/content/0000000f.app new file mode 100644 index 0000000000..3bb262dbd5 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48415941/content/0000000f.app differ diff --git a/Data/Sys/Wii/title/00010002/48415941/content/00000012.app b/Data/Sys/Wii/title/00010002/48415941/content/00000012.app new file mode 100644 index 0000000000..a231f45254 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48415941/content/00000012.app differ diff --git a/Data/Sys/Wii/title/00010002/48415941/content/00000013.app b/Data/Sys/Wii/title/00010002/48415941/content/00000013.app new file mode 100644 index 0000000000..9ddb05ccc6 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48415941/content/00000013.app differ diff --git a/Data/Sys/Wii/title/00010002/48415941/content/00000014.app b/Data/Sys/Wii/title/00010002/48415941/content/00000014.app new file mode 100644 index 0000000000..5b09ebfa48 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48415941/content/00000014.app differ diff --git a/Data/Sys/Wii/title/00010002/48415941/content/00000015.app b/Data/Sys/Wii/title/00010002/48415941/content/00000015.app new file mode 100644 index 0000000000..283bf9c0fc Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48415941/content/00000015.app differ diff --git a/Data/Sys/Wii/title/00010002/48415941/content/title.tmd b/Data/Sys/Wii/title/00010002/48415941/content/title.tmd new file mode 100644 index 0000000000..5a34153258 Binary files /dev/null and b/Data/Sys/Wii/title/00010002/48415941/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010008/48414b45/content/00000009.app b/Data/Sys/Wii/title/00010008/48414b45/content/00000009.app new file mode 100644 index 0000000000..5a5a8bfae9 Binary files /dev/null and b/Data/Sys/Wii/title/00010008/48414b45/content/00000009.app differ diff --git a/Data/Sys/Wii/title/00010008/48414b45/content/0000000a.app b/Data/Sys/Wii/title/00010008/48414b45/content/0000000a.app new file mode 100644 index 0000000000..30699e541e Binary files /dev/null and b/Data/Sys/Wii/title/00010008/48414b45/content/0000000a.app differ diff --git a/Data/Sys/Wii/title/00010008/48414b45/content/0000000b.app b/Data/Sys/Wii/title/00010008/48414b45/content/0000000b.app new file mode 100644 index 0000000000..fd22525736 Binary files /dev/null and b/Data/Sys/Wii/title/00010008/48414b45/content/0000000b.app differ diff --git a/Data/Sys/Wii/title/00010008/48414b45/content/0000000c.app b/Data/Sys/Wii/title/00010008/48414b45/content/0000000c.app new file mode 100644 index 0000000000..09cac54901 Binary files /dev/null and b/Data/Sys/Wii/title/00010008/48414b45/content/0000000c.app differ diff --git a/Data/Sys/Wii/title/00010008/48414b45/content/title.tmd b/Data/Sys/Wii/title/00010008/48414b45/content/title.tmd new file mode 100644 index 0000000000..1f9241bdf3 Binary files /dev/null and b/Data/Sys/Wii/title/00010008/48414b45/content/title.tmd differ diff --git a/Data/Sys/Wii/title/00010008/48414c45/content/00000008.app b/Data/Sys/Wii/title/00010008/48414c45/content/00000008.app new file mode 100644 index 0000000000..6b675cd774 Binary files /dev/null and b/Data/Sys/Wii/title/00010008/48414c45/content/00000008.app differ diff --git a/Data/Sys/Wii/title/00010008/48414c45/content/00000009.app b/Data/Sys/Wii/title/00010008/48414c45/content/00000009.app new file mode 100644 index 0000000000..09548652e7 Binary files /dev/null and b/Data/Sys/Wii/title/00010008/48414c45/content/00000009.app differ diff --git a/Data/Sys/Wii/title/00010008/48414c45/content/0000000a.app b/Data/Sys/Wii/title/00010008/48414c45/content/0000000a.app new file mode 100644 index 0000000000..1c97615917 Binary files /dev/null and b/Data/Sys/Wii/title/00010008/48414c45/content/0000000a.app differ diff --git a/Data/Sys/Wii/title/00010008/48414c45/content/0000000b.app b/Data/Sys/Wii/title/00010008/48414c45/content/0000000b.app new file mode 100644 index 0000000000..09cac54901 Binary files /dev/null and b/Data/Sys/Wii/title/00010008/48414c45/content/0000000b.app differ diff --git a/Data/Sys/Wii/title/00010008/48414c45/content/title.tmd b/Data/Sys/Wii/title/00010008/48414c45/content/title.tmd new file mode 100644 index 0000000000..712f62d637 Binary files /dev/null and b/Data/Sys/Wii/title/00010008/48414c45/content/title.tmd differ diff --git a/Data/User/GC/SRAM.raw b/Data/User/GC/SRAM.raw new file mode 100644 index 0000000000..51f4e4c4f8 Binary files /dev/null and b/Data/User/GC/SRAM.raw differ diff --git a/Data/User/GC/USA/Card A/01-G2ME-MetroidPrime2.gci b/Data/User/GC/USA/Card A/01-G2ME-MetroidPrime2.gci new file mode 100644 index 0000000000..98062895c9 Binary files /dev/null and b/Data/User/GC/USA/Card A/01-G2ME-MetroidPrime2.gci differ diff --git a/Data/User/GC/USA/Card A/01-G4QE-MarioSoccer.gci b/Data/User/GC/USA/Card A/01-G4QE-MarioSoccer.gci new file mode 100644 index 0000000000..7ff09be94a Binary files /dev/null and b/Data/User/GC/USA/Card A/01-G4QE-MarioSoccer.gci differ diff --git a/Data/User/GC/USA/Card A/01-GALE-20XXTESettings.gci b/Data/User/GC/USA/Card A/01-GALE-20XXTESettings.gci new file mode 100644 index 0000000000..0be9d01c53 Binary files /dev/null and b/Data/User/GC/USA/Card A/01-GALE-20XXTESettings.gci differ diff --git a/Data/User/GC/USA/Card A/01-GALE-SuperSmashBros0110290334.gci b/Data/User/GC/USA/Card A/01-GALE-SuperSmashBros0110290334.gci new file mode 100644 index 0000000000..a28218616d Binary files /dev/null and b/Data/User/GC/USA/Card A/01-GALE-SuperSmashBros0110290334.gci differ diff --git a/Data/User/GC/USA/Card A/01-GF7E-starfox.dat.gci b/Data/User/GC/USA/Card A/01-GF7E-starfox.dat.gci new file mode 100644 index 0000000000..0898c3947d Binary files /dev/null and b/Data/User/GC/USA/Card A/01-GF7E-starfox.dat.gci differ diff --git a/Data/User/GC/USA/Card A/01-GKYE-KA030621_0100_T030529_2154.gci b/Data/User/GC/USA/Card A/01-GKYE-KA030621_0100_T030529_2154.gci new file mode 100644 index 0000000000..dcd40e56da Binary files /dev/null and b/Data/User/GC/USA/Card A/01-GKYE-KA030621_0100_T030529_2154.gci differ diff --git a/Data/User/GC/USA/Card A/01-GMPE-MARIPA4BOX0.gci b/Data/User/GC/USA/Card A/01-GMPE-MARIPA4BOX0.gci new file mode 100644 index 0000000000..341950bb7b Binary files /dev/null and b/Data/User/GC/USA/Card A/01-GMPE-MARIPA4BOX0.gci differ diff --git a/Data/User/GC/USA/Card A/01-GOME-T040906.gci b/Data/User/GC/USA/Card A/01-GOME-T040906.gci new file mode 100644 index 0000000000..c500123c9f Binary files /dev/null and b/Data/User/GC/USA/Card A/01-GOME-T040906.gci differ diff --git a/Data/User/GC/USA/Card A/01-GP5E-MARIPA5.gci b/Data/User/GC/USA/Card A/01-GP5E-MARIPA5.gci new file mode 100644 index 0000000000..5db05b24e9 Binary files /dev/null and b/Data/User/GC/USA/Card A/01-GP5E-MARIPA5.gci differ diff --git a/Data/User/GC/USA/Card A/01-GP6E-MARIPA6.gci b/Data/User/GC/USA/Card A/01-GP6E-MARIPA6.gci new file mode 100644 index 0000000000..59842c88b2 Binary files /dev/null and b/Data/User/GC/USA/Card A/01-GP6E-MARIPA6.gci differ diff --git a/Data/User/GC/USA/Card A/01-GP7E-MARIPA7.gci b/Data/User/GC/USA/Card A/01-GP7E-MARIPA7.gci new file mode 100644 index 0000000000..bfecd4ae0c Binary files /dev/null and b/Data/User/GC/USA/Card A/01-GP7E-MARIPA7.gci differ diff --git a/Data/User/GC/USA/Card A/01-GPVE-Pikmin2_SaveData.gci b/Data/User/GC/USA/Card A/01-GPVE-Pikmin2_SaveData.gci new file mode 100644 index 0000000000..c73de68dff Binary files /dev/null and b/Data/User/GC/USA/Card A/01-GPVE-Pikmin2_SaveData.gci differ diff --git a/Data/User/GC/USA/Card A/01-GYQE-MarioBaseball.gci b/Data/User/GC/USA/Card A/01-GYQE-MarioBaseball.gci new file mode 100644 index 0000000000..4469f22211 Binary files /dev/null and b/Data/User/GC/USA/Card A/01-GYQE-MarioBaseball.gci differ diff --git a/Data/User/GC/USA/Card A/8P-GEZE-billyhatcher.gci b/Data/User/GC/USA/Card A/8P-GEZE-billyhatcher.gci new file mode 100644 index 0000000000..23bab13247 Binary files /dev/null and b/Data/User/GC/USA/Card A/8P-GEZE-billyhatcher.gci differ diff --git a/Data/User/GC/USA/Card A/8P-GM2E-super_monkey_ball_2.dat.gci b/Data/User/GC/USA/Card A/8P-GM2E-super_monkey_ball_2.dat.gci new file mode 100644 index 0000000000..359335d582 Binary files /dev/null and b/Data/User/GC/USA/Card A/8P-GM2E-super_monkey_ball_2.dat.gci differ diff --git a/Data/User/GC/USA/Card A/8P-GMBE-super_monkey_ball.sys.gci b/Data/User/GC/USA/Card A/8P-GMBE-super_monkey_ball.sys.gci new file mode 100644 index 0000000000..528707186a Binary files /dev/null and b/Data/User/GC/USA/Card A/8P-GMBE-super_monkey_ball.sys.gci differ diff --git a/Data/User/GC/USA/Card A/8P-GSNE-SONIC2B__5f____5f__S02.gci b/Data/User/GC/USA/Card A/8P-GSNE-SONIC2B__5f____5f__S02.gci new file mode 100644 index 0000000000..d13ace2727 Binary files /dev/null and b/Data/User/GC/USA/Card A/8P-GSNE-SONIC2B__5f____5f__S02.gci differ diff --git a/Data/User/GC/USA/Card A/E9-G4AE-HARVESTMOON.gci b/Data/User/GC/USA/Card A/E9-G4AE-HARVESTMOON.gci new file mode 100644 index 0000000000..0ed3a41a46 Binary files /dev/null and b/Data/User/GC/USA/Card A/E9-G4AE-HARVESTMOON.gci differ diff --git a/Data/User/GC/USA/Card A/crash-nitro-kart.24416.gci b/Data/User/GC/USA/Card A/crash-nitro-kart.24416.gci new file mode 100644 index 0000000000..2343ea46bc Binary files /dev/null and b/Data/User/GC/USA/Card A/crash-nitro-kart.24416.gci differ diff --git a/Data/User/GC/USA/Card A/donkey-konga.7664.gci b/Data/User/GC/USA/Card A/donkey-konga.7664.gci new file mode 100644 index 0000000000..0a3b38370d Binary files /dev/null and b/Data/User/GC/USA/Card A/donkey-konga.7664.gci differ diff --git a/Data/User/GC/USA/Card A/namco-museum-50th-anniversary.24914.gci b/Data/User/GC/USA/Card A/namco-museum-50th-anniversary.24914.gci new file mode 100644 index 0000000000..8e9cc5d102 Binary files /dev/null and b/Data/User/GC/USA/Card A/namco-museum-50th-anniversary.24914.gci differ diff --git a/Data/User/GC/USA/Card A/rave-master.8733.gci b/Data/User/GC/USA/Card A/rave-master.8733.gci new file mode 100644 index 0000000000..bd2e242366 Binary files /dev/null and b/Data/User/GC/USA/Card A/rave-master.8733.gci differ diff --git a/Data/User/GC/USA/Card A/the-simpsons-hit-and-run.22911.gci b/Data/User/GC/USA/Card A/the-simpsons-hit-and-run.22911.gci new file mode 100644 index 0000000000..5730fd6587 Binary files /dev/null and b/Data/User/GC/USA/Card A/the-simpsons-hit-and-run.22911.gci differ diff --git a/Data/User/Load/Textures/GMPE01/tex1_128x128_ade922234beee5d7_02b690815f42a364_9.png b/Data/User/Load/Textures/GMPE01/tex1_128x128_ade922234beee5d7_02b690815f42a364_9.png new file mode 100644 index 0000000000..158596b70e Binary files /dev/null and b/Data/User/Load/Textures/GMPE01/tex1_128x128_ade922234beee5d7_02b690815f42a364_9.png differ diff --git a/Data/User/Load/Textures/GMPE01/tex1_500x172_28d5db0fdb29fe25_5.png b/Data/User/Load/Textures/GMPE01/tex1_500x172_28d5db0fdb29fe25_5.png new file mode 100644 index 0000000000..a8b28e11e0 Binary files /dev/null and b/Data/User/Load/Textures/GMPE01/tex1_500x172_28d5db0fdb29fe25_5.png differ diff --git a/Data/User/Load/Textures/GP5E01/tex1_120x100_d2981ed473ccdecf_061409fb2bc58382_9.png b/Data/User/Load/Textures/GP5E01/tex1_120x100_d2981ed473ccdecf_061409fb2bc58382_9.png new file mode 100644 index 0000000000..8cb8759e01 Binary files /dev/null and b/Data/User/Load/Textures/GP5E01/tex1_120x100_d2981ed473ccdecf_061409fb2bc58382_9.png differ diff --git a/Data/User/Load/Textures/GP5E01/tex1_432x152_77d8e898af9943da_6.png b/Data/User/Load/Textures/GP5E01/tex1_432x152_77d8e898af9943da_6.png new file mode 100644 index 0000000000..69c2ee6755 Binary files /dev/null and b/Data/User/Load/Textures/GP5E01/tex1_432x152_77d8e898af9943da_6.png differ diff --git a/Data/User/Load/Textures/GP6E01/tex1_128x128_dc7b23f2f7e8fbbe_4.png b/Data/User/Load/Textures/GP6E01/tex1_128x128_dc7b23f2f7e8fbbe_4.png new file mode 100644 index 0000000000..dac0c32440 Binary files /dev/null and b/Data/User/Load/Textures/GP6E01/tex1_128x128_dc7b23f2f7e8fbbe_4.png differ diff --git a/Data/User/Load/Textures/GP6E01/tex1_128x128_ef1f983818312560_14.png b/Data/User/Load/Textures/GP6E01/tex1_128x128_ef1f983818312560_14.png new file mode 100644 index 0000000000..fa9e5fee7b Binary files /dev/null and b/Data/User/Load/Textures/GP6E01/tex1_128x128_ef1f983818312560_14.png differ diff --git a/Data/User/Load/Textures/GP6E01/tex1_432x128_ceeeb8217abc5306_5.png b/Data/User/Load/Textures/GP6E01/tex1_432x128_ceeeb8217abc5306_5.png new file mode 100644 index 0000000000..717a6b34ff Binary files /dev/null and b/Data/User/Load/Textures/GP6E01/tex1_432x128_ceeeb8217abc5306_5.png differ diff --git a/Data/User/Load/Textures/GP7E01/tex1_256x256_e6eb62f96d7c7834_5.png b/Data/User/Load/Textures/GP7E01/tex1_256x256_e6eb62f96d7c7834_5.png new file mode 100644 index 0000000000..bc3d4ad8f5 Binary files /dev/null and b/Data/User/Load/Textures/GP7E01/tex1_256x256_e6eb62f96d7c7834_5.png differ diff --git a/Data/User/Load/Textures/GP7E01/tex1_46x138_8fdd6809fee1b189_5.png b/Data/User/Load/Textures/GP7E01/tex1_46x138_8fdd6809fee1b189_5.png new file mode 100644 index 0000000000..a130a5c13a Binary files /dev/null and b/Data/User/Load/Textures/GP7E01/tex1_46x138_8fdd6809fee1b189_5.png differ diff --git a/Data/User/Load/Textures/RM8E01/tex1_468x120_f302cdc89d88f6fd_5.png b/Data/User/Load/Textures/RM8E01/tex1_468x120_f302cdc89d88f6fd_5.png new file mode 100644 index 0000000000..b8712ccbdd Binary files /dev/null and b/Data/User/Load/Textures/RM8E01/tex1_468x120_f302cdc89d88f6fd_5.png differ diff --git a/Data/User/Load/Textures/RM8E01/tex1_64x64_19bdb8a2f3aea4c3_4.png b/Data/User/Load/Textures/RM8E01/tex1_64x64_19bdb8a2f3aea4c3_4.png new file mode 100644 index 0000000000..b5a0bea46f Binary files /dev/null and b/Data/User/Load/Textures/RM8E01/tex1_64x64_19bdb8a2f3aea4c3_4.png differ diff --git a/Data/User/Load/Textures/SSQE01/tex1_256x256_b251b00eef7153e2_a12769ab5c0af913_9.png b/Data/User/Load/Textures/SSQE01/tex1_256x256_b251b00eef7153e2_a12769ab5c0af913_9.png new file mode 100644 index 0000000000..0616f56b37 Binary files /dev/null and b/Data/User/Load/Textures/SSQE01/tex1_256x256_b251b00eef7153e2_a12769ab5c0af913_9.png differ diff --git a/Data/User/Load/Textures/SSQE01/tex1_640x192_bf1edbe22ca28ce4_5.png b/Data/User/Load/Textures/SSQE01/tex1_640x192_bf1edbe22ca28ce4_5.png new file mode 100644 index 0000000000..33ef2d836e Binary files /dev/null and b/Data/User/Load/Textures/SSQE01/tex1_640x192_bf1edbe22ca28ce4_5.png differ diff --git a/Data/User/Load/Textures/SSQE01/tex1_640x192_d3243cdedfc72176_0.png b/Data/User/Load/Textures/SSQE01/tex1_640x192_d3243cdedfc72176_0.png new file mode 100644 index 0000000000..e9d359d049 Binary files /dev/null and b/Data/User/Load/Textures/SSQE01/tex1_640x192_d3243cdedfc72176_0.png differ diff --git a/Data/User/Styles/Dolphin Dark.qss b/Data/User/Styles/Dolphin Dark.qss new file mode 100644 index 0000000000..0eee71c609 --- /dev/null +++ b/Data/User/Styles/Dolphin Dark.qss @@ -0,0 +1,2218 @@ +/* --------------------------------------------------------------------------- + + WARNING! File created programmatically. All changes made in this file will be lost! + + Created by the qtsass compiler v0.3.1 + + The definitions are in the "qdarkstyle.qss._styles.scss" module + +--------------------------------------------------------------------------- */ +/* Light Style - User/Themes/Dolphin Dark/Resources/ ------------------------------------------ */ +/* + +See Qt documentation: + + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ +/* Reset elements ------------------------------------------------------------ + +Resetting everything helps to unify styles across different operating systems + +--------------------------------------------------------------------------- */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #232325; + border: 0px solid #35373A; + padding: 0px; + color: #E0E1E3; + selection-background-color: #3394D5; + selection-color: #E0E1E3; +} + +QWidget:disabled { + background-color: #232325; + color: #9DA9B5; + selection-background-color: #B2B3B4; + selection-color: #9DA9B5; +} + +QWidget::item:selected { + background-color: #3394D5; +} + +QWidget::item:hover:!selected { + background-color: #35373A; +} + +/* QMainWindow ------------------------------------------------------------ + +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow + +--------------------------------------------------------------------------- */ +QMainWindow::separator { + background-color: #35373A; + border: 0px solid #232325; + spacing: 0px; + padding: 2px; +} + +QMainWindow::separator:hover { + background-color: #8B8C8E; + border: 0px solid #35373A; +} + +QMainWindow::separator:horizontal { + width: 5px; + margin-top: 2px; + margin-bottom: 2px; + image: url("User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical.png"); +} + +QMainWindow::separator:vertical { + height: 5px; + margin-left: 2px; + margin-right: 2px; + image: url("User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal.png"); +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #3394D5; + color: #E0E1E3; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 1px solid #35373A; + /* Fixes Spyder #9120, #9121 */ + background: #35373A; + /* Fixes #205, white vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #35373A; + border: 1px solid #232325; + color: #232325; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + background-color: #232325; + color: #E0E1E3; + spacing: 4px; + outline: none; + padding-top: 4px; + padding-bottom: 4px; +} + +QCheckBox:focus { + border: none; +} + +QCheckBox QWidget:disabled { + background-color: #232325; + color: #9DA9B5; +} + +QCheckBox::indicator { + margin-left: 2px; + height: 14px; + width: 14px; +} + +QCheckBox::indicator:unchecked { + image: url("User/Themes/Dolphin Dark/Resources/checkbox_unchecked.png"); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + border: none; + image: url("User/Themes/Dolphin Dark/Resources/checkbox_unchecked_focus.png"); +} + +QCheckBox::indicator:unchecked:disabled { + image: url("User/Themes/Dolphin Dark/Resources/checkbox_unchecked_disabled.png"); +} + +QCheckBox::indicator:checked { + image: url("User/Themes/Dolphin Dark/Resources/checkbox_checked.png"); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:focus, QCheckBox::indicator:checked:pressed { + border: none; + image: url("User/Themes/Dolphin Dark/Resources/checkbox_checked_focus.png"); +} + +QCheckBox::indicator:checked:disabled { + image: url("User/Themes/Dolphin Dark/Resources/checkbox_checked_disabled.png"); +} + +QCheckBox::indicator:indeterminate { + image: url("User/Themes/Dolphin Dark/Resources/checkbox_indeterminate.png"); +} + +QCheckBox::indicator:indeterminate:disabled { + image: url("User/Themes/Dolphin Dark/Resources/checkbox_indeterminate_disabled.png"); +} + +QCheckBox::indicator:indeterminate:focus, QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + image: url("User/Themes/Dolphin Dark/Resources/checkbox_indeterminate_focus.png"); +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #35373A; + border-radius: 4px; + padding: 2px; + margin-top: 6px; + margin-bottom: 4px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: -4px; +} + +QGroupBox::indicator { + margin-left: 2px; + margin-top: 2px; + padding: 0; + height: 14px; + width: 14px; +} + +QGroupBox::indicator:unchecked { + border: none; + image: url("User/Themes/Dolphin Dark/Resources/checkbox_unchecked.png"); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + border: none; + image: url("User/Themes/Dolphin Dark/Resources/checkbox_unchecked_focus.png"); +} + +QGroupBox::indicator:unchecked:disabled { + image: url("User/Themes/Dolphin Dark/Resources/checkbox_unchecked_disabled.png"); +} + +QGroupBox::indicator:checked { + border: none; + image: url("User/Themes/Dolphin Dark/Resources/checkbox_checked.png"); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + border: none; + image: url("User/Themes/Dolphin Dark/Resources/checkbox_checked_focus.png"); +} + +QGroupBox::indicator:checked:disabled { + image: url("User/Themes/Dolphin Dark/Resources/checkbox_checked_disabled.png"); +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: #232325; + color: #E0E1E3; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + border: none; + outline: none; +} + +QRadioButton:focus { + border: none; +} + +QRadioButton:disabled { + background-color: #232325; + color: #9DA9B5; + border: none; + outline: none; +} + +QRadioButton QWidget { + background-color: #232325; + color: #E0E1E3; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + border: none; + outline: none; + margin-left: 2px; + height: 14px; + width: 14px; +} + +QRadioButton::indicator:unchecked { + image: url("User/Themes/Dolphin Dark/Resources/radio_unchecked.png"); +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:focus, QRadioButton::indicator:unchecked:pressed { + border: none; + outline: none; + image: url("User/Themes/Dolphin Dark/Resources/radio_unchecked_focus.png"); +} + +QRadioButton::indicator:unchecked:disabled { + image: url("User/Themes/Dolphin Dark/Resources/radio_unchecked_disabled.png"); +} + +QRadioButton::indicator:checked { + border: none; + outline: none; + image: url("User/Themes/Dolphin Dark/Resources/radio_checked.png"); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:focus, QRadioButton::indicator:checked:pressed { + border: none; + outline: none; + image: url("User/Themes/Dolphin Dark/Resources/radio_checked_focus.png"); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + image: url("User/Themes/Dolphin Dark/Resources/radio_checked_disabled.png"); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #232325; + padding: 2px; + border: 1px solid #232325; + color: #E0E1E3; + border-radius: 24px; + selection-background-color: #35373A; +} + +QMenuBar:focus { + border: 1px solid #3394D5; +} + +QMenuBar::item { + background: transparent; + padding: 4px; +} + +QMenuBar::item:selected { + padding: 4px; + background: transparent; + border: 0px solid #35373A; + background-color: #35373A; +} + +QMenuBar::item:pressed { + padding: 4px; + border: 0px solid #35373A; + background-color: #35373A; + color: #E0E1E3; + margin-bottom: 0px; + padding-bottom: 0px; +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border: 2px solid #232325; + color: #E0E1E3; + margin: 0px; + border-radius: 24px; + background-color: #232325; + selection-background-color: #232325; +} + +QMenu::separator { + height: 1px; + background-color: #8B8C8E; + color: #E0E1E3; +} + +QMenu::item { + background-color: #232325; + padding: 4px 24px 4px 28px; + /* Reserve space for selection border */ + border: 1px transparent #232325; +} + +QMenu::item:selected { + color: #E0E1E3; + background-color: #35373A; +} + +QMenu::item:pressed { + background-color: #35373A; +} + +QMenu::icon { + padding-left: 10px; + width: 14px; + height: 14px; +} + +QMenu::indicator { + padding-left: 8px; + width: 12px; + height: 12px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::indicator:non-exclusive:unchecked { + image: url("User/Themes/Dolphin Dark/Resources/checkbox_unchecked.png"); +} + +QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { + border: none; + image: url("User/Themes/Dolphin Dark/Resources/checkbox_unchecked_focus.png"); +} + +QMenu::indicator:non-exclusive:unchecked:disabled { + image: url("User/Themes/Dolphin Dark/Resources/checkbox_unchecked_disabled.png"); +} + +QMenu::indicator:non-exclusive:checked { + image: url("User/Themes/Dolphin Dark/Resources/checkbox_checked.png"); +} + +QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { + border: none; + image: url("User/Themes/Dolphin Dark/Resources/checkbox_checked_focus.png"); +} + +QMenu::indicator:non-exclusive:checked:disabled { + image: url("User/Themes/Dolphin Dark/Resources/checkbox_checked_disabled.png"); +} + +QMenu::indicator:non-exclusive:indeterminate { + image: url("User/Themes/Dolphin Dark/Resources/checkbox_indeterminate.png"); +} + +QMenu::indicator:non-exclusive:indeterminate:disabled { + image: url("User/Themes/Dolphin Dark/Resources/checkbox_indeterminate_disabled.png"); +} + +QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { + image: url("User/Themes/Dolphin Dark/Resources/checkbox_indeterminate_focus.png"); +} + +QMenu::indicator:exclusive:unchecked { + image: url("User/Themes/Dolphin Dark/Resources/radio_unchecked.png"); +} + +QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { + border: none; + outline: none; + image: url("User/Themes/Dolphin Dark/Resources/radio_unchecked_focus.png"); +} + +QMenu::indicator:exclusive:unchecked:disabled { + image: url("User/Themes/Dolphin Dark/Resources/radio_unchecked_disabled.png"); +} + +QMenu::indicator:exclusive:checked { + border: none; + outline: none; + image: url("User/Themes/Dolphin Dark/Resources/radio_checked.png"); +} + +QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { + border: none; + outline: none; + image: url("User/Themes/Dolphin Dark/Resources/radio_checked_focus.png"); +} + +QMenu::indicator:exclusive:checked:disabled { + outline: none; + image: url("User/Themes/Dolphin Dark/Resources/radio_checked_disabled.png"); +} + +QMenu::right-arrow { + margin: 5px; + padding-left: 12px; + image: url("User/Themes/Dolphin Dark/Resources/arrow_right.png"); + height: 12px; + width: 12px; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #232325; + color: #E0E1E3; + border: 1px solid #232325; + border-radius: 4px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: #232325; + border: 1px solid #35373A; + border-radius: 4px; + /* fix #159 */ + padding: 2px; + /* remove min-height to fix #244 */ + color: #E0E1E3; +} + +QAbstractScrollArea:disabled { + color: #9DA9B5; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- */ +QScrollArea QWidget QWidget:disabled { + background-color: #232325; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 16px 2px 16px; + border: 1px solid #35373A; + border-radius: 4px; + background-color: #232325; +} + +QScrollBar:vertical { + background-color: #232325; + width: 16px; + margin: 16px 2px 16px 2px; + border: 1px solid #35373A; + border-radius: 4px; +} + +QScrollBar::handle:horizontal { + background-color: #8B8C8E; + border: 1px solid #35373A; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #3394D5; + border: #3394D5; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #35373A; +} + +QScrollBar::handle:vertical { + background-color: #8B8C8E; + border: 1px solid #35373A; + min-height: 8px; + border-radius: 4px; +} + +QScrollBar::handle:vertical:hover { + background-color: #3394D5; + border: #3394D5; + border-radius: 4px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #35373A; +} + +QScrollBar::add-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url("User/Themes/Dolphin Dark/Resources/arrow_right_disabled.png"); + height: 12px; + width: 12px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url("User/Themes/Dolphin Dark/Resources/arrow_right.png"); + height: 12px; + width: 12px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + margin: 3px 0px 3px 0px; + border-image: url("User/Themes/Dolphin Dark/Resources/arrow_down_disabled.png"); + height: 12px; + width: 12px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url("User/Themes/Dolphin Dark/Resources/arrow_down.png"); + height: 12px; + width: 12px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 3px 0px 3px; + border-image: url("User/Themes/Dolphin Dark/Resources/arrow_left_disabled.png"); + height: 12px; + width: 12px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url("User/Themes/Dolphin Dark/Resources/arrow_left.png"); + height: 12px; + width: 12px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 3px 0px 3px 0px; + border-image: url("User/Themes/Dolphin Dark/Resources/arrow_up_disabled.png"); + height: 12px; + width: 12px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + border-image: url("User/Themes/Dolphin Dark/Resources/arrow_up.png"); + height: 12px; + width: 12px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #232325; + color: #E0E1E3; + border-radius: 4px; + border: 1px solid #35373A; +} + +QTextEdit:focus { + border: 1px solid #35373A; +} + +QTextEdit:selected { + background: #3394D5; + color: #35373A; +} + +/* QPlainTextEdit --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: #232325; + color: #E0E1E3; + border-radius: 4px; + border: 1px solid #35373A; +} + +QPlainTextEdit:focus { + border: 1px solid #35373A; +} + +QPlainTextEdit:selected { + background: #3394D5; + color: #35373A; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image: url("User/Themes/Dolphin Dark/Resources/window_grip.png"); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 2px; + border: 1px solid #35373A; + border: 1px solid #232325; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #232325; + border-bottom: 4px solid #232325; + padding: 4px; + font-weight: bold; + spacing: 2px; +} + +QToolBar:disabled { + /* Fixes #272 */ + background-color: #232325; +} + +QToolBar::handle:horizontal { + width: 16px; + image: url("User/Themes/Dolphin Dark/Resources/toolbar_move_horizontal.png"); +} + +QToolBar::handle:vertical { + height: 16px; + image: url("User/Themes/Dolphin Dark/Resources/toolbar_move_vertical.png"); +} + +QToolBar::separator:horizontal { + width: 16px; + image: url("User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal.png"); +} + +QToolBar::separator:vertical { + height: 16px; + image: url("User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical.png"); +} + +QToolButton#qt_toolbar_ext_button { + background: #35373A; + border: 0px; + color: #E0E1E3; + image: url("User/Themes/Dolphin Dark/Resources/arrow_right.png"); +} + +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox { + background-color: #232325; + border: 1px solid #35373A; + color: #E0E1E3; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + border-radius: 4px; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: transparent #232325; + subcontrol-origin: border; + subcontrol-position: top right; + border-left: 1px solid #35373A; + border-bottom: 1px solid #35373A; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + margin: 1px; + width: 12px; + margin-bottom: -1px; +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url("User/Themes/Dolphin Dark/Resources/arrow_up_disabled.png"); + height: 8px; + width: 8px; +} + +QAbstractSpinBox::up-arrow:hover { + image: url("User/Themes/Dolphin Dark/Resources/arrow_up.png"); +} + +QAbstractSpinBox:down-button { + background-color: transparent #232325; + subcontrol-origin: border; + subcontrol-position: bottom right; + border-left: 1px solid #35373A; + border-top: 1px solid #35373A; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + margin: 1px; + width: 12px; + margin-top: -1px; +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url("User/Themes/Dolphin Dark/Resources/arrow_down_disabled.png"); + height: 8px; + width: 8px; +} + +QAbstractSpinBox::down-arrow:hover { + image: url("User/Themes/Dolphin Dark/Resources/arrow_down.png"); +} + +QAbstractSpinBox:hover { + border: 1px solid #3394D5; + color: #E0E1E3; +} + +QAbstractSpinBox:focus { + border: 1px solid #35373A; +} + +QAbstractSpinBox:selected { + background: #3394D5; + color: #35373A; +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: #232325; + border: 0px solid #35373A; + padding: 2px; + margin: 0px; + color: #E0E1E3; +} + +QLabel:disabled { + background-color: #232325; + border: 0px solid #35373A; + color: #9DA9B5; +} + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: #232325; + border: 1px solid #35373A; + color: #E0E1E3; + border-radius: 4px; +} + +QTextBrowser:disabled { + background-color: #232325; + border: 1px solid #35373A; + color: #9DA9B5; + border-radius: 4px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #35373A; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: #232325; + border: 1px solid #35373A; + color: #E0E1E3; + border-radius: 4px; +} + +QGraphicsView:disabled { + background-color: #232325; + border: 1px solid #35373A; + color: #9DA9B5; + border-radius: 4px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 1px solid #35373A; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #35373A; + border-radius: 4px; +} + +QCalendarWidget:disabled { + background-color: #232325; + color: #9DA9B5; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #232325; + color: #E0E1E3; +} + +QLCDNumber:disabled { + background-color: #232325; + color: #9DA9B5; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #232325; + border: 1px solid #35373A; + color: #E0E1E3; + border-radius: 4px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #232325; + border: 1px solid #35373A; + color: #9DA9B5; + border-radius: 4px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #3394D5; + color: #232325; + border-radius: 4px; +} + +QProgressBar::chunk:disabled { + background-color: #3394D5; + color: #9DA9B5; + border-radius: 4px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: #35373A; + color: #E0E1E3; + border-radius: 4px; + padding: 2px; + outline: none; + border: none; +} + +QPushButton:disabled { + background-color: #35373A; + color: #9DA9B5; + border-radius: 4px; + padding: 2px; +} + +QPushButton:checked { + background-color: #8B8C8E; + border-radius: 4px; + padding: 2px; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #8B8C8E; + color: #9DA9B5; + border-radius: 4px; + padding: 2px; + outline: none; +} + +QPushButton:checked:selected { + background: #8B8C8E; +} + +QPushButton:hover { + background-color: #3394D5; + color: #E0E1E3; +} + +QPushButton:pressed { + background-color: #8B8C8E; +} + +QPushButton:selected { + background: #8B8C8E; + color: #E0E1E3; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QDialogButtonBox QPushButton { + /* Issue #194 #248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: #232325; + color: #E0E1E3; + border-radius: 4px; + padding: 2px; + outline: none; + border: none; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:disabled { + background-color: #232325; + color: #9DA9B5; + border-radius: 4px; + padding: 2px; +} + +QToolButton:checked { + background-color: #8B8C8E; + border-radius: 4px; + padding: 2px; + outline: none; +} + +QToolButton:checked:disabled { + background-color: #232325; + color: #9DA9B5; + border-radius: 4px; + padding: 2px; + outline: none; +} + +QToolButton:checked:hover { + background-color: #3394D5; + color: #E0E1E3; +} + +QToolButton:checked:pressed { + background-color: #8B8C8E; +} + +QToolButton:checked:selected { + background: #8B8C8E; + color: #E0E1E3; +} + +QToolButton:hover { + background-color: #3394D5; + color: #E0E1E3; +} + +QToolButton:pressed { + background-color: #8B8C8E; +} + +QToolButton:selected { + background: #8B8C8E; + color: #E0E1E3; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 2px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 1px solid #35373A; + border-radius: 0; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 2px; +} + +QToolButton::menu-button { + padding: 2px; + border-radius: 4px; + width: 12px; + border: none; + outline: none; +} + +QToolButton::menu-button:hover { + border: 1px solid #3394D5; +} + +QToolButton::menu-button:checked:hover { + border: 1px solid #3394D5; +} + +QToolButton::menu-indicator { + image: url("User/Themes/Dolphin Dark/Resources/arrow_down.png"); + height: 8px; + width: 8px; + top: 0; + /* Exclude a shift for better image */ + left: -2px; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url("User/Themes/Dolphin Dark/Resources/arrow_down.png"); + height: 8px; + width: 8px; +} + +QToolButton::menu-arrow:hover { + image: url("User/Themes/Dolphin Dark/Resources/arrow_down_focus.png"); +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #35373A; + color: #E0E1E3; + border-radius: 4px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #9DA9B5; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid #35373A; + border-radius: 4px; + selection-background-color: #3394D5; + padding-left: 4px; + padding-right: 4px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} + +QComboBox QAbstractItemView { + border: 1px solid #35373A; + border-radius: 0; + background-color: #232325; + selection-background-color: #3394D5; +} + +QComboBox QAbstractItemView:hover { + background-color: #232325; + color: #E0E1E3; +} + +QComboBox QAbstractItemView:selected { + background: #3394D5; + color: #35373A; +} + +QComboBox QAbstractItemView:alternate { + background: #232325; +} + +QComboBox:disabled { + background-color: #232325; + color: #9DA9B5; +} + +QComboBox:hover { + border: 1px solid #3394D5; +} + +QComboBox:focus { + border: 1px solid #35373A; +} + +QComboBox:on { + selection-background-color: #3394D5; +} + +QComboBox::indicator { + border: none; + border-radius: 0; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: transparent; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #232325; +} + +QComboBox::item { + /* Remove to fix #282, #285 and MR #288*/ + /*&:checked { + font-weight: bold; + } + + &:selected { + border: 0px solid transparent; + } + */ +} + +QComboBox::item:alternate { + background: #232325; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #35373A; +} + +QComboBox::down-arrow { + image: url("User/Themes/Dolphin Dark/Resources/arrow_down_disabled.png"); + height: 8px; + width: 8px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url("User/Themes/Dolphin Dark/Resources/arrow_down.png"); +} + +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider:disabled { + background: #232325; +} + +QSlider:focus { + border: none; +} + +QSlider::groove:horizontal { + background: #35373A; + border: 1px solid #35373A; + height: 4px; + margin: 0px; + border-radius: 4px; +} + +QSlider::groove:vertical { + background: #35373A; + border: 1px solid #35373A; + width: 4px; + margin: 0px; + border-radius: 4px; +} + +QSlider::add-page:vertical { + background: #3394D5; + border: 1px solid #35373A; + width: 4px; + margin: 0px; + border-radius: 4px; +} + +QSlider::add-page:vertical :disabled { + background: #3394D5; +} + +QSlider::sub-page:horizontal { + background: #3394D5; + border: 1px solid #35373A; + height: 4px; + margin: 0px; + border-radius: 4px; +} + +QSlider::sub-page:horizontal:disabled { + background: #3394D5; +} + +QSlider::handle:horizontal { + background: #9DA9B5; + border: 1px solid #35373A; + width: 8px; + height: 8px; + margin: -8px 0px; + border-radius: 4px; +} + +QSlider::handle:horizontal:hover { + background: #3394D5; + border: 1px solid #3394D5; +} + +QSlider::handle:horizontal:focus { + border: 1px solid #35373A; +} + +QSlider::handle:vertical { + background: #9DA9B5; + border: 1px solid #35373A; + width: 8px; + height: 8px; + margin: 0 -8px; + border-radius: 4px; +} + +QSlider::handle:vertical:hover { + background: #3394D5; + border: 1px solid #3394D5; +} + +QSlider::handle:vertical:focus { + border: 1px solid #35373A; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: #232325; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #35373A; + border-radius: 4px; + color: #E0E1E3; +} + +QLineEdit:disabled { + background-color: #232325; + color: #9DA9B5; +} + +QLineEdit:hover { + border: 1px solid #3394D5; + color: #E0E1E3; +} + +QLineEdit:focus { + border: 1px solid #35373A; +} + +QLineEdit:selected { + background-color: #3394D5; + color: #35373A; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #35373A; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 4px; +} + +QTabWidget::pane { + border: 1px solid #35373A; + border-radius: 4px; + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #35373A; + border: 1px solid #3394D5; +} + +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar, QDockWidget QTabBar { + qproperty-drawBase: 0; + border-radius: 4px; + margin: 0px; + padding: 2px; + border: 0; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button, QDockWidget QTabBar::close-button { + border: 0; + margin: 0; + padding: 4px; + image: url("User/Themes/Dolphin Dark/Resources/window_close.png"); +} + +QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { + image: url("User/Themes/Dolphin Dark/Resources/window_close_focus.png"); +} + +QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { + image: url("User/Themes/Dolphin Dark/Resources/window_close_pressed.png"); +} + +QTabBar::tab, QDockWidget QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ +} + +QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { + border-bottom: 3px solid #3394D5; + color: #9DA9B5; + background-color: #35373A; +} + +QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { + border-top: 3px solid #3394D5; + color: #9DA9B5; + background-color: #35373A; +} + +QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { + border-right: 3px solid #3394D5; + color: #9DA9B5; + background-color: #35373A; +} + +QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { + border-left: 3px solid #3394D5; + color: #9DA9B5; + background-color: #35373A; +} + +QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { + border-bottom: 3px solid #232325; + color: #9DA9B5; + background-color: #232325; +} + +QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { + border-top: 3px solid #232325; + color: #9DA9B5; + background-color: #232325; +} + +QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { + border-right: 3px solid #232325; + color: #9DA9B5; + background-color: #232325; +} + +QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { + border-left: 3px solid #232325; + color: #9DA9B5; + background-color: #232325; +} + +QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { + border-bottom: 2px solid #232325; + margin-top: 2px; +} + +QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { + border-top: 2px solid #232325; + margin-bottom: 2px; +} + +QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { + border-left: 2px solid #232325; + margin-right: 2px; +} + +QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { + border-right: 2px solid #232325; + margin-left: 2px; +} + +QTabBar::tab:top, QDockWidget QTabBar::tab:top { + background-color: #232325; + margin-left: 2px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-bottom: 3px solid #35373A; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { + background-color: #3394D5; + border-bottom: 3px solid #35373A; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { + border: 1px solid #35373A; + border-bottom: 3px solid #35373A; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { + border-top: 3px solid #35373A; + background-color: #35373A; + margin-left: 2px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + min-width: 5px; +} + +QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { + background-color: #3394D5; + border-top: 3px solid #35373A; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { + border: 1px solid #35373A; + border-top: 3px solid #35373A; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:left, QDockWidget QTabBar::tab:left { + background-color: #35373A; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { + background-color: #3394D5; + border-right: 3px solid #35373A; +} + +QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { + border: 1px solid #35373A; + border-right: 3px solid #35373A; + /* Fixes different behavior #271 */ + margin-right: 0px; + padding-right: -1px; +} + +QTabBar::tab:right, QDockWidget QTabBar::tab:right { + background-color: #35373A; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { + background-color: #3394D5; + border-left: 3px solid #35373A; +} + +QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { + border: 1px solid #35373A; + border-left: 3px solid #35373A; + /* Fixes different behavior #271 */ + margin-left: 0px; + padding-left: 0px; +} + +QTabBar QToolButton, QDockWidget QTabBar QToolButton { + /* Fixes #136 */ + background-color: #35373A; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { + background-color: #35373A; +} + +QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { + border: 1px solid #3394D5; +} + +QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { + image: url("User/Themes/Dolphin Dark/Resources/arrow_left.png"); +} + +QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { + image: url("User/Themes/Dolphin Dark/Resources/arrow_left_disabled.png"); +} + +QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { + image: url("User/Themes/Dolphin Dark/Resources/arrow_right.png"); +} + +QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { + image: url("User/Themes/Dolphin Dark/Resources/arrow_right_disabled.png"); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + outline: 1px solid #35373A; + background-color: #232325; + border: 1px solid #35373A; + border-radius: 4px; + titlebar-close-icon: url("User/Themes/Dolphin Dark/Resources/transparent.png"); + titlebar-normal-icon: url("User/Themes/Dolphin Dark/Resources/transparent.png"); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: #35373A; +} + +QDockWidget::close-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url("User/Themes/Dolphin Dark/Resources/window_close.png"); +} + +QDockWidget::close-button:hover { + image: url("User/Themes/Dolphin Dark/Resources/window_close_focus.png"); +} + +QDockWidget::close-button:pressed { + image: url("User/Themes/Dolphin Dark/Resources/window_close_pressed.png"); +} + +QDockWidget::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url("User/Themes/Dolphin Dark/Resources/window_undock.png"); +} + +QDockWidget::float-button:hover { + image: url("User/Themes/Dolphin Dark/Resources/window_undock_focus.png"); +} + +QDockWidget::float-button:pressed { + image: url("User/Themes/Dolphin Dark/Resources/window_undock_pressed.png"); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView:branch:selected, QTreeView:branch:hover { + background: url("User/Themes/Dolphin Dark/Resources/transparent.png"); +} + +QTreeView:branch:has-siblings:!adjoins-item { + border-image: url("User/Themes/Dolphin Dark/Resources/branch_line.png") 0; +} + +QTreeView:branch:has-siblings:adjoins-item { + border-image: url("User/Themes/Dolphin Dark/Resources/branch_more.png") 0; +} + +QTreeView:branch:!has-children:!has-siblings:adjoins-item { + border-image: url("User/Themes/Dolphin Dark/Resources/branch_end.png") 0; +} + +QTreeView:branch:has-children:!has-siblings:closed, QTreeView:branch:closed:has-children:has-siblings { + border-image: none; + image: url("User/Themes/Dolphin Dark/Resources/branch_closed.png"); +} + +QTreeView:branch:open:has-children:!has-siblings, QTreeView:branch:open:has-children:has-siblings { + border-image: none; + image: url("User/Themes/Dolphin Dark/Resources/branch_open.png"); +} + +QTreeView:branch:has-children:!has-siblings:closed:hover, QTreeView:branch:closed:has-children:has-siblings:hover { + image: url("User/Themes/Dolphin Dark/Resources/branch_closed_focus.png"); +} + +QTreeView:branch:open:has-children:!has-siblings:hover, QTreeView:branch:open:has-children:has-siblings:hover { + image: url("User/Themes/Dolphin Dark/Resources/branch_open_focus.png"); +} + +QTreeView::indicator:checked, +QListView::indicator:checked, +QTableView::indicator:checked, +QColumnView::indicator:checked { + image: url("User/Themes/Dolphin Dark/Resources/checkbox_checked.png"); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed, +QTableView::indicator:checked:hover, +QTableView::indicator:checked:focus, +QTableView::indicator:checked:pressed, +QColumnView::indicator:checked:hover, +QColumnView::indicator:checked:focus, +QColumnView::indicator:checked:pressed { + image: url("User/Themes/Dolphin Dark/Resources/checkbox_checked_focus.png"); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked, +QTableView::indicator:unchecked, +QColumnView::indicator:unchecked { + image: url("User/Themes/Dolphin Dark/Resources/checkbox_unchecked.png"); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed, +QTableView::indicator:unchecked:hover, +QTableView::indicator:unchecked:focus, +QTableView::indicator:unchecked:pressed, +QColumnView::indicator:unchecked:hover, +QColumnView::indicator:unchecked:focus, +QColumnView::indicator:unchecked:pressed { + image: url("User/Themes/Dolphin Dark/Resources/checkbox_unchecked_focus.png"); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate, +QTableView::indicator:indeterminate, +QColumnView::indicator:indeterminate { + image: url("User/Themes/Dolphin Dark/Resources/checkbox_indeterminate.png"); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed, +QTableView::indicator:indeterminate:hover, +QTableView::indicator:indeterminate:focus, +QTableView::indicator:indeterminate:pressed, +QColumnView::indicator:indeterminate:hover, +QColumnView::indicator:indeterminate:focus, +QColumnView::indicator:indeterminate:pressed { + image: url("User/Themes/Dolphin Dark/Resources/checkbox_indeterminate_focus.png"); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #232325; + border: 1px solid #35373A; + color: #E0E1E3; + gridline-color: #35373A; + border-radius: 4px; +} + +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: #232325; + color: #9DA9B5; +} + +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #3394D5; + color: #35373A; +} + +QTreeView:focus, +QListView:focus, +QTableView:focus, +QColumnView:focus { + border: 1px solid #35373A; +} + +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #3394D5; +} + +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #3394D5; +} + +QTreeView::item:selected:!active, +QListView::item:selected:!active, +QTableView::item:selected:!active, +QColumnView::item:selected:!active { + color: #E0E1E3; + background-color: #35373A; +} + +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: #E0E1E3; + background-color: #35373A; +} + +QTableCornerButton::section { + background-color: #232325; + border: 1px transparent #35373A; + border-radius: 0px; +} + +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: #35373A; + border: 0px transparent #35373A; + padding: 0; + margin: 0; + border-radius: 0; +} + +QHeaderView:disabled { + background-color: #35373A; + border: 1px transparent #35373A; +} + +QHeaderView::section { + background-color: #35373A; + color: #E0E1E3; + border-radius: 0; + text-align: left; + font-size: 13px; +} + +QHeaderView::section::horizontal { + padding-top: 0; + padding-bottom: 0; + padding-left: 4px; + padding-right: 4px; + border-left: 1px solid #232325; +} + +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 1px solid #35373A; +} + +QHeaderView::section::horizontal:disabled { + color: #9DA9B5; +} + +QHeaderView::section::vertical { + padding-top: 0; + padding-bottom: 0; + padding-left: 4px; + padding-right: 4px; + border-top: 1px solid #232325; +} + +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 1px solid #35373A; +} + +QHeaderView::section::vertical:disabled { + color: #9DA9B5; +} + +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: #35373A; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url("User/Themes/Dolphin Dark/Resources/arrow_down.png"); +} + +QHeaderView::up-arrow { + background-color: #35373A; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url("User/Themes/Dolphin Dark/Resources/arrow_up.png"); +} + +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 0px; + border: 1px solid #35373A; +} + +QToolBox:selected { + padding: 0px; + border: 2px solid #3394D5; +} + +QToolBox::tab { + background-color: #232325; + border: 1px solid #35373A; + color: #E0E1E3; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +QToolBox::tab:disabled { + color: #9DA9B5; +} + +QToolBox::tab:selected { + background-color: #8B8C8E; + border-bottom: 2px solid #3394D5; +} + +QToolBox::tab:selected:disabled { + background-color: #35373A; + border-bottom: 2px solid #3394D5; +} + +QToolBox::tab:!selected { + background-color: #35373A; + border-bottom: 2px solid #35373A; +} + +QToolBox::tab:!selected:disabled { + background-color: #232325; +} + +QToolBox::tab:hover { + border-color: #35373A; + border-bottom: 2px solid #35373A; +} + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: #232325; +} + +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 4px; + border: 1px solid #35373A; + /* No frame */ + /* HLine */ + /* HLine */ +} + +.QFrame[frameShape="0"] { + border-radius: 4px; + border: 1px transparent #35373A; +} + +.QFrame[frameShape="4"] { + max-height: 2px; + border: none; + background-color: #35373A; +} + +.QFrame[frameShape="5"] { + max-width: 2px; + border: none; + background-color: #35373A; +} + +/* QSplitter -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +--------------------------------------------------------------------------- */ +QSplitter { + background-color: #35373A; + spacing: 0px; + padding: 0px; + margin: 0px; +} + +QSplitter::handle { + background-color: #35373A; + border: 0px solid #232325; + spacing: 0px; + padding: 1px; + margin: 0px; +} + +QSplitter::handle:hover { + background-color: #9DA9B5; +} + +QSplitter::handle:horizontal { + width: 5px; + image: url("User/Themes/Dolphin Dark/Resources/line_vertical.png"); +} + +QSplitter::handle:vertical { + height: 5px; + image: url("User/Themes/Dolphin Dark/Resources/line_horizontal.png"); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #3394D5; + border-style: solid; + border: 1px solid #35373A; + border-radius: 4px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #3394D5; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #35373A; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url("User/Themes/Dolphin Dark/Resources/arrow_down_disabled.png"); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url("User/Themes/Dolphin Dark/Resources/arrow_down.png"); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #232325; + border-radius: 4px; + border: 1px solid #35373A; + selection-background-color: #3394D5; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #3394D5; + color: #E0E1E3; +} + +QAbstractView:selected { + background: #3394D5; + color: #35373A; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; +} diff --git a/Data/User/Themes/Dolphin Dark/Resources/.keep b/Data/User/Themes/Dolphin Dark/Resources/.keep new file mode 100644 index 0000000000..8d1c8b69c3 --- /dev/null +++ b/Data/User/Themes/Dolphin Dark/Resources/.keep @@ -0,0 +1 @@ + diff --git a/Data/User/Themes/Dolphin Dark/Resources/Welcome.png b/Data/User/Themes/Dolphin Dark/Resources/Welcome.png new file mode 100644 index 0000000000..0f17ddac5d Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/Welcome.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_down.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_down.png new file mode 100644 index 0000000000..aa9938ab44 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_down.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_down@2x.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_down@2x.png new file mode 100644 index 0000000000..c1f33469ae Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_down@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_down_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_down_disabled.png new file mode 100644 index 0000000000..972df9cd16 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_down_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_down_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_down_disabled@2x.png new file mode 100644 index 0000000000..b0fb4ad11d Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_down_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_down_focus.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_down_focus.png new file mode 100644 index 0000000000..22df2c525c Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_down_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_down_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_down_focus@2x.png new file mode 100644 index 0000000000..06b80be4bc Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_down_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_down_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_down_pressed.png new file mode 100644 index 0000000000..50f41cc6f8 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_down_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_down_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_down_pressed@2x.png new file mode 100644 index 0000000000..ef20f2cb07 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_down_pressed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_left.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_left.png new file mode 100644 index 0000000000..c8981363f4 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_left.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_left@2x.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_left@2x.png new file mode 100644 index 0000000000..129d2e13a8 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_left@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_left_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_left_disabled.png new file mode 100644 index 0000000000..79b1f05651 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_left_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_left_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_left_disabled@2x.png new file mode 100644 index 0000000000..144fdb5f8f Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_left_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_left_focus.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_left_focus.png new file mode 100644 index 0000000000..ef02849947 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_left_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_left_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_left_focus@2x.png new file mode 100644 index 0000000000..ca821dcac5 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_left_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_left_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_left_pressed.png new file mode 100644 index 0000000000..c723d3bff7 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_left_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_left_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_left_pressed@2x.png new file mode 100644 index 0000000000..f0bcb5229b Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_left_pressed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_right.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_right.png new file mode 100644 index 0000000000..86bc42aeb1 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_right.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_right@2x.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_right@2x.png new file mode 100644 index 0000000000..4526704b8f Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_right@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_right_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_right_disabled.png new file mode 100644 index 0000000000..88da1f980b Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_right_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_right_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_right_disabled@2x.png new file mode 100644 index 0000000000..5351587e3d Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_right_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_right_focus.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_right_focus.png new file mode 100644 index 0000000000..92271a8ed9 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_right_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_right_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_right_focus@2x.png new file mode 100644 index 0000000000..d6c31bdda9 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_right_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_right_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_right_pressed.png new file mode 100644 index 0000000000..22902cf4fc Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_right_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_right_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_right_pressed@2x.png new file mode 100644 index 0000000000..f6181eb64d Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_right_pressed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_up.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_up.png new file mode 100644 index 0000000000..5ade740805 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_up.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_up@2x.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_up@2x.png new file mode 100644 index 0000000000..65276abff9 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_up@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_up_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_up_disabled.png new file mode 100644 index 0000000000..48054a8ae9 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_up_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_up_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_up_disabled@2x.png new file mode 100644 index 0000000000..e99960594e Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_up_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_up_focus.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_up_focus.png new file mode 100644 index 0000000000..567ec8bdf2 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_up_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_up_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_up_focus@2x.png new file mode 100644 index 0000000000..f6998104b5 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_up_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_up_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_up_pressed.png new file mode 100644 index 0000000000..2233201069 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_up_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/arrow_up_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/arrow_up_pressed@2x.png new file mode 100644 index 0000000000..9954cf5194 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/arrow_up_pressed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/base_icon.png b/Data/User/Themes/Dolphin Dark/Resources/base_icon.png new file mode 100644 index 0000000000..bb00857a4e Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/base_icon.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/base_icon@2x.png b/Data/User/Themes/Dolphin Dark/Resources/base_icon@2x.png new file mode 100644 index 0000000000..bc4ab78a28 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/base_icon@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/base_icon_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/base_icon_disabled.png new file mode 100644 index 0000000000..bb00857a4e Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/base_icon_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/base_icon_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/base_icon_disabled@2x.png new file mode 100644 index 0000000000..bc4ab78a28 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/base_icon_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/base_icon_focus.png b/Data/User/Themes/Dolphin Dark/Resources/base_icon_focus.png new file mode 100644 index 0000000000..bb00857a4e Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/base_icon_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/base_icon_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/base_icon_focus@2x.png new file mode 100644 index 0000000000..bc4ab78a28 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/base_icon_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/base_icon_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/base_icon_pressed.png new file mode 100644 index 0000000000..bb00857a4e Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/base_icon_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/base_icon_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/base_icon_pressed@2x.png new file mode 100644 index 0000000000..bc4ab78a28 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/base_icon_pressed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_closed.png b/Data/User/Themes/Dolphin Dark/Resources/branch_closed.png new file mode 100644 index 0000000000..2ef5957f4f Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_closed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_closed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/branch_closed@2x.png new file mode 100644 index 0000000000..564ba0e977 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_closed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_closed_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/branch_closed_disabled.png new file mode 100644 index 0000000000..165fae29ba Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_closed_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_closed_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/branch_closed_disabled@2x.png new file mode 100644 index 0000000000..421e8e094f Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_closed_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_closed_focus.png b/Data/User/Themes/Dolphin Dark/Resources/branch_closed_focus.png new file mode 100644 index 0000000000..ccc249a59a Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_closed_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_closed_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/branch_closed_focus@2x.png new file mode 100644 index 0000000000..88dd0a62b1 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_closed_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_closed_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/branch_closed_pressed.png new file mode 100644 index 0000000000..2aae68a0a1 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_closed_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_closed_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/branch_closed_pressed@2x.png new file mode 100644 index 0000000000..3849a7ff02 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_closed_pressed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_end.png b/Data/User/Themes/Dolphin Dark/Resources/branch_end.png new file mode 100644 index 0000000000..85de228d8f Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_end.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_end@2x.png b/Data/User/Themes/Dolphin Dark/Resources/branch_end@2x.png new file mode 100644 index 0000000000..9f99c24a95 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_end@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_end_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/branch_end_disabled.png new file mode 100644 index 0000000000..bb4344c785 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_end_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_end_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/branch_end_disabled@2x.png new file mode 100644 index 0000000000..8feb46d464 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_end_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_end_focus.png b/Data/User/Themes/Dolphin Dark/Resources/branch_end_focus.png new file mode 100644 index 0000000000..ff713cf5f0 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_end_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_end_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/branch_end_focus@2x.png new file mode 100644 index 0000000000..0bd0e4ba33 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_end_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_end_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/branch_end_pressed.png new file mode 100644 index 0000000000..2020162f23 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_end_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_end_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/branch_end_pressed@2x.png new file mode 100644 index 0000000000..2a5c4fabf6 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_end_pressed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_line.png b/Data/User/Themes/Dolphin Dark/Resources/branch_line.png new file mode 100644 index 0000000000..803e6a4a1a Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_line.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_line@2x.png b/Data/User/Themes/Dolphin Dark/Resources/branch_line@2x.png new file mode 100644 index 0000000000..4236fe58d8 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_line@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_line_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/branch_line_disabled.png new file mode 100644 index 0000000000..9c8c47b3d0 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_line_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_line_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/branch_line_disabled@2x.png new file mode 100644 index 0000000000..9b868f2a5c Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_line_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_line_focus.png b/Data/User/Themes/Dolphin Dark/Resources/branch_line_focus.png new file mode 100644 index 0000000000..c2ab3e19e6 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_line_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_line_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/branch_line_focus@2x.png new file mode 100644 index 0000000000..512ee13a25 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_line_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_line_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/branch_line_pressed.png new file mode 100644 index 0000000000..3ca15c5d0b Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_line_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_line_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/branch_line_pressed@2x.png new file mode 100644 index 0000000000..3685531020 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_line_pressed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_more.png b/Data/User/Themes/Dolphin Dark/Resources/branch_more.png new file mode 100644 index 0000000000..a664c2a543 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_more.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_more@2x.png b/Data/User/Themes/Dolphin Dark/Resources/branch_more@2x.png new file mode 100644 index 0000000000..1e7b08a5cb Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_more@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_more_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/branch_more_disabled.png new file mode 100644 index 0000000000..29d99a63e8 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_more_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_more_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/branch_more_disabled@2x.png new file mode 100644 index 0000000000..aba830362c Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_more_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_more_focus.png b/Data/User/Themes/Dolphin Dark/Resources/branch_more_focus.png new file mode 100644 index 0000000000..20a6f27b83 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_more_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_more_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/branch_more_focus@2x.png new file mode 100644 index 0000000000..6f42eea846 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_more_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_more_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/branch_more_pressed.png new file mode 100644 index 0000000000..4f4d9fb917 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_more_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_more_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/branch_more_pressed@2x.png new file mode 100644 index 0000000000..5f18f83415 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_more_pressed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_open.png b/Data/User/Themes/Dolphin Dark/Resources/branch_open.png new file mode 100644 index 0000000000..1ff7b48d19 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_open.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_open@2x.png b/Data/User/Themes/Dolphin Dark/Resources/branch_open@2x.png new file mode 100644 index 0000000000..aad66f8bad Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_open@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_open_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/branch_open_disabled.png new file mode 100644 index 0000000000..8328e84d72 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_open_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_open_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/branch_open_disabled@2x.png new file mode 100644 index 0000000000..d8d0faecb1 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_open_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_open_focus.png b/Data/User/Themes/Dolphin Dark/Resources/branch_open_focus.png new file mode 100644 index 0000000000..711ce0979f Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_open_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_open_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/branch_open_focus@2x.png new file mode 100644 index 0000000000..b38e17a33c Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_open_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_open_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/branch_open_pressed.png new file mode 100644 index 0000000000..441c27344e Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_open_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/branch_open_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/branch_open_pressed@2x.png new file mode 100644 index 0000000000..0e43e8b733 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/branch_open_pressed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/checkbox_checked.png b/Data/User/Themes/Dolphin Dark/Resources/checkbox_checked.png new file mode 100644 index 0000000000..f860ca78b7 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/checkbox_checked.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/checkbox_checked@2x.png b/Data/User/Themes/Dolphin Dark/Resources/checkbox_checked@2x.png new file mode 100644 index 0000000000..48773d75fa Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/checkbox_checked@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/checkbox_checked_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/checkbox_checked_disabled.png new file mode 100644 index 0000000000..e3cb2f127c Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/checkbox_checked_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/checkbox_checked_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/checkbox_checked_disabled@2x.png new file mode 100644 index 0000000000..0c8c28a245 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/checkbox_checked_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/checkbox_checked_focus.png b/Data/User/Themes/Dolphin Dark/Resources/checkbox_checked_focus.png new file mode 100644 index 0000000000..58982ce87b Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/checkbox_checked_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/checkbox_checked_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/checkbox_checked_focus@2x.png new file mode 100644 index 0000000000..ba33ba4fbc Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/checkbox_checked_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/checkbox_checked_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/checkbox_checked_pressed.png new file mode 100644 index 0000000000..f104bb2403 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/checkbox_checked_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/checkbox_checked_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/checkbox_checked_pressed@2x.png new file mode 100644 index 0000000000..bb972d68f3 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/checkbox_checked_pressed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/checkbox_indeterminate.png b/Data/User/Themes/Dolphin Dark/Resources/checkbox_indeterminate.png new file mode 100644 index 0000000000..85672bfb7f Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/checkbox_indeterminate.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/checkbox_indeterminate@2x.png b/Data/User/Themes/Dolphin Dark/Resources/checkbox_indeterminate@2x.png new file mode 100644 index 0000000000..2bb245284e Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/checkbox_indeterminate@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/checkbox_indeterminate_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/checkbox_indeterminate_disabled.png new file mode 100644 index 0000000000..181625a000 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/checkbox_indeterminate_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/checkbox_indeterminate_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/checkbox_indeterminate_disabled@2x.png new file mode 100644 index 0000000000..0d32c78f36 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/checkbox_indeterminate_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/checkbox_indeterminate_focus.png b/Data/User/Themes/Dolphin Dark/Resources/checkbox_indeterminate_focus.png new file mode 100644 index 0000000000..d7b19f61ad Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/checkbox_indeterminate_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/checkbox_indeterminate_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/checkbox_indeterminate_focus@2x.png new file mode 100644 index 0000000000..d6403ca424 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/checkbox_indeterminate_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/checkbox_indeterminate_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/checkbox_indeterminate_pressed.png new file mode 100644 index 0000000000..37f46ca3d5 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/checkbox_indeterminate_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/checkbox_indeterminate_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/checkbox_indeterminate_pressed@2x.png new file mode 100644 index 0000000000..aa7493edc6 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/checkbox_indeterminate_pressed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/checkbox_unchecked.png b/Data/User/Themes/Dolphin Dark/Resources/checkbox_unchecked.png new file mode 100644 index 0000000000..172b90ac00 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/checkbox_unchecked.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/checkbox_unchecked@2x.png b/Data/User/Themes/Dolphin Dark/Resources/checkbox_unchecked@2x.png new file mode 100644 index 0000000000..f54b080a73 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/checkbox_unchecked@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/checkbox_unchecked_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/checkbox_unchecked_disabled.png new file mode 100644 index 0000000000..066185ee7f Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/checkbox_unchecked_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/checkbox_unchecked_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/checkbox_unchecked_disabled@2x.png new file mode 100644 index 0000000000..9c80ad75a5 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/checkbox_unchecked_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/checkbox_unchecked_focus.png b/Data/User/Themes/Dolphin Dark/Resources/checkbox_unchecked_focus.png new file mode 100644 index 0000000000..366b868dee Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/checkbox_unchecked_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/checkbox_unchecked_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/checkbox_unchecked_focus@2x.png new file mode 100644 index 0000000000..4ab217356e Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/checkbox_unchecked_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/checkbox_unchecked_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/checkbox_unchecked_pressed.png new file mode 100644 index 0000000000..d9a0bf71c7 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/checkbox_unchecked_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/checkbox_unchecked_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/checkbox_unchecked_pressed@2x.png new file mode 100644 index 0000000000..9e2b0515e7 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/checkbox_unchecked_pressed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/line_horizontal.png b/Data/User/Themes/Dolphin Dark/Resources/line_horizontal.png new file mode 100644 index 0000000000..8774e3d018 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/line_horizontal.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/line_horizontal@2x.png b/Data/User/Themes/Dolphin Dark/Resources/line_horizontal@2x.png new file mode 100644 index 0000000000..cb11d1d2b6 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/line_horizontal@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/line_horizontal_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/line_horizontal_disabled.png new file mode 100644 index 0000000000..941f14a385 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/line_horizontal_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/line_horizontal_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/line_horizontal_disabled@2x.png new file mode 100644 index 0000000000..972fa08004 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/line_horizontal_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/line_horizontal_focus.png b/Data/User/Themes/Dolphin Dark/Resources/line_horizontal_focus.png new file mode 100644 index 0000000000..221fd4607f Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/line_horizontal_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/line_horizontal_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/line_horizontal_focus@2x.png new file mode 100644 index 0000000000..7e6505cae3 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/line_horizontal_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/line_horizontal_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/line_horizontal_pressed.png new file mode 100644 index 0000000000..9f9113323f Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/line_horizontal_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/line_horizontal_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/line_horizontal_pressed@2x.png new file mode 100644 index 0000000000..465680c3b0 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/line_horizontal_pressed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/line_vertical.png b/Data/User/Themes/Dolphin Dark/Resources/line_vertical.png new file mode 100644 index 0000000000..5529f413e4 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/line_vertical.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/line_vertical@2x.png b/Data/User/Themes/Dolphin Dark/Resources/line_vertical@2x.png new file mode 100644 index 0000000000..6a334e7468 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/line_vertical@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/line_vertical_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/line_vertical_disabled.png new file mode 100644 index 0000000000..c7c4c8959f Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/line_vertical_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/line_vertical_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/line_vertical_disabled@2x.png new file mode 100644 index 0000000000..b052de522e Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/line_vertical_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/line_vertical_focus.png b/Data/User/Themes/Dolphin Dark/Resources/line_vertical_focus.png new file mode 100644 index 0000000000..36baa09362 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/line_vertical_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/line_vertical_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/line_vertical_focus@2x.png new file mode 100644 index 0000000000..24a2b771c3 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/line_vertical_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/line_vertical_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/line_vertical_pressed.png new file mode 100644 index 0000000000..60e3574460 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/line_vertical_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/line_vertical_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/line_vertical_pressed@2x.png new file mode 100644 index 0000000000..c9494051cd Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/line_vertical_pressed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/radio_checked.png b/Data/User/Themes/Dolphin Dark/Resources/radio_checked.png new file mode 100644 index 0000000000..274afe1e29 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/radio_checked.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/radio_checked@2x.png b/Data/User/Themes/Dolphin Dark/Resources/radio_checked@2x.png new file mode 100644 index 0000000000..8c16b38cc5 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/radio_checked@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/radio_checked_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/radio_checked_disabled.png new file mode 100644 index 0000000000..49df43922d Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/radio_checked_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/radio_checked_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/radio_checked_disabled@2x.png new file mode 100644 index 0000000000..a9ffd40ced Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/radio_checked_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/radio_checked_focus.png b/Data/User/Themes/Dolphin Dark/Resources/radio_checked_focus.png new file mode 100644 index 0000000000..4bd472e160 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/radio_checked_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/radio_checked_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/radio_checked_focus@2x.png new file mode 100644 index 0000000000..aed5e0c94d Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/radio_checked_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/radio_checked_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/radio_checked_pressed.png new file mode 100644 index 0000000000..ebb323b8c5 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/radio_checked_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/radio_checked_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/radio_checked_pressed@2x.png new file mode 100644 index 0000000000..ffe0fd8517 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/radio_checked_pressed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/radio_unchecked.png b/Data/User/Themes/Dolphin Dark/Resources/radio_unchecked.png new file mode 100644 index 0000000000..93365a85e7 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/radio_unchecked.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/radio_unchecked@2x.png b/Data/User/Themes/Dolphin Dark/Resources/radio_unchecked@2x.png new file mode 100644 index 0000000000..8237e4062a Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/radio_unchecked@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/radio_unchecked_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/radio_unchecked_disabled.png new file mode 100644 index 0000000000..7ddff642df Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/radio_unchecked_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/radio_unchecked_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/radio_unchecked_disabled@2x.png new file mode 100644 index 0000000000..4de5d0d2d8 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/radio_unchecked_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/radio_unchecked_focus.png b/Data/User/Themes/Dolphin Dark/Resources/radio_unchecked_focus.png new file mode 100644 index 0000000000..e62b996b1c Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/radio_unchecked_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/radio_unchecked_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/radio_unchecked_focus@2x.png new file mode 100644 index 0000000000..eaf7bc26b9 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/radio_unchecked_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/radio_unchecked_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/radio_unchecked_pressed.png new file mode 100644 index 0000000000..8aaa343e88 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/radio_unchecked_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/radio_unchecked_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/radio_unchecked_pressed@2x.png new file mode 100644 index 0000000000..ba4f83b91e Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/radio_unchecked_pressed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_horizontal.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_horizontal.png new file mode 100644 index 0000000000..54993316db Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_horizontal.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_horizontal@2x.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_horizontal@2x.png new file mode 100644 index 0000000000..143b62ec55 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_horizontal@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_horizontal_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_horizontal_disabled.png new file mode 100644 index 0000000000..568b0fbe18 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_horizontal_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_horizontal_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_horizontal_disabled@2x.png new file mode 100644 index 0000000000..4d15f1478b Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_horizontal_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_horizontal_focus.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_horizontal_focus.png new file mode 100644 index 0000000000..cdb96bfb96 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_horizontal_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_horizontal_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_horizontal_focus@2x.png new file mode 100644 index 0000000000..23e06a0152 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_horizontal_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_horizontal_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_horizontal_pressed.png new file mode 100644 index 0000000000..9ce6f8d89d Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_horizontal_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_horizontal_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_horizontal_pressed@2x.png new file mode 100644 index 0000000000..4d8e53e8e7 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_horizontal_pressed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_vertical.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_vertical.png new file mode 100644 index 0000000000..ade2a20b95 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_vertical.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_vertical@2x.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_vertical@2x.png new file mode 100644 index 0000000000..453d7b71f9 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_vertical@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_vertical_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_vertical_disabled.png new file mode 100644 index 0000000000..37453ac258 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_vertical_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_vertical_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_vertical_disabled@2x.png new file mode 100644 index 0000000000..cca8f6d961 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_vertical_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_vertical_focus.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_vertical_focus.png new file mode 100644 index 0000000000..b548771816 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_vertical_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_vertical_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_vertical_focus@2x.png new file mode 100644 index 0000000000..d4dd49dec9 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_vertical_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_vertical_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_vertical_pressed.png new file mode 100644 index 0000000000..768ebaf4ca Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_vertical_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_vertical_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_vertical_pressed@2x.png new file mode 100644 index 0000000000..2f170ffd8f Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_move_vertical_pressed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal.png new file mode 100644 index 0000000000..ecf2ab7d0c Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal@2x.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal@2x.png new file mode 100644 index 0000000000..ac2b343264 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal_disabled.png new file mode 100644 index 0000000000..f8796f9e6b Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal_disabled@2x.png new file mode 100644 index 0000000000..1d9f20421c Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal_focus.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal_focus.png new file mode 100644 index 0000000000..b592e61c16 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal_focus@2x.png new file mode 100644 index 0000000000..a593a7e761 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal_pressed.png new file mode 100644 index 0000000000..a806257e06 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal_pressed@2x.png new file mode 100644 index 0000000000..e1e8e3c148 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_horizontal_pressed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical.png new file mode 100644 index 0000000000..a894304e69 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical@2x.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical@2x.png new file mode 100644 index 0000000000..2f66e93d34 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical_disabled.png new file mode 100644 index 0000000000..48b2657f50 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical_disabled@2x.png new file mode 100644 index 0000000000..a2173c5eef Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical_focus.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical_focus.png new file mode 100644 index 0000000000..e31c694b05 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical_focus@2x.png new file mode 100644 index 0000000000..ce743cc862 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical_pressed.png new file mode 100644 index 0000000000..4ee7aaaabd Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical_pressed@2x.png new file mode 100644 index 0000000000..d8bf93bf65 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/toolbar_separator_vertical_pressed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/transparent.png b/Data/User/Themes/Dolphin Dark/Resources/transparent.png new file mode 100644 index 0000000000..67753617fe Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/transparent.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/transparent@2x.png b/Data/User/Themes/Dolphin Dark/Resources/transparent@2x.png new file mode 100644 index 0000000000..4012944b58 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/transparent@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/transparent_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/transparent_disabled.png new file mode 100644 index 0000000000..67753617fe Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/transparent_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/transparent_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/transparent_disabled@2x.png new file mode 100644 index 0000000000..4012944b58 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/transparent_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/transparent_focus.png b/Data/User/Themes/Dolphin Dark/Resources/transparent_focus.png new file mode 100644 index 0000000000..67753617fe Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/transparent_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/transparent_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/transparent_focus@2x.png new file mode 100644 index 0000000000..4012944b58 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/transparent_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/transparent_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/transparent_pressed.png new file mode 100644 index 0000000000..67753617fe Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/transparent_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/transparent_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/transparent_pressed@2x.png new file mode 100644 index 0000000000..4012944b58 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/transparent_pressed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_close.png b/Data/User/Themes/Dolphin Dark/Resources/window_close.png new file mode 100644 index 0000000000..2b36479382 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_close.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_close@2x.png b/Data/User/Themes/Dolphin Dark/Resources/window_close@2x.png new file mode 100644 index 0000000000..c6bec556f1 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_close@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_close_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/window_close_disabled.png new file mode 100644 index 0000000000..46de804b88 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_close_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_close_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/window_close_disabled@2x.png new file mode 100644 index 0000000000..8e4cd15d86 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_close_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_close_focus.png b/Data/User/Themes/Dolphin Dark/Resources/window_close_focus.png new file mode 100644 index 0000000000..bb7d8c5110 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_close_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_close_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/window_close_focus@2x.png new file mode 100644 index 0000000000..692ce24f2f Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_close_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_close_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/window_close_pressed.png new file mode 100644 index 0000000000..53ae7f38e0 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_close_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_close_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/window_close_pressed@2x.png new file mode 100644 index 0000000000..e02b12292d Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_close_pressed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_grip.png b/Data/User/Themes/Dolphin Dark/Resources/window_grip.png new file mode 100644 index 0000000000..fc2f6dffcb Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_grip.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_grip@2x.png b/Data/User/Themes/Dolphin Dark/Resources/window_grip@2x.png new file mode 100644 index 0000000000..6a8e86cef2 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_grip@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_grip_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/window_grip_disabled.png new file mode 100644 index 0000000000..97c0e0f90b Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_grip_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_grip_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/window_grip_disabled@2x.png new file mode 100644 index 0000000000..7a3d8de6de Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_grip_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_grip_focus.png b/Data/User/Themes/Dolphin Dark/Resources/window_grip_focus.png new file mode 100644 index 0000000000..99b27c9cec Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_grip_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_grip_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/window_grip_focus@2x.png new file mode 100644 index 0000000000..833cb90a9a Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_grip_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_grip_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/window_grip_pressed.png new file mode 100644 index 0000000000..afea9749e8 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_grip_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_grip_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/window_grip_pressed@2x.png new file mode 100644 index 0000000000..c1c1a0e4b1 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_grip_pressed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_minimize.png b/Data/User/Themes/Dolphin Dark/Resources/window_minimize.png new file mode 100644 index 0000000000..64404308d3 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_minimize.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_minimize@2x.png b/Data/User/Themes/Dolphin Dark/Resources/window_minimize@2x.png new file mode 100644 index 0000000000..0e25540417 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_minimize@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_minimize_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/window_minimize_disabled.png new file mode 100644 index 0000000000..cc51ed0eed Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_minimize_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_minimize_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/window_minimize_disabled@2x.png new file mode 100644 index 0000000000..c1676469f9 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_minimize_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_minimize_focus.png b/Data/User/Themes/Dolphin Dark/Resources/window_minimize_focus.png new file mode 100644 index 0000000000..1dcd083c00 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_minimize_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_minimize_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/window_minimize_focus@2x.png new file mode 100644 index 0000000000..2a4c868e09 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_minimize_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_minimize_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/window_minimize_pressed.png new file mode 100644 index 0000000000..0bb532126c Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_minimize_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_minimize_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/window_minimize_pressed@2x.png new file mode 100644 index 0000000000..5a515c806b Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_minimize_pressed@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_undock.png b/Data/User/Themes/Dolphin Dark/Resources/window_undock.png new file mode 100644 index 0000000000..3bd2863274 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_undock.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_undock@2x.png b/Data/User/Themes/Dolphin Dark/Resources/window_undock@2x.png new file mode 100644 index 0000000000..44c147feb9 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_undock@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_undock_disabled.png b/Data/User/Themes/Dolphin Dark/Resources/window_undock_disabled.png new file mode 100644 index 0000000000..6a609492b3 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_undock_disabled.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_undock_disabled@2x.png b/Data/User/Themes/Dolphin Dark/Resources/window_undock_disabled@2x.png new file mode 100644 index 0000000000..c2e1b8fa72 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_undock_disabled@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_undock_focus.png b/Data/User/Themes/Dolphin Dark/Resources/window_undock_focus.png new file mode 100644 index 0000000000..d6eebbdc27 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_undock_focus.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_undock_focus@2x.png b/Data/User/Themes/Dolphin Dark/Resources/window_undock_focus@2x.png new file mode 100644 index 0000000000..1aef06053d Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_undock_focus@2x.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_undock_pressed.png b/Data/User/Themes/Dolphin Dark/Resources/window_undock_pressed.png new file mode 100644 index 0000000000..8b6beb19e9 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_undock_pressed.png differ diff --git a/Data/User/Themes/Dolphin Dark/Resources/window_undock_pressed@2x.png b/Data/User/Themes/Dolphin Dark/Resources/window_undock_pressed@2x.png new file mode 100644 index 0000000000..677ded4251 Binary files /dev/null and b/Data/User/Themes/Dolphin Dark/Resources/window_undock_pressed@2x.png differ diff --git a/Data/User/Wii/btdinf.bak b/Data/User/Wii/btdinf.bak new file mode 100644 index 0000000000..8ad512e67d Binary files /dev/null and b/Data/User/Wii/btdinf.bak differ diff --git a/Data/User/Wii/fst.bin b/Data/User/Wii/fst.bin new file mode 100644 index 0000000000..766d92ad75 Binary files /dev/null and b/Data/User/Wii/fst.bin differ diff --git a/Data/User/Wii/shared1/00000000.app b/Data/User/Wii/shared1/00000000.app new file mode 100644 index 0000000000..58cd8e3ad0 Binary files /dev/null and b/Data/User/Wii/shared1/00000000.app differ diff --git a/Data/User/Wii/shared1/00000001.app b/Data/User/Wii/shared1/00000001.app new file mode 100644 index 0000000000..25f846fb84 Binary files /dev/null and b/Data/User/Wii/shared1/00000001.app differ diff --git a/Data/User/Wii/shared1/00000002.app b/Data/User/Wii/shared1/00000002.app new file mode 100644 index 0000000000..a2bf0d2344 Binary files /dev/null and b/Data/User/Wii/shared1/00000002.app differ diff --git a/Data/User/Wii/shared1/00000003.app b/Data/User/Wii/shared1/00000003.app new file mode 100644 index 0000000000..b157517ad0 Binary files /dev/null and b/Data/User/Wii/shared1/00000003.app differ diff --git a/Data/User/Wii/shared1/00000004.app b/Data/User/Wii/shared1/00000004.app new file mode 100644 index 0000000000..c05d8dc4df Binary files /dev/null and b/Data/User/Wii/shared1/00000004.app differ diff --git a/Data/User/Wii/shared1/00000005.app b/Data/User/Wii/shared1/00000005.app new file mode 100644 index 0000000000..4a114a5f0f Binary files /dev/null and b/Data/User/Wii/shared1/00000005.app differ diff --git a/Data/User/Wii/shared1/00000006.app b/Data/User/Wii/shared1/00000006.app new file mode 100644 index 0000000000..1d3e676ea6 Binary files /dev/null and b/Data/User/Wii/shared1/00000006.app differ diff --git a/Data/User/Wii/shared1/00000007.app b/Data/User/Wii/shared1/00000007.app new file mode 100644 index 0000000000..0013676c29 Binary files /dev/null and b/Data/User/Wii/shared1/00000007.app differ diff --git a/Data/User/Wii/shared1/content.map b/Data/User/Wii/shared1/content.map new file mode 100644 index 0000000000..7ace58ca3d --- /dev/null +++ b/Data/User/Wii/shared1/content.map @@ -0,0 +1,2 @@ +00000000õݳ ÔÖ¾+%µwÉž_”s$000000012³9Ë»P}P'y%šxf™] ˆ00000002_·°'”±Nˆ·"i£7m#­00000003O­—ýJ(ŒGàX;½)#yøpž¹00000004)=sB`¬™ôÓÞu1 +}'4fö¾00000005® ¾´ÁŒuôd¾ž1_OÜ"Wõ000000066D8K ü’ö ‡!¿SÈ[Ú'00000007 k{Èac)ó.À7nCŽõC‹ $z \ No newline at end of file diff --git a/Data/User/Wii/shared2/ec/shopsetu.log b/Data/User/Wii/shared2/ec/shopsetu.log new file mode 100644 index 0000000000..4e4e493570 Binary files /dev/null and b/Data/User/Wii/shared2/ec/shopsetu.log differ diff --git a/Data/User/Wii/shared2/menu/FaceLib/RFL_DB.dat b/Data/User/Wii/shared2/menu/FaceLib/RFL_DB.dat new file mode 100644 index 0000000000..2991fa97bc Binary files /dev/null and b/Data/User/Wii/shared2/menu/FaceLib/RFL_DB.dat differ diff --git a/Data/User/Wii/shared2/menu/vc/settings.sav b/Data/User/Wii/shared2/menu/vc/settings.sav new file mode 100644 index 0000000000..6bb1bf4b5c Binary files /dev/null and b/Data/User/Wii/shared2/menu/vc/settings.sav differ diff --git a/Data/User/Wii/shared2/succession/shop.log b/Data/User/Wii/shared2/succession/shop.log new file mode 100644 index 0000000000..4e4e493570 Binary files /dev/null and b/Data/User/Wii/shared2/succession/shop.log differ diff --git a/Data/User/Wii/shared2/sys/SYSCONF b/Data/User/Wii/shared2/sys/SYSCONF new file mode 100644 index 0000000000..f7b664d920 Binary files /dev/null and b/Data/User/Wii/shared2/sys/SYSCONF differ diff --git a/Data/User/Wii/shared2/sys/net/02/config.dat b/Data/User/Wii/shared2/sys/net/02/config.dat new file mode 100644 index 0000000000..97fb42584d Binary files /dev/null and b/Data/User/Wii/shared2/sys/net/02/config.dat differ diff --git a/Data/User/Wii/shared2/wc24/mbox/Readme.txt b/Data/User/Wii/shared2/wc24/mbox/Readme.txt new file mode 100644 index 0000000000..6813fc73c1 --- /dev/null +++ b/Data/User/Wii/shared2/wc24/mbox/Readme.txt @@ -0,0 +1,4 @@ +The Mailbox here has been shrunk, the real file size: + +WC24RECV.MBX 0x00700000 +WC24SEND.MBX 0x00200000 diff --git a/Data/User/Wii/shared2/wc24/mbox/wc24recv.ctl b/Data/User/Wii/shared2/wc24/mbox/wc24recv.ctl new file mode 100644 index 0000000000..a4880f368a Binary files /dev/null and b/Data/User/Wii/shared2/wc24/mbox/wc24recv.ctl differ diff --git a/Data/User/Wii/shared2/wc24/mbox/wc24recv.mbx b/Data/User/Wii/shared2/wc24/mbox/wc24recv.mbx new file mode 100644 index 0000000000..81cd383a97 Binary files /dev/null and b/Data/User/Wii/shared2/wc24/mbox/wc24recv.mbx differ diff --git a/Data/User/Wii/shared2/wc24/mbox/wc24send.ctl b/Data/User/Wii/shared2/wc24/mbox/wc24send.ctl new file mode 100644 index 0000000000..165daf72b3 Binary files /dev/null and b/Data/User/Wii/shared2/wc24/mbox/wc24send.ctl differ diff --git a/Data/User/Wii/shared2/wc24/mbox/wc24send.mbx b/Data/User/Wii/shared2/wc24/mbox/wc24send.mbx new file mode 100644 index 0000000000..d4474476fe Binary files /dev/null and b/Data/User/Wii/shared2/wc24/mbox/wc24send.mbx differ diff --git a/Data/User/Wii/shared2/wc24/misc.bin b/Data/User/Wii/shared2/wc24/misc.bin new file mode 100644 index 0000000000..b2183037a2 Binary files /dev/null and b/Data/User/Wii/shared2/wc24/misc.bin differ diff --git a/Data/User/Wii/shared2/wc24/nwc24dl.bin b/Data/User/Wii/shared2/wc24/nwc24dl.bin new file mode 100644 index 0000000000..b7f8fa3ed7 Binary files /dev/null and b/Data/User/Wii/shared2/wc24/nwc24dl.bin differ diff --git a/Data/User/Wii/shared2/wc24/nwc24fl.bin b/Data/User/Wii/shared2/wc24/nwc24fl.bin new file mode 100644 index 0000000000..faa12b07ae Binary files /dev/null and b/Data/User/Wii/shared2/wc24/nwc24fl.bin differ diff --git a/Data/User/Wii/shared2/wc24/nwc24fls.bin b/Data/User/Wii/shared2/wc24/nwc24fls.bin new file mode 100644 index 0000000000..1ca2191a9b Binary files /dev/null and b/Data/User/Wii/shared2/wc24/nwc24fls.bin differ diff --git a/Data/User/Wii/shared2/wc24/nwc24msg.cbk b/Data/User/Wii/shared2/wc24/nwc24msg.cbk new file mode 100644 index 0000000000..c87fb77301 Binary files /dev/null and b/Data/User/Wii/shared2/wc24/nwc24msg.cbk differ diff --git a/Data/User/Wii/shared2/wc24/nwc24msg.cfg b/Data/User/Wii/shared2/wc24/nwc24msg.cfg new file mode 100644 index 0000000000..c87fb77301 Binary files /dev/null and b/Data/User/Wii/shared2/wc24/nwc24msg.cfg differ diff --git a/Data/User/Wii/sys/cert.sys b/Data/User/Wii/sys/cert.sys new file mode 100644 index 0000000000..32dd50ca02 Binary files /dev/null and b/Data/User/Wii/sys/cert.sys differ diff --git a/Data/User/Wii/sys/uid.sys b/Data/User/Wii/sys/uid.sys new file mode 100644 index 0000000000..faacd2b5e8 Binary files /dev/null and b/Data/User/Wii/sys/uid.sys differ diff --git a/Data/User/Wii/ticket/00000001/00000002.tik b/Data/User/Wii/ticket/00000001/00000002.tik new file mode 100644 index 0000000000..dc46d0e282 Binary files /dev/null and b/Data/User/Wii/ticket/00000001/00000002.tik differ diff --git a/Data/User/Wii/ticket/00010002/48414341.tik b/Data/User/Wii/ticket/00010002/48414341.tik new file mode 100644 index 0000000000..507277473f Binary files /dev/null and b/Data/User/Wii/ticket/00010002/48414341.tik differ diff --git a/Data/User/Wii/title/00000001/00000002/content/00000011.app b/Data/User/Wii/title/00000001/00000002/content/00000011.app new file mode 100644 index 0000000000..52f144b4dc Binary files /dev/null and b/Data/User/Wii/title/00000001/00000002/content/00000011.app differ diff --git a/Data/User/Wii/title/00000001/00000002/content/00000012.app b/Data/User/Wii/title/00000001/00000002/content/00000012.app new file mode 100644 index 0000000000..e402960aee Binary files /dev/null and b/Data/User/Wii/title/00000001/00000002/content/00000012.app differ diff --git a/Data/User/Wii/title/00000001/00000002/content/00000015.app b/Data/User/Wii/title/00000001/00000002/content/00000015.app new file mode 100644 index 0000000000..132449e013 Binary files /dev/null and b/Data/User/Wii/title/00000001/00000002/content/00000015.app differ diff --git a/Data/User/Wii/title/00000001/00000002/content/title.tmd b/Data/User/Wii/title/00000001/00000002/content/title.tmd new file mode 100644 index 0000000000..ffcc0145dd Binary files /dev/null and b/Data/User/Wii/title/00000001/00000002/content/title.tmd differ diff --git a/Data/User/Wii/title/00000001/00000002/data/cache.dat b/Data/User/Wii/title/00000001/00000002/data/cache.dat new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/User/Wii/title/00000001/00000002/data/cdb.vff b/Data/User/Wii/title/00000001/00000002/data/cdb.vff new file mode 100644 index 0000000000..6948771527 Binary files /dev/null and b/Data/User/Wii/title/00000001/00000002/data/cdb.vff differ diff --git a/Data/User/Wii/title/00000001/00000002/data/iplsave.bin b/Data/User/Wii/title/00000001/00000002/data/iplsave.bin new file mode 100644 index 0000000000..68f90a042f Binary files /dev/null and b/Data/User/Wii/title/00000001/00000002/data/iplsave.bin differ diff --git a/Data/User/Wii/title/00000001/00000002/data/play_rec.dat b/Data/User/Wii/title/00000001/00000002/data/play_rec.dat new file mode 100644 index 0000000000..c4517de253 Binary files /dev/null and b/Data/User/Wii/title/00000001/00000002/data/play_rec.dat differ diff --git a/Data/User/Wii/title/00000001/00000002/data/setting.txt b/Data/User/Wii/title/00000001/00000002/data/setting.txt new file mode 100644 index 0000000000..3123b0e055 Binary files /dev/null and b/Data/User/Wii/title/00000001/00000002/data/setting.txt differ diff --git a/Data/User/Wii/title/00000001/00000002/data/state.dat b/Data/User/Wii/title/00000001/00000002/data/state.dat new file mode 100644 index 0000000000..7119b82903 Binary files /dev/null and b/Data/User/Wii/title/00000001/00000002/data/state.dat differ diff --git a/Data/User/Wii/title/00010000/52324445/content/title.tmd b/Data/User/Wii/title/00010000/52324445/content/title.tmd new file mode 100644 index 0000000000..5b94464603 Binary files /dev/null and b/Data/User/Wii/title/00010000/52324445/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/52324445/data/banner.bin b/Data/User/Wii/title/00010000/52324445/data/banner.bin new file mode 100644 index 0000000000..9b0df392d8 Binary files /dev/null and b/Data/User/Wii/title/00010000/52324445/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/52324445/data/savefile.dat b/Data/User/Wii/title/00010000/52324445/data/savefile.dat new file mode 100644 index 0000000000..fc93bf9c18 Binary files /dev/null and b/Data/User/Wii/title/00010000/52324445/data/savefile.dat differ diff --git a/Data/User/Wii/title/00010000/52345145/content/title.tmd b/Data/User/Wii/title/00010000/52345145/content/title.tmd new file mode 100644 index 0000000000..1813369c98 Binary files /dev/null and b/Data/User/Wii/title/00010000/52345145/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/52345145/data/Strikers2 b/Data/User/Wii/title/00010000/52345145/data/Strikers2 new file mode 100644 index 0000000000..5f4be4a8fd Binary files /dev/null and b/Data/User/Wii/title/00010000/52345145/data/Strikers2 differ diff --git a/Data/User/Wii/title/00010000/52345145/data/banner.bin b/Data/User/Wii/title/00010000/52345145/data/banner.bin new file mode 100644 index 0000000000..1b2c49d126 Binary files /dev/null and b/Data/User/Wii/title/00010000/52345145/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/52345150/content/title.tmd b/Data/User/Wii/title/00010000/52345150/content/title.tmd new file mode 100644 index 0000000000..601e533a01 Binary files /dev/null and b/Data/User/Wii/title/00010000/52345150/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/52345150/data/Strikers2 b/Data/User/Wii/title/00010000/52345150/data/Strikers2 new file mode 100644 index 0000000000..da78519b88 Binary files /dev/null and b/Data/User/Wii/title/00010000/52345150/data/Strikers2 differ diff --git a/Data/User/Wii/title/00010000/52345150/data/banner.bin b/Data/User/Wii/title/00010000/52345150/data/banner.bin new file mode 100644 index 0000000000..696317ce1e Binary files /dev/null and b/Data/User/Wii/title/00010000/52345150/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/52363445/content/title.tmd b/Data/User/Wii/title/00010000/52363445/content/title.tmd new file mode 100644 index 0000000000..1e84a4d953 Binary files /dev/null and b/Data/User/Wii/title/00010000/52363445/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/52363445/data/RPClipDB.dat b/Data/User/Wii/title/00010000/52363445/data/RPClipDB.dat new file mode 100644 index 0000000000..746a8c0891 Binary files /dev/null and b/Data/User/Wii/title/00010000/52363445/data/RPClipDB.dat differ diff --git a/Data/User/Wii/title/00010000/52363445/data/RPMusic.dat b/Data/User/Wii/title/00010000/52363445/data/RPMusic.dat new file mode 100644 index 0000000000..8b3e713e1d Binary files /dev/null and b/Data/User/Wii/title/00010000/52363445/data/RPMusic.dat differ diff --git a/Data/User/Wii/title/00010000/52363445/data/RPNandDB.dat b/Data/User/Wii/title/00010000/52363445/data/RPNandDB.dat new file mode 100644 index 0000000000..bcba5cbacb Binary files /dev/null and b/Data/User/Wii/title/00010000/52363445/data/RPNandDB.dat differ diff --git a/Data/User/Wii/title/00010000/52363445/data/banner.bin b/Data/User/Wii/title/00010000/52363445/data/banner.bin new file mode 100644 index 0000000000..744ab8a4df Binary files /dev/null and b/Data/User/Wii/title/00010000/52363445/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/52363445/data/wc24scr.vff b/Data/User/Wii/title/00010000/52363445/data/wc24scr.vff new file mode 100644 index 0000000000..a368cd2624 Binary files /dev/null and b/Data/User/Wii/title/00010000/52363445/data/wc24scr.vff differ diff --git a/Data/User/Wii/title/00010000/52445345/content/title.tmd b/Data/User/Wii/title/00010000/52445345/content/title.tmd new file mode 100644 index 0000000000..c0c6f3fd8e Binary files /dev/null and b/Data/User/Wii/title/00010000/52445345/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/52445345/data/DBZT3 b/Data/User/Wii/title/00010000/52445345/data/DBZT3 new file mode 100644 index 0000000000..8049d5eb0d Binary files /dev/null and b/Data/User/Wii/title/00010000/52445345/data/DBZT3 differ diff --git a/Data/User/Wii/title/00010000/52445345/data/banner.bin b/Data/User/Wii/title/00010000/52445345/data/banner.bin new file mode 100644 index 0000000000..2a3671d4f1 Binary files /dev/null and b/Data/User/Wii/title/00010000/52445345/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/52445345/data/nocopy/DBZT3_WIFI b/Data/User/Wii/title/00010000/52445345/data/nocopy/DBZT3_WIFI new file mode 100644 index 0000000000..3931d063d4 Binary files /dev/null and b/Data/User/Wii/title/00010000/52445345/data/nocopy/DBZT3_WIFI differ diff --git a/Data/User/Wii/title/00010000/52445345/private/wii/title/RDSE/data.bin b/Data/User/Wii/title/00010000/52445345/private/wii/title/RDSE/data.bin new file mode 100644 index 0000000000..448763c6ac Binary files /dev/null and b/Data/User/Wii/title/00010000/52445345/private/wii/title/RDSE/data.bin differ diff --git a/Data/User/Wii/title/00010000/52464545/content/title.tmd b/Data/User/Wii/title/00010000/52464545/content/title.tmd new file mode 100644 index 0000000000..f3eb36a434 Binary files /dev/null and b/Data/User/Wii/title/00010000/52464545/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/52464545/data/FE10_US.dat b/Data/User/Wii/title/00010000/52464545/data/FE10_US.dat new file mode 100644 index 0000000000..8548c32814 Binary files /dev/null and b/Data/User/Wii/title/00010000/52464545/data/FE10_US.dat differ diff --git a/Data/User/Wii/title/00010000/52464545/data/banner.bin b/Data/User/Wii/title/00010000/52464545/data/banner.bin new file mode 100644 index 0000000000..8fc86e6157 Binary files /dev/null and b/Data/User/Wii/title/00010000/52464545/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/52484145/content/title.tmd b/Data/User/Wii/title/00010000/52484145/content/title.tmd new file mode 100644 index 0000000000..768a2ab1c2 Binary files /dev/null and b/Data/User/Wii/title/00010000/52484145/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/52484145/data/RPParty.dat b/Data/User/Wii/title/00010000/52484145/data/RPParty.dat new file mode 100644 index 0000000000..8e98670e2f Binary files /dev/null and b/Data/User/Wii/title/00010000/52484145/data/RPParty.dat differ diff --git a/Data/User/Wii/title/00010000/52484145/data/banner.bin b/Data/User/Wii/title/00010000/52484145/data/banner.bin new file mode 100644 index 0000000000..3e7f9280a5 Binary files /dev/null and b/Data/User/Wii/title/00010000/52484145/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/524b3245/content/title.tmd b/Data/User/Wii/title/00010000/524b3245/content/title.tmd new file mode 100644 index 0000000000..071b875430 Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3245/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/524b3245/data/banner.bin b/Data/User/Wii/title/00010000/524b3245/data/banner.bin new file mode 100644 index 0000000000..cf5b1ad5d3 Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3245/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/524b3245/data/save.dat b/Data/User/Wii/title/00010000/524b3245/data/save.dat new file mode 100644 index 0000000000..b027fd2195 Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3245/data/save.dat differ diff --git a/Data/User/Wii/title/00010000/524b3545/content/title.tmd b/Data/User/Wii/title/00010000/524b3545/content/title.tmd new file mode 100644 index 0000000000..dd24dabcb3 Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/FLF.bin b/Data/User/Wii/title/00010000/524b3545/data/FLF.bin new file mode 100644 index 0000000000..826556a2db Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/FLF.bin differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_0_00.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_0_00.jpg new file mode 100644 index 0000000000..cd6b5e9fbf Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_0_00.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_0_01.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_0_01.jpg new file mode 100644 index 0000000000..6dbfc2b57d Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_0_01.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_0_02.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_0_02.jpg new file mode 100644 index 0000000000..467e330b2f Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_0_02.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_0_03.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_0_03.jpg new file mode 100644 index 0000000000..62a0e8b410 Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_0_03.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_0_04.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_0_04.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_0_04.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_0_05.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_0_05.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_0_05.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_0_06.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_0_06.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_0_06.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_0_07.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_0_07.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_0_07.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_0_08.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_0_08.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_0_08.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_0_09.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_0_09.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_0_09.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_1_00.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_1_00.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_1_00.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_1_01.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_1_01.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_1_01.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_1_02.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_1_02.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_1_02.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_1_03.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_1_03.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_1_03.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_1_04.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_1_04.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_1_04.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_1_05.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_1_05.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_1_05.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_1_06.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_1_06.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_1_06.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_1_07.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_1_07.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_1_07.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_1_08.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_1_08.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_1_08.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_1_09.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_1_09.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_1_09.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_2_00.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_2_00.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_2_00.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_2_01.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_2_01.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_2_01.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_2_02.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_2_02.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_2_02.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_2_03.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_2_03.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_2_03.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_2_04.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_2_04.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_2_04.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_2_05.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_2_05.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_2_05.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_2_06.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_2_06.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_2_06.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_2_07.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_2_07.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_2_07.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_2_08.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_2_08.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_2_08.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/GF_2_09.jpg b/Data/User/Wii/title/00010000/524b3545/data/GF_2_09.jpg new file mode 100644 index 0000000000..45ed7f151e Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/GF_2_09.jpg differ diff --git a/Data/User/Wii/title/00010000/524b3545/data/banner.bin b/Data/User/Wii/title/00010000/524b3545/data/banner.bin new file mode 100644 index 0000000000..4cfd4a7c1b Binary files /dev/null and b/Data/User/Wii/title/00010000/524b3545/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/524d3845/content/title.tmd b/Data/User/Wii/title/00010000/524d3845/content/title.tmd new file mode 100644 index 0000000000..e6c599d20e Binary files /dev/null and b/Data/User/Wii/title/00010000/524d3845/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/524d3845/data/banner.bin b/Data/User/Wii/title/00010000/524d3845/data/banner.bin new file mode 100644 index 0000000000..4601762fc8 Binary files /dev/null and b/Data/User/Wii/title/00010000/524d3845/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/524d3845/data/mp8save.bin b/Data/User/Wii/title/00010000/524d3845/data/mp8save.bin new file mode 100644 index 0000000000..17373fd756 Binary files /dev/null and b/Data/User/Wii/title/00010000/524d3845/data/mp8save.bin differ diff --git a/Data/User/Wii/title/00010000/524d4245/content/title.tmd b/Data/User/Wii/title/00010000/524d4245/content/title.tmd new file mode 100644 index 0000000000..f354aaac1d Binary files /dev/null and b/Data/User/Wii/title/00010000/524d4245/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/524d4245/data/banner.bin b/Data/User/Wii/title/00010000/524d4245/data/banner.bin new file mode 100644 index 0000000000..56baa5659a Binary files /dev/null and b/Data/User/Wii/title/00010000/524d4245/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/524d4245/data/gamedata b/Data/User/Wii/title/00010000/524d4245/data/gamedata new file mode 100644 index 0000000000..cb05a59712 Binary files /dev/null and b/Data/User/Wii/title/00010000/524d4245/data/gamedata differ diff --git a/Data/User/Wii/title/00010000/524d4245/data/oekaki_0 b/Data/User/Wii/title/00010000/524d4245/data/oekaki_0 new file mode 100644 index 0000000000..2593561545 Binary files /dev/null and b/Data/User/Wii/title/00010000/524d4245/data/oekaki_0 differ diff --git a/Data/User/Wii/title/00010000/524d4245/data/oekaki_1 b/Data/User/Wii/title/00010000/524d4245/data/oekaki_1 new file mode 100644 index 0000000000..029411a72a Binary files /dev/null and b/Data/User/Wii/title/00010000/524d4245/data/oekaki_1 differ diff --git a/Data/User/Wii/title/00010000/524d4245/data/oekaki_2 b/Data/User/Wii/title/00010000/524d4245/data/oekaki_2 new file mode 100644 index 0000000000..029411a72a Binary files /dev/null and b/Data/User/Wii/title/00010000/524d4245/data/oekaki_2 differ diff --git a/Data/User/Wii/title/00010000/524d4745/content/title.tmd b/Data/User/Wii/title/00010000/524d4745/content/title.tmd new file mode 100644 index 0000000000..f33a74182c Binary files /dev/null and b/Data/User/Wii/title/00010000/524d4745/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/524d4745/data/GameData.bin b/Data/User/Wii/title/00010000/524d4745/data/GameData.bin new file mode 100644 index 0000000000..1611373a52 Binary files /dev/null and b/Data/User/Wii/title/00010000/524d4745/data/GameData.bin differ diff --git a/Data/User/Wii/title/00010000/524d4745/data/banner.bin b/Data/User/Wii/title/00010000/524d4745/data/banner.bin new file mode 100644 index 0000000000..804db6f6c4 Binary files /dev/null and b/Data/User/Wii/title/00010000/524d4745/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/524f4445/content/title.tmd b/Data/User/Wii/title/00010000/524f4445/content/title.tmd new file mode 100644 index 0000000000..dee556669f Binary files /dev/null and b/Data/User/Wii/title/00010000/524f4445/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/524f4445/data/SAVE0 b/Data/User/Wii/title/00010000/524f4445/data/SAVE0 new file mode 100644 index 0000000000..40434b346d Binary files /dev/null and b/Data/User/Wii/title/00010000/524f4445/data/SAVE0 differ diff --git a/Data/User/Wii/title/00010000/524f4445/data/SAVE1 b/Data/User/Wii/title/00010000/524f4445/data/SAVE1 new file mode 100644 index 0000000000..87907689ab Binary files /dev/null and b/Data/User/Wii/title/00010000/524f4445/data/SAVE1 differ diff --git a/Data/User/Wii/title/00010000/524f4445/data/banner.bin b/Data/User/Wii/title/00010000/524f4445/data/banner.bin new file mode 100644 index 0000000000..6ee9cf747c Binary files /dev/null and b/Data/User/Wii/title/00010000/524f4445/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/52524245/content/title.tmd b/Data/User/Wii/title/00010000/52524245/content/title.tmd new file mode 100644 index 0000000000..3fef8bf05d Binary files /dev/null and b/Data/User/Wii/title/00010000/52524245/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/52524245/data/RIV_SAV_FILE b/Data/User/Wii/title/00010000/52524245/data/RIV_SAV_FILE new file mode 100644 index 0000000000..4f38955b39 Binary files /dev/null and b/Data/User/Wii/title/00010000/52524245/data/RIV_SAV_FILE differ diff --git a/Data/User/Wii/title/00010000/52524245/data/banner.bin b/Data/User/Wii/title/00010000/52524245/data/banner.bin new file mode 100644 index 0000000000..f490ef192c Binary files /dev/null and b/Data/User/Wii/title/00010000/52524245/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/52534d45/content/title.tmd b/Data/User/Wii/title/00010000/52534d45/content/title.tmd new file mode 100644 index 0000000000..001c571e2d Binary files /dev/null and b/Data/User/Wii/title/00010000/52534d45/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/52534d45/data/RPL061123001 b/Data/User/Wii/title/00010000/52534d45/data/RPL061123001 new file mode 100644 index 0000000000..20598a93b3 Binary files /dev/null and b/Data/User/Wii/title/00010000/52534d45/data/RPL061123001 differ diff --git a/Data/User/Wii/title/00010000/52534d45/data/RPL061124001 b/Data/User/Wii/title/00010000/52534d45/data/RPL061124001 new file mode 100644 index 0000000000..4ceb2b083b Binary files /dev/null and b/Data/User/Wii/title/00010000/52534d45/data/RPL061124001 differ diff --git a/Data/User/Wii/title/00010000/52534d45/data/RPL061124002 b/Data/User/Wii/title/00010000/52534d45/data/RPL061124002 new file mode 100644 index 0000000000..b147d389f7 Binary files /dev/null and b/Data/User/Wii/title/00010000/52534d45/data/RPL061124002 differ diff --git a/Data/User/Wii/title/00010000/52534d45/data/RPL061206001 b/Data/User/Wii/title/00010000/52534d45/data/RPL061206001 new file mode 100644 index 0000000000..cf0c2cae80 Binary files /dev/null and b/Data/User/Wii/title/00010000/52534d45/data/RPL061206001 differ diff --git a/Data/User/Wii/title/00010000/52534d45/data/RPL061208001 b/Data/User/Wii/title/00010000/52534d45/data/RPL061208001 new file mode 100644 index 0000000000..d495017fec Binary files /dev/null and b/Data/User/Wii/title/00010000/52534d45/data/RPL061208001 differ diff --git a/Data/User/Wii/title/00010000/52534d45/data/SYSTEM b/Data/User/Wii/title/00010000/52534d45/data/SYSTEM new file mode 100644 index 0000000000..94f5e2c9e5 Binary files /dev/null and b/Data/User/Wii/title/00010000/52534d45/data/SYSTEM differ diff --git a/Data/User/Wii/title/00010000/52534d45/data/banner.bin b/Data/User/Wii/title/00010000/52534d45/data/banner.bin new file mode 100644 index 0000000000..e961dc558b Binary files /dev/null and b/Data/User/Wii/title/00010000/52534d45/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/52535045/content/title.tmd b/Data/User/Wii/title/00010000/52535045/content/title.tmd new file mode 100644 index 0000000000..fcccec920e Binary files /dev/null and b/Data/User/Wii/title/00010000/52535045/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/52535045/data/RPSports.dat b/Data/User/Wii/title/00010000/52535045/data/RPSports.dat new file mode 100644 index 0000000000..8f3b58a0c7 Binary files /dev/null and b/Data/User/Wii/title/00010000/52535045/data/RPSports.dat differ diff --git a/Data/User/Wii/title/00010000/52535045/data/banner.bin b/Data/User/Wii/title/00010000/52535045/data/banner.bin new file mode 100644 index 0000000000..41aa324eed Binary files /dev/null and b/Data/User/Wii/title/00010000/52535045/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/52545a45/content/title.tmd b/Data/User/Wii/title/00010000/52545a45/content/title.tmd new file mode 100644 index 0000000000..77519e543a Binary files /dev/null and b/Data/User/Wii/title/00010000/52545a45/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/52545a45/data/ZACKANDWIKI b/Data/User/Wii/title/00010000/52545a45/data/ZACKANDWIKI new file mode 100644 index 0000000000..b7756054ac Binary files /dev/null and b/Data/User/Wii/title/00010000/52545a45/data/ZACKANDWIKI differ diff --git a/Data/User/Wii/title/00010000/52545a45/data/banner.bin b/Data/User/Wii/title/00010000/52545a45/data/banner.bin new file mode 100644 index 0000000000..4fa6332990 Binary files /dev/null and b/Data/User/Wii/title/00010000/52545a45/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/53423445/content/title.tmd b/Data/User/Wii/title/00010000/53423445/content/title.tmd new file mode 100644 index 0000000000..4a03348221 Binary files /dev/null and b/Data/User/Wii/title/00010000/53423445/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/53423445/data/GameData.bin b/Data/User/Wii/title/00010000/53423445/data/GameData.bin new file mode 100644 index 0000000000..9a5eebd2a5 Binary files /dev/null and b/Data/User/Wii/title/00010000/53423445/data/GameData.bin differ diff --git a/Data/User/Wii/title/00010000/53423445/data/banner.bin b/Data/User/Wii/title/00010000/53423445/data/banner.bin new file mode 100644 index 0000000000..61dea101a0 Binary files /dev/null and b/Data/User/Wii/title/00010000/53423445/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/53463845/content/title.tmd b/Data/User/Wii/title/00010000/53463845/content/title.tmd new file mode 100644 index 0000000000..c06c81fdcc Binary files /dev/null and b/Data/User/Wii/title/00010000/53463845/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/53463845/data/banner.bin b/Data/User/Wii/title/00010000/53463845/data/banner.bin new file mode 100644 index 0000000000..9fe00eaa6a Binary files /dev/null and b/Data/User/Wii/title/00010000/53463845/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/53463845/data/save.bin b/Data/User/Wii/title/00010000/53463845/data/save.bin new file mode 100644 index 0000000000..f9dccf3728 Binary files /dev/null and b/Data/User/Wii/title/00010000/53463845/data/save.bin differ diff --git a/Data/User/Wii/title/00010000/534d4e45/content/title.tmd b/Data/User/Wii/title/00010000/534d4e45/content/title.tmd new file mode 100644 index 0000000000..3b031605ba Binary files /dev/null and b/Data/User/Wii/title/00010000/534d4e45/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/534d4e45/data/banner.bin b/Data/User/Wii/title/00010000/534d4e45/data/banner.bin new file mode 100644 index 0000000000..8837857f9b Binary files /dev/null and b/Data/User/Wii/title/00010000/534d4e45/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/534d4e45/data/wiimj2d.sav b/Data/User/Wii/title/00010000/534d4e45/data/wiimj2d.sav new file mode 100644 index 0000000000..c3a17e5372 Binary files /dev/null and b/Data/User/Wii/title/00010000/534d4e45/data/wiimj2d.sav differ diff --git a/Data/User/Wii/title/00010000/534f4a45/content/title.tmd b/Data/User/Wii/title/00010000/534f4a45/content/title.tmd new file mode 100644 index 0000000000..cdb18157d2 Binary files /dev/null and b/Data/User/Wii/title/00010000/534f4a45/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/534f4a45/data/banner.bin b/Data/User/Wii/title/00010000/534f4a45/data/banner.bin new file mode 100644 index 0000000000..1d26d00304 Binary files /dev/null and b/Data/User/Wii/title/00010000/534f4a45/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/534f4a45/data/slot_0.sav b/Data/User/Wii/title/00010000/534f4a45/data/slot_0.sav new file mode 100644 index 0000000000..d53d8a4c5c Binary files /dev/null and b/Data/User/Wii/title/00010000/534f4a45/data/slot_0.sav differ diff --git a/Data/User/Wii/title/00010000/534f4a45/data/slot_1.sav b/Data/User/Wii/title/00010000/534f4a45/data/slot_1.sav new file mode 100644 index 0000000000..ef3705ea4f Binary files /dev/null and b/Data/User/Wii/title/00010000/534f4a45/data/slot_1.sav differ diff --git a/Data/User/Wii/title/00010000/534f4a45/data/slot_2.sav b/Data/User/Wii/title/00010000/534f4a45/data/slot_2.sav new file mode 100644 index 0000000000..ef3705ea4f Binary files /dev/null and b/Data/User/Wii/title/00010000/534f4a45/data/slot_2.sav differ diff --git a/Data/User/Wii/title/00010000/534f4d45/content/title.tmd b/Data/User/Wii/title/00010000/534f4d45/content/title.tmd new file mode 100644 index 0000000000..e797a48b53 Binary files /dev/null and b/Data/User/Wii/title/00010000/534f4d45/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/534f4d45/data/Riq.dat b/Data/User/Wii/title/00010000/534f4d45/data/Riq.dat new file mode 100644 index 0000000000..8788883f38 Binary files /dev/null and b/Data/User/Wii/title/00010000/534f4d45/data/Riq.dat differ diff --git a/Data/User/Wii/title/00010000/534f4d45/data/banner.bin b/Data/User/Wii/title/00010000/534f4d45/data/banner.bin new file mode 100644 index 0000000000..43052bfb47 Binary files /dev/null and b/Data/User/Wii/title/00010000/534f4d45/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/53535145/content/title.tmd b/Data/User/Wii/title/00010000/53535145/content/title.tmd new file mode 100644 index 0000000000..b9f7373c2b Binary files /dev/null and b/Data/User/Wii/title/00010000/53535145/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/53535145/data/banner.bin b/Data/User/Wii/title/00010000/53535145/data/banner.bin new file mode 100644 index 0000000000..7355c21a00 Binary files /dev/null and b/Data/User/Wii/title/00010000/53535145/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/53535145/data/save.dat b/Data/User/Wii/title/00010000/53535145/data/save.dat new file mode 100644 index 0000000000..1ed17fb54e Binary files /dev/null and b/Data/User/Wii/title/00010000/53535145/data/save.dat differ diff --git a/Data/User/Wii/title/00010000/53543745/content/title.tmd b/Data/User/Wii/title/00010000/53543745/content/title.tmd new file mode 100644 index 0000000000..97504df076 Binary files /dev/null and b/Data/User/Wii/title/00010000/53543745/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/53543745/data/banner.bin b/Data/User/Wii/title/00010000/53543745/data/banner.bin new file mode 100644 index 0000000000..48b1f2c0ea Binary files /dev/null and b/Data/User/Wii/title/00010000/53543745/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/53543745/data/system.dat b/Data/User/Wii/title/00010000/53543745/data/system.dat new file mode 100644 index 0000000000..4e4e493570 Binary files /dev/null and b/Data/User/Wii/title/00010000/53543745/data/system.dat differ diff --git a/Data/User/Wii/title/00010000/53543745/data/user.dat b/Data/User/Wii/title/00010000/53543745/data/user.dat new file mode 100644 index 0000000000..2d8cee8c2d Binary files /dev/null and b/Data/User/Wii/title/00010000/53543745/data/user.dat differ diff --git a/Data/User/Wii/title/00010000/53554b45/content/title.tmd b/Data/User/Wii/title/00010000/53554b45/content/title.tmd new file mode 100644 index 0000000000..02650e5f87 Binary files /dev/null and b/Data/User/Wii/title/00010000/53554b45/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/53554b45/data/banner.bin b/Data/User/Wii/title/00010000/53554b45/data/banner.bin new file mode 100644 index 0000000000..d6af949368 Binary files /dev/null and b/Data/User/Wii/title/00010000/53554b45/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/53554b45/data/savedata.dat b/Data/User/Wii/title/00010000/53554b45/data/savedata.dat new file mode 100644 index 0000000000..68465b09f7 Binary files /dev/null and b/Data/User/Wii/title/00010000/53554b45/data/savedata.dat differ diff --git a/Data/User/Wii/title/00010000/53555045/content/title.tmd b/Data/User/Wii/title/00010000/53555045/content/title.tmd new file mode 100644 index 0000000000..8c50281744 Binary files /dev/null and b/Data/User/Wii/title/00010000/53555045/content/title.tmd differ diff --git a/Data/User/Wii/title/00010000/53555045/data/banner.bin b/Data/User/Wii/title/00010000/53555045/data/banner.bin new file mode 100644 index 0000000000..a40d12f2ce Binary files /dev/null and b/Data/User/Wii/title/00010000/53555045/data/banner.bin differ diff --git a/Data/User/Wii/title/00010000/53555045/data/wiiparty.bin b/Data/User/Wii/title/00010000/53555045/data/wiiparty.bin new file mode 100644 index 0000000000..7f1d5f9821 Binary files /dev/null and b/Data/User/Wii/title/00010000/53555045/data/wiiparty.bin differ diff --git a/Data/User/Wii/title/00010000/private/wii/title/RMCE/data.bin b/Data/User/Wii/title/00010000/private/wii/title/RMCE/data.bin new file mode 100644 index 0000000000..3deaebaf22 Binary files /dev/null and b/Data/User/Wii/title/00010000/private/wii/title/RMCE/data.bin differ diff --git a/Data/User/Wii/title/00010001/4e415a45/data/EEP_NMWE b/Data/User/Wii/title/00010001/4e415a45/data/EEP_NMWE new file mode 100644 index 0000000000..8131fe8bb4 Binary files /dev/null and b/Data/User/Wii/title/00010001/4e415a45/data/EEP_NMWE differ diff --git a/Data/User/Wii/title/00010001/4e415a45/data/banner.bin b/Data/User/Wii/title/00010001/4e415a45/data/banner.bin new file mode 100644 index 0000000000..a2d97ef492 Binary files /dev/null and b/Data/User/Wii/title/00010001/4e415a45/data/banner.bin differ diff --git a/Data/User/Wii/title/00010002/48414341/content/00000016.app b/Data/User/Wii/title/00010002/48414341/content/00000016.app new file mode 100644 index 0000000000..1ba80e1a1a Binary files /dev/null and b/Data/User/Wii/title/00010002/48414341/content/00000016.app differ diff --git a/Data/User/Wii/title/00010002/48414341/content/00000017.app b/Data/User/Wii/title/00010002/48414341/content/00000017.app new file mode 100644 index 0000000000..0c4bc9dd4a Binary files /dev/null and b/Data/User/Wii/title/00010002/48414341/content/00000017.app differ diff --git a/Data/User/Wii/title/00010002/48414341/content/00000018.app b/Data/User/Wii/title/00010002/48414341/content/00000018.app new file mode 100644 index 0000000000..ec48896395 Binary files /dev/null and b/Data/User/Wii/title/00010002/48414341/content/00000018.app differ diff --git a/Data/User/Wii/title/00010002/48414341/content/00000019.app b/Data/User/Wii/title/00010002/48414341/content/00000019.app new file mode 100644 index 0000000000..73ed752876 Binary files /dev/null and b/Data/User/Wii/title/00010002/48414341/content/00000019.app differ diff --git a/Data/User/Wii/title/00010002/48414341/content/title.tmd b/Data/User/Wii/title/00010002/48414341/content/title.tmd new file mode 100644 index 0000000000..97d2eb8591 Binary files /dev/null and b/Data/User/Wii/title/00010002/48414341/content/title.tmd differ diff --git a/Data/User/Wii/title/00010002/48414341/data/NigaoeCh.dat b/Data/User/Wii/title/00010002/48414341/data/NigaoeCh.dat new file mode 100644 index 0000000000..dcbcf2eba2 Binary files /dev/null and b/Data/User/Wii/title/00010002/48414341/data/NigaoeCh.dat differ diff --git a/Data/User/Wii/title/00010004/524d4345/content/title.tmd b/Data/User/Wii/title/00010004/524d4345/content/title.tmd new file mode 100644 index 0000000000..10bcd76edd Binary files /dev/null and b/Data/User/Wii/title/00010004/524d4345/content/title.tmd differ diff --git a/Data/User/Wii/title/00010004/524d4345/data/banner.bin b/Data/User/Wii/title/00010004/524d4345/data/banner.bin new file mode 100644 index 0000000000..8580bc96ff Binary files /dev/null and b/Data/User/Wii/title/00010004/524d4345/data/banner.bin differ diff --git a/Data/User/Wii/title/00010004/524d4345/data/rksys.dat b/Data/User/Wii/title/00010004/524d4345/data/rksys.dat new file mode 100644 index 0000000000..d39d96d4fe Binary files /dev/null and b/Data/User/Wii/title/00010004/524d4345/data/rksys.dat differ diff --git a/Data/User/Wii/title/00010004/524d4345/data/wc24dl.vff b/Data/User/Wii/title/00010004/524d4345/data/wc24dl.vff new file mode 100644 index 0000000000..0360c205b8 Binary files /dev/null and b/Data/User/Wii/title/00010004/524d4345/data/wc24dl.vff differ diff --git a/Data/User/Wii/title/00010004/524d4345/data/wc24scr.vff b/Data/User/Wii/title/00010004/524d4345/data/wc24scr.vff new file mode 100644 index 0000000000..b4d4191d3c Binary files /dev/null and b/Data/User/Wii/title/00010004/524d4345/data/wc24scr.vff differ diff --git a/Data/dolphin-emu.png b/Data/dolphin-emu.png index c9d5b6836a..2ae36a4903 100644 Binary files a/Data/dolphin-emu.png and b/Data/dolphin-emu.png differ diff --git a/Installer/Discord.cpp b/Installer/Discord.cpp new file mode 100644 index 0000000000..e23ac6f53d --- /dev/null +++ b/Installer/Discord.cpp @@ -0,0 +1,38 @@ +#include "Discord.h" + +bool mpn_update_discord() +{ + if (!Memory::IsInitialized()) + return false; + + DiscordRichPresence RichPresence = {}; + + RichPresence.largeImageKey = CurrentState.Image ? CurrentState.Image : "default"; + RichPresence.largeImageText = CurrentState.Title ? CurrentState.Title : "In-Game"; + + if (CurrentState.Scenes != NULL && CurrentState.Scene != NULL) + RichPresence.state = CurrentState.Scene->Name.c_str(); + + if (CurrentState.Addresses != NULL) + { + char Details[128] = ""; + + if (CurrentState.Boards && CurrentState.Board) + { + snprintf(Details, sizeof(Details), "Turn: %d/%d", + mpn_read_value(CurrentState.Addresses->CurrentTurn, 1), + mpn_read_value(CurrentState.Addresses->TotalTurns, 1)); + RichPresence.smallImageKey = CurrentState.Board->Icon.c_str(); + RichPresence.smallImageText = CurrentState.Board->Name.c_str(); + } + else + { + RichPresence.smallImageKey = ""; + RichPresence.smallImageText = ""; + } + RichPresence.details = Details; + } + Discord_UpdatePresence(&RichPresence); + + return true; +} diff --git a/Installer/Dolphin.ico b/Installer/Dolphin.ico index 6b5462a1b2..d82a452109 100644 Binary files a/Installer/Dolphin.ico and b/Installer/Dolphin.ico differ diff --git a/Languages/po/en.po b/Languages/po/en.po index 272a345ab0..ae7c64a67e 100644 --- a/Languages/po/en.po +++ b/Languages/po/en.po @@ -546,8 +546,8 @@ msgstr "" msgid "&Pause" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:299 -msgid "&Play" +#: Source/Core/DolphinQt/MenuBar.cpp:308 +msgid "&Local Play" msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:399 diff --git a/Source/Core/Common/CommonPaths.h b/Source/Core/Common/CommonPaths.h index 047f5dc967..a72dcf19e3 100644 --- a/Source/Core/Common/CommonPaths.h +++ b/Source/Core/Common/CommonPaths.h @@ -99,7 +99,7 @@ #define SHADERCACHE_LEGACY_DIR "ShaderCache" // The theme directory used by default -#define DEFAULT_THEME_DIR "Clean" +#define DEFAULT_THEME_DIR "Mario Party Netplay" // Filenames // Files in the directory returned by GetUserPath(D_CONFIG_IDX) diff --git a/Source/Core/Common/GLideN64.custom.ini b/Source/Core/Common/GLideN64.custom.ini new file mode 100644 index 0000000000..60de1e524b --- /dev/null +++ b/Source/Core/Common/GLideN64.custom.ini @@ -0,0 +1,318 @@ +; Custom game settings +[General] +version=13 + +[TWINE] +Good_Name=007 - The World Is Not Enough (E)(U) +frameBufferEmulation\N64DepthCompare=1 + +[40%20WINKS] +Good_Name=40 Winks (E) (M3) (Prototype) +graphics2D\enableNativeResTexrects=1 + +[BIOFREAKS] +Good_Name=Bio F.R.E.A.K.S. (E)(U) +frameBufferEmulation\copyToRDRAM=1 + +[BioHazard%20II] +frameBufferEmulation\copyFromRDRAM=1 +frameBufferEmulation\copyToRDRAM=0 +frameBufferEmulation\copyDepthToRDRAM=0 + +[52150A67] +Good_Name=Bokujou Monogatari 2 (J) +frameBufferEmulation\N64DepthCompare=1 + +[67000C2B] +Good_Name=Eikou no Saint Andrews (J) +frameBufferEmulation\forceDepthBufferClear=1 + +[CAL%20SPEED] +frameBufferEmulation\bufferSwapMode=1 + +[CASTLEVANIA2] +Good_Name=Castlevania - Legacy Of Darkness (E)(U) +frameBufferEmulation\copyToRDRAM=1 + +[DMPJ] +Good_Name=Mario Artist Paint Studio (J) (64DD) +frameBufferEmulation\copyAuxToRDRAM=1 +frameBufferEmulation\copyFromRDRAM=1 +frameBufferEmulation\nativeResFactor=1 +generalEmulation\rdramImageDitheringMode=0 + +[DMTJ] +Good_Name=Mario Artist Talent Studio (J) (64DD) +frameBufferEmulation\copyAuxToRDRAM=1 + +[DINO%20PLANET] +frameBufferEmulation\copyToRDRAM=1 +frameBufferEmulation\copyAuxToRDRAM=1 + +[DONKEY%20KONG%2064] +Good_Name=Donkey Kong 64 (E)(J)(U) +frameBufferEmulation\copyDepthToRDRAM=1 +frameBufferEmulation\N64DepthCompare=0 + +[DR.MARIO%2064] +Good_Name=Dr. Mario 64 (U) +frameBufferEmulation\fbInfoDisabled=0 +frameBufferEmulation\copyFromRDRAM=1 +frameBufferEmulation\copyToRDRAM=0 + +[EXTREME_G] +Good_Name=Extreme-G (E) +frameBufferEmulation\N64DepthCompare=1 + +[EXTREME-G] +Good_Name=Extreme-G (J) +frameBufferEmulation\N64DepthCompare=1 + +[EXTREMEG] +Good_Name=Extreme-G (U) +frameBufferEmulation\N64DepthCompare=1 + +[EXTREME%20G%202] +Good_Name=Extreme-G XG2 (E) (U) +frameBufferEmulation\N64DepthCompare=1 + +[208E05CD] +Good_Name=Extreme-G XG2 (J) +frameBufferEmulation\N64DepthCompare=1 + +[F1%20POLE%20POSITION%2064] +Good_Name=F-1 Pole Position 64 (E)(U) +frameBufferEmulation\copyToRDRAM=1 + +[FLAPPYBIRD64] +Good_Name=FlappyBird64 +frameBufferEmulation\fbInfoDisabled=0 +frameBufferEmulation\copyFromRDRAM=1 +frameBufferEmulation\copyToRDRAM=0 + +[GOEMON2%20DERODERO] +Good_Name=Ganbare Goemon - Dero Dero Douchuu Obake Tenkomori (J) +graphics2D\enableNativeResTexrects=1 + +[GOEMONS%20GREAT%20ADV] +Good_Name=Goemons Great Adventure (U) +graphics2D\enableNativeResTexrects=1 + +[HARVESTMOON64] +Good_Name=Harvest Moon 64 (U) +frameBufferEmulation\N64DepthCompare=1 + +[5CFA0A2E] +Good_Name=Heiwa Pachinko World 64 (J) +frameBufferEmulation\copyToRDRAM=1 + +[HEXEN] +Good_Name=Hexen (E)(F)(G)(J)(U) +frameBufferEmulation\copyToRDRAM=1 + +[HUMAN%20GRAND%20PRIX] +frameBufferEmulation\copyToRDRAM=1 + +[I%20S%20S%2064] +Good_Name=International Superstar Soccer 64 (E) (U) +frameBufferEmulation\N64DepthCompare=1 + +[JET%20FORCE%20GEMINI] +Good_Name=Jet Force Gemini (E)(U) +frameBufferEmulation\fbInfoDisabled=0 +frameBufferEmulation\copyAuxToRDRAM=1 + +[J%20F%20G%20DISPLAY] +; See Jet Force Gemini for notes +Good_Name=Jet Force Gemini Kiosk Demo (U) +frameBufferEmulation\fbInfoDisabled=0 +frameBufferEmulation\copyAuxToRDRAM=1 + +[J%20WORLD%20SOCCER3] +frameBufferEmulation\N64DepthCompare=1 + +[301E07CC] +Good_Name=Mahjong Master (J) +frameBufferEmulation\N64DepthCompare=1 + +[DMGJ] +Good_Name=Mario Artist Polygon Studio (J) +frameBufferEmulation\copyAuxToRDRAM=1 + +[KEN%20GRIFFEY%20SLUGFEST] +Good_Name=Ken Griffey Jr.'s Slugfest +frameBufferEmulation\fbInfoDisabled=0 + +[KIRBY64] +Good_Name=Kirby 64 - The Crystal Shards (E)(J)(U) +graphics2D\enableNativeResTexrects=1 + +[MARIOGOLF64] +Good_Name=Mario Golf (E)(J)(U) +frameBufferEmulation\copyDepthToRDRAM=0 + +[MARIOKART64] +Good_Name=Mario Kart 64 (E)(J)(U) +graphics2D\enableNativeResTexrects=1 +graphics2D\enableTexCoordBounds=1 + +[MARIO%20STORY] +Good_Name=Mario Story (J) +frameBufferEmulation\copyToRDRAM=1 + +[MEGA%20MAN%2064] +Good_Name=Mega Man 64 (U) +graphics2D\correctTexrectCoords=2 + +[MEGAMAN%2064] +Good_Name=Mega Man 64 (Proto) +graphics2D\correctTexrectCoords=2 + +[MLB%20FEATURING%20K%20G%20JR] +Good_Name=Major League Baseball Featuring Ken Griffey Jr. +frameBufferEmulation\fbInfoDisabled=0 + +[MYSTICAL%20NINJA2%20SG] +Good_Name=Mystical Ninja 2 Starring Goemon (E) +graphics2D\enableNativeResTexrects=1 + +[NASCAR%202000] +Good_Name=NASCAR 2000 (U) +frameBufferEmulation\copyToRDRAM=1 + +[NASCAR%2099] +Good_Name=NASCAR 99 (U) +frameBufferEmulation\copyToRDRAM=1 + +[NUD-DMPJ-JPN_convert] +Good_Name=Mario Paint Studio (cart hack) +frameBufferEmulation\copyFromRDRAM=1 + +[NUD-DMTJ-JPN_convert] +Good_Name=Mario Artist Talent Studio (cart hack) +frameBufferEmulation\copyAuxToRDRAM=1 + +[OGREBATTLE64] +Good_Name=Ogre Battle 64 - Person of Lordly Caliber (U) +graphics2D\enableTexCoordBounds=1 + +[OLYMPIC%20HOCKEY] +frameBufferEmulation\bufferSwapMode=1 + +[PAPER%20MARIO] +Good_Name=Paper Mario (E)(U) +frameBufferEmulation\copyToRDRAM=1 +graphics2D\enableTexCoordBounds=1 + +[PENNY%20RACERS] +Good_Name=Penny Racers (E)(U) +frameBufferEmulation\copyToRDRAM=0 + +[PERFECT%20STRIKER] +Good_Name=Jikkyou J.League Perfect Striker (J) +frameBufferEmulation\N64DepthCompare=1 + +[POKEMON%20SNAP] +Good_Name=Pokemon Snap (U) +generalEmulation\rdramImageDitheringMode=1 +frameBufferEmulation\copyAuxToRDRAM=1 +frameBufferEmulation\copyToRDRAM=1 +frameBufferEmulation\fbInfoDisabled=0 + +[POKEMON%20STADIUM] +Good_Name=Pokemon Stadium (U) +frameBufferEmulation\copyDepthToRDRAM=0 + +[POKEMON%20STADIUM%202] +Good_Name=Pokemon Stadium 2 (E)(F)(G)(I)(J)(S)(U) +frameBufferEmulation\copyToRDRAM=0 +frameBufferEmulation\copyDepthToRDRAM=0 + +[POKEMON%20STADIUM%20G%26S] +Good_Name=Pokemon Stadium Kin Gin (J) +frameBufferEmulation\copyToRDRAM=0 +frameBufferEmulation\copyDepthToRDRAM=0 + +[PUZZLE%20LEAGUE%20N64] +Good_Name=Pokemon Puzzle League (E)(F)(G)(U) +texture\enableHalosRemoval=1 + +[RAT%20ATTACK] +Good_Name=Rat Attack +frameBufferEmulation\fbInfoDisabled=0 + +[RESIDENT%20EVIL%20II] +frameBufferEmulation\copyFromRDRAM=1 +frameBufferEmulation\copyToRDRAM=0 +frameBufferEmulation\copyDepthToRDRAM=0 + +[ROCKMAN%20DASH] +Good_Name=Rockman Dash - Hagane no Boukenshin (J) +graphics2D\correctTexrectCoords=2 + +[RUSH%202] +frameBufferEmulation\bufferSwapMode=1 +graphics2D\correctTexrectCoords=2 + +[SAN%20FRANCISCO%20RUSH] +Good_Name=San Francisco Rush Extreme Racing (U) +frameBufferEmulation\bufferSwapMode=1 +graphics2D\enableNativeResTexrects=2 + +[S.F.RUSH] +Good_Name=San Francisco Rush Extreme Racing (E) +frameBufferEmulation\bufferSwapMode=1 +graphics2D\enableNativeResTexrects=2 + +[S.F.%20RUSH] +Good_Name=San Francisco Rush Extreme Racing (U) +frameBufferEmulation\bufferSwapMode=1 +graphics2D\enableNativeResTexrects=2 + +[SHADOWMAN] +Good_Name=Shadow Man (B)(E)(F)(G)(U) +frameBufferEmulation\copyDepthToRDRAM=0 + +[SPACE%20INVADERS] +Good_Name=Space Invaders (U) +frameBufferEmulation\copyToRDRAM=0 + +[STAR%20TWINS] +; See Jet Force Gemini for notes +Good_Name=Star Twins (J) +frameBufferEmulation\fbInfoDisabled=0 +frameBufferEmulation\copyAuxToRDRAM=1 + +[TEST] +Good_Name=Mario Artist Paint Studio (J) (1999-02-11 Prototype) (64DD) +frameBufferEmulation\copyAuxToRDRAM=1 +frameBufferEmulation\copyFromRDRAM=1 +generalEmulation\rdramImageDitheringMode=0 + +[TETRISPHERE] +Good_Name=Tetrisphere (U) +generalEmulation\correctTexrectCoords=2 + +[TIGGER%27S%20HONEY%20HUNT] +Good_Name=Tiggers Honey Hunt (E)(U) +frameBufferEmulation\N64DepthCompare=1 + +[TONIC%20TROUBLE] +Good_Name=Tonic Trouble (E)(U) +frameBufferEmulation\copyToRDRAM=1 + +[TG%20RALLY%202] +frameBufferEmulation\copyToRDRAM=1 + +[TOP%20GEAR%20RALLY%202] +frameBufferEmulation\copyToRDRAM=1 + +[TUROK_DINOSAUR_HUNTE] +Good_Name=Turok - Dinosaur Hunter (E)(G)(U)(J) +frameBufferEmulation\copyDepthToRDRAM=1 + +[W.G.%203DHOCKEY] +frameBufferEmulation\bufferSwapMode=1 + +[MARIOPARTY3] +frameBufferEmulation\N64DepthCompare=1 \ No newline at end of file diff --git a/Source/Core/Common/Version.cpp b/Source/Core/Common/Version.cpp index 7801aaae30..dea00c04de 100644 --- a/Source/Core/Common/Version.cpp +++ b/Source/Core/Common/Version.cpp @@ -19,16 +19,8 @@ namespace Common const std::string& GetScmRevStr() { - static const std::string scm_rev_str = "Dolphin " -#if !SCM_IS_MASTER - "[" SCM_BRANCH_STR "] " -#endif - -#ifdef __INTEL_COMPILER - BUILD_TYPE_STR SCM_DESC_STR "-ICC"; -#else - BUILD_TYPE_STR SCM_DESC_STR; -#endif + #define MPN_REV_STR "02/27/2022" + static const std::string scm_rev_str = "Dolphin MPN"; return scm_rev_str; } @@ -64,12 +56,13 @@ const std::string& GetScmUpdateTrackStr() const std::string& GetNetplayDolphinVer() { +#define LABEL "MPN" #ifdef _WIN32 - static const std::string netplay_dolphin_ver = SCM_DESC_STR " Win"; + static const std::string netplay_dolphin_ver = LABEL " Win"; #elif __APPLE__ - static const std::string netplay_dolphin_ver = SCM_DESC_STR " Mac"; + static const std::string netplay_dolphin_ver = LABEL " Mac"; #else - static const std::string netplay_dolphin_ver = SCM_DESC_STR " Lin"; + static const std::string netplay_dolphin_ver = LABEL " Lin"; #endif return netplay_dolphin_ver; } diff --git a/Source/Core/Common/make_scmrev.h.js b/Source/Core/Common/make_scmrev.h.js index 8599b7f45c..7820b0cd90 100644 --- a/Source/Core/Common/make_scmrev.h.js +++ b/Source/Core/Common/make_scmrev.h.js @@ -79,7 +79,7 @@ var branch = GetFirstStdOutLine(gitexe + cmd_branch); var isStable = +("master" == branch || "stable" == branch); // Get environment information. -var distributor = wshShell.ExpandEnvironmentStrings("%DOLPHIN_DISTRIBUTOR%"); +var distributor = "Mario Party Netplay"; if (distributor == "%DOLPHIN_DISTRIBUTOR%") distributor = "None"; var default_update_track = wshShell.ExpandEnvironmentStrings("%DOLPHIN_DEFAULT_UPDATE_TRACK%"); if (default_update_track == "%DOLPHIN_DEFAULT_UPDATE_TRACK%") default_update_track = ""; diff --git a/Source/Core/Core/CMakeLists.txt b/Source/Core/Core/CMakeLists.txt index 682c686c7d..6a0e52d686 100644 --- a/Source/Core/Core/CMakeLists.txt +++ b/Source/Core/Core/CMakeLists.txt @@ -429,6 +429,10 @@ add_library(core IOS/WFS/WFSSRV.h LibusbUtils.cpp LibusbUtils.h + MarioPartyNetplay/Discord.cpp + MarioPartyNetplay/Discord.h + MarioPartyNetplay/Gamestate.cpp + MarioPartyNetplay/Gamestate.h MemTools.cpp MemTools.h Movie.cpp diff --git a/Source/Core/Core/Config/GraphicsSettings.cpp b/Source/Core/Core/Config/GraphicsSettings.cpp index 9a9bf41485..148bd78593 100644 --- a/Source/Core/Core/Config/GraphicsSettings.cpp +++ b/Source/Core/Core/Config/GraphicsSettings.cpp @@ -44,7 +44,7 @@ const Info GFX_OVERLAY_SCISSOR_STATS{{System::GFX, "Settings", "OverlaySci const Info GFX_DUMP_TEXTURES{{System::GFX, "Settings", "DumpTextures"}, false}; const Info GFX_DUMP_MIP_TEXTURES{{System::GFX, "Settings", "DumpMipTextures"}, true}; const Info GFX_DUMP_BASE_TEXTURES{{System::GFX, "Settings", "DumpBaseTextures"}, true}; -const Info GFX_HIRES_TEXTURES{{System::GFX, "Settings", "HiresTextures"}, false}; +const Info GFX_HIRES_TEXTURES{{System::GFX, "Settings", "HiresTextures"}, true}; const Info GFX_CACHE_HIRES_TEXTURES{{System::GFX, "Settings", "CacheHiresTextures"}, false}; const Info GFX_DUMP_EFB_TARGET{{System::GFX, "Settings", "DumpEFBTarget"}, false}; const Info GFX_DUMP_XFB_TARGET{{System::GFX, "Settings", "DumpXFBTarget"}, false}; diff --git a/Source/Core/Core/Config/MainSettings.cpp b/Source/Core/Core/Config/MainSettings.cpp index 1a7c523d6e..f05ec92c39 100644 --- a/Source/Core/Core/Config/MainSettings.cpp +++ b/Source/Core/Core/Config/MainSettings.cpp @@ -44,7 +44,7 @@ const Info MAIN_TIMING_VARIANCE{{System::Main, "Core", "TimingVariance"}, 4 const Info MAIN_CPU_THREAD{{System::Main, "Core", "CPUThread"}, true}; const Info MAIN_SYNC_ON_SKIP_IDLE{{System::Main, "Core", "SyncOnSkipIdle"}, true}; const Info MAIN_DEFAULT_ISO{{System::Main, "Core", "DefaultISO"}, ""}; -const Info MAIN_ENABLE_CHEATS{{System::Main, "Core", "EnableCheats"}, false}; +const Info MAIN_ENABLE_CHEATS{{System::Main, "Core", "EnableCheats"}, true}; const Info MAIN_GC_LANGUAGE{{System::Main, "Core", "SelectedLanguage"}, 0}; const Info MAIN_OVERRIDE_REGION_SETTINGS{{System::Main, "Core", "OverrideRegionSettings"}, false}; diff --git a/Source/Core/Core/Config/NetplaySettings.cpp b/Source/Core/Core/Config/NetplaySettings.cpp index d0dab392bd..41542f9c66 100644 --- a/Source/Core/Core/Config/NetplaySettings.cpp +++ b/Source/Core/Core/Config/NetplaySettings.cpp @@ -21,7 +21,7 @@ const Info NETPLAY_TRAVERSAL_CHOICE{{System::Main, "NetPlay", "Trav const Info NETPLAY_INDEX_URL{{System::Main, "NetPlay", "IndexServer"}, "https://lobby.dolphin-emu.org"}; -const Info NETPLAY_USE_INDEX{{System::Main, "NetPlay", "UseIndex"}, false}; +const Info NETPLAY_USE_INDEX{{System::Main, "NetPlay", "UseIndex"}, true}; const Info NETPLAY_INDEX_NAME{{System::Main, "NetPlay", "IndexName"}, ""}; const Info NETPLAY_INDEX_REGION{{System::Main, "NetPlay", "IndexRegion"}, ""}; const Info NETPLAY_INDEX_PASSWORD{{System::Main, "NetPlay", "IndexPassword"}, ""}; @@ -33,7 +33,7 @@ const Info NETPLAY_ADDRESS{{System::Main, "NetPlay", "Address"}, "1 const Info NETPLAY_CONNECT_PORT{{System::Main, "NetPlay", "ConnectPort"}, DEFAULT_LISTEN_PORT}; const Info NETPLAY_LISTEN_PORT{{System::Main, "NetPlay", "ListenPort"}, DEFAULT_LISTEN_PORT}; -const Info NETPLAY_NICKNAME{{System::Main, "NetPlay", "Nickname"}, "Player"}; +const Info NETPLAY_NICKNAME{{System::Main, "NetPlay", "Nickname"}, "MPN Player"}; const Info NETPLAY_USE_UPNP{{System::Main, "NetPlay", "UseUPNP"}, false}; const Info NETPLAY_ENABLE_QOS{{System::Main, "NetPlay", "EnableQoS"}, true}; @@ -48,6 +48,7 @@ const Info NETPLAY_CLIENT_BUFFER_SIZE{{System::Main, "NetPlay", "BufferSize const Info NETPLAY_SAVEDATA_LOAD{{System::Main, "NetPlay", "SyncSaves"}, true}; const Info NETPLAY_SAVEDATA_WRITE{{System::Main, "NetPlay", "WriteSaveData"}, true}; const Info NETPLAY_SAVEDATA_SYNC_ALL_WII{{System::Main, "NetPlay", "SyncAllWiiSaves"}, false}; + const Info NETPLAY_SYNC_CODES{{System::Main, "NetPlay", "SyncCodes"}, true}; const Info NETPLAY_RECORD_INPUTS{{System::Main, "NetPlay", "RecordInputs"}, false}; const Info NETPLAY_STRICT_SETTINGS_SYNC{{System::Main, "NetPlay", "StrictSettingsSync"}, diff --git a/Source/Core/Core/MarioPartyNetplay/8Player.h b/Source/Core/Core/MarioPartyNetplay/8Player.h new file mode 100644 index 0000000000..7ec11032a1 --- /dev/null +++ b/Source/Core/Core/MarioPartyNetplay/8Player.h @@ -0,0 +1,28 @@ +#ifndef MPN_8PLAYER_H +#define MPN_8PLAYER_H + +#include +#include "InputCommon/GCPadStatus.h" + +#define MPN_TEAM_ACTIVE (1 << 0) +#define MPN_TEAM_L_READY (1 << 1) +#define MPN_TEAM_R_READY (1 << 2) + +typedef struct mpn_team_t +{ + uint8_t Flags; + GCPadStatus LeftPad; + GCPadStatus RightPad; +} mpn_team_t; + +bool mpn_8p_active (); +GCPadStatus mpn_8p_combined_input (uint8_t Port); +void mpn_8p_free (); +void mpn_8p_init (); +bool mpn_8p_port_ready (uint8_t Port); +void mpn_8p_push_back_input (GCPadStatus* Pad, uint8_t Port); +void mpn_8p_set_port_active (uint8_t Port, bool Active); + +extern mpn_team_t* Teams; + +#endif diff --git a/Source/Core/Core/MarioPartyNetplay/Discord.cpp b/Source/Core/Core/MarioPartyNetplay/Discord.cpp new file mode 100644 index 0000000000..e759136006 --- /dev/null +++ b/Source/Core/Core/MarioPartyNetplay/Discord.cpp @@ -0,0 +1,44 @@ +#include "Discord.h" +#include "UICommon/DiscordPresence.h" +#include "Core/Config/NetplaySettings.h" + +bool mpn_update_discord() +{ + if (!Memory::IsInitialized()) + return false; + + DiscordRichPresence RichPresence = {}; + + RichPresence.largeImageKey = CurrentState.Image ? CurrentState.Image : "default"; + RichPresence.largeImageText = CurrentState.Title ? CurrentState.Title : "In-Game"; + + if (CurrentState.Scenes != NULL && CurrentState.Scene != NULL) + RichPresence.state = CurrentState.Scene->Name.c_str(); + + if (CurrentState.Addresses != NULL) + { + char Details[128] = ""; + + if (CurrentState.Boards && CurrentState.Board) + { + snprintf(Details, sizeof(Details), "Players: 1/4 Turn: %d/%d", + mpn_read_value(CurrentState.Addresses->CurrentTurn, 1), + mpn_read_value(CurrentState.Addresses->TotalTurns, 1)); + + RichPresence.smallImageKey = CurrentState.Board->Icon.c_str(); + RichPresence.smallImageText = CurrentState.Board->Name.c_str(); + } + else + { + snprintf(Details, sizeof(Details), "Players: 1/4"); + RichPresence.smallImageKey = ""; + RichPresence.smallImageText = ""; + } + RichPresence.details = Details; + } + + RichPresence.startTimestamp = std::time(nullptr); + Discord_UpdatePresence(&RichPresence); + + return true; +} diff --git a/Source/Core/Core/MarioPartyNetplay/Discord.h b/Source/Core/Core/MarioPartyNetplay/Discord.h new file mode 100644 index 0000000000..af73b0bcca --- /dev/null +++ b/Source/Core/Core/MarioPartyNetplay/Discord.h @@ -0,0 +1,4 @@ +#include +#include "Gamestate.h" + +bool mpn_update_discord(); diff --git a/Source/Core/Core/MarioPartyNetplay/Gamestate.cpp b/Source/Core/Core/MarioPartyNetplay/Gamestate.cpp new file mode 100644 index 0000000000..5d279e1fef --- /dev/null +++ b/Source/Core/Core/MarioPartyNetplay/Gamestate.cpp @@ -0,0 +1,194 @@ +#include "Gamestate.h" + +mpn_state_t CurrentState; + +bool mpn_init_state() +{ + if (!Memory::IsInitialized()) + return false; + + switch (mpn_read_value(0x00000000, 4)) + { + case MPN_GAMEID_MP4: + CurrentState.Addresses = &MP4_ADDRESSES; + CurrentState.Boards = MP4_BOARDS; + CurrentState.Image = "box-mp4"; + CurrentState.IsMarioParty = true; + CurrentState.Scenes = MP4_GAMESTATES; + CurrentState.Title = "Mario Party 4"; + break; + case MPN_GAMEID_MP5: + CurrentState.Addresses = &MP5_ADDRESSES; + CurrentState.Boards = MP5_BOARDS; + CurrentState.Image = "box-mp5"; + CurrentState.IsMarioParty = true; + CurrentState.Scenes = MP5_GAMESTATES; + CurrentState.Title = "Mario Party 5"; + break; + case MPN_GAMEID_MP6: + CurrentState.Addresses = &MP6_ADDRESSES; + CurrentState.Boards = MP6_BOARDS; + CurrentState.Image = "box-mp6"; + CurrentState.IsMarioParty = true; + CurrentState.Scenes = MP6_GAMESTATES; + CurrentState.Title = "Mario Party 6"; + break; + case MPN_GAMEID_MP7: + CurrentState.Addresses = &MP7_ADDRESSES; + CurrentState.Boards = MP7_BOARDS; + CurrentState.Image = "box-mp7"; + CurrentState.IsMarioParty = true; + CurrentState.Scenes = MP7_GAMESTATES; + CurrentState.Title = "Mario Party 7"; + break; + case MPN_GAMEID_MP8: + CurrentState.Addresses = &MP8_ADDRESSES; + CurrentState.Boards = NULL; + CurrentState.Image = "box-mp8"; + CurrentState.IsMarioParty = true; + CurrentState.Scenes = MP8_GAMESTATES; + CurrentState.Title = "Mario Party 8"; + break; + case MPN_GAMEID_MP9: /* TODO */ + default: + CurrentState.Addresses = NULL; + CurrentState.Boards = NULL; + CurrentState.Image = "box-mp9"; + CurrentState.IsMarioParty = false; + CurrentState.Scenes = NULL; + } + + return CurrentState.Scenes != NULL; +} + +bool mpn_update_board() +{ + uint8_t i; + + if (CurrentState.Boards == NULL) + CurrentState.Board = NULL; + else if (CurrentState.CurrentSceneId != CurrentState.PreviousSceneId) + { + for (i = 0;; i++) + { + /* Unknown scene ID */ + if (CurrentState.Boards[i].SceneId == NONE) + break; + if (CurrentState.Boards[i].SceneId == CurrentState.CurrentSceneId) + { + CurrentState.Board = &CurrentState.Boards[i]; + return true; + } + } + } + + return false; +} + +uint8_t mpn_get_needs(uint16_t StateId, bool IsSceneId) +{ + uint16_t i; + + if (CurrentState.Scenes == NULL) + return MPN_NEEDS_NOTHING; + else if (CurrentState.CurrentSceneId != CurrentState.PreviousSceneId) + { + for (i = 0;; i++) + { + /* Unknown scene ID */ + if (CurrentState.Scenes[i].SceneId == NONE) + return MPN_NEEDS_NOTHING; + + /* Scene ID found in array */ + if ((IsSceneId && StateId == CurrentState.Scenes[i].SceneId) || + (StateId == CurrentState.Scenes[i].MiniGameId)) + return CurrentState.Scenes[i].Needs; + } + } + + return MPN_NEEDS_NOTHING; +} + +void mpn_push_osd_message(const std::string& Message) +{ +#ifdef MPN_USE_OSD + OSD::AddMessage(Message, OSD::Duration::SHORT, MPN_OSD_COLOR); +#endif +} + +bool mpn_update_state() +{ + if (CurrentState.Scenes == NULL && !mpn_init_state()) + return false; + if (!Memory::IsInitialized()) + return false; + + CurrentState.PreviousSceneId = CurrentState.CurrentSceneId; + CurrentState.CurrentSceneId = mpn_read_value(CurrentState.Addresses->SceneIdAddress, 2); + + for (uint16_t i = 0;; i++) + { + if (CurrentState.Scenes[i].SceneId == NONE) + break; + if (CurrentState.CurrentSceneId == CurrentState.Scenes[i].SceneId) + { + CurrentState.Scene = &CurrentState.Scenes[i]; + return true; + } + } + + return false; +} + +#define OSD_PUSH(a) mpn_push_osd_message("Adjusting #a for " + CurrentState.Scene->Name); +void mpn_per_frame() +{ + uint8_t Needs = 0; + + if (!mpn_update_state() || CurrentState.PreviousSceneId == CurrentState.CurrentSceneId) + return; + + mpn_update_board(); + mpn_update_discord(); + + Needs = mpn_get_needs(mpn_read_value(CurrentState.Addresses->SceneIdAddress, 2), true); + + if (Needs != MPN_NEEDS_NOTHING) + { + if (Needs & MPN_NEEDS_SAFE_TEX_CACHE) + { + OSD_PUSH(GFX_SAFE_TEXTURE_CACHE_COLOR_SAMPLES) + Config::SetCurrent(Config::GFX_SAFE_TEXTURE_CACHE_COLOR_SAMPLES, 0); + } + else + Config::SetCurrent(Config::GFX_SAFE_TEXTURE_CACHE_COLOR_SAMPLES, 128); + + if (Needs & MPN_NEEDS_NATIVE_RES) + { + OSD_PUSH(GFX_EFB_SCALE) + Config::SetCurrent(Config::GFX_EFB_SCALE, 1); + } + else + Config::SetCurrent(Config::GFX_EFB_SCALE, Config::GetBase(Config::GFX_EFB_SCALE)); + + if (Needs & MPN_NEEDS_EFB_TO_TEXTURE) + { + OSD_PUSH(GFX_HACK_SKIP_EFB_COPY_TO_RAM) + Config::SetCurrent(Config::GFX_HACK_SKIP_EFB_COPY_TO_RAM, false); + } + else + Config::SetCurrent(Config::GFX_HACK_SKIP_EFB_COPY_TO_RAM, true); + + UpdateActiveConfig(); + } +} + +uint32_t mpn_read_value(uint32_t Address, uint8_t Size) +{ + uint32_t Value = 0; + + for (int8_t i = 0; i < Size; i++) + Value += Memory::m_pRAM[Address + i] * pow(256, Size - i - 1); + + return Value; +} diff --git a/Source/Core/Core/MarioPartyNetplay/Gamestate.h b/Source/Core/Core/MarioPartyNetplay/Gamestate.h new file mode 100644 index 0000000000..7eac9447e7 --- /dev/null +++ b/Source/Core/Core/MarioPartyNetplay/Gamestate.h @@ -0,0 +1,684 @@ +#ifndef MPN_GAMESTATE_H +#define MPN_GAMESTATE_H + +#include +#include +#include "Core/Config/GraphicsSettings.h" +#include "Core/Core.h" +#include "Core/HW/CPU.h" +#include "Core/HW/Memmap.h" +#include "Core/HW/Wiimote.h" +#include "Core/HW/WiimoteEmu/WiimoteEmu.h" +#include "InputCommon/ControllerEmu/ControlGroup/ControlGroup.h" +#include "InputCommon/InputConfig.h" +#include "VideoCommon/VideoConfig.h" + +#define MPN_GAMEID_MP4 0x474D5045 +#define MPN_GAMEID_MP5 0x47503545 +#define MPN_GAMEID_MP6 0x47503645 +#define MPN_GAMEID_MP7 0x47503745 +#define MPN_GAMEID_MP8 0x524D3845 +#define MPN_GAMEID_MP9 0x53535145 + +#define MPN_NEEDS_SAFE_TEX_CACHE (1 << 0) +#define MPN_NEEDS_NATIVE_RES (1 << 1) +#define MPN_NEEDS_EFB_TO_TEXTURE (1 << 2) +#define MPN_NEEDS_SIDEWAYS_WIIMOTE (1 << 3) +#define MPN_NEEDS_NOTHING 0xFF +#define NONE -1 + +#undef MPN_USE_LEADERBOARDS +#define MPN_USE_OSD + +#include "Discord.h" + +#ifdef MPN_USE_LEADERBOARDS +#include "Core/MarioPartyNetplay/Leaderboards.h" +#endif + +#ifdef MPN_USE_OSD +#include "VideoCommon/OnScreenDisplay.h" +#define MPN_OSD_COLOR 0xFF4A4A94 +#endif + +typedef struct mpn_scene_t +{ + int16_t MiniGameId; + int16_t SceneId; + std::string Name; + uint8_t Needs; +} mpn_scene_t; + +typedef struct mpn_addresses_t +{ + /* + uint32_t BlueSpaces; + uint32_t RedSpaces; + uint32_t HappeningSpaces; + uint32_t ChanceSpaces; + uint32_t BowserSpaces; + uint32_t BattleSpaces; + uint32_t ItemSpaces; + uint32_t SpringSpaces; + */ + uint32_t CurrentTurn; + uint32_t TotalTurns; + uint32_t MinigameIdAddress; + uint32_t SceneIdAddress; +} mpn_addresses_t; + +typedef struct mpn_player_t +{ + uint8_t BlueSpaces; + uint16_t Coins; + uint16_t CoinStar; + uint16_t GameStar; + uint8_t Stars; +} mpn_player_t; + +typedef struct mpn_board_t +{ + int8_t BoardId; + int16_t SceneId; + std::string Name; + std::string Icon; +} mpn_board_t; + +typedef struct mpn_state_t +{ + bool IsMarioParty; + + int16_t CurrentSceneId; + int16_t PreviousSceneId; + + const char* Title; + const char* Image; + + const mpn_addresses_t* Addresses; + const mpn_board_t* Board; + const mpn_board_t* Boards; + const mpn_scene_t* Scene; + const mpn_scene_t* Scenes; +} mpn_state_t; + +extern mpn_state_t CurrentState; + +/* Function prototypes */ +uint8_t mpn_get_needs(uint16_t StateId, bool IsSceneId = false); +void mpn_per_frame(); +uint32_t mpn_read_value(uint32_t Address, uint8_t Size); +bool mpn_update_state(); + +/* ============================================================================ + Mario Party 4 metadata +============================================================================ */ +const mpn_addresses_t MP4_ADDRESSES = {0x0018FCFC, 0x0018FCFD, 0x0018FD2C, 0x001D3CE2}; + +const mpn_board_t MP4_BOARDS[] = {{1, 0x59, {"Toad's Midway Madness"}, {"mp4-toad"}}, + {2, 0x5A, {"Goomba's Greedy Gala"}, {"mp4-goomba"}}, + {3, 0x5B, {"Shy Guy's Jungle Jam"}, {"mp4-shyguy"}}, + {4, 0x5C, {"Boo's Haunted Bash"}, {"mp4-boo"}}, + {5, 0x5D, {"Koopa's Seaside Soiree"}, {"mp4-koopa"}}, + {6, 0x5E, {"Bowser's Gnarly Party"}, {"mp4-bowser"}}, + {7, 0x60, {"Mega Board Mayhem"}, {"mp4-mega"}}, + {8, 0x61, {"Mini Board Mad-Dash"}, {"mp4-mini"}}, + + {NONE, NONE, {""}, ""}}; + +const mpn_scene_t MP4_GAMESTATES[] = {{NONE, 0x01, {"Title Screen"}, 0}, + {0x00, 0x09, {"Manta Rings"}, 0}, + {0x01, 0x0A, {"Slime Time"}, 0}, + {0x02, 0x0B, {"Booksquirm"}, 0}, + {0x03, 0x0C, {"Trace Race"}, MPN_NEEDS_SAFE_TEX_CACHE}, + {0x04, 0x0D, {"Mario Medley"}, 0}, + {0x05, 0x0E, {"Avalanche!"}, 0}, + {0x06, 0x0F, {"Domination"}, 0}, + {0x07, 0x10, {"Paratrooper Plunge"}, 0}, + {0x08, 0x11, {"Toad's Quick Draw"}, 0}, + {0x09, 0x12, {"Three Throw"}, 0}, + {0x0A, 0x13, {"Photo Finish"}, 0}, + {0x0B, 0x14, {"Mr. Blizzard's Brigade"}, 0}, + {0x0C, 0x15, {"Bob-omb Breakers"}, 0}, + {0x0D, 0x16, {"Long Claw of the Law"}, 0}, + {0x0E, 0x17, {"Stamp Out!"}, 0}, + {0x0F, 0x18, {"Candlelight Fright"}, 0}, + {0x10, 0x19, {"Makin' Waves"}, 0}, + {0x11, 0x1A, {"Hide and Go BOOM!"}, 0}, + {0x12, 0x1B, {"Tree Stomp"}, 0}, + {0x13, 0x1C, {"Fish n' Drips"}, 0}, + {0x14, 0x1D, {"Hop or Pop"}, 0}, + {0x15, 0x1E, {"Money Belts"}, 0}, + {0x16, 0x1F, {"GOOOOOOOAL!!"}, 0}, + {0x17, 0x20, {"Blame it on the Crane"}, 0}, + {0x18, 0x21, {"The Great Deflate"}, 0}, + {0x19, 0x22, {"Revers-a-Bomb"}, 0}, + {0x1A, 0x23, {"Right Oar Left?"}, 0}, + {0x1B, 0x24, {"Cliffhangers"}, 0}, + {0x1C, 0x25, {"Team Treasure Trek"}, 0}, + {0x1D, 0x26, {"Pair-a-sailing"}, 0}, + {0x1E, 0x27, {"Order Up"}, 0}, + {0x1F, 0x28, {"Dungeon Duos"}, 0}, + {0x20, 0x29, {"Beach Volley Folley"}, 0}, + {0x21, 0x2A, {"Cheep Cheep Sweep"}, 0}, + {0x22, 0x2B, {"Darts of Doom"}, 0}, + {0x23, 0x2C, {"Fruits of Doom"}, 0}, + {0x24, 0x2D, {"Balloon of Doom"}, 0}, + {0x25, 0x2E, {"Chain Chomp Fever"}, 0}, + {0x26, 0x2F, {"Paths of Peril"}, MPN_NEEDS_EFB_TO_TEXTURE}, + {0x27, 0x30, {"Bowser's Bigger Blast"}, 0}, + {0x28, 0x31, {"Butterfly Blitz"}, 0}, + {0x29, 0x32, {"Barrel Baron"}, 0}, + {0x2A, 0x33, {"Mario Speedwagons"}, 0}, + /* 2B? */ + {0x2C, 0x35, {"Bowser Bop"}, 0}, + {0x2D, 0x36, {"Mystic Match 'Em"}, 0}, + {0x2E, 0x37, {"Archaeologuess"}, 0}, + {0x2F, 0x38, {"Goomba's Chip Flip"}, 0}, + {0x30, 0x39, {"Kareening Koopas"}, 0}, + {0x31, 0x3A, {"The Final Battle!"}, 0}, + {NONE, 0x3B, {"Jigsaw Jitters"}, 0}, + {NONE, 0x3C, {"Challenge Booksquirm"}, 0}, + {NONE, 0x3D, {"Rumble Fishing"}, 0}, + {NONE, 0x3E, {"Take a Breather"}, 0}, + {NONE, 0x3F, {"Bowser Wrestling"}, 0}, + {NONE, 0x41, {"Mushroom Medic"}, 0}, + {NONE, 0x42, {"Doors of Doom"}, 0}, + {NONE, 0x43, {"Bob-omb X-ing"}, 0}, + {NONE, 0x44, {"Goomba Stomp"}, 0}, + {NONE, 0x45, {"Panel Panic"}, 0}, + {NONE, 0x46, {"Party Mode Menu"}, 0}, + {NONE, 0x48, {"Mini-Game Mode Menu"}, 0}, + {NONE, 0x4A, {"Main Menu"}, 0}, + {NONE, 0x4B, {"Extra Room"}, 0}, + {NONE, 0x52, {"Option Room"}, 0}, + {NONE, 0x53, {"Present Room"}, 0}, + {NONE, 0x59, {"Toad's Midway Madness"}, 0}, + {NONE, 0x5A, {"Goomba's Greedy Gala"}, 0}, + {NONE, 0x5B, {"Shy Guy's Jungle Jam"}, 0}, + {NONE, 0x5C, {"Boo's Haunted Bash"}, 0}, + {NONE, 0x5D, {"Koopa's Seaside Soiree"}, 0}, + {NONE, 0x5E, {"Bowser's Gnarly Party"}, 0}, + {NONE, 0x5F, {"Board Map Rules"}, 0}, + {NONE, 0x60, {"Mega Board Mayhem"}, 0}, + {NONE, 0x61, {"Mini Board Mad-Dash"}, 0}, + {NONE, 0x62, {"Beach Volley Folley Menu"}, 0}, + + {NONE, NONE, {""}}}; + +/* ============================================================================ + Mario Party 5 metadata +============================================================================ */ + +const mpn_addresses_t MP5_ADDRESSES = { + 0x0022A494, // Current Turns + 0x0022A495, // Total Turns + 0x0022A4C4, // Mini ID + 0x00288862 // Scene ID +}; + +const mpn_board_t MP5_BOARDS[] = {{1, 0x76, {"Toy Dream"}, {"mp5-toy"}}, + {2, 0x78, {"Rainbow Dream"}, {"mp5-rainbow"}}, + {3, 0x7A, {"Pirate Dream"}, {"mp5-pirate"}}, + {4, 0x7C, {"Undersea Dream"}, {"mp5-undersea"}}, + {5, 0x7E, {"Future Dream"}, {"mp5-future"}}, + {6, 0x80, {"Sweet Dream"}, {"mp5-sweet"}}, + {7, 0x82, {"Bowser Nightmare"}, {"mp5-bowser"}}, + + + {NONE, NONE, {""}, ""}}; + +const mpn_scene_t MP5_GAMESTATES[] = {{NONE, 0x01, {"Title Screen"}, 0}, + {NONE, 0x02, {"Card Party"}, 0}, + {NONE, 0x06, {"Save-File Screen"}, 0}, + //{NONE, 0x07, {"Mini-game Explanation"}, 0}, + {0x4D, 0x0B, {"Beach Volleyball"}, 0}, + {0x00, 0x0F, {"Coney Island"}, 0}, + {0x01, 0x10, {"Ground Pound Down"}, 0}, + {0x02, 0x11, {"Chimp Chase"}, 0}, + {0x03, 0x12, {"Chomp Romp"}, 0}, + {0x04, 0x13, {"Pushy Penguins"}, MPN_NEEDS_EFB_TO_TEXTURE}, + {0x05, 0x14, {"Leaf Leap"}, 0}, + {0x06, 0x15, {"Night Light Fright"}, 0}, + {0x07, 0x16, {"Pop-Star Piranhas"}, 0}, + {0x08, 0x17, {"Mazed & Confused"}, 0}, + {0x09, 0x18, {"Dinger Derby"}, 0}, + {0x0A, 0x19, {"Hydrostars"}, 0}, + {0x0B, 0x1A, {"Later Skater"}, 0}, + {0x0C, 0x1B, {"Will Flower"}, 0}, + {0x0D, 0x1C, {"Triple Jump"}, 0}, + {0x0E, 0x1D, {"Hotel Goomba"}, 0}, + {0x0F, 0x1E, {"Coin Cache"}, 0}, + {0x10, 0x1F, {"Flatiator"}, 0}, + {0x11, 0x20, {"Squared Away"}, 0}, + {0x12, 0x21, {"Mario Mechs"}, 0}, + {0x13, 0x22, {"Revolving Fire"}, 0}, + {0x14, 0x23, {"Clock Stoppers"}, 0}, + {0x15, 0x24, {"Heat Stroke"}, 0}, + {0x16, 0x25, {"Beam Team"}, 0}, + {0x17, 0x26, {"Vicious Vending"}, 0}, + {0x18, 0x27, {"Big Top Drop"}, 0}, + {0x19, 0x28, {"Defuse or Lose"}, 0}, + {0x1A, 0x29, {"ID UFO"}, 0}, + {0x1B, 0x2A, {"Mario Can-Can"}, 0}, + {0x1C, 0x2B, {"Handy Hoppers"}, 0}, + {0x1D, 0x2C, {"Berry Basket"}, 0}, + {0x1E, 0x2D, {"Bus Buffer"}, 0}, + {0x1F, 0x2E, {"Rumble Ready"}, 0}, + {0x20, 0x2F, {"Submarathon"}, 0}, + {0x21, 0x30, {"Manic Mallets"}, 0}, + {0x22, 0x31, {"Astro-Logical"}, 0}, + {0x23, 0x32, {"Bill Blasters"}, 0}, + {0x24, 0x33, {"Tug-o-Dorrie"}, 0}, + {0x25, 0x34, {"Twist 'n' Out"}, 0}, + {0x26, 0x35, {"Lucky Lineup"}, 0}, + {0x27, 0x36, {"Random Ride"}, 0}, + {0x28, 0x37, {"Shock Absorbers"}, 0}, + {0x29, 0x38, {"Countdown Pound"}, 0}, + {0x2A, 0x39, {"Whomp Maze"}, 0}, + {0x2B, 0x3A, {"Shy Guy Showdown"}, 0}, + {0x2C, 0x3B, {"Button Mashers"}, 0}, + {0x2D, 0x3C, {"Get a Rope"}, 0}, + {0x2E, 0x3D, {"Pump 'n' Jump"}, 0}, + {0x2F, 0x3E, {"Head Waiter"}, 0}, + {0x30, 0x3F, {"Blown Away"}, 0}, + {0x31, 0x40, {"Merry Poppings"}, 0}, + {0x32, 0x41, {"Pound Peril"}, 0}, + {0x33, 0x42, {"Piece Out"}, 0}, + {0x34, 0x43, {"Bound of Music"}, 0}, + {0x35, 0x44, {"Wind Wavers"}, 0}, + {0x36, 0x45, {"Sky Survivor"}, 0}, + {0x3A, 0x46, {"Rain of Fire"}, 0}, + {0x3B, 0x47, {"Cage-in Cookin'"}, 0}, + {0x3C, 0x48, {"Scaldin' Cauldron"}, 0}, + {0x3D, 0x49, {"Frightmare"}, 0}, + {0x3E, 0x4A, {"Flower Shower"}, 0}, + {0x3F, 0x4B, {"Dodge Bomb"}, 0}, + {0x40, 0x4C, {"Fish Upon a Star"}, 0}, + {0x41, 0x4D, {"Rumble Fumble"}, 0}, + {0x42, 0x4E, {"Quilt for Speed"}, 0}, + {0x43, 0x4F, {"Tube It or Lose It"}, 0}, + {0x44, 0x50, {"Mathletes"}, 0}, + {0x45, 0x51, {"Fight Cards"}, 0}, + {0x46, 0x52, {"Banana Punch"}, 0}, + {0x47, 0x53, {"Da Vine Climb"}, 0}, + {0x48, 0x54, {"Mass A-peel"}, 0}, + {0x49, 0x55, {"Panic Pinball"}, 0}, + {0x4A, 0x56, {"Banking Coins"}, 0}, + {0x4B, 0x57, {"Frozen Frenzy"}, 0}, + {0x4C, 0x58, {"Curvy Curbs"}, 0}, + {0x4E, 0x59, {"Fish Sticks"}, 0}, + {0x4F, 0x5A, {"Ice Hockey"}, 0}, + {NONE, 0x5C, {"Card Party Menu"}, 0}, + {NONE, 0x5E, {"Bonus Mode Menu"}, 0}, + {NONE, 0x60, {"Party Mode Menu"}, 0}, + {NONE, 0x61, {"Main Menu"}, 0}, + {NONE, 0x62, {"Party Mode Menu"}, 0}, + {NONE, 0x64, {"Free Play"}, 0}, + {NONE, 0x6F, {"Super Duel Mode Menu"}, 0}, + {NONE, 0x76, {"Toy Dream"}, 0}, + {NONE, 0x78, {"Rainbow Dream"}, 0}, + {NONE, 0x7A, {"Pirate Dream"}, 0}, + {NONE, 0x7C, {"Undersea Dream"}, 0}, + {NONE, 0x7E, {"Future Dream"}, 0}, + {NONE, 0x80, {"Sweet Dream"}, 0}, + {NONE, 0x82, {"Bowser Nightmare"}, 0}, + + {NONE, NONE, {""}}}; + +/* ============================================================================ + Mario Party 6 metadata +============================================================================ */ + +const mpn_addresses_t MP6_ADDRESSES = { + 0x00265B74, // Current Turns + 0x00265B75, // Total Turns + 0x00265BA8, // Mini ID + 0x002C0256 // Scene ID +}; + +const mpn_board_t MP6_BOARDS[] = {{1, 0x7B, {"Towering Treetop"}, {"mp6-treetop"}}, + {2, 0x7C, {"E. Gadd's Garage"}, {"mp6-garage"}}, + {3, 0x7D, {"Faire Square"}, {"mp6-square"}}, + {4, 0x7E, {"Snowflake Lake"}, {"mp6-lake"}}, + {5, 0x7F, {"Castaway Bay"}, {"mp6-bay"}}, + {6, 0x80, {"Clockwork Castle"}, {"mp6-castle"}}, + {7, 0x72, {"Thirsty Gultch"}, {"mp6-gultch"}}, + {8, 0x73, {"Astro Avenue"}, {"mp6-avenue"}}, + {9, 0x74, {"Infernal Tower"}, {"mp6-tower"}}, + + {NONE, NONE, {""}, ""}}; + +const mpn_scene_t MP6_GAMESTATES[] = {{NONE, 0x01, {"Title Screen"}, 0}, + {NONE, 0x03, {"File-selection Screen"}, 0}, + //{NONE, 0x04, {"Mini-game Explanation"}, 0}, + {0x00, 0x06, {"Smashdance"}, 0}, + {0x01, 0x07, {"Odd Card Out"}, 0}, + {0x02, 0x08, {"Freeze Frame"}, 0}, + {0x03, 0x09, {"What Goes Up..."}, 0}, + {0x04, 0x0A, {"Granite Getaway"}, 0}, + {0x05, 0x0B, {"Circuit Maximus"}, 0}, + {0x06, 0x0C, {"Catch You Letter"}, 0}, + {0x07, 0x0D, {"Snow Whirled"}, 0}, + {0x08, 0x0E, {"Daft Rafts"}, 0}, + {0x09, 0x0F, {"Tricky Tires"}, 0}, + {0x0A, 0x10, {"Treasure Trawlers"}, 0}, + {0x0B, 0x11, {"Memory Lane"}, 0}, + {0x0C, 0x12, {"Mowtown"}, MPN_NEEDS_SAFE_TEX_CACHE}, + {0x0D, 0x13, {"Cannonball Fun"}, 0}, + {0x0E, 0x14, {"Note to Self"}, 0}, + {0x0F, 0x15, {"Same is Lame"}, 0}, + {0x10, 0x16, {"Light Up My Night"}, 0}, + {0x11, 0x17, {"Lift Leapers"}, 0}, + {0x12, 0x18, {"Blooper Scooper"}, 0}, + {0x13, 0x19, {"Trap Ease Artist"}, 0}, + {0x14, 0x1A, {"Pokey Punch-out"}, 0}, + {0x15, 0x1B, {"Money Belt"}, 0}, + {0x16, 0x1C, {"Cash Flow"}, 0}, + {0x17, 0x1D, {"Cog Jog"}, 0}, + {0x18, 0x1E, {"Sink or Swim"}, 0}, + {0x19, 0x1F, {"Snow Brawl"}, 0}, + {0x1A, 0x20, {"Ball Dozers"}, 0}, + {0x1B, 0x21, {"Surge and Destroy"}, 0}, + {0x1C, 0x22, {"Pop Star"}, 0}, + {0x1D, 0x23, {"Stage Fright"}, 0}, + {0x1E, 0x24, {"Conveyor Bolt"}, 0}, + {0x1F, 0x25, {"Crate and Peril"}, 0}, + {0x20, 0x26, {"Ray of Fright"}, 0}, + {0x21, 0x27, {"Dust 'til Dawn"}, 0}, + {0x22, 0x28, {"Garden Grab"}, 0}, + {0x23, 0x29, {"Pixel Perfect"}, 0}, + {0x24, 0x2A, {"Slot Trot"}, 0}, + {0x25, 0x2B, {"Gondola Glide"}, 0}, + {0x26, 0x2C, {"Light Breeze"}, 0}, + {0x27, 0x2D, {"Body Builder"}, 0}, + {0x28, 0x2E, {"Mole-it!"}, 0}, + {0x29, 0x2F, {"Cashapult"}, 0}, + {0x2A, 0x30, {"Jump the Gun"}, 0}, + {0x2B, 0x31, {"Rocky Road"}, 0}, + {0x2C, 0x32, {"Clean Team"}, 0}, + {0x2D, 0x33, {"Hyper Sniper"}, 0}, + {0x2E, 0x34, {"Insectiride"}, 0}, + {0x2F, 0x35, {"Sunday Drivers"}, 0}, + {0x30, 0x36, {"Stamp By Me"}, 0}, + {0x31, 0x37, {"Throw Me a Bone"}, 0}, + {0x32, 0x38, {"Black Hole Boogie"}, 0}, + {0x33, 0x39, {"Full Tilt"}, 0}, + {0x34, 0x3A, {"Sumo of Doom-o"}, 0}, + {0x35, 0x3B, {"O-Zone"}, 0}, + {0x36, 0x3C, {"Pitifall"}, 0}, + {0x37, 0x3D, {"Mass Meteor"}, 0}, + {0x38, 0x3E, {"Lunar-tics"}, 0}, + {0x39, 0x3F, {"T Minus Five"}, 0}, + {0x3A, 0x40, {"Asteroad Rage"}, 0}, + {0x3B, 0x41, {"Boo'd Off the Stage"}, 0}, + {0x3C, 0x42, {"Boonanza!"}, 0}, + {0x3D, 0x43, {"Trick or Tree"}, 0}, + {0x3E, 0x44, {"Something's Amist"}, 0}, + {0x3F, 0x45, {"Wrasslin' Rapids"}, 0}, + {0x43, 0x46, {"Burnstile"}, 0}, + {0x44, 0x47, {"Word Herd"}, 0}, + {0x45, 0x48, {"Fruit Talktail"}, 0}, + {0x46, 0x4C, {"Pit Boss"}, 0}, + {0x47, 0x4D, {"Dizzy Rotisserie"}, 0}, + {0x48, 0x4E, {"Dark 'n Crispy"}, 0}, + {0x49, 0x4F, {"Tally Me Banana"}, 0}, + {0x4A, 0x50, {"Banana Shake"}, 0}, + {0x4B, 0x51, {"Pier Factor"}, 0}, + {0x4C, 0x52, {"Seer Terror"}, 0}, + {0x4D, 0x53, {"Block Star"}, 0}, + {0x4E, 0x54, {"Lab Brats"}, 0}, + {0x4F, 0x55, {"Strawberry Shortfuse"}, 0}, + {0x50, 0x56, {"Control Shtick"}, 0}, + {0x51, 0x57, {"Dunk Bros."}, 0}, + {NONE, 0x58, {"Star Bank"}, 0}, + {NONE, 0x5A, {"Mini-game Mode"}, 0}, + {NONE, 0x5B, {"Party Mode Menu"}, 0}, + {NONE, 0x5C, {"Final Results"}, 0}, + {NONE, 0x5D, {"Main Menu"}, 0}, + {NONE, 0x5E, {"Solo Mode Menu"}, 0}, + {NONE, 0x60, {"Battle Bridge"}, 0}, + {NONE, 0x61, {"Treetop Bingo"}, 0}, + {NONE, 0x62, {"Mount Duel"}, 0}, + {NONE, 0x63, {"Mini-game Tour"}, MPN_NEEDS_EFB_TO_TEXTURE}, + {NONE, 0x63, {"Decathlon Park"}, 0}, + {NONE, 0x64, {"Endurance Alley"}, 0}, + {NONE, 0x6F, {"Option Mode"}, 0}, + {NONE, 0x71, {"Mini-game Results"}, 0}, + {NONE, 0x72, {"Thirsty Gultch"}, 0}, + {NONE, 0x73, {"Astro Avenue"}, 0}, + {NONE, 0x74, {"Infernal Tower"}, 0}, + {NONE, 0x7B, {"Towering Treetop"}, 0}, + {NONE, 0x7C, {"E. Gadd's Garage"}, 0}, + {NONE, 0x7D, {"Faire Square"}, 0}, + {NONE, 0x7E, {"Snowflake Lake"}, 0}, + {NONE, 0x7F, {"Castaway Bay"}, 0}, + {NONE, 0x80, {"Clockwork Castle"}, 0}, + + {NONE, NONE, {""}}}; + +/* ============================================================================ + Mario Party 7 metadata +============================================================================ */ + +const mpn_addresses_t MP7_ADDRESSES = {0x0029151C, 0x0029151D, 0x00291558, 0x002F2F3E}; + +const mpn_board_t MP7_BOARDS[] = {{1, 0x7A, {"Grand Canal"}, {"mp7-canal"}}, + {2, 0x7B, {"Pagoda Peak"}, {"mp7-peak"}}, + {3, 0x7C, {"Pyramid Park"}, {"mp7-park"}}, + {4, 0x7D, {"Neon Heights"}, {"mp7-heights"}}, + {5, 0x7E, {"Windmillville"}, {"mp7-windmillville"}}, + {6, 0x7F, {"Bowser's Enchanted Inferno!"}, {"mp7-inferno"}}, + + {NONE, NONE, "", ""}}; + +const mpn_scene_t MP7_GAMESTATES[] = {{NONE, 0x03, {"Boot Logos"}, 0}, + {NONE, 0x05, {"File Select"}, 0}, + //{NONE, 0x06, {"Mini-Game Explanation"}, 0}, + {0x00, 0x07, {"Catchy Tunes"}, 0}, + {0x01, 0x08, {"Bubble Brawl"}, 0}, + {0x02, 0x09, {"Track & Yield"}, 0}, + {0x03, 0x0A, {"Fun Run"}, 0}, + {0x04, 0x0B, {"Cointagious"}, 0}, + {0x05, 0x0C, {"Snow Ride"}, 0}, + {0x07, 0x0E, {"Picture This"}, 0}, + {0x08, 0x0F, {"Ghost in the Hall"}, 0}, + {0x09, 0x10, {"Big Dripper"}, 0}, + {0x0A, 0x11, {"Target Tag"}, 0}, + {0x0B, 0x12, {"Pokey Pummel"}, 0}, + {0x0C, 0x13, {"Take Me Ohm"}, 0}, + {0x0D, 0x14, {"Kart Wheeled"}, 0}, + {0x0E, 0x15, {"Balloon Busters"}, 0}, + {0x0F, 0x16, {"Clock Watchers"}, 0}, + {0x10, 0x17, {"Dart Attack"}, 0}, + {0x12, 0x18, {"Oil Crisis"}, 0}, + {0x14, 0x1A, {"La Bomba"}, 0}, + {0x15, 0x1B, {"Spray Anything"}, 0}, + {0x16, 0x1C, {"Balloonatic"}, 0}, + {0x17, 0x1D, {"Spinner Cell"}, 0}, + {0x18, 0x1E, {"Think Tank"}, 0}, + {0x19, 0x1F, {"Flashfright"}, 0}, + {0x1A, 0x20, {"Coin-op Bop"}, 0}, + {0x1B, 0x21, {"Easy Pickings"}, 0}, + {0x1C, 0x22, {"Wheel of Woe"}, 0}, + {0x1D, 0x23, {"Boxing Day"}, 0}, + {0x1E, 0x24, {"Be My Chum!"}, 0}, + {0x1F, 0x25, {"StratosFEAR!"}, 0}, + {0x20, 0x26, {"Pogo-a-go-go"}, 0}, + {0x21, 0x27, {"Buzzstormer"}, 0}, + {0x22, 0x28, {"Tile and Error"}, 0}, + {0x23, 0x29, {"Battery Ram"}, 0}, + {0x24, 0x2A, {"Cardinal Rule"}, 0}, + {0x25, 0x2B, {"Ice Moves"}, 0}, + {0x26, 0x2C, {"Bumper Crop"}, 0}, + {0x27, 0x2D, {"Hop-O-Matic 4000"}, 0}, + {0x28, 0x2E, {"Wingin' It"}, 0}, + {0x29, 0x2F, {"Sphere Factor"}, 0}, + {0x2A, 0x30, {"Herbicidal Maniac"}, 0}, + {0x2B, 0x31, {"Pyramid Scheme"}, 0}, + {0x2C, 0x32, {"World Piece"}, 0}, + {0x2D, 0x33, {"Warp Pipe Dreams"}, 0}, + {0x2E, 0x34, {"Weight for It"}, 0}, + {0x2F, 0x35, {"Helipopper"}, 0}, + {0x30, 0x36, {"Monty's Revenge"}, 0}, + {0x31, 0x37, {"Deck Hands"}, 0}, + {0x32, 0x38, {"Mad Props"}, 0}, + {0x33, 0x39, {"Gimme a Sign"}, 0}, + {0x34, 0x3A, {"Bridge Work"}, 0}, + {0x35, 0x3B, {"Spin Doctor"}, 0}, + {0x36, 0x3C, {"Hip Hop Drop"}, 0}, + {0x37, 0x3D, {"Air Farce"}, 0}, + {0x38, 0x3E, {"The Final Countdown"}, 0}, + {0x39, 0x3F, {"Royal Rumpus"}, 0}, + {0x3A, 0x40, {"Light Speed"}, 0}, + {0x3B, 0x41, {"Apes of Wrath"}, 0}, + {0x3C, 0x42, {"Fish & Cheeps"}, 0}, + {0x3D, 0x43, {"Camp Ukiki"}, 0}, + {0x3E, 0x44, {"Funstacle Course!"}, 0}, + {0x3F, 0x45, {"Funderwall!"}, 0}, + {0x40, 0x46, {"Magmagical Journey!"}, 0}, + {0x41, 0x47, {"Tunnel of Lava!"}, 0}, + {0x42, 0x48, {"Treasure Dome!"}, 0}, + {0x43, 0x49, {"Slot-O-Whirl!"}, 0}, + {0x44, 0x4A, {"Peel Out"}, 0}, + {0x45, 0x4B, {"Bananas Faster"}, 0}, + {0x46, 0x4C, {"Stump Change"}, 0}, + {0x47, 0x4D, {"Jump, Man"}, 0}, + {0x48, 0x4E, {"Vine Country"}, 0}, + {0x49, 0x4F, {"A Bridge Too Short"}, 0}, + {0x4A, 0x50, {"Spider Stomp"}, 0}, + {0x4B, 0x51, {"Stick and Spin"}, 0}, + {0x55, 0x5B, {"Bowser's Lovely Lift!"}, 0}, + {0x57, 0x5D, {"Mathemortician"}, 0}, + {NONE, 0x61, {"Duty-Free Shop"}, 0}, + {NONE, 0x63, {"Deluxe Cruise"}, 0}, + {NONE, 0x64, {"Minigame Cruise"}, 0}, + {NONE, 0x65, {"Control Room"}, 0}, + {NONE, 0x67, {"Main Menu"}, 0}, + {NONE, 0x68, {"Solo Cruise"}, 0}, + {NONE, 0x6A, {"Decathlon Castle"}, 0}, + {NONE, 0x6B, {"Free-Play Sub"}, 0}, + {NONE, 0x6C, {"Waterfall Battle"}, 0}, + {NONE, 0x6E, {"Volcano Peril"}, 0}, + {NONE, 0x6F, {"Pearl Hunt"}, 0}, + {NONE, 0x70, {"King of the River"}, 0}, + {NONE, 0x66, {"Party Cruise"}, 0}, + {NONE, 0x7A, {"Grand Canal"}, 0}, + {NONE, 0x7B, {"Pagoda Peak"}, 0}, + {NONE, 0x7C, {"Pyramid Park"}, 0}, + {NONE, 0x7D, {"Neon Heights"}, 0}, + {NONE, 0x7E, {"Windmillville"}, 0}, + {NONE, 0x7F, {"Bowser's Enchanted Inferno!"}, 0}, + {NONE, 0x73, {"Mini-Game Results"}, 0}, + + {NONE, NONE, {""}, 0}}; + +/* ============================================================================ + Mario Party 8 metadata +============================================================================ */ + +const mpn_addresses_t MP8_ADDRESSES = {0x00228764, 0x00228765, 0x002287CC, 0x002CD222}; + +const mpn_board_t MP8_BOARDS[] = {{1, 0x10, {"DK's Treetop Temple"}, {"mp8-dktt"}}, + {2, 0x11, {"Goomba's Booty Boardwalk"}, {"mp8-gbb"}}, + {3, 0x12, {"King Boo's Haunted Hideaway"}, {"mp8-kbhh"}}, + {4, 0x13, {"Shy Guy's Perplex Express"}, {"mp8-sgpe"}}, + {5, 0x14, {"Koopa's Tycoon Town"}, {"mp8-ktt"}}, + {6, 0x15, {"Bowser's Warped Orbit"}, {"mp8-bwo"}}, + + {NONE, NONE, {""}, ""}}; + +const mpn_scene_t MP8_GAMESTATES[] = { + {NONE, 0x04, {"Main Menu"}, 0}, + {NONE, 0x08, {"Fun Bazaar"}, 0}, + {NONE, 0x0A, {"Free Play Arcade"}, 0}, + {NONE, 0x0B, {"Crown Showdown"}, 0}, + {NONE, 0x0C, {"Flip-Out Frenzy"}, 0}, + {NONE, 0x0D, {"Tic-Tac Drop"}, 0}, + {NONE, 0x0E, {"Test for the Best"}, 0}, + {NONE, 0x10, {"DK's Treetop Temple"}, 0}, + {NONE, 0x11, {"Goomba's Booty Boardwalk"}, 0}, + {NONE, 0x12, {"King Boo's Haunted Hideaway"}, 0}, + {NONE, 0x13, {"Shy Guy's Perplex Express"}, 0}, + {NONE, 0x14, {"Koopa's Tycoon Town"}, 0}, + {NONE, 0x15, {"Bowser's Warped Orbit"}, 0}, + //{NONE, 0x16, {"Mini-Game Explanation"}, 0}, + {0x00, 0x17, {"Speedy Graffiti"}, MPN_NEEDS_EFB_TO_TEXTURE}, + {0x01, 0x18, {"Swing Kings"}, 0}, + {0x02, 0x19, {"Water Ski Spree"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x03, 0x1A, {"Punch-a-Bunch"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x04, 0x1B, {"Crank to Rank"}, 0}, + {0x05, 0x1C, {"At the Chomp Wash"}, 0}, + {0x06, 0x1D, {"Mosh-Pit Playroom"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x07, 0x1E, {"Mario Matrix"}, 0}, + {0x08, 0x1F, {"??? - Hammer de Pokari"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x09, 0x20, {"Grabby Giridion"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x0A, 0x21, {"Lava or Leave 'Em"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x0B, 0x22, {"Kartastrophe"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x0C, 0x23, {"??? - Ribbon Game"}, 0}, + {0x0D, 0x24, {"Aim of the Game"}, 0}, + {0x0E, 0x25, {"Rudder Madness"}, 0}, + {0x0F, 0x26, {"Gun the Runner"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, // 1P is sideways + {0x10, 0x27, {"Grabbin' Gold"}, 0}, + {0x11, 0x28, {"Power Trip"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x12, 0x29, {"Bob-ombs Away"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x13, 0x2A, {"Swervin' Skies"}, 0}, + {0x14, 0x2B, {"Picture Perfect"}, 0}, + {0x15, 0x2C, {"Snow Way Out"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, // 3P are sideways + {0x16, 0x2D, {"Thrash 'n' Crash"}, 0}, + {0x17, 0x2E, {"Chump Rope"}, 0}, + {0x18, 0x2F, {"Sick and Twisted"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x19, 0x30, {"Bumper Balloons"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x1A, 0x31, {"Rowed to Victory"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x1B, 0x32, {"Winner or Dinner"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x1C, 0x33, {"Paint Misbehavin'"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x1D, 0x34, {"Sugar Rush"}, 0}, + {0x1E, 0x35, {"King of the Thrill"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x1F, 0x36, {"Shake It Up"}, 0}, + {0x20, 0x37, {"Lean, Mean Ravine"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x21, 0x38, {"Boo-ting Gallery"}, 0}, + {0x22, 0x39, {"Crops 'n' Robbers"}, 0}, + {0x23, 0x3A, {"In the Nick of Time"}, 0}, + {0x24, 0x3B, {"Cut from the Team"}, 0}, + {0x25, 0x3C, {"Snipe for the Picking"}, 0}, + {0x26, 0x3D, {"Saucer Swarm"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x27, 0x3E, {"Glacial Meltdown"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x28, 0x3F, {"Attention Grabber"}, 0}, + {0x29, 0x40, {"Blazing Lassos"}, 0}, + {0x2A, 0x41, {"Wing and a Scare"}, 0}, + {0x2B, 0x42, {"Lob to Rob"}, 0}, + {0x2C, 0x43, {"Pumper Cars"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x2D, 0x44, {"Cosmic Slalom"}, 0}, + {0x2E, 0x45, {"Lava Lobbers"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x2F, 0x46, {"Loco Motives"}, 0}, + {0x30, 0x47, {"Specter Inspector"}, 0}, + {0x31, 0x48, {"Frozen Assets"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x32, 0x49, {"Breakneck Building"}, MPN_NEEDS_NATIVE_RES}, + {0x33, 0x4A, {"Surf's Way Up"}, 0}, + {0x34, 0x4B, {"??? - Bull Riding"}, 0}, + {0x35, 0x4C, {"Balancing Act"}, 0}, + {0x36, 0x4D, {"Ion the Prize"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x37, 0x4E, {"You're the Bob-omb"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x38, 0x4F, {"Scooter Pursuit"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x39, 0x50, {"Cardiators"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x3A, 0x51, {"Rotation Station"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x3B, 0x52, {"Eyebrawl"}, 0}, + {0x3C, 0x53, {"Table Menace"}, 0}, + {0x3D, 0x54, {"Flagging Rights"}, 0}, + {0x3E, 0x55, {"Trial by Tile"}, 0}, + {0x3F, 0x56, {"Star Carnival Bowling"}, 0}, + {0x40, 0x57, {"Puzzle Pillars"}, 0}, + {0x41, 0x58, {"Canyon Cruisers"}, 0}, + {0x42, 0x59, {"??? - CRASH"}, 0}, + {0x43, 0x5A, {"Settle It in Court"}, 0}, + {0x44, 0x5B, {"Moped Mayhem"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + {0x45, 0x5C, {"Flip the Chimp"}, 0}, + {0x46, 0x5D, {"Pour to Score"}, 0}, + {0x47, 0x5E, {"Fruit Picker"}, 0}, + {0x48, 0x5F, {"Stampede"}, 0}, + {0x49, 0x60, {"Superstar Showdown"}, 0}, + {0x4A, 0x61, {"Alpine Assault"}, 0}, + {0x4B, 0x62, {"Treacherous Tightrope"}, MPN_NEEDS_SIDEWAYS_WIIMOTE}, + + {NONE, NONE, {""}, 0}}; + +#endif diff --git a/Source/Core/Core/NetPlayClient.h b/Source/Core/Core/NetPlayClient.h index dbd1095204..38b0bbcda2 100644 --- a/Source/Core/Core/NetPlayClient.h +++ b/Source/Core/Core/NetPlayClient.h @@ -130,9 +130,12 @@ public: void SendChatMessage(const std::string& msg); void RequestStopGame(); void SendPowerButtonEvent(); + void SendActiveGeckoCodes(); + void GetActiveGeckoCodes(); void RequestGolfControl(PlayerId pid); void RequestGolfControl(); std::string GetCurrentGolfer(); + std::vector v_ActiveGeckoCodes; // Send and receive pads values struct WiimoteDataBatchEntry diff --git a/Source/Core/Core/NetPlayServer.cpp b/Source/Core/Core/NetPlayServer.cpp index 5d93906e2b..bb4a8b8750 100644 --- a/Source/Core/Core/NetPlayServer.cpp +++ b/Source/Core/Core/NetPlayServer.cpp @@ -425,8 +425,8 @@ ConnectionError NetPlayServer::OnConnect(ENetPeer* incoming_connection, sf::Pack { std::string netplay_version; received_packet >> netplay_version; - if (netplay_version != Common::GetScmRevGitStr()) - return ConnectionError::VersionMismatch; + + if (m_is_running || m_start_pending) return ConnectionError::GameRunning; diff --git a/Source/Core/Core/PatchEngine.cpp b/Source/Core/Core/PatchEngine.cpp index b180991522..b39339c1cd 100644 --- a/Source/Core/Core/PatchEngine.cpp +++ b/Source/Core/Core/PatchEngine.cpp @@ -32,6 +32,7 @@ #include "Core/Debugger/PPCDebugInterface.h" #include "Core/GeckoCode.h" #include "Core/GeckoCodeConfig.h" +#include "Core/MarioPartyNetplay/Gamestate.h" #include "Core/PowerPC/MMU.h" #include "Core/PowerPC/PowerPC.h" #include "Core/System.h" @@ -345,6 +346,8 @@ bool ApplyFramePatches() ApplyPatches(guard, s_on_frame); ApplyMemoryPatches(guard, s_on_frame_memory); + mpn_per_frame(); + // Run the Gecko code handler Gecko::RunCodeHandler(guard); ActionReplay::RunAllActive(guard); diff --git a/Source/Core/DolphinLib.vcxproj b/Source/Core/DolphinLib.vcxproj index 5875de1550..d474a4fefc 100644 --- a/Source/Core/DolphinLib.vcxproj +++ b/Source/Core/DolphinLib.vcxproj @@ -59,6 +59,14 @@ + + + + + + + + diff --git a/Source/Core/DolphinQt/Config/PropertiesDialog.cpp b/Source/Core/DolphinQt/Config/PropertiesDialog.cpp index b72e950862..333182fbba 100644 --- a/Source/Core/DolphinQt/Config/PropertiesDialog.cpp +++ b/Source/Core/DolphinQt/Config/PropertiesDialog.cpp @@ -96,4 +96,5 @@ PropertiesDialog::PropertiesDialog(QWidget* parent, const UICommon::GameFile& ga layout->addWidget(close_box); setLayout(layout); + tab_widget->setCurrentIndex(3); } diff --git a/Source/Core/DolphinQt/DolphinQt.vcxproj b/Source/Core/DolphinQt/DolphinQt.vcxproj index 838e33d7a1..06228dc44b 100644 --- a/Source/Core/DolphinQt/DolphinQt.vcxproj +++ b/Source/Core/DolphinQt/DolphinQt.vcxproj @@ -17,6 +17,12 @@ + + Dolphin-MPN + + + Dolphin-MPN + $(ProjectDir)Config\Graphics;%(AdditionalIncludeDirectories) @@ -408,9 +414,6 @@ {D79392F7-06D6-4B4B-A39F-4D587C215D3A} - - {41279555-f94f-4ebc-99de-af863c10c5c4} - {0e033be3-2e08-428e-9ae9-bc673efa12b5} @@ -444,13 +447,15 @@ + - + + diff --git a/Source/Core/DolphinQt/MainWindow.cpp b/Source/Core/DolphinQt/MainWindow.cpp index ac34999c4d..12abe73821 100644 --- a/Source/Core/DolphinQt/MainWindow.cpp +++ b/Source/Core/DolphinQt/MainWindow.cpp @@ -518,8 +518,6 @@ void MainWindow::ConnectMenuBar() connect(m_menu_bar, &MenuBar::ImportNANDBackup, this, &MainWindow::OnImportNANDBackup); connect(m_menu_bar, &MenuBar::PerformOnlineUpdate, this, &MainWindow::PerformOnlineUpdate); connect(m_menu_bar, &MenuBar::BootWiiSystemMenu, this, &MainWindow::BootWiiSystemMenu); - connect(m_menu_bar, &MenuBar::StartNetPlay, this, &MainWindow::ShowNetPlaySetupDialog); - connect(m_menu_bar, &MenuBar::BrowseNetPlay, this, &MainWindow::ShowNetPlayBrowser); connect(m_menu_bar, &MenuBar::ShowFIFOPlayer, this, &MainWindow::ShowFIFOPlayer); connect(m_menu_bar, &MenuBar::ShowSkylanderPortal, this, &MainWindow::ShowSkylanderPortal); connect(m_menu_bar, &MenuBar::ConnectWiiRemote, this, &MainWindow::OnConnectWiiRemote); @@ -640,6 +638,8 @@ void MainWindow::ConnectToolBar() connect(m_tool_bar, &ToolBar::ControllersPressed, this, &MainWindow::ShowControllersWindow); connect(m_tool_bar, &ToolBar::GraphicsPressed, this, &MainWindow::ShowGraphicsWindow); + connect(m_tool_bar, &ToolBar::StartNetPlayPressed, this, &MainWindow::ShowNetPlaySetupDialog); + connect(m_tool_bar, &ToolBar::StepPressed, m_code_widget, &CodeWidget::Step); connect(m_tool_bar, &ToolBar::StepOverPressed, m_code_widget, &CodeWidget::StepOver); connect(m_tool_bar, &ToolBar::StepOutPressed, m_code_widget, &CodeWidget::StepOut); @@ -947,6 +947,110 @@ bool MainWindow::RequestStop() return true; } +bool MainWindow::RequestStopNetplay() +{ + if (!Core::IsRunning()) + { + Core::QueueHostJob([this] { OnStopComplete(); }, true); + return true; + } + + const bool rendered_widget_was_active = + m_render_widget->isActiveWindow() && !m_render_widget->isFullScreen(); + QWidget* confirm_parent = (!m_rendering_to_main && rendered_widget_was_active) ? + m_render_widget : + static_cast(this); + const bool was_cursor_locked = m_render_widget->IsCursorLocked(); + + if (!m_render_widget->isFullScreen()) + m_render_widget_geometry = m_render_widget->saveGeometry(); + else + FullScreen(); + + if (Config::Get(Config::MAIN_CONFIRM_ON_STOP)) + { + if (std::exchange(m_stop_confirm_showing, true)) + return true; + + Common::ScopeGuard confirm_lock([this] { m_stop_confirm_showing = false; }); + + const Core::State state = Core::GetState(); + + // Only pause the game, if NetPlay is not running + bool pause = !Settings::Instance().GetNetPlayClient(); + + if (pause) + Core::SetState(Core::State::Paused); + + if (rendered_widget_was_active) + { + // We have to do this before creating the message box, otherwise we might receive the window + // activation event before we know we need to lock the cursor again. + m_render_widget->SetCursorLockedOnNextActivation(was_cursor_locked); + } + + // This is to avoid any "race conditions" between the "Window Activate" message and the + // message box returning, which could break cursor locking depending on the order + m_render_widget->SetWaitingForMessageBox(true); + auto confirm = ModalMessageBox::question( + confirm_parent, tr("Quitter!"), + m_stop_requested ? tr("A user closed down their game from the netplay lobby. " + "This could the Netplay session has ended due to someone ragequitting! " + "Do you want to stop the current emulation?") : + tr("A user closed down their game from the netplay lobby. " + "This could the Netplay session has ended due to someone ragequitting" + "Do you want to stop the current emulation?"), + QMessageBox::Yes | QMessageBox::No, QMessageBox::NoButton, Qt::ApplicationModal); + + // If a user confirmed stopping the emulation, we do not capture the cursor again, + // even if the render widget will stay alive for a while. + // If a used rejected stopping the emulation, we instead capture the cursor again, + // and let them continue playing as if nothing had happened + // (assuming cursor locking is on). + if (confirm != QMessageBox::Yes) + { + m_render_widget->SetWaitingForMessageBox(false); + + if (pause) + Core::SetState(state); + + return false; + } + else + { + m_render_widget->SetCursorLockedOnNextActivation(false); + // This needs to be after SetCursorLockedOnNextActivation(false) as it depends on it + m_render_widget->SetWaitingForMessageBox(false); + } + } + + OnStopRecording(); + // TODO: Add Debugger shutdown + + if (!m_stop_requested && UICommon::TriggerSTMPowerEvent()) + { + m_stop_requested = true; + + // Unpause because gracefully shutting down needs the game to actually request a shutdown. + // TODO: Do not unpause in debug mode to allow debugging until the complete shutdown. + if (Core::GetState() == Core::State::Paused) + Core::SetState(Core::State::Running); + + // Tell NetPlay about the power event + if (NetPlay::IsNetPlayRunning()) + NetPlay::SendPowerButtonEvent(); + + return true; + } + + ForceStop(); +#ifdef Q_OS_WIN + // Allow windows to idle or turn off display again + SetThreadExecutionState(ES_CONTINUOUS); +#endif + return true; +} + void MainWindow::ForceStop() { Core::Stop(); @@ -1424,10 +1528,11 @@ void MainWindow::NetPlayInit() m_netplay_discord = new DiscordHandler(this); #endif - connect(m_netplay_dialog, &NetPlayDialog::Stop, this, &MainWindow::ForceStop); + connect(m_netplay_dialog, &NetPlayDialog::Stop, this, &MainWindow::RequestStopNetplay); connect(m_netplay_dialog, &NetPlayDialog::rejected, this, &MainWindow::NetPlayQuit); connect(m_netplay_setup_dialog, &NetPlaySetupDialog::Join, this, &MainWindow::NetPlayJoin); connect(m_netplay_setup_dialog, &NetPlaySetupDialog::Host, this, &MainWindow::NetPlayHost); + connect(m_netplay_setup_dialog, &NetPlaySetupDialog::JoinBrowser, this, &MainWindow::NetPlayJoin); #ifdef USE_DISCORD_PRESENCE connect(m_netplay_discord, &DiscordHandler::Join, this, &MainWindow::NetPlayJoin); diff --git a/Source/Core/DolphinQt/MainWindow.h b/Source/Core/DolphinQt/MainWindow.h index fde91a8ae2..6f3315e3dc 100644 --- a/Source/Core/DolphinQt/MainWindow.h +++ b/Source/Core/DolphinQt/MainWindow.h @@ -90,6 +90,7 @@ private: // May ask for confirmation. Returns whether or not it actually stopped. bool RequestStop(); + bool RequestStopNetplay(); void ForceStop(); void Reset(); void FrameAdvance(); diff --git a/Source/Core/DolphinQt/MenuBar.cpp b/Source/Core/DolphinQt/MenuBar.cpp index 2677ac27d0..1c0634ce6e 100644 --- a/Source/Core/DolphinQt/MenuBar.cpp +++ b/Source/Core/DolphinQt/MenuBar.cpp @@ -61,6 +61,7 @@ #include "UICommon/AutoUpdate.h" #include "UICommon/GameFile.h" +#include QPointer MenuBar::s_menu_bar; @@ -224,11 +225,6 @@ void MenuBar::AddToolsMenu() tools_menu->addSeparator(); - tools_menu->addAction(tr("Start &NetPlay..."), this, &MenuBar::StartNetPlay); - tools_menu->addAction(tr("Browse &NetPlay Sessions...."), this, &MenuBar::BrowseNetPlay); - - tools_menu->addSeparator(); - QMenu* gc_ipl = tools_menu->addMenu(tr("Load GameCube Main Menu")); m_ntscj_ipl = gc_ipl->addAction(tr("NTSC-J"), this, @@ -296,7 +292,7 @@ void MenuBar::AddToolsMenu() void MenuBar::AddEmulationMenu() { QMenu* emu_menu = addMenu(tr("&Emulation")); - m_play_action = emu_menu->addAction(tr("&Play"), this, &MenuBar::Play); + m_play_action = emu_menu->addAction(tr("&Local Play"), this, &MenuBar::Play); m_pause_action = emu_menu->addAction(tr("&Pause"), this, &MenuBar::Pause); m_stop_action = emu_menu->addAction(tr("&Stop"), this, &MenuBar::Stop); m_reset_action = emu_menu->addAction(tr("&Reset"), this, &MenuBar::Reset); @@ -543,16 +539,6 @@ void MenuBar::AddOptionsMenu() m_change_font = options_menu->addAction(tr("&Font..."), this, &MenuBar::ChangeDebugFont); } -void MenuBar::InstallUpdateManually() -{ - const std::string autoupdate_track = Config::Get(Config::MAIN_AUTOUPDATE_UPDATE_TRACK); - const std::string manual_track = autoupdate_track.empty() ? "dev" : autoupdate_track; - auto* const updater = new Updater(this->parentWidget(), manual_track, - Config::Get(Config::MAIN_AUTOUPDATE_HASH_OVERRIDE)); - - updater->CheckForUpdate(); -} - void MenuBar::AddHelpMenu() { QMenu* help_menu = addMenu(tr("&Help")); @@ -574,13 +560,6 @@ void MenuBar::AddHelpMenu() QUrl(QStringLiteral("https://bugs.dolphin-emu.org/projects/emulator"))); }); - if (AutoUpdateChecker::SystemSupportsAutoUpdates()) - { - help_menu->addSeparator(); - - help_menu->addAction(tr("&Check for Updates..."), this, &MenuBar::InstallUpdateManually); - } - #ifndef __APPLE__ help_menu->addSeparator(); #endif diff --git a/Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp b/Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp index 9acd14977d..2a29141262 100644 --- a/Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp +++ b/Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp @@ -63,61 +63,7 @@ void NetPlayBrowser::CreateWidgets() { auto* layout = new QVBoxLayout; - m_table_widget = new QTableWidget; - m_table_widget->setTabKeyNavigation(false); - - m_table_widget->setSelectionBehavior(QAbstractItemView::SelectRows); - m_table_widget->setSelectionMode(QAbstractItemView::SingleSelection); - m_table_widget->setWordWrap(false); - - m_region_combo = new QComboBox; - - m_region_combo->addItem(tr("Any Region")); - - for (const auto& region : NetPlayIndex::GetRegions()) - { - m_region_combo->addItem( - tr("%1 (%2)").arg(tr(region.second.c_str())).arg(QString::fromStdString(region.first)), - QString::fromStdString(region.first)); - } - - m_region_combo->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred); - - m_status_label = new QLabel; - m_button_box = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); - m_button_refresh = new NonDefaultQPushButton(tr("Refresh")); - m_edit_name = new QLineEdit; - m_edit_game_id = new QLineEdit; - m_check_hide_incompatible = new QCheckBox(tr("Hide Incompatible Sessions")); - m_check_hide_ingame = new QCheckBox(tr("Hide In-Game Sessions")); - - m_check_hide_incompatible->setChecked(true); - - m_radio_all = new QRadioButton(tr("Private and Public")); - m_radio_private = new QRadioButton(tr("Private")); - m_radio_public = new QRadioButton(tr("Public")); - - m_radio_all->setChecked(true); - - auto* filter_box = new QGroupBox(tr("Filters")); - auto* filter_layout = new QGridLayout; - filter_box->setLayout(filter_layout); - - filter_layout->addWidget(new QLabel(tr("Region:")), 0, 0); - filter_layout->addWidget(m_region_combo, 0, 1, 1, -1); - filter_layout->addWidget(new QLabel(tr("Name:")), 1, 0); - filter_layout->addWidget(m_edit_name, 1, 1, 1, -1); - filter_layout->addWidget(new QLabel(tr("Game ID:")), 2, 0); - filter_layout->addWidget(m_edit_game_id, 2, 1, 1, -1); - filter_layout->addWidget(m_radio_all, 3, 1); - filter_layout->addWidget(m_radio_public, 3, 2); - filter_layout->addWidget(m_radio_private, 3, 3); - filter_layout->addItem(new QSpacerItem(4, 1, QSizePolicy::Expanding), 3, 4); - filter_layout->addWidget(m_check_hide_incompatible, 4, 1, 1, -1); - filter_layout->addWidget(m_check_hide_ingame, 5, 1, 1, -1); - layout->addWidget(m_table_widget); - layout->addWidget(filter_box); layout->addWidget(m_status_label); layout->addWidget(m_button_box); @@ -220,7 +166,7 @@ void NetPlayBrowser::UpdateList() m_table_widget->clear(); m_table_widget->setColumnCount(7); - m_table_widget->setHorizontalHeaderLabels({tr("Region"), tr("Name"), tr("Password?"), + m_table_widget->setHorizontalHeaderLabels({tr("Name"), tr("Password?"), tr("In-Game?"), tr("Game"), tr("Players"), tr("Version")}); @@ -239,26 +185,20 @@ void NetPlayBrowser::UpdateList() { const auto& entry = m_sessions[i]; - auto* region = new QTableWidgetItem(QString::fromStdString(entry.region)); auto* name = new QTableWidgetItem(QString::fromStdString(entry.name)); - auto* password = new QTableWidgetItem(entry.has_password ? tr("Yes") : tr("No")); auto* in_game = new QTableWidgetItem(entry.in_game ? tr("Yes") : tr("No")); auto* game_id = new QTableWidgetItem(QString::fromStdString(entry.game_id)); auto* player_count = new QTableWidgetItem(QStringLiteral("%1").arg(entry.player_count)); - auto* version = new QTableWidgetItem(QString::fromStdString(entry.version)); const bool enabled = Common::GetScmDescStr() == entry.version; - for (const auto& item : {region, name, password, in_game, game_id, player_count, version}) + for (const auto& item : {name, in_game, game_id, player_count}) item->setFlags(enabled ? Qt::ItemIsEnabled | Qt::ItemIsSelectable : Qt::NoItemFlags); - m_table_widget->setItem(i, 0, region); m_table_widget->setItem(i, 1, name); - m_table_widget->setItem(i, 2, password); - m_table_widget->setItem(i, 3, in_game); - m_table_widget->setItem(i, 4, game_id); - m_table_widget->setItem(i, 5, player_count); - m_table_widget->setItem(i, 6, version); + m_table_widget->setItem(i, 2, in_game); + m_table_widget->setItem(i, 3, game_id); + m_table_widget->setItem(i, 4, player_count); } m_status_label->setText( @@ -377,8 +317,11 @@ void NetPlayBrowser::RestoreSettings() else if (visibility == QStringLiteral("private")) m_radio_private->setChecked(true); - m_check_hide_incompatible->setChecked( + m_check_hide_incompatible->setChecked(true); + m_check_hide_ingame->setChecked(true); + + /* m_check_hide_incompatible->setChecked( settings.value(QStringLiteral("netplaybrowser/hide_incompatible"), true).toBool()); m_check_hide_ingame->setChecked( - settings.value(QStringLiteral("netplaybrowser/hide_ingame")).toBool()); + settings.value(QStringLiteral("netplaybrowser/hide_ingame")).toBool());*/ } diff --git a/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp b/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp index 4dec815de9..4e9d4da14c 100644 --- a/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp +++ b/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp @@ -129,6 +129,12 @@ void NetPlayDialog::CreateMainLayout() m_game_button = new QPushButton; m_start_button = new QPushButton(tr("Start")); m_buffer_size_box = new QSpinBox; + m_buffer_size_box->setToolTip( + tr("Set the buffer based on the ping. The buffer should be ping ÷ 8 (rounded up).\nFor a " + "simple method, " + "use 8 for 64 ping and less, 12 for 100 ping and less, and 16 for 150 ping and " + "less.\nGames above 150 ping will be very laggy and are not recommended for competitive " + "play.")); m_buffer_label = new QLabel(tr("Buffer:")); m_quit_button = new QPushButton(tr("Quit")); m_splitter = new QSplitter(Qt::Horizontal); @@ -922,7 +928,7 @@ void NetPlayDialog::OnPadBufferChanged(u32 buffer) }); DisplayMessage(m_host_input_authority ? tr("Max buffer size changed to %1").arg(buffer) : tr("Buffer size changed to %1").arg(buffer), - "darkcyan"); + "orange"); m_buffer_size = static_cast(buffer); } diff --git a/Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp b/Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp index 26487443e7..6d207444e3 100644 --- a/Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp +++ b/Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp @@ -9,13 +9,19 @@ #include #include #include +#include +#include +#include #include #include #include #include +#include #include #include #include +#include +#include #include "Core/Config/NetplaySettings.h" #include "Core/NetPlayProto.h" @@ -25,6 +31,8 @@ #include "DolphinQt/QtUtils/UTF8CodePointCountValidator.h" #include "DolphinQt/Settings.h" +#include "Common/Version.h" +#include "DolphinQt/NetPlay/NetPlayBrowser.h" #include "UICommon/GameFile.h" #include "UICommon/NetPlayIndex.h" @@ -37,16 +45,11 @@ NetPlaySetupDialog::NetPlaySetupDialog(const GameListModel& game_list_model, QWi CreateMainLayout(); bool use_index = Config::Get(Config::NETPLAY_USE_INDEX); - std::string index_region = Config::Get(Config::NETPLAY_INDEX_REGION); std::string index_name = Config::Get(Config::NETPLAY_INDEX_NAME); - std::string index_password = Config::Get(Config::NETPLAY_INDEX_PASSWORD); std::string nickname = Config::Get(Config::NETPLAY_NICKNAME); std::string traversal_choice = Config::Get(Config::NETPLAY_TRAVERSAL_CHOICE); int connect_port = Config::Get(Config::NETPLAY_CONNECT_PORT); int host_port = Config::Get(Config::NETPLAY_HOST_PORT); - int host_listen_port = Config::Get(Config::NETPLAY_LISTEN_PORT); - bool enable_chunked_upload_limit = Config::Get(Config::NETPLAY_ENABLE_CHUNKED_UPLOAD_LIMIT); - u32 chunked_upload_limit = Config::Get(Config::NETPLAY_CHUNKED_UPLOAD_LIMIT); #ifdef USE_UPNP bool use_upnp = Config::Get(Config::NETPLAY_USE_UPNP); @@ -58,28 +61,41 @@ NetPlaySetupDialog::NetPlaySetupDialog(const GameListModel& game_list_model, QWi m_connect_port_box->setValue(connect_port); m_host_port_box->setValue(host_port); - m_host_force_port_box->setValue(host_listen_port); - m_host_force_port_box->setEnabled(false); - - m_host_server_browser->setChecked(use_index); - - m_host_server_region->setEnabled(use_index); - m_host_server_region->setCurrentIndex( - m_host_server_region->findData(QString::fromStdString(index_region))); - m_host_server_name->setEnabled(use_index); m_host_server_name->setText(QString::fromStdString(index_name)); - m_host_server_password->setEnabled(use_index); - m_host_server_password->setText(QString::fromStdString(index_password)); + // Browser Stuff + const auto& settings = Settings::Instance().GetQSettings(); - m_host_chunked_upload_limit_check->setChecked(enable_chunked_upload_limit); - m_host_chunked_upload_limit_box->setValue(chunked_upload_limit); - m_host_chunked_upload_limit_box->setEnabled(enable_chunked_upload_limit); + const QByteArray geometry = + settings.value(QStringLiteral("netplaybrowser/geometry")).toByteArray(); + if (!geometry.isEmpty()) + restoreGeometry(geometry); + + const QString region = settings.value(QStringLiteral("netplaybrowser/region")).toString(); + const bool valid_region = m_region_combo->findText(region) != -1; + if (valid_region) + m_region_combo->setCurrentText(region); + + m_edit_name->setText(settings.value(QStringLiteral("netplaybrowser/name")).toString()); + + const QString visibility = settings.value(QStringLiteral("netplaybrowser/visibility")).toString(); + if (visibility == QStringLiteral("public")) + m_radio_public->setChecked(true); + else if (visibility == QStringLiteral("private")) + m_radio_private->setChecked(true); + + m_check_hide_ingame->setChecked(true); OnConnectionTypeChanged(m_connection_type->currentIndex()); ConnectWidgets(); + + m_refresh_run.Set(true); + m_refresh_thread = std::thread([this] { RefreshLoopBrowser(); }); + + UpdateListBrowser(); + RefreshBrowser(); } void NetPlaySetupDialog::CreateMainLayout() @@ -88,7 +104,10 @@ void NetPlaySetupDialog::CreateMainLayout() m_button_box = new QDialogButtonBox(QDialogButtonBox::Cancel); m_nickname_edit = new QLineEdit; m_connection_type = new QComboBox; + + m_connection_type->setCurrentIndex(1); m_reset_traversal_button = new NonDefaultQPushButton(tr("Reset Traversal Settings")); + m_tab_widget = new QTabWidget; m_nickname_edit->setValidator( @@ -98,6 +117,50 @@ void NetPlaySetupDialog::CreateMainLayout() auto* connection_widget = new QWidget; auto* connection_layout = new QGridLayout; + // NetPlay Browser + auto* browser_widget = new QWidget; + auto* layout = new QVBoxLayout; + + m_table_widget = new QTableWidget; + m_table_widget->setTabKeyNavigation(false); + + m_table_widget->setSelectionBehavior(QAbstractItemView::SelectRows); + m_table_widget->setSelectionMode(QAbstractItemView::SingleSelection); + m_table_widget->setWordWrap(false); + + m_region_combo = new QComboBox; + + m_region_combo->addItem(tr("Any Region")); + + for (const auto& region : NetPlayIndex::GetRegions()) + { + m_region_combo->addItem( + tr("%1 (%2)").arg(tr(region.second.c_str())).arg(QString::fromStdString(region.first)), + QString::fromStdString(region.first)); + } + + m_region_combo->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred); + + m_status_label = new QLabel; + m_b_button_box = new QDialogButtonBox; + m_button_refresh = new QPushButton(tr("Refresh")); + m_edit_name = new QLineEdit; + m_check_hide_ingame = new QCheckBox(tr("Hide In-Game Sessions")); + + m_radio_all = new QRadioButton(tr("Private and Public")); + m_radio_private = new QRadioButton(tr("Private")); + m_radio_public = new QRadioButton(tr("Public")); + + m_radio_all->setChecked(true); + + layout->addWidget(m_table_widget); + layout->addWidget(m_status_label); + layout->addWidget(m_b_button_box); + + m_b_button_box->addButton(m_button_refresh, QDialogButtonBox::ResetRole); + + browser_widget->setLayout(layout); + m_ip_label = new QLabel; m_ip_edit = new QLineEdit; m_connect_port_label = new QLabel(tr("Port:")); @@ -113,7 +176,7 @@ void NetPlaySetupDialog::CreateMainLayout() connection_layout->addWidget( new QLabel( tr("ALERT:\n\n" - "All players must use the same Dolphin version.\n" + "All players must use the same Dolphin version, unless Orange Dolphin is used to host\n" "If enabled, SD cards must be identical between players.\n" "If DSP LLE is used, DSP ROMs must be identical between players.\n" "If a game is hanging on boot, it may not support Dual Core Netplay." @@ -130,16 +193,10 @@ void NetPlaySetupDialog::CreateMainLayout() // Host widget auto* host_widget = new QWidget; auto* host_layout = new QGridLayout; - m_host_port_label = new QLabel(tr("Port:")); m_host_port_box = new QSpinBox; - m_host_force_port_check = new QCheckBox(tr("Force Listen Port:")); - m_host_force_port_box = new QSpinBox; m_host_chunked_upload_limit_check = new QCheckBox(tr("Limit Chunked Upload Speed:")); m_host_chunked_upload_limit_box = new QSpinBox; - m_host_server_browser = new QCheckBox(tr("Show in server browser")); m_host_server_name = new QLineEdit; - m_host_server_password = new QLineEdit; - m_host_server_region = new QComboBox; #ifdef USE_UPNP m_host_upnp = new QCheckBox(tr("Forward port (UPnP)")); @@ -148,41 +205,17 @@ void NetPlaySetupDialog::CreateMainLayout() m_host_button = new NonDefaultQPushButton(tr("Host")); m_host_port_box->setMaximum(65535); - m_host_force_port_box->setMaximum(65535); - m_host_chunked_upload_limit_box->setRange(1, 1000000); - m_host_chunked_upload_limit_box->setSingleStep(100); - m_host_chunked_upload_limit_box->setSuffix(QStringLiteral(" kbps")); - - m_host_chunked_upload_limit_check->setToolTip(tr( - "This will limit the speed of chunked uploading per client, which is used for save sync.")); m_host_server_name->setToolTip(tr("Name of your session shown in the server browser")); m_host_server_name->setPlaceholderText(tr("Name")); - m_host_server_password->setToolTip(tr("Password for joining your game (leave empty for none)")); - m_host_server_password->setPlaceholderText(tr("Password")); - for (const auto& region : NetPlayIndex::GetRegions()) - { - m_host_server_region->addItem( - tr("%1 (%2)").arg(tr(region.second.c_str())).arg(QString::fromStdString(region.first)), - QString::fromStdString(region.first)); - } - host_layout->addWidget(m_host_port_label, 0, 0); - host_layout->addWidget(m_host_port_box, 0, 1); + host_layout->addWidget(m_host_port_box, 0, 0, Qt::AlignLeft); #ifdef USE_UPNP - host_layout->addWidget(m_host_upnp, 0, 2); + host_layout->addWidget(m_host_upnp, 0, 5, Qt::AlignRight); #endif - host_layout->addWidget(m_host_server_browser, 1, 0); - host_layout->addWidget(m_host_server_region, 1, 1); - host_layout->addWidget(m_host_server_name, 1, 2); - host_layout->addWidget(m_host_server_password, 1, 3); host_layout->addWidget(m_host_games, 2, 0, 1, -1); - host_layout->addWidget(m_host_force_port_check, 3, 0); - host_layout->addWidget(m_host_force_port_box, 3, 1, Qt::AlignLeft); - host_layout->addWidget(m_host_chunked_upload_limit_check, 4, 0); - host_layout->addWidget(m_host_chunked_upload_limit_box, 4, 1, Qt::AlignLeft); - host_layout->addWidget(m_host_button, 4, 3, 2, 1, Qt::AlignRight); + host_layout->addWidget(m_host_button, 4, 5, Qt::AlignRight); host_widget->setLayout(host_layout); @@ -200,10 +233,21 @@ void NetPlaySetupDialog::CreateMainLayout() // Tabs m_tab_widget->addTab(connection_widget, tr("Connect")); m_tab_widget->addTab(host_widget, tr("Host")); + m_tab_widget->addTab(browser_widget, tr("Browser")); setLayout(m_main_layout); } +NetPlaySetupDialog::~NetPlaySetupDialog() +{ + m_refresh_run.Set(false); + m_refresh_event.Set(); + if (m_refresh_thread.joinable()) + m_refresh_thread.join(); + + SaveSettings(); +} + void NetPlaySetupDialog::ConnectWidgets() { connect(m_connection_type, qOverload(&QComboBox::currentIndexChanged), this, @@ -222,23 +266,12 @@ void NetPlaySetupDialog::ConnectWidgets() m_host_games->item(index)->text()); }); + // refresh browser on tab changed + connect(m_tab_widget, &QTabWidget::currentChanged, this, &NetPlaySetupDialog::RefreshBrowser); + connect(m_host_games, &QListWidget::itemDoubleClicked, this, &NetPlaySetupDialog::accept); - connect(m_host_force_port_check, &QCheckBox::toggled, - [this](bool value) { m_host_force_port_box->setEnabled(value); }); - connect(m_host_chunked_upload_limit_check, &QCheckBox::toggled, this, [this](bool value) { - m_host_chunked_upload_limit_box->setEnabled(value); - SaveSettings(); - }); - connect(m_host_chunked_upload_limit_box, qOverload(&QSpinBox::valueChanged), this, - &NetPlaySetupDialog::SaveSettings); - - connect(m_host_server_browser, &QCheckBox::toggled, this, &NetPlaySetupDialog::SaveSettings); connect(m_host_server_name, &QLineEdit::textChanged, this, &NetPlaySetupDialog::SaveSettings); - connect(m_host_server_password, &QLineEdit::textChanged, this, &NetPlaySetupDialog::SaveSettings); - connect(m_host_server_region, - static_cast(&QComboBox::currentIndexChanged), this, - &NetPlaySetupDialog::SaveSettings); #ifdef USE_UPNP connect(m_host_upnp, &QCheckBox::stateChanged, this, &NetPlaySetupDialog::SaveSettings); @@ -249,11 +282,26 @@ void NetPlaySetupDialog::ConnectWidgets() connect(m_button_box, &QDialogButtonBox::rejected, this, &QDialog::reject); connect(m_reset_traversal_button, &QPushButton::clicked, this, &NetPlaySetupDialog::ResetTraversalHost); - connect(m_host_server_browser, &QCheckBox::toggled, this, [this](bool value) { - m_host_server_region->setEnabled(value); - m_host_server_name->setEnabled(value); - m_host_server_password->setEnabled(value); - }); + + // Browser Stuff + connect(m_region_combo, qOverload(&QComboBox::currentIndexChanged), this, + &NetPlaySetupDialog::RefreshBrowser); + + connect(m_button_refresh, &QPushButton::clicked, this, &NetPlaySetupDialog::RefreshBrowser); + + connect(m_radio_all, &QRadioButton::toggled, this, &NetPlaySetupDialog::RefreshBrowser); + connect(m_radio_private, &QRadioButton::toggled, this, &NetPlaySetupDialog::RefreshBrowser); + connect(m_check_hide_ingame, &QRadioButton::toggled, this, &NetPlaySetupDialog::RefreshBrowser); + + connect(m_edit_name, &QLineEdit::textChanged, this, &NetPlaySetupDialog::RefreshBrowser); + + connect(m_table_widget, &QTableWidget::itemDoubleClicked, this, + &NetPlaySetupDialog::acceptBrowser); + + connect(this, &NetPlaySetupDialog::UpdateStatusRequestedBrowser, this, + &NetPlaySetupDialog::OnUpdateStatusRequestedBrowser, Qt::QueuedConnection); + connect(this, &NetPlaySetupDialog::UpdateListRequestedBrowser, this, + &NetPlaySetupDialog::OnUpdateListRequestedBrowser, Qt::QueuedConnection); } void NetPlaySetupDialog::SaveSettings() @@ -271,21 +319,27 @@ void NetPlaySetupDialog::SaveSettings() Config::SetBaseOrCurrent(Config::NETPLAY_USE_UPNP, m_host_upnp->isChecked()); #endif - if (m_host_force_port_check->isChecked()) - Config::SetBaseOrCurrent(Config::NETPLAY_LISTEN_PORT, - static_cast(m_host_force_port_box->value())); - - Config::SetBaseOrCurrent(Config::NETPLAY_ENABLE_CHUNKED_UPLOAD_LIMIT, - m_host_chunked_upload_limit_check->isChecked()); - Config::SetBaseOrCurrent(Config::NETPLAY_CHUNKED_UPLOAD_LIMIT, - m_host_chunked_upload_limit_box->value()); - - Config::SetBaseOrCurrent(Config::NETPLAY_USE_INDEX, m_host_server_browser->isChecked()); - Config::SetBaseOrCurrent(Config::NETPLAY_INDEX_REGION, - m_host_server_region->currentData().toString().toStdString()); + Config::SetBaseOrCurrent(Config::NETPLAY_INDEX_REGION, "NA"); Config::SetBaseOrCurrent(Config::NETPLAY_INDEX_NAME, m_host_server_name->text().toStdString()); - Config::SetBaseOrCurrent(Config::NETPLAY_INDEX_PASSWORD, - m_host_server_password->text().toStdString()); + Config::SetBaseOrCurrent(Config::NETPLAY_INDEX_PASSWORD, ""); + + + // Browser Stuff + auto& settings = Settings::Instance().GetQSettings(); + + settings.setValue(QStringLiteral("netplaybrowser/geometry"), saveGeometry()); + settings.setValue(QStringLiteral("netplaybrowser/region"), m_region_combo->currentText()); + settings.setValue(QStringLiteral("netplaybrowser/name"), m_edit_name->text()); + + QString visibility(QStringLiteral("all")); + if (m_radio_public->isChecked()) + visibility = QStringLiteral("public"); + else if (m_radio_private->isChecked()) + visibility = QStringLiteral("private"); + settings.setValue(QStringLiteral("netplaybrowser/visibility"), visibility); + + settings.setValue(QStringLiteral("netplaybrowser/hide_incompatible"), true); + settings.setValue(QStringLiteral("netplaybrowser/hide_ingame"), m_check_hide_ingame->isChecked()); } void NetPlaySetupDialog::OnConnectionTypeChanged(int index) @@ -293,14 +347,10 @@ void NetPlaySetupDialog::OnConnectionTypeChanged(int index) m_connect_port_box->setHidden(index != 0); m_connect_port_label->setHidden(index != 0); - m_host_port_label->setHidden(index != 0); m_host_port_box->setHidden(index != 0); #ifdef USE_UPNP m_host_upnp->setHidden(index != 0); #endif - m_host_force_port_check->setHidden(index == 0); - m_host_force_port_box->setHidden(index == 0); - m_reset_traversal_button->setHidden(index == 0); std::string address = @@ -315,6 +365,16 @@ void NetPlaySetupDialog::OnConnectionTypeChanged(int index) void NetPlaySetupDialog::show() { + // Here i'm setting the lobby name if it's empty to make + // NetPlay sessions start more easily for first time players + if (m_host_server_name->text().isEmpty()) + { + std::string nickname = Config::Get(Config::NETPLAY_NICKNAME); + m_host_server_name->setText(QString::fromStdString(nickname)); + } + m_connection_type->setCurrentIndex(1); + m_tab_widget->setCurrentIndex(2); // start on browser + PopulateGameList(); QDialog::show(); } @@ -335,20 +395,6 @@ void NetPlaySetupDialog::accept() return; } - if (m_host_server_browser->isChecked() && m_host_server_name->text().isEmpty()) - { - ModalMessageBox::critical(this, tr("Error"), tr("You must provide a name for your session!")); - return; - } - - if (m_host_server_browser->isChecked() && - m_host_server_region->currentData().toString().isEmpty()) - { - ModalMessageBox::critical(this, tr("Error"), - tr("You must provide a region for your session!")); - return; - } - emit Host(*items[0]->data(Qt::UserRole).value>()); } } @@ -391,3 +437,176 @@ void NetPlaySetupDialog::ResetTraversalHost() .arg(QString::fromStdString(Config::NETPLAY_TRAVERSAL_SERVER.GetDefaultValue()), QString::number(Config::NETPLAY_TRAVERSAL_PORT.GetDefaultValue()))); } + +void NetPlaySetupDialog::RefreshBrowser() +{ + std::map filters; + + if (!m_edit_name->text().isEmpty()) + filters["name"] = m_edit_name->text().toStdString(); + + if (true) + filters["version"] = Common::GetScmDescStr(); + + if (!m_radio_all->isChecked()) + filters["password"] = std::to_string(m_radio_private->isChecked()); + + if (m_region_combo->currentIndex() != 0) + filters["region"] = m_region_combo->currentData().toString().toStdString(); + + if (m_check_hide_ingame->isChecked()) + filters["in_game"] = "0"; + + std::unique_lock lock(m_refresh_filters_mutex); + m_refresh_filters = std::move(filters); + m_refresh_event.Set(); + SaveSettings(); +} + +void NetPlaySetupDialog::RefreshLoopBrowser() +{ + while (m_refresh_run.IsSet()) + { + m_refresh_event.Wait(); + + std::unique_lock lock(m_refresh_filters_mutex); + if (m_refresh_filters) + { + auto filters = std::move(*m_refresh_filters); + m_refresh_filters.reset(); + + lock.unlock(); + + emit UpdateStatusRequestedBrowser(tr("Refreshing...")); + + NetPlayIndex client; + + auto entries = client.List(filters); + + if (entries) + { + emit UpdateListRequestedBrowser(std::move(*entries)); + } + else + { + emit UpdateStatusRequestedBrowser(tr("Error obtaining session list: %1") + .arg(QString::fromStdString(client.GetLastError()))); + } + } + } +} + +void NetPlaySetupDialog::UpdateListBrowser() +{ + const int session_count = static_cast(m_sessions.size()); + + m_table_widget->clear(); + m_table_widget->setColumnCount(4); + m_table_widget->setHorizontalHeaderLabels({ + tr("Name"), + tr("Game"), + tr("Players"), + tr("In-Game"), + }); + + auto* hor_header = m_table_widget->horizontalHeader(); + hor_header->setSectionResizeMode(0, QHeaderView::Stretch); + hor_header->setSectionResizeMode(0, QHeaderView::Stretch); + hor_header->setSectionResizeMode(1, QHeaderView::Stretch); + hor_header->setSectionResizeMode(2, QHeaderView::ResizeToContents); + hor_header->setSectionResizeMode(3, QHeaderView::ResizeToContents); + hor_header->setHighlightSections(false); + + m_table_widget->setRowCount(session_count); + + for (int i = 0; i < session_count; i++) + { + const auto& entry = m_sessions[i]; + + auto* name = new QTableWidgetItem(QString::fromStdString(entry.name)); + auto* in_game = new QTableWidgetItem(entry.in_game ? tr("Yes") : tr("No")); + auto* game_id = new QTableWidgetItem(QString::fromStdString(entry.game_id)); + auto* player_count = new QTableWidgetItem(QStringLiteral("%1").arg(entry.player_count)); + + const bool enabled = Common::GetScmDescStr() == entry.version; + + for (const auto& item : {name, game_id, player_count, in_game}) + item->setFlags(enabled ? Qt::ItemIsEnabled | Qt::ItemIsSelectable : Qt::NoItemFlags); + + m_table_widget->setItem(i, 0, name); + m_table_widget->setItem(i, 1, game_id); + m_table_widget->setItem(i, 2, player_count); + m_table_widget->setItem(i, 3, in_game); + + } + + m_status_label->setText( + (session_count == 1 ? tr("%1 session found") : tr("%1 sessions found")).arg(session_count)); +} + +void NetPlaySetupDialog::OnSelectionChangedBrowser() +{ + return; +} + +void NetPlaySetupDialog::OnUpdateStatusRequestedBrowser(const QString& status) +{ + m_status_label->setText(status); +} + +void NetPlaySetupDialog::OnUpdateListRequestedBrowser(std::vector sessions) +{ + m_sessions = std::move(sessions); + UpdateListBrowser(); +} + +void NetPlaySetupDialog::acceptBrowser() +{ + if (m_table_widget->selectedItems().isEmpty()) + return; + + const int index = m_table_widget->selectedItems()[0]->row(); + + NetPlaySession& session = m_sessions[index]; + + std::string server_id = session.server_id; + + if (m_sessions[index].has_password) + { + auto* dialog = new QInputDialog(this); + + dialog->setWindowFlags(dialog->windowFlags() & ~Qt::WindowContextHelpButtonHint); + dialog->setWindowTitle(tr("Enter password")); + dialog->setLabelText(tr("This session requires a password:")); + dialog->setWindowModality(Qt::WindowModal); + dialog->setTextEchoMode(QLineEdit::Password); + + if (dialog->exec() != QDialog::Accepted) + return; + + const std::string password = dialog->textValue().toStdString(); + + auto decrypted_id = session.DecryptID(password); + + if (!decrypted_id) + { + ModalMessageBox::warning(this, tr("Error"), tr("Invalid password provided.")); + return; + } + + server_id = decrypted_id.value(); + } + + QDialog::accept(); + + Config::SetBaseOrCurrent(Config::NETPLAY_TRAVERSAL_CHOICE, session.method); + + Config::SetBaseOrCurrent(Config::NETPLAY_CONNECT_PORT, session.port); + + if (session.method == "traversal") + Config::SetBaseOrCurrent(Config::NETPLAY_HOST_CODE, server_id); + else + Config::SetBaseOrCurrent(Config::NETPLAY_ADDRESS, server_id); + + emit JoinBrowser(); +} diff --git a/Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.h b/Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.h index fbc82ab22b..56b737f344 100644 --- a/Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.h +++ b/Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.h @@ -6,6 +6,7 @@ #include #include "DolphinQt/GameList/GameListModel.h" +#include "UICommon/NetPlayIndex.h" class QCheckBox; class QComboBox; @@ -17,6 +18,9 @@ class QGridLayout; class QPushButton; class QSpinBox; class QTabWidget; +class QGroupBox; +class QTableWidget; +class QRadioButton; namespace UICommon { @@ -28,13 +32,17 @@ class NetPlaySetupDialog : public QDialog Q_OBJECT public: explicit NetPlaySetupDialog(const GameListModel& game_list_model, QWidget* parent); + ~NetPlaySetupDialog(); void accept() override; void show(); signals: bool Join(); + void JoinBrowser(); bool Host(const UICommon::GameFile& game); + void UpdateStatusRequestedBrowser(const QString& status); + void UpdateListRequestedBrowser(std::vector sessions); private: void CreateMainLayout(); @@ -42,6 +50,15 @@ private: void PopulateGameList(); void ResetTraversalHost(); + // Browser Stuff + void RefreshBrowser(); + void RefreshLoopBrowser(); + void UpdateListBrowser(); + void OnSelectionChangedBrowser(); + void OnUpdateStatusRequestedBrowser(const QString& status); + void OnUpdateListRequestedBrowser(std::vector sessions); + void acceptBrowser(); + void SaveSettings(); void OnConnectionTypeChanged(int index); @@ -62,18 +79,32 @@ private: QPushButton* m_connect_button; // Host Widget - QLabel* m_host_port_label; QSpinBox* m_host_port_box; QListWidget* m_host_games; QPushButton* m_host_button; - QCheckBox* m_host_force_port_check; - QSpinBox* m_host_force_port_box; QCheckBox* m_host_chunked_upload_limit_check; QSpinBox* m_host_chunked_upload_limit_box; QCheckBox* m_host_server_browser; QLineEdit* m_host_server_name; - QLineEdit* m_host_server_password; - QComboBox* m_host_server_region; + + QTableWidget* m_table_widget; + QComboBox* m_region_combo; + QLabel* m_status_label; + QDialogButtonBox* m_b_button_box; + QPushButton* m_button_refresh; + QLineEdit* m_edit_name; + QCheckBox* m_check_hide_ingame; + QRadioButton* m_radio_all; + QRadioButton* m_radio_private; + QRadioButton* m_radio_public; + + std::vector m_sessions; + + std::thread m_refresh_thread; + std::optional> m_refresh_filters; + std::mutex m_refresh_filters_mutex; + Common::Flag m_refresh_run; + Common::Event m_refresh_event; #ifdef USE_UPNP QCheckBox* m_host_upnp; diff --git a/Source/Core/DolphinQt/Settings/GeneralPane.cpp b/Source/Core/DolphinQt/Settings/GeneralPane.cpp index f958a383ec..3feead58bd 100644 --- a/Source/Core/DolphinQt/Settings/GeneralPane.cpp +++ b/Source/Core/DolphinQt/Settings/GeneralPane.cpp @@ -65,9 +65,6 @@ void GeneralPane::CreateLayout() // Create layout here CreateBasic(); - if (AutoUpdateChecker::SystemSupportsAutoUpdates()) - CreateAutoUpdate(); - CreateFallbackRegion(); #if defined(USE_ANALYTICS) && USE_ANALYTICS @@ -175,25 +172,6 @@ void GeneralPane::CreateBasic() speed_limit_layout->addRow(tr("&Speed Limit:"), m_combobox_speedlimit); } -void GeneralPane::CreateAutoUpdate() -{ - auto* auto_update_group = new QGroupBox(tr("Auto Update Settings")); - auto* auto_update_group_layout = new QFormLayout; - auto_update_group->setLayout(auto_update_group_layout); - m_main_layout->addWidget(auto_update_group); - - auto_update_group_layout->setFormAlignment(Qt::AlignLeft | Qt::AlignTop); - auto_update_group_layout->setFieldGrowthPolicy(QFormLayout::AllNonFixedFieldsGrow); - - m_combobox_update_track = new QComboBox(this); - - auto_update_group_layout->addRow(tr("&Auto Update:"), m_combobox_update_track); - - for (const QString& option : - {tr("Don't Update"), tr("Beta (once a month)"), tr("Dev (multiple times a day)")}) - m_combobox_update_track->addItem(option); -} - void GeneralPane::CreateFallbackRegion() { auto* fallback_region_group = new QGroupBox(tr("Fallback Region")); diff --git a/Source/Core/DolphinQt/Settings/GeneralPane.h b/Source/Core/DolphinQt/Settings/GeneralPane.h index 476cc67510..0ee62ecf8c 100644 --- a/Source/Core/DolphinQt/Settings/GeneralPane.h +++ b/Source/Core/DolphinQt/Settings/GeneralPane.h @@ -28,7 +28,7 @@ private: void CreateLayout(); void ConnectLayout(); void CreateBasic(); - void CreateAutoUpdate(); + //void CreateAutoUpdate(); void CreateFallbackRegion(); void LoadConfig(); diff --git a/Source/Core/DolphinQt/Settings/InterfacePane.cpp b/Source/Core/DolphinQt/Settings/InterfacePane.cpp index f7590872cf..e7e73f30c0 100644 --- a/Source/Core/DolphinQt/Settings/InterfacePane.cpp +++ b/Source/Core/DolphinQt/Settings/InterfacePane.cpp @@ -128,7 +128,7 @@ void InterfacePane::CreateUI() // User Style Combobox m_combobox_userstyle = new QComboBox; - m_label_userstyle = new QLabel(tr("User Style:")); + m_label_userstyle = new QLabel(tr("Window Theme:")); combobox_layout->addRow(m_label_userstyle, m_combobox_userstyle); auto userstyle_search_results = Common::DoFileSearch({File::GetUserPath(D_STYLES_IDX)}); @@ -210,6 +210,7 @@ void InterfacePane::ConnectLayout() { connect(m_checkbox_use_builtin_title_database, &QCheckBox::toggled, this, &InterfacePane::OnSaveConfig); + connect(m_checkbox_use_userstyle, &QCheckBox::toggled, this, &InterfacePane::OnSaveConfig); connect(m_checkbox_use_covers, &QCheckBox::toggled, this, &InterfacePane::OnSaveConfig); connect(m_checkbox_disable_screensaver, &QCheckBox::toggled, this, &InterfacePane::OnSaveConfig); connect(m_checkbox_show_debugging_ui, &QCheckBox::toggled, this, &InterfacePane::OnSaveConfig); diff --git a/Source/Core/DolphinQt/ToolBar.cpp b/Source/Core/DolphinQt/ToolBar.cpp index 49f384848d..a72a4db63a 100644 --- a/Source/Core/DolphinQt/ToolBar.cpp +++ b/Source/Core/DolphinQt/ToolBar.cpp @@ -118,9 +118,12 @@ void ToolBar::MakeActions() addSeparator(); - m_pause_play_action = addAction(tr("Play"), this, &ToolBar::PlayPressed); - + m_pause_play_action = addAction(tr("Local Play"), this, &ToolBar::PlayPressed); + m_start_netplay_action = addAction(tr("Online Play"), this, &ToolBar::StartNetPlayPressed); m_stop_action = addAction(tr("Stop"), this, &ToolBar::StopPressed); + + addSeparator(); + m_fullscreen_action = addAction(tr("FullScr"), this, &ToolBar::FullScreenPressed); m_screenshot_action = addAction(tr("ScrShot"), this, &ToolBar::ScreenShotPressed); @@ -162,7 +165,7 @@ void ToolBar::UpdatePausePlayButtonState(const bool playing_state) else { disconnect(m_pause_play_action, 0, 0, 0); - m_pause_play_action->setText(tr("Play")); + m_pause_play_action->setText(tr("Local Play")); m_pause_play_action->setIcon(Resources::GetScaledThemeIcon("play")); connect(m_pause_play_action, &QAction::triggered, this, &ToolBar::PlayPressed); } @@ -193,4 +196,5 @@ void ToolBar::UpdateIcons() m_config_action->setIcon(Resources::GetScaledThemeIcon("config")); m_controllers_action->setIcon(Resources::GetScaledThemeIcon("classic")); m_graphics_action->setIcon(Resources::GetScaledThemeIcon("graphics")); + m_start_netplay_action->setIcon(Resources::GetScaledThemeIcon("wifi")); } diff --git a/Source/Core/DolphinQt/ToolBar.h b/Source/Core/DolphinQt/ToolBar.h index 38aa98004f..8aa3fa73c4 100644 --- a/Source/Core/DolphinQt/ToolBar.h +++ b/Source/Core/DolphinQt/ToolBar.h @@ -33,6 +33,8 @@ signals: void ControllersPressed(); void GraphicsPressed(); + void StartNetPlayPressed(); + void StepPressed(); void StepOverPressed(); void StepOutPressed(); @@ -58,6 +60,8 @@ private: QAction* m_controllers_action; QAction* m_graphics_action; + QAction* m_start_netplay_action; + QAction* m_step_action; QAction* m_step_over_action; QAction* m_step_out_action; diff --git a/Source/Core/UICommon/AutoUpdate.cpp b/Source/Core/UICommon/AutoUpdate.cpp index a638ae33a6..6c8663b610 100644 --- a/Source/Core/UICommon/AutoUpdate.cpp +++ b/Source/Core/UICommon/AutoUpdate.cpp @@ -195,65 +195,17 @@ void AutoUpdateChecker::CheckForUpdate(std::string_view update_track, version_hash, GetPlatformID()); const bool is_manual_check = check_type == CheckType::Manual; - - Common::HttpRequest req{std::chrono::seconds{10}}; - auto resp = req.Get(url); - if (!resp) - { - if (is_manual_check) - CriticalAlertFmtT("Unable to contact update server."); - return; - } - const std::string contents(reinterpret_cast(resp->data()), resp->size()); - INFO_LOG_FMT(COMMON, "Auto-update JSON response: {}", contents); - - picojson::value json; - const std::string err = picojson::parse(json, contents); - if (!err.empty()) - { - CriticalAlertFmtT("Invalid JSON received from auto-update service : {0}", err); - return; - } - picojson::object obj = json.get(); - - if (obj["status"].get() != "outdated") - { - if (is_manual_check) - SuccessAlertFmtT("You are running the latest version available on this update track."); - INFO_LOG_FMT(COMMON, "Auto-update status: we are up to date."); - return; - } - - NewVersionInformation nvi; - nvi.this_manifest_url = obj["old"].get()["manifest"].get(); - nvi.next_manifest_url = obj["new"].get()["manifest"].get(); - nvi.content_store_url = obj["content-store"].get(); - nvi.new_shortrev = obj["new"].get()["name"].get(); - nvi.new_hash = obj["new"].get()["hash"].get(); - - // TODO: generate the HTML changelog from the JSON information. - nvi.changelog_html = GenerateChangelog(obj["changelog"].get()); - - if (std::getenv("DOLPHIN_UPDATE_TEST_DONE")) - { - // We are at end of updater test flow, send a message to server, which will kill us. - req.Get(fmt::format("{}/update-test-done/{}", GetUpdateServerUrl(), GetOwnProcessId())); - } - else - { - OnUpdateAvailable(nvi); - } } void AutoUpdateChecker::TriggerUpdate(const AutoUpdateChecker::NewVersionInformation& info, const AutoUpdateChecker::RestartMode restart_mode) { // Check to make sure we don't already have an update triggered - if (s_update_triggered) + /* if (s_update_triggered) { WARN_LOG_FMT(COMMON, "Auto-update: received a redundant trigger request, ignoring"); return; - } + }*/ s_update_triggered = true; #ifdef OS_SUPPORTS_UPDATER diff --git a/Source/Core/UICommon/DiscordPresence.cpp b/Source/Core/UICommon/DiscordPresence.cpp index a863354bc1..5d27bdcded 100644 --- a/Source/Core/UICommon/DiscordPresence.cpp +++ b/Source/Core/UICommon/DiscordPresence.cpp @@ -3,6 +3,9 @@ #include "UICommon/DiscordPresence.h" +#include "Common/Hash.h" +#include "Common/StringUtil.h" + #include "Core/Config/NetplaySettings.h" #include "Core/Config/UISettings.h" #include "Core/ConfigManager.h" @@ -109,11 +112,6 @@ std::string ArtworkForGameId(const std::string& gameid) "GFT", // GFTE01: Mario Golf: Toadstool Tour "RMC", // RMCE01: Mario Kart Wii "GM4", // GM4E01: Mario Kart: Double Dash!! - "GMP", // GMPE01: Mario Party 4 - "GP5", // GP5E01: Mario Party 5 - "GP6", // GP6E01: Mario Party 6 - "GP7", // GP7E01: Mario Party 7 - "RM8", // RM8E01: Mario Party 8 "SSQ", // SSQE01: Mario Party 9 "GOM", // GOME01: Mario Power Tennis "GYQ", // GYQE01: Mario Superstar Baseball @@ -191,7 +189,8 @@ void Init() handlers.ready = HandleDiscordReady; handlers.joinRequest = HandleDiscordJoinRequest; handlers.joinGame = HandleDiscordJoin; - Discord_Initialize(DEFAULT_CLIENT_ID.c_str(), &handlers, 1, nullptr); + // The number is the client ID for Dolphin, it's used for images and the application name + Discord_Initialize("888655408623943731", &handlers, 1, nullptr); UpdateDiscordPresence(); #endif } @@ -283,33 +282,26 @@ void UpdateDiscordPresence(int party_size, SecretType type, const std::string& s DiscordRichPresence discord_presence = {}; if (game_artwork.empty()) { - discord_presence.largeImageKey = "dolphin_logo"; - discord_presence.largeImageText = "Dolphin is an emulator for the GameCube and the Wii."; + discord_presence.largeImageKey = "dolphin"; } else { discord_presence.largeImageKey = game_artwork.c_str(); discord_presence.largeImageText = title.c_str(); - discord_presence.smallImageKey = "dolphin_logo"; - discord_presence.smallImageText = "Dolphin is an emulator for the GameCube and the Wii."; + discord_presence.smallImageKey = "dolphin"; } discord_presence.details = title.empty() ? "Not in-game" : title.c_str(); - discord_presence.startTimestamp = std::chrono::duration_cast( - std::chrono::system_clock::now().time_since_epoch()) - .count(); if (party_size > 0) { if (party_size < 4) { - discord_presence.state = "In a party"; discord_presence.partySize = party_size; discord_presence.partyMax = 4; } else { // others can still join to spectate - discord_presence.state = "In a full party"; discord_presence.partySize = party_size; // Note: joining still works without partyMax } diff --git a/Source/Core/UICommon/UICommon.cpp b/Source/Core/UICommon/UICommon.cpp index 6b345e3b81..adba0fba7b 100644 --- a/Source/Core/UICommon/UICommon.cpp +++ b/Source/Core/UICommon/UICommon.cpp @@ -339,60 +339,11 @@ void SetUserDirectory(std::string custom_path) local = local != 0 || File::Exists(File::GetExeDirectory() + DIR_SEP "portable.txt"); - // Attempt to check if the old User directory exists in Documents. - wil::unique_cotaskmem_string documents; - bool documents_found = SUCCEEDED( - SHGetKnownFolderPath(FOLDERID_Documents, KF_FLAG_DEFAULT, nullptr, documents.put())); + // Get Documents path in case we need it. + // TODO: Maybe use WIL when it's available? + PWSTR my_documents = nullptr; - std::optional old_user_folder; - if (documents_found) - { - old_user_folder = TStrToUTF8(documents.get()) + DIR_SEP NORMAL_USER_DIR DIR_SEP; - } - - if (local) // Case 1-2 - { - user_path = File::GetExeDirectory() + DIR_SEP PORTABLE_USER_DIR DIR_SEP; - } - else if (configPath) // Case 3 - { - user_path = TStrToUTF8(configPath.get()); - } - else if (old_user_folder && File::Exists(old_user_folder.value())) // Case 4 - { - user_path = old_user_folder.value(); - } - else if (appdata_found) // Case 5 - { - user_path = TStrToUTF8(appdata.get()) + DIR_SEP NORMAL_USER_DIR DIR_SEP; - - // Set the UserConfigPath value in the registry for backwards compatibility with older Dolphin - // builds, which will look for the default User directory in Documents. If we set this key, - // they will use this as the User directory instead. - // (If we're in this case, then this key doesn't exist, so it's OK to set it.) - std::wstring wstr_path = UTF8ToWString(user_path); - RegSetKeyValueW(HKEY_CURRENT_USER, TEXT("Software\\Dolphin Emulator"), TEXT("UserConfigPath"), - REG_SZ, wstr_path.c_str(), - static_cast((wstr_path.size() + 1) * sizeof(wchar_t))); - } - else // Case 6 - { - user_path = File::GetExeDirectory() + DIR_SEP PORTABLE_USER_DIR DIR_SEP; - } -#else // ifndef STEAM - if (File::Exists(File::GetExeDirectory() + DIR_SEP "portable.txt")) // Case 1 - { - user_path = File::GetExeDirectory() + DIR_SEP PORTABLE_USER_DIR DIR_SEP; - } - else if (appdata_found) // Case 2 - { - user_path = TStrToUTF8(appdata.get()) + DIR_SEP NORMAL_USER_DIR DIR_SEP; - } - else // Case 3 - { - user_path = File::GetExeDirectory() + DIR_SEP PORTABLE_USER_DIR DIR_SEP; - } -#endif + user_path = File::GetExeDirectory() + DIR_SEP USERDATA_DIR DIR_SEP; #else if (File::IsDirectory(ROOT_DIR DIR_SEP EMBEDDED_USER_DIR)) diff --git a/Source/Core/VideoCommon/HiresTextures.cpp b/Source/Core/VideoCommon/HiresTextures.cpp index 0227105d19..37dd3ef228 100644 --- a/Source/Core/VideoCommon/HiresTextures.cpp +++ b/Source/Core/VideoCommon/HiresTextures.cpp @@ -197,7 +197,7 @@ void HiresTexture::Prefetch() if (size_sum > max_mem) { - Config::SetCurrent(Config::GFX_HIRES_TEXTURES, false); + Config::SetCurrent(Config::GFX_HIRES_TEXTURES, true); OSD::AddMessage( fmt::format( diff --git a/Source/dolphin-emu.sln b/Source/dolphin-emu.sln index eae84c8a7d..ceb3d670bc 100644 --- a/Source/dolphin-emu.sln +++ b/Source/dolphin-emu.sln @@ -35,8 +35,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SoundTouch", "..\Externals\ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mbedTLS", "..\Externals\mbedtls\mbedTLS.vcxproj", "{BDB6578B-0691-4E80-A46C-DF21639FD3B8}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SCMRevGen", "Core\Common\SCMRevGen.vcxproj", "{41279555-F94F-4EBC-99DE-AF863C10C5C4}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SFML_Network", "..\Externals\SFML\build\vc2010\SFML_Network.vcxproj", "{93D73454-2512-424E-9CDA-4BB357FE13DD}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libusb-1.0", "..\Externals\libusb\libusb-1.0.vcxproj", "{349EE8F9-7D25-4909-AAF5-FF3FADE72187}" @@ -86,6 +84,7 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FatFs", "..\Externals\FatFs\FatFs.vcxproj", "{3F17D282-A77D-4931-B844-903AD0809A5E}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spng", "..\Externals\libspng\spng.vcxproj", "{447B7B1E-1D74-4AEF-B2B9-6EB41C5D5313}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SCMRevGen", "Core\Common\SCMRevGen.vcxproj", "{41279555-F94F-4EBC-99DE-AF863C10C5C4}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -211,14 +210,6 @@ Global {BDB6578B-0691-4E80-A46C-DF21639FD3B8}.Release|ARM64.Build.0 = Release|ARM64 {BDB6578B-0691-4E80-A46C-DF21639FD3B8}.Release|x64.ActiveCfg = Release|x64 {BDB6578B-0691-4E80-A46C-DF21639FD3B8}.Release|x64.Build.0 = Release|x64 - {41279555-F94F-4EBC-99DE-AF863C10C5C4}.Debug|ARM64.ActiveCfg = Debug|ARM64 - {41279555-F94F-4EBC-99DE-AF863C10C5C4}.Debug|ARM64.Build.0 = Debug|ARM64 - {41279555-F94F-4EBC-99DE-AF863C10C5C4}.Debug|x64.ActiveCfg = Debug|x64 - {41279555-F94F-4EBC-99DE-AF863C10C5C4}.Debug|x64.Build.0 = Debug|x64 - {41279555-F94F-4EBC-99DE-AF863C10C5C4}.Release|ARM64.ActiveCfg = Release|ARM64 - {41279555-F94F-4EBC-99DE-AF863C10C5C4}.Release|ARM64.Build.0 = Release|ARM64 - {41279555-F94F-4EBC-99DE-AF863C10C5C4}.Release|x64.ActiveCfg = Release|x64 - {41279555-F94F-4EBC-99DE-AF863C10C5C4}.Release|x64.Build.0 = Release|x64 {93D73454-2512-424E-9CDA-4BB357FE13DD}.Debug|ARM64.ActiveCfg = Debug|ARM64 {93D73454-2512-424E-9CDA-4BB357FE13DD}.Debug|ARM64.Build.0 = Debug|ARM64 {93D73454-2512-424E-9CDA-4BB357FE13DD}.Debug|x64.ActiveCfg = Debug|x64 @@ -419,6 +410,14 @@ Global {447B7B1E-1D74-4AEF-B2B9-6EB41C5D5313}.Release|ARM64.Build.0 = Release|ARM64 {447B7B1E-1D74-4AEF-B2B9-6EB41C5D5313}.Release|x64.ActiveCfg = Release|x64 {447B7B1E-1D74-4AEF-B2B9-6EB41C5D5313}.Release|x64.Build.0 = Release|x64 + {41279555-F94F-4EBC-99DE-AF863C10C5C4}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {41279555-F94F-4EBC-99DE-AF863C10C5C4}.Debug|ARM64.Build.0 = Debug|ARM64 + {41279555-F94F-4EBC-99DE-AF863C10C5C4}.Debug|x64.ActiveCfg = Debug|x64 + {41279555-F94F-4EBC-99DE-AF863C10C5C4}.Debug|x64.Build.0 = Debug|x64 + {41279555-F94F-4EBC-99DE-AF863C10C5C4}.Release|ARM64.ActiveCfg = Release|ARM64 + {41279555-F94F-4EBC-99DE-AF863C10C5C4}.Release|ARM64.Build.0 = Release|ARM64 + {41279555-F94F-4EBC-99DE-AF863C10C5C4}.Release|x64.ActiveCfg = Release|x64 + {41279555-F94F-4EBC-99DE-AF863C10C5C4}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE