Skip to content

A fork of Dolphin MMJR2 - with added VBI Skip hack and further fixes ported over from Dolphin Official.

License

Notifications You must be signed in to change notification settings

Medard22/Dolphin-MMJR2-VBI

 
 

Repository files navigation

Dolphin MMJR2 - VBI Fork

This is a personal fork of Dolphin MMJR2. Initially, the goal of this fork was to implement Sam Belliveau's VBI Skip speed hack into the MMJR2 codebase, but has since grown into a semi-actively maintained project. My primary focus is preserving the older MMJR2 user interface, which I find more intuitive and user-friendly, and support for fractional scaling while integrating features and fixes from the upstream Dolphin repository.

Disclaimer

  • WARNING: This fork is based on older source code! It may introduce bugs of its own and the support I can give is very limited. If you are new to emulation or prefer stability, please use Official Dolphin.

Android Requirements

  • OS
    • Android 5.0 Lollipop or higher (SDK >= 21)).
  • Processor
    • A 64-bit ARM CPU supporting arm64-v8a ABI.
  • Graphics
    • A graphics processor that supports OpenGL ES 3.0 or higher. Performance varies heavily with driver quality.
    • A graphics processor that supports standard desktop OpenGL features is recommended for best performance.

Dolphin can only be installed on devices that satisfy the above requirements. Attempting to install on an unsupported device will fail and display an error message.

Additional Information

  • This user directory for this fork is created in /mmjr2-vbi/ at the root of your device.
  • The id of this fork is org.dolphinemu.mmjr. It may be installed together with Dolphin Official, but not with other MMJR2 forks.

Folder Structure

  • Cache: Game Covers, UID Caches and Shader Caches
  • Config: Configuration files
  • Dump: Anything dumped from Dolphin
  • GameSettings: Per-game custom configurations
  • GC: Memory cards and system BIOS
  • Load: Graphic Mods, Riivolution Patches, Custom Textures, WiiSDSync
  • Logs: Logs, if enabled
  • ResourcePacks: Android build doesn´t support Resource Packs, use Load folder instead
  • ScreenShots: Screenshots taken via Dolphin
  • StateSaves: Save States, if enabled
  • Wii: Wii NAND contents

Custom Textures

Custom textures have to be placed in the user directory under Load/Textures/[GameID]/. You can find the Game ID by long-pressing n the game and selecting "Details".

Riivolution Patches

Riivolution Patches have to be placed in the user directory under Load/Riivolution/[GameID]/. Once you have extracted the patches here, long press on the game and select Start with Riivolution Patches

Acknowledgments

A huge thank you to:

  • Dolphin Team: For their incredible work in making emulation possible on modern hardware. Your dedication and contributions are truly inspiring! 🐬👏
  • Original MMJR and MMJR2 Developers: For creating and maintaining these forks.
  • Lumince: For keeping MMJR2 alive and well for so long and letting me continue their work.
  • Sam Belliveau: For the VBI Skip speed hack that started this whole mess.

Last Notes

I work on this fork in my spare time and while I wouldn´t call myself a developer, it is a fun way to learn code and app development.

Any help is welcome. If you want to contribute, leave me a message in Discussions.

You can find the latest changelog here

Dolphin MMJR2 Fork

Mainly, this fork is meant for personal use. This repo's only function at the current time is to update MMJR2 to the latest Dolphin Offical Dev Source code without scoped storage changes merged. If you want scoped storage, go use Dolphin Official Builds. I have no use for scoped storage, nor any changes related to it. I wont be merging these changes. Have a nice day!

An Android-only performance-focused dolphin fork, rebased on top of latest dolphin development builds and reimplementing MMJ UX and performance improvements, plus adding our own.

Grab the latest build in the releases section, or check for new version in the in-app updater. Old MMJR v1.0 builds can be found at the old repository here. 1.0 and 2.0 builds can be installed without conflicts as they use different folders, but savestates are not compatible. We kindly ask you to avoid misusing GitHub Issues and Pull Requests.

This fork wouldn't be possible without the crazy amount of work that developers much more skilled than us put into Dolphin.

Dolphin - A GameCube and Wii Emulator

Homepage | Project Site | Buildbot | Forums | Wiki | GitHub Wiki | Issue Tracker | Coding Style | Transifex Page

Dolphin is an emulator for running GameCube and Wii games on Windows, Linux, macOS, and recent Android devices. It's licensed under the terms of the GNU General Public License, version 2 or later (GPLv2+).

Please read the FAQ before using Dolphin.

System Requirements

Desktop

  • OS
    • Windows (10 or higher).
    • Linux.
    • macOS (10.15 Catalina or higher).
    • Unix-like systems other than Linux are not officially supported but might work.
  • Processor
    • A CPU with SSE2 support.
    • A modern CPU (3 GHz and Dual Core, not older than 2008) is highly recommended.
  • Graphics
    • A reasonably modern graphics card (Direct3D 11.1 / OpenGL 3.3).
    • A graphics card that supports Direct3D 11.1 / OpenGL 4.4 is recommended.

Android

  • OS
    • Android (5.0 Lollipop or higher).
  • Processor
    • A processor with support for 64-bit applications (either ARMv8 or x86-64).
  • Graphics
    • A graphics processor that supports OpenGL ES 3.0 or higher. Performance varies heavily with driver quality.
    • A graphics processor that supports standard desktop OpenGL features is recommended for best performance.

Dolphin can only be installed on devices that satisfy the above requirements. Attempting to install on an unsupported device will fail and display an error message.

Building for Windows

Use the solution file Source/dolphin-emu.sln to build Dolphin on Windows. Dolphin targets the latest MSVC shipped with Visual Studio or Build Tools. Other compilers might be able to build Dolphin on Windows but have not been tested and are not recommended to be used. Git and latest Windows SDK must be installed when building.

Make sure to pull submodules before building:

git submodule update --init --recursive

The "Release" solution configuration includes performance optimizations for the best user experience but complicates debugging Dolphin. The "Debug" solution configuration is significantly slower, more verbose and less permissive but makes debugging Dolphin easier.

Building for Linux and macOS

Dolphin requires CMake for systems other than Windows. You need a recent version of GCC or Clang with decent c++20 support. CMake will inform you if your compiler is too old. Many libraries are bundled with Dolphin and used if they're not installed on your system. CMake will inform you if a bundled library is used or if you need to install any missing packages yourself. You may refer to the wiki for more information.

Make sure to pull submodules before building:

git submodule update --init --recursive

macOS Build Steps:

A binary supporting a single architecture can be built using the following steps:

  1. mkdir build
  2. cd build
  3. cmake ..
  4. make -j $(sysctl -n hw.logicalcpu)

An application bundle will be created in ./Binaries.

A script is also provided to build universal binaries supporting both x64 and ARM in the same application bundle using the following steps:

  1. mkdir build
  2. cd build
  3. python ../BuildMacOSUniversalBinary.py
  4. Universal binaries will be available in the universal folder

Doing this is more complex as it requires installation of library dependencies for both x64 and ARM (or universal library equivalents) and may require specifying additional arguments to point to relevant library locations. Execute BuildMacOSUniversalBinary.py --help for more details.

Linux Global Build Steps:

To install to your system.

  1. mkdir build
  2. cd build
  3. cmake ..
  4. make -j $(nproc)
  5. sudo make install

Linux Local Build Steps:

Useful for development as root access is not required.

  1. mkdir Build
  2. cd Build
  3. cmake .. -DLINUX_LOCAL_DEV=true
  4. make -j $(nproc)
  5. ln -s ../../Data/Sys Binaries/

Linux Portable Build Steps:

Can be stored on external storage and used on different Linux systems. Or useful for having multiple distinct Dolphin setups for testing/development/TAS.

  1. mkdir Build
  2. cd Build
  3. cmake .. -DLINUX_LOCAL_DEV=true
  4. make -j $(nproc)
  5. cp -r ../Data/Sys/ Binaries/
  6. touch Binaries/portable.txt

Building for Android

These instructions assume familiarity with Android development. If you do not have an Android dev environment set up, see AndroidSetup.md.

Make sure to pull submodules before building:

git submodule update --init --recursive

If using Android Studio, import the Gradle project located in ./Source/Android.

Android apps are compiled using a build system called Gradle. Dolphin's native component, however, is compiled using CMake. The Gradle script will attempt to run a CMake build automatically while building the Java code.

Uninstalling

On Windows, simply remove the extracted directory, unless it was installed with the NSIS installer, in which case you can uninstall Dolphin like any other Windows application.

Linux users can run cat install_manifest.txt | xargs -d '\n' rm as root from the build directory to uninstall Dolphin from their system.

macOS users can simply delete Dolphin.app to uninstall it.

Additionally, you'll want to remove the global user directory if you don't plan on reinstalling Dolphin.

Command Line Usage

Usage: Dolphin.exe [options]... [FILE]...

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -u USER, --user=USER  User folder path
  -m MOVIE, --movie=MOVIE
                        Play a movie file
  -e <file>, --exec=<file>
                        Load the specified file
  -n <16-character ASCII title ID>, --nand_title=<16-character ASCII title ID>
                        Launch a NAND title
  -C <System>.<Section>.<Key>=<Value>, --config=<System>.<Section>.<Key>=<Value>
                        Set a configuration option
  -s <file>, --save_state=<file>
                        Load the initial save state
  -d, --debugger        Show the debugger pane and additional View menu options
  -l, --logger          Open the logger
  -b, --batch           Run Dolphin without the user interface (Requires
                        --exec or --nand-title)
  -c, --confirm         Set Confirm on Stop
  -v VIDEO_BACKEND, --video_backend=VIDEO_BACKEND
                        Specify a video backend
  -a AUDIO_EMULATION, --audio_emulation=AUDIO_EMULATION
                        Choose audio emulation from [HLE|LLE]

Available DSP emulation engines are HLE (High Level Emulation) and LLE (Low Level Emulation). HLE is faster but less accurate whereas LLE is slower but close to perfect. Note that LLE has two submodes (Interpreter and Recompiler) but they cannot be selected from the command line.

Available video backends are "D3D" and "D3D12" (they are only available on Windows), "OGL", and "Vulkan". There's also "Null", which will not render anything, and "Software Renderer", which uses the CPU for rendering and is intended for debugging purposes only.

DolphinTool Usage

usage: dolphin-tool COMMAND -h

commands supported: [convert, verify, header]
Usage: convert [options]... [FILE]...

Options:
  -h, --help            show this help message and exit
  -u USER, --user=USER  User folder path, required for temporary processing
                        files.Will be automatically created if this option is
                        not set.
  -i FILE, --input=FILE
                        Path to disc image FILE.
  -o FILE, --output=FILE
                        Path to the destination FILE.
  -f FORMAT, --format=FORMAT
                        Container format to use. Default is RVZ. [iso|gcz|wia|rvz]
  -s, --scrub           Scrub junk data as part of conversion.
  -b BLOCK_SIZE, --block_size=BLOCK_SIZE
                        Block size for GCZ/WIA/RVZ formats, as an integer.
                        Suggested value for RVZ: 131072 (128 KiB)
  -c COMPRESSION, --compression=COMPRESSION
                        Compression method to use when converting to WIA/RVZ.
                        Suggested value for RVZ: zstd [none|zstd|bzip|lzma|lzma2]
  -l COMPRESSION_LEVEL, --compression_level=COMPRESSION_LEVEL
                        Level of compression for the selected method. Ignored
                        if 'none'. Suggested value for zstd: 5
Usage: verify [options]...

Options:
  -h, --help            show this help message and exit
  -u USER, --user=USER  User folder path, required for temporary processing
                        files.Will be automatically created if this option is
                        not set.
  -i FILE, --input=FILE
                        Path to disc image FILE.
  -a ALGORITHM, --algorithm=ALGORITHM
                        Optional. Compute and print the digest using the
                        selected algorithm, then exit. [crc32|md5|sha1]
Usage: header [options]...

Options:
  -h, --help            show this help message and exit
  -i FILE, --input=FILE
                        Path to disc image FILE.
  -b, --block_size      Optional. Print the block size of GCZ/WIA/RVZ formats,
then exit.
  -c, --compression     Optional. Print the compression method of GCZ/WIA/RVZ
                        formats, then exit.
  -l, --compression_level
                        Optional. Print the level of compression for WIA/RVZ
                        formats, then exit.

About

A fork of Dolphin MMJR2 - with added VBI Skip hack and further fixes ported over from Dolphin Official.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 89.2%
  • Java 5.3%
  • C 2.4%
  • CMake 1.2%
  • Objective-C++ 1.0%
  • GLSL 0.4%
  • Other 0.5%