commit 899bb500e1697c0a78bf37cdf4aae2b3c40a967c Author: twinaphex Date: Fri Feb 23 10:11:21 2018 +0100 Initial commit diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100644 index 00000000..055309c9 --- /dev/null +++ b/.github/CONTRIBUTING.md @@ -0,0 +1,20 @@ +# Contribute to the documentation + +The docs are written in [Markdown](https://en.wikipedia.org/wiki/Markdown) if you need help with the syntax use [this guide](https://guides.github.com/features/mastering-markdown/).
+Mkdocs uses some [Markdown extensions](http://www.mkdocs.org/user-guide/writing-your-docs/#markdown-extensions) that you may have to familiarize with. + +The documentation source is maintained via [Git](https://en.wikipedia.org/wiki/Git)
+For novice users that don't know how to use the command line you can use [Github Desktop](https://desktop.github.com/).
+For more info on how to use git [refer to their help](https://help.github.com/) + +In order to propose improvements to a document: + +1. [Clone the repo](https://github.com/libretro/docs) (If you are using [Github Desktop](https://desktop.github.com/), select Clone>Open in Desktop) +2. Make the changes and update your clone +3. Test, [follow the Building section to render the site](https://github.com/libretro/docs/blob/master/README.md#building) +4. Propose your changes using the button "New Pull Request" [in the docs repo](https://github.com/libretro/docs)
+make sure that you are comparing **your forks edited branch** to the **docs master branch** + +There is a To-Do list for libretro/docs [here](https://docs.libretro.com/meta/todo/) + +You can submit suggestions or issues regarding documentation at the [libretro/docs issue tracker](https://github.com/libretro/docs/issues) or in our [forum thread](https://forums.libretro.com/t/wip-adding-pages-to-documentation-site/10078/). diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..23b2b923 --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,11 @@ +# First and foremost consider this: +- Only documentation related issues should be filed here. Not RetroArch bugs, core bugs or game bugs. +- Before reporting a 404, refresh the doc a few times. + +## Documents + +[Add a list of documents that should be changed here.] + +### Proposed changes + +[What changes should be done to the documents.] diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..45ddf0ae --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +site/ diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..594eff31 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,8 @@ +language: python +python: + - "3.6" +install: + - pip install mkdocs + - pip install mkdocs-material +script: + - ./deploy diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..bd5bf969 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 libretro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..c9c98553 --- /dev/null +++ b/Makefile @@ -0,0 +1,15 @@ +MKDOCS_AVAILABLE := $(shell command -v mkdocs 2> /dev/null) + +build: dependencies + @mkdocs build + +start: dependencies + @mkdocs serve + +install: + pip install mkdocs mkdocs-material + +dependencies: +ifndef MKDOCS_AVAILABLE + $(error "mkdocs is not available. Use 'make install' to install dependencies.") +endif diff --git a/README.md b/README.md new file mode 100644 index 00000000..85785202 --- /dev/null +++ b/README.md @@ -0,0 +1,43 @@ +# Libretro Documentation + +This is the source for the [libretro documentation](https://docs.libretro.com), powered by [MkDocs](http://www.mkdocs.org/). + +[MkDocs documentation](http://www.mkdocs.org/) + +[Material for MkDocs documentation](https://squidfunk.github.io/mkdocs-material/) + +[Libretro Forums topic](https://forums.libretro.com/t/wip-adding-pages-to-documentation-site/10078) + +[To-do list](https://docs.libretro.com/meta/todo/) + +![travis](https://www.travis-ci.org/libretro/docs.svg?branch=master) + +## Building + +1. Make sure you have [Python](https://www.python.org/) and [pip](https://pip.pypa.io) installed + ``` + python --version + pip --version + ``` + +2. Install MkDocs + ``` + pip install mkdocs + ``` + +3. Install MkDocs-Material + ``` + pip install mkdocs-material + ``` + +4. Install PyMdown Extensions + ``` + pip install pymdown-extensions + ``` + +5. Build the site + ``` + mkdocs build + ``` + +6. The documentation will be built to the `site` directory diff --git a/deploy b/deploy new file mode 100644 index 00000000..0bedce27 --- /dev/null +++ b/deploy @@ -0,0 +1,4 @@ +#!/bin/sh + +git pull origin master +mkdocs build diff --git a/docs/compilation/3ds.md b/docs/compilation/3ds.md new file mode 100644 index 00000000..f5975bfd --- /dev/null +++ b/docs/compilation/3ds.md @@ -0,0 +1,88 @@ +# Nintendo 3DS Compilation / Development Guide + +## Environment configuration + +You need the homebrew Nintendo 3DS SDK libctru and DevkitARM toolchain installed. +If you are running windows you will need to install [MSYS2](http://www.msys2.org/) and point it to your devkitARM installation like this: + + Put these lines in RetroArch3DSEnv.sh + export DEVKITPRO="/c/devkitPro" + export DEVKITARM="$DEVKITPRO/devkitARM" + export CTRULIB="$DEVKITPRO/libctru" + export CTRBANNERTOOL="/c/Users/Emily/Desktop/RetroArchDev/CompatFiles/bannertool.exe" + bash +The custom bannertool is needed if you want to compile .cia builds due to a broken wav encoder in the windows version of bannertool included with RetroArch. +Before building RetroArch you will have to load MSYS2 and launch `RetroArch3DSEnv.sh`, then proceed as you would for linux. + +The working bannertool can be compiled from the sources [here](https://github.com/Steveice10/bannertool) using MSYS2. + +## RetroArch Compilation + +### Fetching RetroArch + +Clone RetroArch's repository from [GitHub](https://github.com/libretro/RetroArch) + + git clone https://github.com/libretro/RetroArch.git retroarch + cd retroarch + +For subsequent builds you only need to pull the changes from the repo + + cd retroarch + git pull + +To update your local copy from the repository run git pull + +### Building RetroArch separately + +First, you need to compile 'Salamander'. To compile Salamander (for 3DS) run: + + make -f Makefile.ctr.salamander + +Second, to compile RetroArch (for 3DS) run: + + make -f Makefile.ctr + +!!! Note + RetroArch on 3DS is statically linked. With statically linked RetroArch, each executable is a separate libretro core instead of the core being separately loaded from a single executable. A pre-existing libretro library needs to be present in the root directory in order to link RetroArch 3DS. This file needs to be called 'libretro_ctr.a'. + +After a few seconds/minutes you should be able to find a retroarch_ctr.elf and retroarch_ctr.dol file under that directory. + +### Building RetroArch in bulk + +Instead of building each core one by one, you can build all cores as a batch task. Run from the main 'retroarch' directory: + + cd dist-scripts + +!!! Note + Make sure that all the libretro cores that you want to compile are inside the 'dist-scripts' directory. + +Once inside this directory, run : + + ./dist-cores.sh ctr + +This process will also automate the packaging process for you. + +### Packaging RetroArch + + +### Additional Tips: + +## Core Compilation + +### Fetching Cores + +The easiest way to fetch all the cores is to use libretro-super. Run + + ./libretro-fetch.sh + +### Building Cores + +The easiest way to build all the cores (for 3DS) is to use libretro-super. Run + + ./libretro-build-ctr.sh + +In case you only want to build one and/or more cores instead of all, you can specify the cores you want to build after the first command in no particular order. E.g.: + + ./libretro-build-ctr.sh snes9x2010 fceumm + +Once finished, you can find the libretro cores inside directory `dist/ctr`. diff --git a/docs/compilation/android.md b/docs/compilation/android.md new file mode 100644 index 00000000..05c6b21f --- /dev/null +++ b/docs/compilation/android.md @@ -0,0 +1,86 @@ +# Compiling for Android + +## Compiling from Windows + +You need a complete Android development environment, including the **Android SDK** and **Android NDK**. + +**Other dependencies:** + +* The ant tool from [ant.apache.org](http://ant.apache.org/) +* OpenJDK or Oracle JDK +* Cygwin (base settings for Bash scripts) +* Git + +### Installing ant + +Install ant in the location your prefer, then add that new bin/ PATH to the route. Remember declare %JAVA_HOME% before, or on the top of the scripts on /bin/ JDK base dir Path. + +### Installing OpenJDK or Oracle JDK + + +### Installing cygwin + +Download the setup tool from the official webpage and install the base distribution. + +### Installing git + +You can install Windows git or add the cygwin git version from the cygwin installer. + +### Next step: From here, follow the instructions for compiling Android from Linux. + +## Compiling from Linux + +You need a complete android development environment ready to develop native apps. That means you have: + +* [Android SDK](http://developer.android.com/sdk/index.html) +* [Android NDK](https://developer.android.com/tools/sdk/ndk/index.html) +* [The ant tool](http://ant.apache.org/) + +Use Google to figure out how to install that and make sure the appropriate executables from the above are in your path variable. +These instructions have been tested under Linux (Fedora 20). They may also work in windows with cygwin. + +### Getting the code + + git clone https://github.com/libretro/libretro-super.git + cd libretro-super + ./libretro-fetch.sh + +`./libretro-fetch.sh` can fail on `fork()` calls, repeat until all are up to date. For `./libretro-build-android-mk.sh`, some cores may fail to compile (g++ "Argument list too long" error). + +### Building the cores + + NOCLEAN=1 ./libretro-build-android-mk.sh + +You can omit `NOCLEAN=1` if you'd like to perform make clean on every core's repo before building each. + +### Building RetroArch + +The RetroArch repo is fetched into the libretro-super folder by `./libretro-fetch.sh` above. + +You first need to fetch the submodules for it. + + cd retroarch + git submodule update --init + +Then set up the android projects. + + cd pkg/android/phoenix + android update project --path . + android update project --path libs/googleplay/ + android update project --path libs/appcompat/ # this doesn't seem to exist anymore + +Now edit `local.properties` to point to the location of your ndk directory by adding a line like this: `ndk.dir=/complete/path/to/android-ndk-r9d` + +Finally, copy the cores, assets and overlays to the right place and build it. + + mkdir -p assets/cores + mkdir assets/overlays + cp ../../../../dist/android/armeabi-v7a/* assets/cores/ #replace armeabi-v7a here by mips or x86 for those targets + cp -r ../../../../dist/info/ assets/ + cp -r ../../../../retroarch/media/overlays/* assets/overlays/ + ant clean + ant debug + +If all goes well, this will spit out an .apk: `bin/retroarch-debug.apk`. Put it on your device with + + adb install -r bin/retroarch-debug.apk diff --git a/docs/compilation/dos.md b/docs/compilation/dos.md new file mode 100644 index 00000000..e694e98f --- /dev/null +++ b/docs/compilation/dos.md @@ -0,0 +1,46 @@ +# DOS Compilation / Development Guide + +## Environment configuration + +This guide will use cross-compilation from Linux to build a DOS executable with the [DJGPP](http://www.delorie.com/djgpp/) toolchain. + +Most Linux distributions do not include this toolchain, but prebuilt binaries can be obtained [here](https://github.com/andrewwutw/build-djgpp/releases), or if you are using Arch Linux, you can use the AUR package [djgpp-gcc](https://aur.archlinux.org/packages/djgpp-gcc/) to build it easily. + +DJGPP builds 32-bit programs, which means an 80386 or higher processor is required. 80286 is not supported. + +## Core Support + +!!! Note + RetroArch on DOS is statically linked. With statically linked RetroArch, each executable is a separate libretro core instead of the core being separately loaded from a single executable. A pre-existing libretro library needs to be present in the root of the source directory in order to link RetroArch DOS. This file needs to be called 'libretro.a'. + +## RetroArch Compilation + +### Fetching RetroArch + +Clone RetroArch's repository from [GitHub](https://github.com/libretro/RetroArch) + + git clone https://github.com/libretro/RetroArch.git retroarch + cd retroarch + +For subsequent builds you only need to pull the changes from the repo + + cd retroarch + git pull + +### Building RetroArch + +To compile RetroArch run the following commands inside RetroArch's source tree: + + CROSS_COMPILE=i686-pc-msdosdjgpp- ./configure --with-libretro="-L. -lretro" + make clean + make -j4 + +Replace the value of `CROSS_COMPILE` with the prefix of your specific toolchain if necessary. + +Once finished, you should find `retroarch.exe` in the current directory, this is the final binary you can run inside DOS. Since older DOS versions do not support long filenames, you may want to rename this file to something shorter. + +RetroArch for DOS also requires the CWSDPMI server application from the DJGPP distribution, which can be downloaded separately [here](http://www.delorie.com/pub/djgpp/current/v2misc/csdpmi7b.zip). On the target system, CWSDPMI.EXE will need to be placed in the same directory as your RetroArch executable for it to run properly. + +Once you have the DPMI program in place, simply run your RetroArch executable and the DPMI server will be loaded automatically at startup. + +It is also possible to include the DPMI server inside the main RetroArch executable so that only a single file is needed, but that is outside the scope of this document. See [here](http://www.delorie.com/djgpp/doc/utils/utils_16.html) for more information. diff --git a/docs/compilation/gamecube.md b/docs/compilation/gamecube.md new file mode 100644 index 00000000..c698d195 --- /dev/null +++ b/docs/compilation/gamecube.md @@ -0,0 +1,72 @@ +# Nintendo GameCube Compilation / Development Guide + +## Environment configuration + +You need the homebrew Nintendo GameCube SDK libogc and Devkitpro PPC toolchain installed. + +## RetroArch Compilation + +### Fetching RetroArch + +Clone RetroArch's repository from [GitHub](https://github.com/libretro/RetroArch) + + git clone https://github.com/libretro/RetroArch.git retroarch + cd retroarch + +For subsequent builds you only need to pull the changes from the repo + + cd retroarch + git pull + +To update your local copy from the repository run git pull + +### Building RetroArch separately + +First, to compile RetroArch (for GameCube) run: + + make -f Makefile.griffin platform=ngc + +!!! Note + RetroArch on GameCube is statically linked. With statically linked RetroArch, each executable is a separate libretro core instead of the core being separately loaded from a single executable. A pre-existing libretro library needs to be present in the root directory in order to link RetroArch GameCube. This file needs to be called 'libretro_ngc.a'. + +After a few seconds/minutes you should be able to find a retroarch_ngc.elf and retroarch_ngc.dol file under that directory. + +### Building RetroArch in bulk + +Instead of building each core one by one, you can build all cores as a batch task. Run from the main 'retroarch' directory: + + cd dist-scripts + +!!! Note + Make sure that all the libretro cores that you want to compile are inside the 'dist-scripts' directory. + +Once inside this directory, run : + + ./dist-cores.sh ngc + +This process will also automate the packaging process for you. + +### Packaging RetroArch + + +### Additional Tips: + +## Core Compilation + +### Fetching Cores + +The easiest way to fetch all the cores is to use libretro-super. Run + + ./libretro-fetch.sh + +### Building Cores + +The easiest way to build all the cores (for GameCube) is to use libretro-super. Run + + ./libretro-build-ngc.sh + +In case you only want to build one and/or more cores instead of all, you can specify the cores you want to build after the first command in no particular order. E.g.: + + ./libretro-build-ngc.sh snes9x2010 fceumm + +Once finished, you can find the libretro cores inside directory `dist/ngc`. diff --git a/docs/compilation/haiku.md b/docs/compilation/haiku.md new file mode 100644 index 00000000..23eec625 --- /dev/null +++ b/docs/compilation/haiku.md @@ -0,0 +1,70 @@ +# Haiku Compilation / Development Guide + +This compilation guide will teach you how to build RetroArch for Haiku. + +It is more than recommended to keep your Haiku system up to date and use Nightlybuilds with upgraded packages. + +## Environment configuration + +The following software needs to be installed: + +- Haiku standard development packages (haiku_devel) +- SDL libraries and development packages (libsdl_devel / libsdl2_devel) +- X11 libraries and development packages (libx11_devel, libxau_devel, libxext_devel) +- Mesa libraries and development packages (mesa_devel, glu_devel) +- Jpeg, PNG, Zlib libraries and development packages (jpeg_devel, libpng16_devel, zlib_devel) + +Optional dependencies: + +- libxml2_devel - For XML shaders and cheat support. +- freetype_devel - TTF font rendering +- ffmpeg - FFmpeg recording + +## RetroArch Compilation + +### Fetching RetroArch + +Clone RetroArch's repository from [GitHub](https://github.com/libretro/RetroArch) + + git clone https://github.com/libretro/RetroArch.git retroarch + cd retroarch + +For subsequent builds you only need to pull the changes from the repo + + cd retroarch + git pull + +To update your local copy from the repository run git pull + +### Building RetroArch + +Make sure gcc is installed, then run: + + # Build + ./configure --prefix=~/config/non-packaged/ --datarootdir=~/config/non-packaged/data/ --with-man_dir=~/config/non-packaged/documentation/man/ && make + # Install + make install + # Run + retroarch + +## Core Compilation + +### Fetching Cores + +The easiest way to fetch all the cores is to use libretro-super. Run + + ./libretro-fetch.sh + +### Building Cores + +The easiest way to build all the cores is to use libretro-super. + +To build all cores for Haiku, run + + ./libretro-build.sh + +In case you only want to build one and/or more cores instead of all, you can specify the cores you want to build after the first command in no particular order. E.g.: + + ./libretro-build.sh snes9x2010 fceumm + +Once finished, you can find the libretro cores inside directory `dist/haiku`. diff --git a/docs/compilation/ios.md b/docs/compilation/ios.md new file mode 100644 index 00000000..bb0621d3 --- /dev/null +++ b/docs/compilation/ios.md @@ -0,0 +1,176 @@ +# iOS Compilation / Development Guide + +## Environment configuration + +The following software needs to be installed: + +- XCode +- iOS SDK + +The following versions of the operating system are supported: + +- iOS 6.0 +- iOS 7.0+ +- iOS 8.0+ +- iOS 9.0+ +- iOS 10.0+ +- iOS 11 support is in-progress + +## Get the RetroArch source + +Clone RetroArch's repository from [GitHub](https://github.com/libretro/RetroArch) + + git clone https://github.com/libretro/RetroArch.git retroarch + cd retroarch + +For subsequent builds you only need to pull the changes from the repo + + cd retroarch + git pull + +To update your local copy from the repository run git pull + +## Core Compilation + +RetroArch needs the emulation cores compiled for it to be useful. Let's compile the cores first. + +### Fetching Cores + +The easiest way to fetch all the cores is to use libretro-super. Run + + git clone https://github.com/libretro/libretro-super + cd libretro-super + ./libretro-fetch.sh + +### Building Cores + +The easiest way to build all the cores (for iOS) is to use libretro-super. + +To build iOS 6 to 8-compatible cores, run + + ./libretro-build-ios.sh + +To build iOS 9 and up-compatible cores, run + + ./libretro-build-ios9.sh + +In case you only want to build one and/or more cores instead of all, you can specify the cores you want to build after the first command in no particular order. E.g.: + + ./libretro-build-ios.sh snes9x2010 fceumm + +Once finished, you can find the libretro cores inside directory `dist/ios` or `dist/ios9`. + +### Code Signing the Cores + +Note that you *must code sign the dylib cores* in order for you to use them. + +#### In iOS 9 and above + +Starting from iOS 9, the cores must be packaged as part of the application, even if they are code-signed. This was an additional security measure introduced in iOS 9. Fortunately, the code signing is handled as part of the Xcode build/archive process, so all you need to do is place your compiled `.dylib` cores in the `pkg/apple/iOS/modules` folder. Running the application via Xcode or archiving the application for an adhoc distribution will codesign the cores as long as they are placed in the aforementioned `pkg/apple/iOS/modules` folder. + +#### In iOS 6 to 8 + +You need to manually code sign the cores, and then you can copy them to the `Documents/RetroArch/cores` directory using an application like "iFunBox" or "iExplorer". + +#### Manually Code Signing + +``` +cd [path where the dylib cores are] +codesign -fs '[Your Full Developer Certificate Name]' *.dylib +``` + +#### Known Issues with Code Signing (iOS 9 and above) + +Building and running from Xcode doesn't code sign the cores the first time for some reason. This is a bug in the build process. The cores seem to get signed after the cores are copied. If you build and run again, the cores will have been signed and will be usable in RetroArch. + +### Building RetroArch + +#### Using the graphical interface + +##### For iOS 6 to 8 + +Open Xcode. Open the following project file `pkg/apple/RetroArch_iOS.xcodeproj` in the Xcode IDE and build (**⌘-B**) and run (**⌘-R**) it there. + +##### For iOS 10 and up + +1. Open Xcode. +2. Open the following project file `pkg/apple/RetroArch_iOS10.xcodeproj` +3. In the Navigator Pane on the left, select the Retroarch_iOS10 project +4. In the Project and Targets list on the left side, choose the RetroArchiOS10 target. Select the Target (the one with the RetroArch icon), not the project. +5. In the "General" tab, change the "Team" under Signing to be your developer name. +6. Set the active scheme to RetroArchiOS10, and select your connected iOS device as the device. +6. Run (**⌘-R**) + +##### Creating an IPA for adhoc distribution (or for someone else to re-sign) + +You will need an adhoc distribution certificate to create an adhoc distribution. Go to developer.apple.com to create an adhoc certificate. + +In Xcode, select your target (RetroArchiOS10 for iOS 10 and above, RetroArch for others), Choose "Generic iOS Device" for the device, and select Product -> Archive. After it is done archiving, the Organizer window will appear. Select the archive and then use the "Export.." button on the right pane, and select "Save for Ad Hoc Deployment". Choose your developer name and you'll create an IPA in a directory of your choosing. This IPA can be resigned for other people to use using utilities such as [iOS App Signer](http://dantheman827.github.io/ios-app-signer/). + +You can install the IPA on your iOS device by dragging the IPA onto the Installed Apps section in the Devices window. + +##### Notes on building and running + +If you use Xcode to build and run RetroArch, and overwrite an existing RetroArch, you'll notice that your configuration will be wrong and stuff like your settings and directory locations will be missing. That's because you get a new application identifier when you do a re-install or upgrade, and the RetroArch config uses absolute paths in its configuration. You'll need to delete the app and then reinstall, or manually edit the RetroArch config file and fix the file paths by hand. + +#### Using the command line + +##### For iOS 6 to 8 + +To build a debug build : + + # Build + xcodebuild -target RetroArch -configuration Debug -project pkg/apple/RetroArch_iOS.xcodeproj + # Run + open ./pkg/apple/build/Debug/RetroArch.app/ + +To build a release build : + + # Build + xcodebuild -target RetroArch -configuration Release -project pkg/apple/RetroArch_iOS.xcodeproj + # Run + open ./pkg/apple/build/Release/RetroArch.app/ + +##### For iOS 10 and up + +To build a debug build : + + # Build + xcodebuild -target RetroArch -configuration Debug -project pkg/apple/RetroArch_iOS10.xcodeproj + # Run + open ./pkg/apple/build/Debug/RetroArch.app/ + +To build a release build : + + # Build + xcodebuild -target RetroArch -configuration Release -project pkg/apple/RetroArch_iOS10.xcodeproj + # Run + open ./pkg/apple/build/Release/RetroArch.app/ + +### Packaging RetroArch + +### Additional Tips: + +#### Cores + +- When you run RetroArch and try to run a game, and see the message "Failed to load libretro core", that means the core is not code signed. See the above "Code Signing the Cores" section on making sure your cores are signed. You can manually check the code signature on a file by doing: `codesign -dvv mednafen_psx_libretro_ios.dylib`. The Authority entry has your certificate - make sure it's your dev or adhoc distribution certificate. + +- To see if your core is valid and usable in RetroArch, you can also try Load Core and selecting the core. If you see the core name appear at the top (in the GUI menu), then it is properly codesigned and loaded. If you still see "No Core", then your core is not codesigned and cannot be used. + +#### Getting your ROMs/content/BIOS in RetroArch + +- Use a desktop tool like "iFunBox" or "iExplorer". You can use iTunes but note that it cannot access subdirectories. BIOS files go in `RetroArch/system` + +- You can also download content in Safari and "Open in.." and choose RetroArch. Currently there is a bug in that it will crash (the app delegate needs fixing), but it gets placed in the "Inbox" folder in RetroArch's Documents folder. You can choose "Load Content" and navigate to the "Inbox" directory. + +### Development + +#### Where do I start? + +The RetroArch codebase can be daunting, especially if you're used to iOS development in Objective C or Swift. Objective C is a subset of C so the syntax should look somewhat familiar to you. + +The first and main entrypoint you should look at is in `core/griffin/griffin.c`. This is where all the code is included, with compiler flags used to bring in code specific to the platform. For iOS, you should pay attention to the compiler flags like `__APPLE__`, `TARGET_OS_IPHONE`, `HAVE_COCOATOUCH`. + +Note that you can Cmd-click into the `#include` paths to peer into the source code. You can also Cmd-Shift-O and type in the source file as well. And, breakpoints work as well! + +The iOS specific code is in `core/griffin/griffin_objc.m`. Here you'll find the include to `./ui/drivers/ui_cocoatouch.m`, which contains the application delegate - the main entry point for the iOS application lifecycle. From there everything should look familiar to you as an iOS developer, and you should be able to hook in any iOS specific objective c code. Although you can use Objective C data structures and code, you'll probably be having to use C data structures since you'll have to call methods in C to hook back into RetroArch, and they will expect C data structures. The great thing is you can mix C code with Objective C, as long as you do the necessary conversions to the data structures that RetroArch expects. diff --git a/docs/compilation/linux-and-bsd.md b/docs/compilation/linux-and-bsd.md new file mode 100644 index 00000000..77f6d16f --- /dev/null +++ b/docs/compilation/linux-and-bsd.md @@ -0,0 +1,60 @@ +# Compilation in Linux and BSD + +Compilation on Linux and BSD does not have many surprises, as its foundation is Unix-based. + +### Dependencies +- At least one libretro implementation +- pkgconfig +- Working OpenGL headers (should be included by default, but you might need to install libgl/mesa development packages) + +### Optional dependencies +- libxml2-devel - For XML shaders and cheat support. +- freetype-devel - TTF font rendering +- ffmpeg/libavcodec - FFmpeg recording +- nvidia-cg-toolkit - Cg shaders +- libudev-devel +- zlib-devel + +Some other libraries can be built support for as well, please refer to `./configure --help`. + +#### Satisfying dependencies under Fedora 23 +```bash +sudo dnf install make automake gcc gcc-c++ kernel-devel mesa-libEGL-devel libv4l-devel libxkbcommon-devel mesa-libgbm-devel Cg libCg zlib-devel freetype-devel libxml2-devel ffmpeg-devel SDL2-devel SDL-devel perl-X11-Protocol perl-Net-DBus pulseaudio-libs-devel openal-soft-devel libusb-devel +``` + +#### Satisfying dependencies under Debian/Ubuntu +```bash +apt-get -y install build-essential libxkbcommon-dev zlib1g-dev libfreetype6-dev libegl1-mesa-dev libgles2-mesa-dev libgbm-dev nvidia-cg-toolkit nvidia-cg-dev libavcodec-dev libsdl2-dev libsdl-image1.2-dev libxml2-dev yasm +``` + +This list of packages may not be complete. +### Getting the code +```bash +git clone git://github.com/libretro/libretro-super.git +cd libretro-super +SHALLOW_CLONE=1 ./libretro-fetch.sh +``` + +### Building RetroArch +```bash +./retroarch-build.sh +``` + +### Building libretro cores +You should at least build one libretro implementation so RetroArch can do stuff. +There is a [super-project](https://github.com/libretro/libretro-super) that is designed to easily build every libretro port out there. To build every core: +```bash +NOCLEAN=1 ./libretro-build.sh +``` +Omit NOCLEAN=1 if you wish to perform "make clean" on every repo before building + +### Installing +Let's assume you'd like to install RetroArch into a folder called `~/ra` +```bash +mkdir -p ~/ra/cores +cd retroarch +make DESTDIR=~/ra install +cd .. #to libretro-super directory +./libretro-install.sh ~/ra/cores +``` +You should now have a fully functional RetroArch build in `~/ra` Enjoy! :) diff --git a/docs/compilation/osx.md b/docs/compilation/osx.md new file mode 100644 index 00000000..6ac2e2a6 --- /dev/null +++ b/docs/compilation/osx.md @@ -0,0 +1,87 @@ +# macOS/OSX Compilation / Development Guide + +This compilation guide will teach you how to build RetroArch for macOS/OSX. + +The following versions of the operating system are supported: + +- OSX 10.6 (Snow Leopard) +- OSX 10.7 (Tiger) +- OSX 10.8 (Mountain Lion) +- OSX 10.9 (Mavericks) +- OSX 10.10 (Yosemite) +- OSX 10.11 (El Capitan) +- macOS 10.12 (Sierra) + +RetroArch can work on both 32bit and 64bit Intel processor-powered Macs. + +## Environment configuration + +The following software needs to be installed: + +- XCode +- (Optional) NVIDIA Cg Toolkit + +## RetroArch Compilation + +### Fetching RetroArch + +Clone RetroArch's repository from [GitHub](https://github.com/libretro/RetroArch) + + git clone https://github.com/libretro/RetroArch.git retroarch + cd retroarch + +For subsequent builds you only need to pull the changes from the repo + + cd retroarch + git pull + +To update your local copy from the repository run git pull + +### Building RetroArch separately + +#### Using the graphical interface + +Open Xcode. Open the following project file `pkg/apple/RetroArch.xcodeproj` in the Xcode IDE and build (**⌘-B**) and run (**⌘-R**) it there. Or you can use the command line.... + +#### Using the command line + +To build a debug build : + + # Build + xcodebuild -target RetroArch -configuration Debug -project pkg/apple/RetroArch.xcodeproj + # Run + open ./pkg/apple/build/Debug/RetroArch.app/ + +To build a release build : + + # Build + xcodebuild -target RetroArch -configuration Release -project pkg/apple/RetroArch.xcodeproj + # Run + open ./pkg/apple/build/Release/RetroArch.app/ + +### Packaging RetroArch + + +### Additional Tips: + +## Core Compilation + +### Fetching Cores + +The easiest way to fetch all the cores is to use libretro-super. Run + + ./libretro-fetch.sh + +### Building Cores + +The easiest way to build all the cores (for iOS) is to use libretro-super. + +To build all cores for OSX, run + + ./libretro-build.sh + +In case you only want to build one and/or more cores instead of all, you can specify the cores you want to build after the first command in no particular order. E.g.: + + ./libretro-build.sh snes9x2010 fceumm + +Once finished, you can find the libretro cores inside directory `dist/osx`. diff --git a/docs/compilation/osxppc.md b/docs/compilation/osxppc.md new file mode 100644 index 00000000..3b1a6e49 --- /dev/null +++ b/docs/compilation/osxppc.md @@ -0,0 +1,81 @@ +# OSX PowerPC Compilation / Development Guide + +This compilation guide will teach you how to build RetroArch for OSX PowerPC. + +The following versions of the operating system are supported: + +- OSX 10.5 (Leopard) + +RetroArch can work on both 32bit and 64bit PowerPC processor-powered Macs. + +## Environment configuration + +The following software needs to be installed: + +- XCode +- (Optional) NVIDIA Cg Toolkit + +## RetroArch Compilation + +### Fetching RetroArch + +Clone RetroArch's repository from [GitHub](https://github.com/libretro/RetroArch) + + git clone https://github.com/libretro/RetroArch.git retroarch + cd retroarch + +For subsequent builds you only need to pull the changes from the repo + + cd retroarch + git pull + +To update your local copy from the repository run git pull + +### Building RetroArch separately + +#### Using the graphical interface + +Open Xcode. Open the following project file `pkg/apple/RetroArch_PPC.xcodeproj` in the Xcode IDE and build (**⌘-B**) and run (**⌘-R**) it there. Or you can use the command line.... + +#### Using the command line + +To build a debug build : + + # Build + xcodebuild -target RetroArch -configuration Debug -project pkg/apple/RetroArch_PPC.xcodeproj + # Run + open ./pkg/apple/build/Debug/RetroArch.app/ + +To build a release build : + + # Build + xcodebuild -target RetroArch -configuration Release -project pkg/apple/RetroArch_PPC.xcodeproj + # Run + open ./pkg/apple/build/Release/RetroArch.app/ + +### Packaging RetroArch + + +### Additional Tips: + +## Core Compilation + +### Fetching Cores + +The easiest way to fetch all the cores is to use libretro-super. Run + + ./libretro-fetch.sh + +### Building Cores + +The easiest way to build all the cores (for OSX PowerPC) is to use libretro-super. + +To build all cores for OSX, run + + ./libretro-build.sh + +In case you only want to build one and/or more cores instead of all, you can specify the cores you want to build after the first command in no particular order. E.g.: + + ./libretro-build.sh snes9x2010 fceumm + +Once finished, you can find the libretro cores inside directory `dist/osx`. diff --git a/docs/compilation/psp.md b/docs/compilation/psp.md new file mode 100644 index 00000000..80ff1a9f --- /dev/null +++ b/docs/compilation/psp.md @@ -0,0 +1,76 @@ +# PlayStation PSP Compilation / Development Guide + +## Environment configuration + +You need the homebrew PlayStation PSP SDK and toolchain installed. + +## RetroArch Compilation + +### Fetching RetroArch + +Clone RetroArch's repository from [GitHub](https://github.com/libretro/RetroArch) + + git clone https://github.com/libretro/RetroArch.git retroarch + cd retroarch + +For subsequent builds you only need to pull the changes from the repo + + cd retroarch + git pull + +To update your local copy from the repository run git pull + +### Building RetroArch separately + +First, you need to compile 'Salamander'. To compile Salamander (for PlayStation Portable) run: + + make -f Makefile.psp1.salamander + +Second, to compile RetroArch (for PlayStation Portable) run: + + make -f Makefile.psp1 + +!!! Note + RetroArch on PlayStation PSP is statically linked. With statically linked RetroArch, each executable is a separate libretro core instead of the core being separately loaded from a single executable. A pre-existing libretro library needs to be present in the root directory in order to link RetroArch Vita. This file needs to be called 'libretro_psp1.a'. + +After a few seconds/minutes you should be able to find a retroarch_psp1.elf and retroarch_psp1.self file under that directory. + +### Building RetroArch in bulk + +Instead of building each core one by one, you can build all cores as a batch task. Run from the main 'retroarch' directory: + + cd dist-scripts + +!!! Note + Make sure that all the libretro cores that you want to compile are inside the 'dist-scripts' directory. + +Once inside this directory, run : + + ./dist-cores.sh psp1 + +This process will also automate the packaging process for you. + +### Packaging RetroArch + + +### Additional Tips: + +## Core Compilation + +### Fetching Cores + +The easiest way to fetch all the cores is to use libretro-super. Run + + ./libretro-fetch.sh + +### Building Cores + +The easiest way to build all the cores (for PlayStation Portable) is to use libretro-super. Run + + ./libretro-build-psp1.sh + +In case you only want to build one and/or more cores instead of all, you can specify the cores you want to build after the first command in no particular order. E.g.: + + ./libretro-build-psp1.sh snes9x2010 fceumm + +Once finished, you can find the libretro cores inside directory `dist/psp1`. diff --git a/docs/compilation/psvita.md b/docs/compilation/psvita.md new file mode 100644 index 00000000..e5e8eee1 --- /dev/null +++ b/docs/compilation/psvita.md @@ -0,0 +1,76 @@ +# PlayStation Vita/TV Compilation / Development Guide + +## Environment configuration + +You need the homebrew PlayStation Vita SDK and toolchain installed. + +## RetroArch Compilation + +### Fetching RetroArch + +Clone RetroArch's repository from [GitHub](https://github.com/libretro/RetroArch) + + git clone https://github.com/libretro/RetroArch.git retroarch + cd retroarch + +For subsequent builds you only need to pull the changes from the repo + + cd retroarch + git pull + +To update your local copy from the repository run git pull + +### Building RetroArch separately + +First, you need to compile 'Salamander'. To compile Salamander (for PlayStation3) run: + + make -f Makefile.vita.salamander + +Second, to compile RetroArch (for PlayStation3) run: + + make -f Makefile.griffin platform=vita + +!!! Note + RetroArch on PlayStation Vita/TV is statically linked. With statically linked RetroArch, each executable is a separate libretro core instead of the core being separately loaded from a single executable. A pre-existing libretro library needs to be present in the root directory in order to link RetroArch Vita. This file needs to be called 'libretro_vita.a'. + +After a few seconds/minutes you should be able to find a retroarch_vita.elf and retroarch_vita.self file under that directory. + +### Building RetroArch in bulk + +Instead of building each core one by one, you can build all cores as a batch task. Run from the main 'retroarch' directory: + + cd dist-scripts + +!!! Note + Make sure that all the libretro cores that you want to compile are inside the 'dist-scripts' directory. + +Once inside this directory, run : + + ./dist-cores.sh vita + +This process will also automate the packaging process for you. + +### Packaging RetroArch + + +### Additional Tips: + +## Core Compilation + +### Fetching Cores + +The easiest way to fetch all the cores is to use libretro-super. Run + + ./libretro-fetch.sh + +### Building Cores + +The easiest way to build all the cores (for PlayStation3) is to use libretro-super. Run + + ./libretro-build-vita.sh + +In case you only want to build one and/or more cores instead of all, you can specify the cores you want to build after the first command in no particular order. E.g.: + + ./libretro-build-vita.sh snes9x2010 fceumm + +Once finished, you can find the libretro cores inside directory `dist/vita`. diff --git a/docs/compilation/ubuntu.md b/docs/compilation/ubuntu.md new file mode 100644 index 00000000..2d8d6974 --- /dev/null +++ b/docs/compilation/ubuntu.md @@ -0,0 +1,125 @@ +# Ubuntu Compilation / Development Guide + +## Environment configuration + +The easiest route to get into building RetroArch and libretro cores on Ubuntu linux is to use libretro's PPA. +For stable releases you can add the PPA like this: + + # add-apt-repository ppa:libretro/stable + # apt-get update + +For development work we recommend the testing PPA instead: + + # add-apt-repository ppa:libretro/testing + # apt-get update + +You will need **git** and a few build tools at least to proceed which you can install by issuing the following command: + + # apt-get install git build-essential + +## RetroArch Compilation +### Building RetroArch + +The first step is to obtain RetroArch's source tree. + + $ git clone https://github.com/libretro/RetroArch.git retroarch + +You can get RetroArch's dependenencies by running the following command: + + # apt-get build-dep retroarch + +!!! Note + Depending on your configuration you may need to uncomment the *deb-src* repositories in */etc/apt/sources.list*, */etc/apt/sources.list.d/libretro-ubuntu-testing-$version.list* and then run **apt-get update** before running **apt-get build-dep** + +For subsequent builds you will need to pull the changes from the repo + + $ cd retroarch + $ git pull + +To compile RetroArch run the following commands inside RetroArch's source tree: + + $ ./configure + $ make clean + $ make -j4 + +For development purposes you might want to run a debug build instead. In such case use the following commands: + + $ ./configure + $ make clean + $ make DEBUG=1 GL_DEBUG=1 -j4 + +You can then start RetroArch by running: + + $ ./retroarch + +!!! tip + If you're building frequently you may want to add **ccache** to the mix to speed up the build process. + Install ccache via apt and the prepend the ccache symlink directory to your build environment path as shown below. + + For further instructions check the [documentation](https://ccache.samba.org/manual.html#_run_modes) + +Install **ccache**: + + # apt-get install ccache + +Configure paths: + + $ export PATH=/usr/lib/ccache/bin/:$PATH + +!!! tip + You can add that last line to your *~/.bashrc* to avoid having to type that every time you start your working environment. +## Core Compilation + +### Fetching Cores + +You can find the cores on libretro's [GitHUB organization](https://github.com/libretro/). + +We have an all-in-one tool to fetch and compile cores which you can use to streamline the process. +You can obtain the tool by using these commands: + + $ git clone https://github.com/libretro/libretro-super.git + $ cd libretro-super + +Then you can fetch one or all the cores by using **libretro-fetch.sh** + +Fetch all cores: + + $ ./libretro-fetch.sh + +Fetch one core: + + $ ./libretro-fetch.sh *corename* + +!!! Note + Replace *corename* with the name of the core you want to fetch, for example gambatte + +### Building Cores + +#### LibRetro Super + +The easiest way to build all the cores is to use **libretro-build.sh** from within libretro-super's source tree: + + $ ./libretro-build.sh + +In case you only want to build one and/or more cores instead of all, you can specify the cores you want to build after the first command in no particular order: + + $ ./libretro-build.sh snes9x2010 fceumm + +Once compilation has finished, you can find the libretro cores inside *dist/unix*. + +#### Manual Fetching and Compilation + +Get the core's source tree. As an example we'll use [fceumm](https://github.com/libretro/libretro-fceumm/) + + $ git clone https://github.com/libretro/libretro-fceumm.git + +Then compile the core: + + $ cd libretro-fceumm + $ make -f Makefile.libretro + +Optionally strip the build product: + + $ strip fceumm_libretro.so + +Most cores will build with these instructions. You might need to browse to a subdirectory in some cases. diff --git a/docs/compilation/wii.md b/docs/compilation/wii.md new file mode 100644 index 00000000..02fb3826 --- /dev/null +++ b/docs/compilation/wii.md @@ -0,0 +1,79 @@ +# Nintendo Wii Compilation / Development Guide + +## Environment configuration + +You need the homebrew Nintendo Wii SDK libogc and Devkitpro PPC toolchain installed. + +## RetroArch Compilation + +### Fetching RetroArch + +Clone RetroArch's repository from [GitHub](https://github.com/libretro/RetroArch) + + git clone https://github.com/libretro/RetroArch.git retroarch + cd retroarch + +For subsequent builds you only need to pull the changes from the repo + + cd retroarch + git pull + +To update your local copy from the repository run git pull + +### Building RetroArch separately + +First, you need to compile 'Salamander'. Salamander is the RetroArch frontend for embedded platforms for which the cores are statically linked to the frontend. It means that for each core there is a file which contains the code of the core and the frontend. +To compile Salamander (for Wii) run: + + make -f Makefile.wii.salamander + +Rename the file retroarch-salamander_wii.dol as boot.dol. This file is the frontend launcher for the other cores (indeed files containing core and fronend). + +Second, to compile RetroArch for Wii (the core and the frontend), rename the compiled core as 'libretro_wii.a' (see bellow how to compile a core), put it in the RetroArch directory and run: + + make -f Makefile.griffin platform=wii + +!!! Note + RetroArch on Wii is statically linked. With statically linked RetroArch, each executable is a separate libretro core instead of the core being separately loaded from a single executable. A pre-existing libretro library needs to be present in the root directory in order to link RetroArch Wii. This file needs to be called 'libretro_wii.a'. + +After a few seconds/minutes you should be able to find a retroarch_wii.elf and retroarch_wii.dol file under that directory. + +### Building RetroArch in bulk + +Instead of building each core one by one, you can build all cores as a batch task. Run from the main 'retroarch' directory: + + cd dist-scripts + +!!! Note + Make sure that all the libretro cores that you want to compile are inside the 'dist-scripts' directory. + +Once inside this directory, run : + + ./dist-cores.sh wii + +This process will also automate the packaging process for you. + +### Packaging RetroArch + + +### Additional Tips: + +## Core Compilation + +### Fetching Cores + +The easiest way to fetch all the cores is to use libretro-super. Download libretro-super from github and run + + ./libretro-fetch.sh + +### Building Cores + +The easiest way to build all the cores (for Wii) is to use libretro-super. If not already fetched, put the codes of the cores you want compile in the libretro-super directory and run + + ./libretro-build-wii.sh + +In case you only want to build one and/or more cores instead of all, you can specify the cores you want to build after the first command in no particular order. E.g.: + + ./libretro-build-wii.sh snes9x2010 fceumm + +Once finished, you can find the libretro cores inside directory `dist/wii`. diff --git a/docs/compilation/wiiu.md b/docs/compilation/wiiu.md new file mode 100644 index 00000000..dce9ef24 --- /dev/null +++ b/docs/compilation/wiiu.md @@ -0,0 +1,72 @@ +# Nintendo Wii U Compilation / Development Guide + +## Environment configuration + +You need the DevkitPPC(r29) toolchain installed and the DEVKITPRO and DEVKITPPC environment variables set to the respective folders. + +## RetroArch Compilation + +### Fetching RetroArch + +Clone RetroArch's repository from [GitHub](https://github.com/libretro/RetroArch) + + git clone https://github.com/libretro/RetroArch.git retroarch + cd retroarch + +For subsequent builds you only need to pull the changes from the repo + + cd retroarch + git pull + +To update your local copy from the repository run git pull + +### Building RetroArch separately + +To compile RetroArch (for Wii U) run: + + make -f Makefile.wiiu + +!!! Note + RetroArch on Wii U is statically linked. With statically linked RetroArch, each executable is a separate libretro core instead of the core being separately loaded from a single executable. A pre-existing libretro library needs to be present in the root directory in order to link RetroArch Wii U. This file needs to be called 'libretro_wiiu.a'. + +After a few seconds/minutes you should be able to find a retroarch_wiiu.elf and retroarch_wiiu.rpx file under that directory. + +### Building RetroArch in bulk + +Instead of building each core one by one, you can build all cores as a batch task. Run from the main 'retroarch' directory: + + cd dist-scripts + +!!! Note + Make sure that all the libretro cores that you want to compile are inside the 'dist-scripts' directory. you can also copy the [info files](https://github.com/libretro/libretro-super/tree/master/dist/info) and [icons](https://github.com/libretro/retroarch-assets/tree/master/pkg/wiiu) in the same directory to have them added to the package, and to generate the meta.xml files. + +Once inside this directory, run : + + ./wiiu-cores.sh + +This process will also automate the packaging process for you. the output will be in `pkg/wiiu`. + +### Packaging RetroArch + + +### Additional Tips: + +## Core Compilation + +### Fetching Cores + +The easiest way to fetch all the cores is to use libretro-super. Run + + ./libretro-fetch.sh + +### Building Cores + +The easiest way to build all the cores (for Wii U) is to use libretro-super. Run + + ./libretro-build-wiiu.sh + +In case you only want to build one and/or more cores instead of all, you can specify the cores you want to build after the first command in no particular order. E.g.: + + ./libretro-build-wiiu.sh snes9x2010 fceumm + +Once finished, you can find the libretro cores inside directory `dist/wiiu`. diff --git a/docs/compilation/windows.md b/docs/compilation/windows.md new file mode 100644 index 00000000..6e045ab9 --- /dev/null +++ b/docs/compilation/windows.md @@ -0,0 +1,219 @@ +# Windows (Vista and later) Compilation / Development Guide + +!!! Warning + The MinGW toolchain we use in this guide no longer supports targeting Windows XP. Programs compiled with it will fail to start with it. + Please refer to one of the MSVC guides for how to target older Windows versions with Visual Studio. + +## Environment configuration + +We recommend MinGW-W64 from MSYS2. You can download MSYS2 installer from [here](http://msys2.github.io/). + +Follow the installation instructions and once finished start the MSYS2 shell. + +MSYS2 shell is a maintenance shell. We are going to use this shell to install the toolchain and other packages. First order of business is to update MSYS2. Start the MSYS2 Shell and run the following commands: + + :::bash + $ pacman --noconfirm -Sy + $ pacman --needed --noconfirm -S bash pacman pacman-mirrors msys2-runtime + +Close MSYS2 shell and start it again, and: + + :::bash + $ pacman --noconfirm -Su + +Restart MSYS2 once again. In some cases you may find out that the shell starting scripts don't work. If so check the following Note. + +!!! Warning + If you are updating from a very old MSYS2 installation you may need to update your shortcuts to reflect changes in MSYS2's subsystem. If the shell no longer works properly you need to update your shortcuts with the following targets: + +- MinGW-w64 Shell: `MSYS2_ROOT\msys2_shell.cmd -mingw64` +- MinGW-w32 Shell: `MSYS2_ROOT\msys2_shell.cmd -mingw32` +- MSYS2 Shell: `MSYS2_ROOT\msys2_shell.cmd -msys` + +Now we can start installing the packages we actually need. + +For 32-bit builds: + + :::bash + $ pacman -S --noconfirm --needed wget git make mingw-w64-i686-toolchain mingw-w64-i686-ntldd mingw-w64-i686-zlib mingw-w64-i686-pkg-config mingw-w64-i686-SDL2 mingw-w64-i686-libxml2 mingw-w64-i686-freetype mingw-w64-i686-python3 mingw-w64-i686-ffmpeg + +For 64-bit builds: + + :::bash + $ pacman -S --noconfirm --needed wget git make mingw-w64-x86_64-toolchain mingw-w64-x86_64-ntldd mingw-w64-x86_64-zlib mingw-w64-x86_64-pkg-config mingw-w64-x86_64-SDL2 mingw-w64-x86_64-libxml2 mingw-w64-x86_64-freetype mingw-w64-x86_64-python3 mingw-w64-x86_64-ffmpeg + +The NVIDIA CG toolkit package hasn't been updated for a while so you need to download that package manually and install with pacman. You can download the packages from sourceforge at the following locations: [32-bit](http://sourceforge.net/projects/msys2/files/REPOS/MINGW_GCC_4_9/i686/mingw-w64-i686-nvidia-cg-toolkit-3.1-2-any.pkg.tar.xz/download) / [64-bit](http://sourceforge.net/projects/msys2/files/REPOS/MINGW_GCC_4_9/x86_64/mingw-w64-x86_64-nvidia-cg-toolkit-3.1-2-any.pkg.tar.xz/download). Alternatively you can use the following commands directly: + +For 32-bit builds: + + :::bash + $ wget http://sourceforge.net/projects/msys2/files/REPOS/MINGW_GCC_4_9/i686/mingw-w64-i686-nvidia-cg-toolkit-3.1-2-any.pkg.tar.xz/download -O mingw-w64-i686-nvidia-cg-toolkit-3.1-2-any.pkg.tar.xz + $ pacman -U mingw-w64-i686-nvidia-cg-toolkit-3.1-2-any.pkg.tar.xz + +For 64-bit builds: + + :::bash + $ wget http://sourceforge.net/projects/msys2/files/REPOS/MINGW_GCC_4_9/x86_64/mingw-w64-x86_64-nvidia-cg-toolkit-3.1-2-any.pkg.tar.xz/download -O mingw-w64-x86_64-nvidia-cg-toolkit-3.1-2-any.pkg.tar.xz + $ pacman -U mingw-w64-x86_64-nvidia-cg-toolkit-3.1-2-any.pkg.tar.xz + +Once these packages are installed close MSYS2 shell and open MinGW-w32 shell or MinGW-w64 shell depending on the platform you want to build for. + +## RetroArch Compilation +### Building RetroArch + +The first step is to obtain RetroArch's source tree. +You can find the repository directly at [GitHub](https://github.com/libretro/RetroArch) + +Start the MINGW64 or the MINGW32 shell depending on what you want to compile and run the following commands: + + :::bash + $ git clone https://github.com/libretro/RetroArch.git retroarch + +For subsequent builds you will need to pull the changes from the repo + + :::bash + $ cd retroarch + $ git pull + +To compile RetroArch run the following commands inside RetroArch's source tree: + + :::bash + $ ./configure + $ make clean + $ make -j4 + +For development purposes you might want to run a debug build instead. In such case use the following commands: + + :::bash + $ ./configure + $ make clean + $ make DEBUG=1 GL_DEBUG=1 -j4 + +After a few minutes you should be able to find retroarch.exe under that directory. To start the newly compiled retroarch you can use: + + :::bash + $ ./retroarch + +### Packaging RetroArch + +You might not be able to start your own build outside that environment. You might want to try to get all the required DLLs by using the following script: + + :::bash + $ for i in $(seq 3); do for bin in $(ntldd -R *exe | grep -i mingw | cut -d">" -f2 | cut -d" " -f2); do cp -vu "$bin" . ; done; done; + +If you really want to get the required libraries for distribution or for personal use on other devices and LDD doesn't work for you for whatever reason, then you can try [Dependency Walker](http://www.dependencywalker.com/). + +!!! tip + If you're building frequently you may want to add **ccache** to the mix to speed up the build process. + Install ccache via the package manager and the prepend the ccache symlink directory to your build environment path as shown below. + + For further instructions check the [documentation](https://ccache.samba.org/manual.html#_run_modes) + +Install **ccache** for 32-bit builds: + + :::bash + $ pacman -S --noconfirm --needed make mingw-w64-i686-ccache + +Install **ccache** for 64-bit builds: + + :::bash + $ pacman -S --noconfirm --needed mingw-w64-x86_64-ccache + +Configure paths for 32-bit builds: + + :::bash + $ export PATH=/mingw32/lib/ccache/bin/:$PATH + +Configure paths for 64-bit builds: + + :::bash + $ export PATH=/mingw64/lib/ccache/bin/:$PATH + +!!! tip + You can add that last line to your *~/.bashrc* to avoid having to type that every time you start your working environment. + +From our own buildbot, the times with and without **ccache** are the following: + +Without **ccache**: + + real 2m7.645s + user 0m2.585s + sys 0m11.527s + +With **ccache**: + + real 0m25.466s + user 0m2.902s + sys 0m9.952s + +!!! tip + You can also strip the debug symbols of the build product to save some space. + +Strip **retroarch**: + + :::bash + $ strip -s retroarch.exe + +## Core Compilation + +### Fetching Cores + +You can find the cores on libretro's [GitHUB organization](https://github.com/libretro/). + +We have an all-in-one tool to fetch and compile cores which you can use to streamline the process. +You can obtain the tool by using these commands: + + :::bash + $ git clone https://github.com/libretro/libretro-super.git + $ cd libretro-super + +Then you can fetch one or all the cores by using **libretro-fetch.sh** + +Fetch all cores: + + :::bash + $ ./libretro-fetch.sh + +Fetch one core: + + :::bash + $ ./libretro-fetch.sh *corename* + +!!! Note + Replace *corename* with the name of the core you want to fetch, for example gambatte + +### Building Cores + +#### LibRetro Super + +The easiest way to build all the cores is to use **libretro-build.sh** from within libretro-super's source tree: + + :::bash + $ ./libretro-build.sh + +In case you only want to build one and/or more cores instead of all, you can specify the cores you want to build after the first command in no particular order: + + :::bash + $ ./libretro-build.sh snes9x2010 fceumm + +Once compilation has finished, you can find the libretro cores inside *dist/win*. + +#### Manual Fetching and Compilation + +Get the core's source tree. As an example we'll use [fceumm](https://github.com/libretro/libretro-fceumm/) + + :::bash + $ git clone https://github.com/libretro/libretro-fceumm.git + +Then compile the core: + + :::bash + $ cd libretro-fceumm + $ make -f Makefile.libretro + +Optionally strip the build product: + + :::bash + $ strip fceumm_libretro.dll + +Most cores will build with these instructions. You might need to browse to a subdirectory in some cases. diff --git a/docs/compilation/windows95-msvc-cmdline.md b/docs/compilation/windows95-msvc-cmdline.md new file mode 100644 index 00000000..946657f3 --- /dev/null +++ b/docs/compilation/windows95-msvc-cmdline.md @@ -0,0 +1,65 @@ +# Windows (95/98/NT4) Command-line Compilation / Development Guide + +## Environment configuration + +To compile RetroArch on the command-line targeting Windows 95, Windows 98 or Windows NT4, we will use a combination of the MSYS2 shell and Microsoft Visual Studio .NET 2003. + +This guide assumes the host OS is Windows Vista or later, as MSYS2 cannot be installed on anything older. + +Prerequisites: + +Visual Studio .NET 2003 + +[Windows Server 2003 SP1 Platform SDK](https://www.microsoft.com/en-us/download/details.aspx?id=12261) + +!!! Note + Windows 95 does not support DirectX 9.0, and NT4 does not support DirectX higher than 3.0a. + +!!! Note + In lieu of having to install the full Visual Studio suite, a minimal toolchain can be created by copying the `Common7` and `Vc7` folders from an installation on another machine (usually located at `C:\Program Files (x86)\Microsoft Visual Studio .NET 2003`). For this example we will use a root folder of `C:\mini-msvc` to hold everything, and those two folders from the MSVC installation will be copied into a directory under the root folder called `msvc2003`. + +!!! Note + The same thing can be done with the Platform SDK, just copy the `Include` and `Lib` folders from an existing installation (usually located in `C:\Program Files (x86)\Microsoft Platform SDK`) into a folder in the root such as `plat2003sp1`. + +## RetroArch Compilation +### Building RetroArch + +First you will need the MSYS2 distribution. You can download the MSYS2 installer from [here](http://msys2.github.io/). + +Follow the installation instructions and once finished start the MSYS2 shell. + +First we need to install the `make` package: + + pacman -S make + +Then we need to obtain RetroArch's source tree. + +You can clone the repository directly from [GitHub](https://github.com/libretro/RetroArch): + + git clone https://github.com/libretro/RetroArch.git retroarch + +For subsequent builds you will need to pull the changes from the repo + + cd retroarch + git pull + +To compile RetroArch, run: + + make -f Makefile.griffin platform=windows_msvc2003_x86 + +DirectX support is disabled by default since 95/NT do not support DirectX 9.0, but if you will only be running on higher versions of Windows, you can re-enable it by adding `HAVE_DIRECTX=1` to the end of the command line. + +### Minimal Toolchain + +If you are only using a minimal toolchain as described above, you can instead specify the location of the `msvc2003` and `plat2003sp1` folders like this: + + make -f Makefile.griffin platform=windows_msvc2003_x86 VS71COMNTOOLS="c:\\mini-msvc\\msvc2003\\Common7\\Tools\\" INETSDK="c:\\mini-msvc\\plat2003sp1" + +!!! Note + The trailing slash at the end of the COMNTOOLS variable is mandatory. + +Also, any of the paths can optionally be left out to use the system version instead. + +### Finished + +After the build is finished you should be able to find retroarch.exe in the current directory. To start the newly compiled retroarch, copy the .exe file to a new folder where its configuration files and folders will be automatically created on first run. Running the .exe file inside of the source directory is not recommended as it will overwrite existing files. diff --git a/docs/compilation/windows98-msvc-cmdline.md b/docs/compilation/windows98-msvc-cmdline.md new file mode 100644 index 00000000..8187277d --- /dev/null +++ b/docs/compilation/windows98-msvc-cmdline.md @@ -0,0 +1,67 @@ +# Windows (98 SE/ME/2000) Command-line Compilation / Development Guide + +## Environment configuration + +To compile RetroArch on the command-line targeting Windows NT4, Windows 98SE, Windows Millenium Edition or Windows 2000, we will use a combination of the MSYS2 shell and Microsoft Visual C++ 2005. + +This guide assumes the host OS is Windows Vista or later, as MSYS2 cannot be installed on anything older. + +Prerequisites: + +[DirectX SDK February 2005](https://s3.amazonaws.com/bparker/dxsdk_feb2005.exe) (any version up to December 2006 should work to target 98SE) + +[Visual C++ 2005 Express](http://download.microsoft.com/download/A/9/1/A91D6B2B-A798-47DF-9C7E-A97854B7DD18/VC.iso) (or Pro) + +[Windows Server 2003 SP1 Platform SDK](https://www.microsoft.com/en-us/download/details.aspx?id=12261) + +!!! Note + Windows 98 Second Edition is supported, but First Edition has not been tested. If you do try to target it, make sure that your DirectX SDK is no newer than July 2004. + +!!! Note + In lieu of having to install the full Visual Studio suite, a minimal toolchain can be created by copying the `Common7` and `VC` folders from an installation on another machine (usually located at `C:\Program Files (x86)\Microsoft Visual Studio 8`). For this example we will use a root folder of `C:\mini-msvc` to hold everything, and those two folders from the MSVC installation will be copied into a directory under the root folder called `msvc2005`. + +!!! Note + The same thing can be done with the DirectX and Platform SDKs, just copy the `Include` and `Lib` folders from an existing installation (usually located at `C:\Program Files (x86)` in `Microsoft DirectX SDK (June 2010)` and `Microsoft Platform SDK` respectively) into folders in the root such as `dx9_june2010` and `plat2003sp1`. + +## RetroArch Compilation +### Building RetroArch + +First you will need the MSYS2 distribution. You can download the MSYS2 installer from [here](http://msys2.github.io/). + +Follow the installation instructions and once finished start the MSYS2 shell. + +First we need to install the `make` package: + + pacman -S make + +Then we need to obtain RetroArch's source tree. + +You can clone the repository directly from [GitHub](https://github.com/libretro/RetroArch): + + git clone https://github.com/libretro/RetroArch.git retroarch + +For subsequent builds you will need to pull the changes from the repo + + cd retroarch + git pull + +To compile RetroArch, run: + + make -f Makefile.griffin platform=windows_msvc2005_x86 + +If you do not want to compile in DirectX support, you can add `HAVE_DIRECTX=0` to the end of the command line. Currently it is necessary to disable DirectX support when targeting NT4. + +### Minimal Toolchain + +If you are only using a minimal toolchain as described above, you can instead specify the location of the folders `msvc2005`, `dx9_feb2005` and `plat2003sp1` like this: + + make -f Makefile.griffin platform=windows_msvc2005_x86 VS80COMNTOOLS="c:\\mini-msvc\\msvc2005\\Common7\\Tools\\" INETSDK="c:\\mini-msvc\\plat2003sp1" DXSDK_DIR="c:\\mini-msvc\\dx9_feb2005" + +!!! Note + The trailing slash at the end of the COMNTOOLS variable is mandatory. + +Also, any of the paths can optionally be left out to use the system version instead. + +### Finished + +After the build is finished you should be able to find retroarch.exe in the current directory. To start the newly compiled retroarch, copy the .exe file to a new folder where its configuration files and folders will be automatically created on first run. Running the .exe file inside of the source directory is not recommended as it will overwrite existing files. diff --git a/docs/compilation/windows98.md b/docs/compilation/windows98.md new file mode 100644 index 00000000..6683c35f --- /dev/null +++ b/docs/compilation/windows98.md @@ -0,0 +1,61 @@ +# Windows (98/2000) Compilation / Development Guide + +## Environment configuration + +To compile RetroArch targetting Windows 98 and 2000, we will use Microsoft Visual C++ 2005. This is the last version of Visual C++ that can target 98/2000. + +This guide assumes the host OS is Windows 2000 Professional. VC2005 does run on Windows XP and Vista but this has not been tested with RetroArch. + +Prerequisites: + +[Windows 2000 Service Pack 4](https://web.archive.org/web/20051022095019/http://download.microsoft.com/download/e/6/a/e6a04295-d2a8-40d0-a0c5-241bfecd095e/w2ksp4_en.exe) + +[Windows 2000 Update Rollup 1](https://web.archive.org/web/20060320020710/http://download.microsoft.com/download/2/7/b/27b1d1a3-0299-4336-b88a-22b9f09817e2/Windows2000-KB891861-v2-x86-ENU.EXE) + +[Internet Explorer 6](https://s3.amazonaws.com/bparker/ie60.exe) + +[Internet Explorer 6 Service Pack 1](https://s3.amazonaws.com/bparker/IE6.0SP1-KB2722913-WINDOWS2000-X86-ENU.EXE) (required by VC2005) + +[DirectX SDK February 2005](https://s3.amazonaws.com/bparker/dxsdk_feb2005.exe) (versions after this date will not install on Windows 2000) + +[Windows Server 2003 SP1 Platform SDK](https://www.microsoft.com/en-us/download/details.aspx?id=12261) + +[Visual C++ 2005 Express](http://download.microsoft.com/download/A/9/1/A91D6B2B-A798-47DF-9C7E-A97854B7DD18/VC.iso) (or Pro) + +!!! Note + Windows 98 Second Edition is supported, but First Edition has not been tested. If you do try to target it, make sure that your DirectX SDK is no newer than July 2004. + +## RetroArch Compilation +### Building RetroArch + +!!! Note + Setting up a working git shell is beyond the scope of this document. [msysgit 1.8.5.2](https://github.com/msysgit/msysgit/releases/download/Git-1.8.5.2-preview20131230/Git-1.8.5.2-preview20131230.exe) is known to work locally but is unable to communicate with any remote servers on Windows 2000, and the github website does not load in IE6 either. + +The first step is to obtain RetroArch's source tree. +You can clone the repository directly from [GitHub](https://github.com/libretro/RetroArch) + + git clone https://github.com/libretro/RetroArch.git retroarch + +For subsequent builds you will need to pull the changes from the repo + + cd retroarch + git pull + +To compile RetroArch, first open the solution file located at pkg/msvc/RetroArch-msvc2005.sln with Visual C++ 2005. + +Next we select the desired solution configuration: + +![configurations](https://s3.amazonaws.com/retroarch/msvc2005-targets.png) + +The choices are: + + Debug + Debug NoAccel + Release + Release NoAccel + +For development purposes you can use the Debug configurations, otherwise use Release. The "NoAccel" versions do not include Direct3D or OpenGL support (but keeps DirectInput and DirectSound support). + +Now press F7 to build the solution, or go to Build -> Build Solution. + +After the build is finished you should be able to find RetroArch-msvc2005.exe in the pkg/msvc/msvc-2005/<configuration> directory, where `` is the one you chose earlier such as Debug or Release. To start the newly compiled retroarch you can press F5 in Visual C++ or simply navigate to the .exe file and run it there. diff --git a/docs/compilation/windowsNT351-msvc-cmdline.md b/docs/compilation/windowsNT351-msvc-cmdline.md new file mode 100644 index 00000000..6d986a11 --- /dev/null +++ b/docs/compilation/windowsNT351-msvc-cmdline.md @@ -0,0 +1,57 @@ +# Windows (NT3.51) Command-line Compilation / Development Guide + +## Environment configuration + +To compile RetroArch on the command-line targetting Windows NT3.51, we will use a combination of the MSYS2 shell and Microsoft Visual C++ 6. + +This guide assumes the host OS is Windows Vista or later, as MSYS2 cannot be installed on anything older. + +Prerequisites: + +Visual C++ 6 + +[Windows Server 2003 SP1 Platform SDK](https://www.microsoft.com/en-us/download/details.aspx?id=12261) + +!!! Note + In lieu of having to install the full Visual Studio suite, a minimal toolchain can be created by copying the `Common` and `VC98` folders from an installation on another machine (usually located at `C:\Program Files (x86)\Microsoft Visual Studio`). For this example we will use a root folder of `C:\mini-msvc` to hold everything, and those two folders from the MSVC installation will be copied into a directory under the root folder called `msvc6`. + +!!! Note + The same thing can be done with the Platform SDK, just copy the `Include` and `Lib` folders from an existing installation (usually located in `C:\Program Files (x86)\Microsoft Platform SDK`) into a folder in the root such as `plat2003sp1`. + +## RetroArch Compilation +### Building RetroArch + +First you will need the MSYS2 distribution. You can download the MSYS2 installer from [here](http://msys2.github.io/). + +Follow the installation instructions and once finished start the MSYS2 shell. + +First we need to install the `make` package: + + pacman -S make + +Then we need to obtain RetroArch's source tree. + +You can clone the repository directly from [GitHub](https://github.com/libretro/RetroArch): + + git clone https://github.com/libretro/RetroArch.git retroarch + +For subsequent builds you will need to pull the changes from the repo + + cd retroarch + git pull + +To compile RetroArch, run: + + make -f Makefile.griffin platform=windows_msvc6_x86 + +### Minimal Toolchain + +If you are only using a minimal toolchain as described above, you can instead specify the location of the `msvc6` and `plat2003sp1` folders like this: + + make -f Makefile.griffin platform=windows_msvc6_x86 VCDIR="c:\\mini-msvc\\msvc6\\VC98" INETSDK="c:\\mini-msvc\\plat2003sp1" + +Also, any of the paths can optionally be left out to use the system version instead. + +### Finished + +After the build is finished you should be able to find retroarch.exe in the current directory. To start the newly compiled retroarch, copy the .exe file to a new folder where its configuration files and folders will be automatically created on first run. Running the .exe file inside of the source directory is not recommended as it will overwrite existing files. diff --git a/docs/compilation/windowsXP-msvc-cmdline.md b/docs/compilation/windowsXP-msvc-cmdline.md new file mode 100644 index 00000000..3626bd1a --- /dev/null +++ b/docs/compilation/windowsXP-msvc-cmdline.md @@ -0,0 +1,67 @@ +# Windows (XP and later) Command-line Compilation / Development Guide + +## Environment configuration + +To compile RetroArch on the command-line targetting Windows XP or later, we will use a combination of the MSYS2 shell and Microsoft Visual Studio 2010. + +This guide assumes the host OS is Windows Vista or later, as MSYS2 cannot be installed on anything older. + +Prerequisites: + +[DirectX SDK June 2010](https://www.microsoft.com/en-us/download/details.aspx?id=6812) + +[Visual Studio 2010 Express](http://web.archive.org/web/20161014172355/http://download.microsoft.com/download/1/E/5/1E5F1C0A-0D5B-426A-A603-1798B951DDAE/VS2010Express1.iso) (or Pro) + +!!! Note + The Express version does not come with a 64-bit compiler. + +[Visual Studio 2010 Service Pack 1](http://web.archive.org/web/20160401071422/http://download.microsoft.com/download/E/B/A/EBA0A152-F426-47E6-9E3F-EFB686E3CA20/VS2010SP1dvd1.iso) (needed for the multi-language support in RetroArch) + +!!! Note + In lieu of having to install the full Visual Studio suite, a minimal toolchain can be created by copying the `Common7` and `VC` folders from an installation on another machine (usually located at `C:\Program Files (x86)\Microsoft Visual Studio 10.0`). For this example we will use a root folder of `C:\mini-msvc` to hold everything, and those two folders from the MSVC installation will be copied into a directory under the root folder called `msvc2010`. + +!!! Note + The same thing can be done with the DirectX SDK, just copy the `Include` and `Lib` folders from an existing installation (usually located at `C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)`) into a folder in the root such as `dx9_june2010`. + +## RetroArch Compilation +### Building RetroArch + +First you will need the MSYS2 distribution. You can download the MSYS2 installer from [here](http://msys2.github.io/). + +Follow the installation instructions and once finished start the MSYS2 shell. + +First we need to install the `make` package: + + pacman -S make + +Then we need to obtain RetroArch's source tree. + +You can clone the repository directly from [GitHub](https://github.com/libretro/RetroArch): + + git clone https://github.com/libretro/RetroArch.git retroarch + +For subsequent builds you will need to pull the changes from the repo + + cd retroarch + git pull + +To compile RetroArch, run: + + make -f Makefile.griffin platform=windows_msvc2010_x86 + +Replace x86 with x64 if you would like a 64-bit build instead of 32-bit. If you do not want to compile in DirectX support, you can add `HAVE_DIRECTX=0` to the end of the command line. + +### Minimal Toolchain + +If you are only using a minimal toolchain as described above, you can instead specify the location of the `msvc2010` and `dx9_june2010` folders like this: + + make -f Makefile.griffin platform=windows_msvc2010_x86 VS100COMNTOOLS="c:\\mini-msvc\\msvc2010\\Common7\\Tools\\" DXSDK_DIR="c:\\mini-msvc\\dx9_june2010" + +!!! Note + The trailing slash at the end of the COMNTOOLS variable is mandatory. + +Also, any of the paths can optionally be left out to use the system version instead. + +### Finished + +After the build is finished you should be able to find retroarch.exe in the current directory. To start the newly compiled retroarch, copy the .exe file to a new folder where its configuration files and folders will be automatically created on first run. Running the .exe file inside of the source directory is not recommended as it will overwrite existing files. diff --git a/docs/compilation/windowsXP.md b/docs/compilation/windowsXP.md new file mode 100644 index 00000000..79bee080 --- /dev/null +++ b/docs/compilation/windowsXP.md @@ -0,0 +1,52 @@ +# Windows (XP and later) Compilation / Development Guide + +## Environment configuration + +To compile RetroArch targetting Windows XP or later, we will use Microsoft Visual Studio 2010. + +This guide assumes the host OS is Windows XP. + +Prerequisites: + +[Windows XP Service Pack 3](https://support.microsoft.com/en-us/help/936929/information-about-windows-xp-service-pack-3) (requires SP1 or SP2 installed first) + +[DirectX SDK June 2010](https://www.microsoft.com/en-us/download/details.aspx?id=6812) + +[Visual Studio 2010 Express](http://web.archive.org/web/20161014172355/http://download.microsoft.com/download/1/E/5/1E5F1C0A-0D5B-426A-A603-1798B951DDAE/VS2010Express1.iso) (or Pro) + +[Visual Studio 2010 Service Pack 1](http://web.archive.org/web/20160401071422/http://download.microsoft.com/download/E/B/A/EBA0A152-F426-47E6-9E3F-EFB686E3CA20/VS2010SP1dvd1.iso) (needed for the multi-language support in RetroArch) + +## RetroArch Compilation +### Building RetroArch + +The first step is to obtain RetroArch's source tree. + +If you need a git shell to work in, [msysgit 1.8.5.2](https://github.com/msysgit/msysgit/releases/download/Git-1.8.5.2-preview20131230/Git-1.8.5.2-preview20131230.exe) is known to work. + +You can clone the repository directly from [GitHub](https://github.com/libretro/RetroArch): + + git clone https://github.com/libretro/RetroArch.git retroarch + +For subsequent builds you will need to pull the changes from the repo + + cd retroarch + git pull + +To compile RetroArch, first open the solution file located at pkg/msvc/RetroArch-msvc2010.sln with Visual Studio 2010. + +Next we select the desired solution configuration: + +![configurations](https://s3.amazonaws.com/retroarch/msvc2010-targets.png) + +The choices are: + + Debug + Debug Cg + Release + Release Cg + +For development purposes you can use the Debug configurations, otherwise use Release. The "Cg" versions also include support for Cg shaders used with the OpenGL video driver. These will require a separate installation of the [Nvidia Cg Toolkit](https://developer.nvidia.com/cg-toolkit). + +Now press F7 to build the solution, or go to Build -> Build Solution. + +After the build is finished you should be able to find RetroArch-msvc2005.exe in the pkg/msvc/<configuration> directory, where `` is the one you chose earlier such as Debug or Release. To start the newly compiled retroarch you can press F5 in Visual C++ or simply navigate to the .exe file and run it there. diff --git a/docs/guides/RGUI.md b/docs/guides/RGUI.md new file mode 100644 index 00000000..b041e510 --- /dev/null +++ b/docs/guides/RGUI.md @@ -0,0 +1,115 @@ +# RGUI RetroArch Menu Interface + +RGUI is a simple built-in GUI for RetroArch. It was originally introduced in the Wii port of RetroArch in order to provide the console experience, where everything is controlled from a joypad. RGUI was later refitted for PC and mobile ports. + +![RGUI startup screen](images/rgui/rgui.png) + +## Features + +While RGUI cannot configure absolutely everything, it can do the most common things you would want to do while using RetroArch. + +- Selecting libretro core +- Load a game +- Tweak per-libretro core options (e.g. colorization in GameBoy) +- Load game from history (previous games played) +- Save/load savestates +- Configure shaders +- Configure aspect ratios +- Configure integer scale +- Toggle fullscreen +- Swap disk images (needed for PlayStation, see notes below!) +- Take screenshots +- Enable/disable real-time rewind +- Simple input configuration +- Mute/unmute audio +- Exit RetroArch (yes, sadly :p) + +## Config file +By default, RetroArch looks for a config in various places depending on OS: + +- **Linux/OSX**: `$XDG_CONFIG_HOME/retroarch/retroarch.cfg`, then `~/.config/retroarch/retroarch.cfg`, then `~/.retroarch.cfg`, and finally, as a fallback, `/etc/retroarch.cfg`. +- **Windows**: `retroarch.cfg` in same folder as `retroarch.exe`, then `%APPDATA%\retroarch.cfg`. + +To override this, use `retroarch --config customconfig.cfg`. If you have some special options you want to store in separate config files you can use `retroarch --config baseconfig.cfg --appendconfig specialconfig.cfg`. See man-page and/or `--help` for detail. + +### Warning +While you are changing settings in runtime, they are not saved to disk afterwards on PC by default. If you want RetroArch to automatically write back the config, either set `config_save_on_exit = true` in config, or enable this under Settings -> Config Save On Exit from within RGUI. + +By design, the config file is considered immutable as it is likely maintained by the user, and should not be overwritten behind the users back. This is not the case on consoles however, where looking at the config manually isn't really an option for most users. + +## Entering the menu + +* By default on PC, the F1 button will enter the menu. +* To exit the menu, use F1 or `Resume Game`. +* To start immediately in RGUI without any game or core loaded, use the `--menu` command line option. As a special case, if no arguments are received, it is treated the same as running `retroarch --menu`. + +Menu toggle button can be mapped to joypad as well, see option `input_menu_toggle` option in `retroarch.cfg`. + +## Navigating the menu + +RGUI is controlled like any other libretro core. Regular input binds will apply, and binds here are defined in terms of the RetroPad, RetroArch's joypad abstraction. + +- **A button** (Default PC: X): Accept/OK +- **B button** (Default PC: Z): Back/Cancel +- **Start** (Default PC: Return): Go to main settings menu +- **Select** (Default PC: Right shift): Set a setting to default +- **Up/Down D-pad** (Default PC: Up/Down keys): Browse settings/files +- **Left/Right D-pad** (Default PC: Left/Right keys): Toggle settings, or browse several items at once in file browser. + +### Searching through lists with keyboard +When using a keyboard, it can be slow to navigate a large list using gamepad-like controls. To help this, you can type `/` (forward slash) at any time to bring up a search-box. Type a search string and hit return. The cursor should jump to the first entry that matches. The search will match mid-path strings. However, if a match is found at the beginning of the path, like when searching for first letter, the start-of-path match will take priority. + +The forward slash is recognized on character basis, not on the key itself. This allows e.g. norwegian layouts to type forward slash using shift + 7. Characters which are outside the ASCII set are recognized but ignored as RGUI cannot render such characters anyways. + +## Starting a game + +* To load a game you need a libretro core to use, and a ROM. +* Selecting `Core` from top menu, you can browse for a libretro implementation. +* Where the browser starts depends on your `libretro_path` config. +* If blank, it will start in root (tedious to browse). If `libretro_path` is a directory, RGUI will use that as top folder. If `libretro_path` is a full path, it will start in the folder where the file is. + +After loading a libretro core, you will see the name and version of the core in lower part of screen. You can then browse for a ROM with `Load Game`. To control where RGUI starts to browse for roms, set `rgui_browser_directory` in config. If not set, it'll start in root. + +The browser will filter out extensions for the last core set in `Core`, and use that core when a ROM is loaded. If `libretro_path` in config is set with a full path to a core, this core is automatically selected once RGUI boots up (but you can still change the core afterwards). + +### Applying shaders +The fundamental options are: + +- **Apply Shader Changes**: After changing shader settings, use this to apply changes. Changing shader settings is a somewhat expensive operation so it has to be done explicitly. +- **Default Filter**: Choose hardware filter to use if a shader pass is not explicitly defined. +- **Load Shader Preset**: Load a Cg/GLSL preset directly. The RGUI shader menu is updated accordingly. If the CGP uses scaling methods which are not simple, (i.e. source scaling, same scaling factor for X/Y), the scaling factors displayed in RGUI might not be correct. +- **Shader Passes**: Number of shader passes to use. If you set this to 0, and use Apply Shader Changes, you use a "blank" shader. The Default Filter option will affect the stretching filter. + +For every shader pass you can configure: +- **Shader #N**: Path to shader. All shaders must be of the same type (i.e. .cg or .glsl). Set `video_shader_dir` in config to set where browser starts to look for shaders. +- **Shader #N Filter**: Hardware filter. If "don't care" is set, Default Filter will be used. +- **Shader #N Scale**: Scale for this pass. The scale factor accumulates, i.e. 2x for first pass and 2x for second pass will give you a 4x total scale. If there is a scale factor for last pass, the result is stretched to screen with filter specificed in Default Filter. If "don't care" is set, either 1x scale or stretch to fullscreen will be used depending if it's not the last pass or not. + +When you apply shaders, the RGUI shader settings are saved to a temporary file (either rgui.cgp or rgui.glslp) and loaded. The file persists after RetroArch exits. The file is saved to `video_shader_dir` directory in config. If you always want to load the RGUI preset on bootup, you can set `video_shader` option to this file. + +### Converting Cg shaders to GLSL +In some cases, Cg shaders cannot be supported. This goes for OpenGL ES drivers, and when EGL OpenGL contexts are used (KMS mode for instance). Using nVidia's `cgc` compiler, you can convert Cg shaders to GLSL shaders with the `cg2glsl` tool developed by us [here](https://github.com/Themaister/RetroArch/blob/master/tools/cg2glsl.py). It can convert single shaders as well as whole folder structures in batch. +100% compatibility is not guaranteed, but almost all shaders should work fine. Cg presets (.cgp) are not converted at the moment, but converting them is as simple as copying over the .cgp, rename it to .glslp and replace references to .cg files to .glsl. + +## Configuring input +Currently you can configure two settings per player (on PC): + +- **Device**: Picks which gamepad to use for player N. The name of the pad is available. +- **Device Type**: Picks which device type to use. This is relevant for the libretro core itself, and mostly useful for PlayStation, which needs to know if you're using a DualAnalog device or not. + +### Configuring joypad input +Configuring joypad input is supported from within RGUI. +Normal gameplay binds as well as RGUI hotkey binding is supported. It is possible to bind everything in succession for convenience. + +### Configuring keyboard input +Configuring keyboard input is currently not supported. To configure keyboard binds, it must be done outside RGUI. + +## PlayStation disk swapping +Some PlayStation games require disk swapping. To manage disks, libretro has a concept of a disk index (like a multi-disk CD player, remember those? :P). If a PlayStation core is loaded, `Disk Index` and `Disk Image Append` options are added to main menu. + +In Mednafen PSX, multi-CD images are typically handled with an .m3u playlist. In this case, you can swap disks by cycling through the Disk Index setting. If you don't or can't use a playlist, you can append a disk image on the fly using `Disk Image Append`. In this case, you browse for a disk image and append it to the internal disk image list. The `Disk Index` is updated appropriately and you are returned to the game. + +### Workarounds +Replacing the disk inside RGUI is "physically" speaking the same as ejecting, swapping disks and closing the tray instantanously. Some games will not work with this approach, notably Metal Gear Solid because they need to detect an actual eject taking place. + +To work around this, set `Disk Index` to `No Disk`, and exit RGUI. The game will pick up that the tray has been ejected/missing disk after half a second or so. Now you can go back to RGUI, pick the correct disk index and return to the game. diff --git a/docs/guides/cli-intro.md b/docs/guides/cli-intro.md new file mode 100644 index 00000000..79f52e71 --- /dev/null +++ b/docs/guides/cli-intro.md @@ -0,0 +1,32 @@ +# RetroArch CLI + +RetroArch can be utilized via its robust graphical interfaces as well as a powerful command-line interface (CLI). Getting familiar with the command-line helps you understand the design principles of RetroArch. + +Note: please be aware of whether your system uses DOS/Windows style paths with backslashes `\` or Unix-style paths with forward slashes: `/`. + +#### Loading a ROM and libretro core (Unix-style path) + retroarch -L /path/to/libretro/core.so game.rom + +#### Loading a ROM and libretro core with flatpak + retroarch -L /path/to/libretro/core.so game.rom + flatpak run org.libretro.RetroArch/x86_64/stable -L /home/MYUSERNAME/.var/app/org.libretro.RetroArch/config/retroarch/cores/nestopia_libretro.so Tetris.nes + + +## Verbose logging output +To get a better idea on what's going on, use the `--verbose` flag. If you want to report a bug, it is **vital** that this log is included. + +## Using a config file +By default, RetroArch looks for a config in various places depending on OS: + +- **Linux/OSX**: `$XDG_CONFIG_HOME/retroarch/retroarch.cfg`, then `~/.config/retroarch/retroarch.cfg`, then `~/.retroarch.cfg`, and finally, as a fallback, `/etc/retroarch.cfg`. +- **Windows**: `retroarch.cfg` in same folder as `retroarch.exe`, then `%APPDATA%\retroarch.cfg`. + +To override this, use `retroarch --config customconfig.cfg`. If you have some special options you want to store in separate config files, you can use `retroarch --config baseconfig.cfg --appendconfig specialconfig.cfg`. Be sure to pass `--menu` as well if you aren't loading content directly from the command-line, or RetroArch will close immediately after launching. See man-page and/or `--help` for detail. + +## Other essential CLI flags + +### retroarch --help +Use the `--help` help flag to display RetroArch's built-in CLI documentation. You'll probably discover some features you didn't think about. + +### retroarch --features +If you're unsure if a particular feature is compiled in, execute `retroarch --features` diff --git a/docs/guides/extensions.md b/docs/guides/extensions.md new file mode 100644 index 00000000..8e19b402 --- /dev/null +++ b/docs/guides/extensions.md @@ -0,0 +1,56 @@ +## CUE + +- 4DO +- Genesis Plus GX +- Beetle PCE Fast + Beetle SGX +- Beetle PC-FX +- Yabause +- Reicast +- PicoDrive +- Beetle PSX + Beetle PSX HW +- Beetle Saturn +- PCSX ReARMed + +## M3U + +- blueMSX +- Beetle PSX + Beetle PSX HW +- Beetle Saturn +- PCSX ReARMed +- PX68k + +## CHD + +- Genesis Plus GX +- MAME 2000 +- MAME 2009 +- MAME 2010 +- MAME 2014 +- MAME 2016 +- MAME +- MESS 2014 +- Beetle Saturn +- Beetle PSX + Beetle PSX HW +- Beetle PC-FX +- Beetle PCE FAST +- Beetle SGX +- Redream +- Reicast +- UME 2014 + +## PBP + +- Beetle PSX + Beetle PSX HW +- PCSX ReARMed +- PPSSPP + +## Disk Control + +- Beetle PSX + Beetle PSX HW +- Beetle Saturn +- PCSX ReARMed +- PicoDrive +- PX68k +- blueMSX +- Neko Project II Kai +- VICE \ No newline at end of file diff --git a/docs/guides/files/ratecontrol.pdf b/docs/guides/files/ratecontrol.pdf new file mode 100644 index 00000000..d19156a7 Binary files /dev/null and b/docs/guides/files/ratecontrol.pdf differ diff --git a/docs/guides/generating-retroarch-logs.md b/docs/guides/generating-retroarch-logs.md new file mode 100644 index 00000000..708065c9 --- /dev/null +++ b/docs/guides/generating-retroarch-logs.md @@ -0,0 +1,117 @@ +## What are logs? Why are they so important? + +RetroArch and its underlying libretro technology is designed to run on many different combinations of hardware, operating system, libretro core, and content. It is not possible for a volunteer-based open source project to test all possible combinations. + +The answer to this dilemma involves "logs", which RetroArch and other libretro software use to record essential information about your system and its function that other users and volunteers need in order to help troubleshoot problems and improve compatibility with new systems. + +-------------------------- + +## Generating Logs + +### Generating Logs in Lakka +[Please see the Troubleshooting Lakka doc](http://www.lakka.tv/doc/Troubleshooting-Lakka/). + +### Generating Logs in Linux + +#### RetroArch logs +1. Open a terminal. +2. Navigate to the RetroArch folder with the `cd` command. +3. Start retroarch in 'verbose' mode with this command:
+ `retroarch --menu --verbose >> retroarch.log 2>&1` +4. Once you exit RetroArch, a file called `retroarch.log` should be stored in your home directory. + +#### Graphic card logs +`lspci -nnk | grep -A 3 VGA` will give information about your graphic card. + +#### Audio device logs +`aplay -L` enumerates audio devices which have been detected. + +#### Input device logs +`lsusb` lists all devices attached via USB + +`dmesg` displays all messages from the kernel ring buffer which typically is holding the messages generated by the Linux kernel from the boot process. The dmesg log lists each hardware device that the kernel detected along with information on how the device was configured by the system. + +### Generating Logs in Windows + + +If you **installed** RetroArch: + +1. Open the Windows start menu +2. Search and open `RetroArch (log to file)` + +Once you exit RetroArch, a file called `retroarch-log.txt` should be stored in the RetroArch folder, in order to retrieve it: + +1. Open the windows start menu +2. Search and open `RetroArch Data Folder` +3. Find `retroarch-log.txt` + + +If you **haven't installed** RetroArch and have a folder with it: + +!!! tip + You can hold `shift` then `right click` on the **folder that contains** retroarch.exe
+ Select `Open PowerShell window here`.
+ Then jump to step 3. + +1. Open a console window with the `cmd` command, found either in the Start Menu or through use of the Windows "Run" menu. +2. Navigate to the RetroArch folder using the `cd` command. +3. Launch RetroArch with this commandline:
+ `.\retroarch.exe --log-file .\retroarch-log.txt -v` +4. Once you exit RetrorArch, a file called `retroarch-log.txt` should be stored in the folder. + +!!! note "Log with debug symbols" + Optionally or if asked, launch RetroArch with debug symbols with this commandline:
+ `.\retroarch_debug.exe --log-file .\retroarch-log.txt -v` + + +### Generating Logs in OS X +1. Open a console window with the OS X "Terminal" app. +2. Navigate to the RetroArch folder using the `cd` command. +3. Launch RetroArch with this commandline:
+ `retroarch --menu --verbose --log-file ~/retroarch.log` +4. Once you exit RetroArch, a file called `retroarch.log` should be stored in your home directory. + +### Generating Logs in Android +There is a range of variation in the logging systems available to Android device depending on the combination of hardware and operating system in use. There are two general approaches to generating logs in Android: tethering to a PC via a USB cable or using a `logcat` app. + +#### Generating Logs via USB Tether + +**Prerequisites**: +* Linux, Windows or Mac PC +* USB cable for your device + +**Instructions**: + +* Install your device driver for using adb on your PC from http://developer.android.com/tools/extras/oem-usb.html +* Download the adb executable for your OS -- it can be downloaded as part of the [full Android SDK](https://developer.android.com/studio/index.html), but you might also be able to find the adb executable individually. +* Connect your Android device to the PC via USB cable. +* Enable the developer options on the Android. +* Enable USB debugging on the Android. +* Open a command prompt (Windows) or terminal (Linux/OS X) and navigate to the directory where the adb executable is located using the `cd` command. On Windows: Windows Key + R > type `cmd` > press Enter. On OS X: Type `Terminal` into Spotlight and open it. Alternately, on Windows: Go to the directory where you downloaded the adb executable, Shift+Right Click and select `Open Console` (or similar) | On Linux / OS X: Right Click in the directory and select `Open Terminal here` +* Type in your console window: `adb devices` to verify your device is properly connected. +* If your device is selected, type in `adb logcat` to show the logcat, aka stacktrace. +* Reproduce your issue on your device. +* Paste the contents of your console window into a Github Gist to share on the forums or github. + +_Based on Stackexchange posts by Leandros and Nicolas Raoul._ + +#### Generating Logs via Android App +Gathering log files in Android requires a third-party app that can interface with the `logcat` system. Many free apps are available via Android's "Play Store" system. + +### Generating Logs in iOS +At the moment there are no logging docs available for iOS. Please feel free to post about your situation in the libretro forums. + +### Generating Logs with Nintendo Consoles +At the moment there are no logging docs available for Nintendo consoles. Please feel free to post about your situation in the libretro forums. + +### Generating Logs with PlayStation Consoles +At the moment there are no logging docs available for PlayStation consoles. Please feel free to post about your situation in the libretro forums. + + +------------------------- + +## Posting Logs in the Forum and Github + +Generally, log files are lengthy which make them difficult to read when they're pasted directly into a post on the forums or github. If your log file is more than six or seven lines long, you will be asked to post a link to it instead. + +One free and straightforward system for posting and sharing logs is [Github Gist](https://gist.github.com). You can paste the contents of a log file, or the log file itself, into the Gist website. After you log has been added to the Gist, press the `Create Public Gist` button to create a shareable link. diff --git a/docs/guides/how-to-contribute.md b/docs/guides/how-to-contribute.md new file mode 100644 index 00000000..055309c9 --- /dev/null +++ b/docs/guides/how-to-contribute.md @@ -0,0 +1,20 @@ +# Contribute to the documentation + +The docs are written in [Markdown](https://en.wikipedia.org/wiki/Markdown) if you need help with the syntax use [this guide](https://guides.github.com/features/mastering-markdown/).
+Mkdocs uses some [Markdown extensions](http://www.mkdocs.org/user-guide/writing-your-docs/#markdown-extensions) that you may have to familiarize with. + +The documentation source is maintained via [Git](https://en.wikipedia.org/wiki/Git)
+For novice users that don't know how to use the command line you can use [Github Desktop](https://desktop.github.com/).
+For more info on how to use git [refer to their help](https://help.github.com/) + +In order to propose improvements to a document: + +1. [Clone the repo](https://github.com/libretro/docs) (If you are using [Github Desktop](https://desktop.github.com/), select Clone>Open in Desktop) +2. Make the changes and update your clone +3. Test, [follow the Building section to render the site](https://github.com/libretro/docs/blob/master/README.md#building) +4. Propose your changes using the button "New Pull Request" [in the docs repo](https://github.com/libretro/docs)
+make sure that you are comparing **your forks edited branch** to the **docs master branch** + +There is a To-Do list for libretro/docs [here](https://docs.libretro.com/meta/todo/) + +You can submit suggestions or issues regarding documentation at the [libretro/docs issue tracker](https://github.com/libretro/docs/issues) or in our [forum thread](https://forums.libretro.com/t/wip-adding-pages-to-documentation-site/10078/). diff --git a/docs/guides/images/Button_Pack/Controller_Disconnected.png b/docs/guides/images/Button_Pack/Controller_Disconnected.png new file mode 100644 index 00000000..6c93defc Binary files /dev/null and b/docs/guides/images/Button_Pack/Controller_Disconnected.png differ diff --git a/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Cross.png b/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Cross.png new file mode 100644 index 00000000..32610ddc Binary files /dev/null and b/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Cross.png differ diff --git a/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Diagonal.png b/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Diagonal.png new file mode 100644 index 00000000..6343f7df Binary files /dev/null and b/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Diagonal.png differ diff --git a/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Full_Circle.png b/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Full_Circle.png new file mode 100644 index 00000000..b468931c Binary files /dev/null and b/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Full_Circle.png differ diff --git a/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Half_Circle.png b/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Half_Circle.png new file mode 100644 index 00000000..39230440 Binary files /dev/null and b/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Half_Circle.png differ diff --git a/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Horizontal.png b/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Horizontal.png new file mode 100644 index 00000000..7cfd4860 Binary files /dev/null and b/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Horizontal.png differ diff --git a/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Quarter_Circle.png b/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Quarter_Circle.png new file mode 100644 index 00000000..10f8b788 Binary files /dev/null and b/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Quarter_Circle.png differ diff --git a/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Sides.png b/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Sides.png new file mode 100644 index 00000000..7cfd4860 Binary files /dev/null and b/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Sides.png differ diff --git a/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Straight.png b/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Straight.png new file mode 100644 index 00000000..f727cf94 Binary files /dev/null and b/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Straight.png differ diff --git a/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Vertical.png b/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Vertical.png new file mode 100644 index 00000000..f616a991 Binary files /dev/null and b/docs/guides/images/Button_Pack/Directional_Arrows/Directional_Arrow_Vertical.png differ diff --git a/docs/guides/images/Button_Pack/Gestures/Gesture_Double_Rotate.png b/docs/guides/images/Button_Pack/Gestures/Gesture_Double_Rotate.png new file mode 100644 index 00000000..8846b9fa Binary files /dev/null and b/docs/guides/images/Button_Pack/Gestures/Gesture_Double_Rotate.png differ diff --git a/docs/guides/images/Button_Pack/Gestures/Gesture_Double_Tap.png b/docs/guides/images/Button_Pack/Gestures/Gesture_Double_Tap.png new file mode 100644 index 00000000..b31eff77 Binary files /dev/null and b/docs/guides/images/Button_Pack/Gestures/Gesture_Double_Tap.png differ diff --git a/docs/guides/images/Button_Pack/Gestures/Gesture_Finger_Front.png b/docs/guides/images/Button_Pack/Gestures/Gesture_Finger_Front.png new file mode 100644 index 00000000..7196212b Binary files /dev/null and b/docs/guides/images/Button_Pack/Gestures/Gesture_Finger_Front.png differ diff --git a/docs/guides/images/Button_Pack/Gestures/Gesture_Finger_Side.png b/docs/guides/images/Button_Pack/Gestures/Gesture_Finger_Side.png new file mode 100644 index 00000000..bb4b68fa Binary files /dev/null and b/docs/guides/images/Button_Pack/Gestures/Gesture_Finger_Side.png differ diff --git a/docs/guides/images/Button_Pack/Gestures/Gesture_Full_Circle.png b/docs/guides/images/Button_Pack/Gestures/Gesture_Full_Circle.png new file mode 100644 index 00000000..96ed4933 Binary files /dev/null and b/docs/guides/images/Button_Pack/Gestures/Gesture_Full_Circle.png differ diff --git a/docs/guides/images/Button_Pack/Gestures/Gesture_Half_Circle.png b/docs/guides/images/Button_Pack/Gestures/Gesture_Half_Circle.png new file mode 100644 index 00000000..ee5f6c6c Binary files /dev/null and b/docs/guides/images/Button_Pack/Gestures/Gesture_Half_Circle.png differ diff --git a/docs/guides/images/Button_Pack/Gestures/Gesture_Hold.png b/docs/guides/images/Button_Pack/Gestures/Gesture_Hold.png new file mode 100644 index 00000000..642957ec Binary files /dev/null and b/docs/guides/images/Button_Pack/Gestures/Gesture_Hold.png differ diff --git a/docs/guides/images/Button_Pack/Gestures/Gesture_Quarter_Circle.png b/docs/guides/images/Button_Pack/Gestures/Gesture_Quarter_Circle.png new file mode 100644 index 00000000..d0ee2115 Binary files /dev/null and b/docs/guides/images/Button_Pack/Gestures/Gesture_Quarter_Circle.png differ diff --git a/docs/guides/images/Button_Pack/Gestures/Gesture_Scroll_Down.png b/docs/guides/images/Button_Pack/Gestures/Gesture_Scroll_Down.png new file mode 100644 index 00000000..542f9b6c Binary files /dev/null and b/docs/guides/images/Button_Pack/Gestures/Gesture_Scroll_Down.png differ diff --git a/docs/guides/images/Button_Pack/Gestures/Gesture_Scroll_Left.png b/docs/guides/images/Button_Pack/Gestures/Gesture_Scroll_Left.png new file mode 100644 index 00000000..1cc1b515 Binary files /dev/null and b/docs/guides/images/Button_Pack/Gestures/Gesture_Scroll_Left.png differ diff --git a/docs/guides/images/Button_Pack/Gestures/Gesture_Scroll_Right.png b/docs/guides/images/Button_Pack/Gestures/Gesture_Scroll_Right.png new file mode 100644 index 00000000..78ae227a Binary files /dev/null and b/docs/guides/images/Button_Pack/Gestures/Gesture_Scroll_Right.png differ diff --git a/docs/guides/images/Button_Pack/Gestures/Gesture_Scroll_Up.png b/docs/guides/images/Button_Pack/Gestures/Gesture_Scroll_Up.png new file mode 100644 index 00000000..d40c725e Binary files /dev/null and b/docs/guides/images/Button_Pack/Gestures/Gesture_Scroll_Up.png differ diff --git a/docs/guides/images/Button_Pack/Gestures/Gesture_Swipe_Bottom.png b/docs/guides/images/Button_Pack/Gestures/Gesture_Swipe_Bottom.png new file mode 100644 index 00000000..b5d729c1 Binary files /dev/null and b/docs/guides/images/Button_Pack/Gestures/Gesture_Swipe_Bottom.png differ diff --git a/docs/guides/images/Button_Pack/Gestures/Gesture_Swipe_Bottom_Left.png b/docs/guides/images/Button_Pack/Gestures/Gesture_Swipe_Bottom_Left.png new file mode 100644 index 00000000..1cd25dca Binary files /dev/null and b/docs/guides/images/Button_Pack/Gestures/Gesture_Swipe_Bottom_Left.png differ diff --git a/docs/guides/images/Button_Pack/Gestures/Gesture_Swipe_Bottom_Right.png b/docs/guides/images/Button_Pack/Gestures/Gesture_Swipe_Bottom_Right.png new file mode 100644 index 00000000..29206639 Binary files /dev/null and b/docs/guides/images/Button_Pack/Gestures/Gesture_Swipe_Bottom_Right.png differ diff --git a/docs/guides/images/Button_Pack/Gestures/Gesture_Swipe_Left.png b/docs/guides/images/Button_Pack/Gestures/Gesture_Swipe_Left.png new file mode 100644 index 00000000..a645c001 Binary files /dev/null and b/docs/guides/images/Button_Pack/Gestures/Gesture_Swipe_Left.png differ diff --git a/docs/guides/images/Button_Pack/Gestures/Gesture_Swipe_Right.png b/docs/guides/images/Button_Pack/Gestures/Gesture_Swipe_Right.png new file mode 100644 index 00000000..2d73d572 Binary files /dev/null and b/docs/guides/images/Button_Pack/Gestures/Gesture_Swipe_Right.png differ diff --git a/docs/guides/images/Button_Pack/Gestures/Gesture_Swipe_Top_Left.png b/docs/guides/images/Button_Pack/Gestures/Gesture_Swipe_Top_Left.png new file mode 100644 index 00000000..bf16851b Binary files /dev/null and b/docs/guides/images/Button_Pack/Gestures/Gesture_Swipe_Top_Left.png differ diff --git a/docs/guides/images/Button_Pack/Gestures/Gesture_Swipe_Top_Right.png b/docs/guides/images/Button_Pack/Gestures/Gesture_Swipe_Top_Right.png new file mode 100644 index 00000000..83f2cceb Binary files /dev/null and b/docs/guides/images/Button_Pack/Gestures/Gesture_Swipe_Top_Right.png differ diff --git a/docs/guides/images/Button_Pack/Gestures/Gesture_Swipe_Up.png b/docs/guides/images/Button_Pack/Gestures/Gesture_Swipe_Up.png new file mode 100644 index 00000000..5e482bd4 Binary files /dev/null and b/docs/guides/images/Button_Pack/Gestures/Gesture_Swipe_Up.png differ diff --git a/docs/guides/images/Button_Pack/Gestures/Gesture_Tap.png b/docs/guides/images/Button_Pack/Gestures/Gesture_Tap.png new file mode 100644 index 00000000..31a050e4 Binary files /dev/null and b/docs/guides/images/Button_Pack/Gestures/Gesture_Tap.png differ diff --git a/docs/guides/images/Button_Pack/Gestures/Gesture_Zoom_In.png b/docs/guides/images/Button_Pack/Gestures/Gesture_Zoom_In.png new file mode 100644 index 00000000..99b8738a Binary files /dev/null and b/docs/guides/images/Button_Pack/Gestures/Gesture_Zoom_In.png differ diff --git a/docs/guides/images/Button_Pack/Gestures/Gesture_Zoom_Out.png b/docs/guides/images/Button_Pack/Gestures/Gesture_Zoom_Out.png new file mode 100644 index 00000000..40c85d45 Binary files /dev/null and b/docs/guides/images/Button_Pack/Gestures/Gesture_Zoom_Out.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Enter.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Enter.png new file mode 100644 index 00000000..08ef6dda Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Enter.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Mouse.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Mouse.png new file mode 100644 index 00000000..774bc629 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Mouse.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Normal.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Normal.png new file mode 100644 index 00000000..9c47c66f Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Normal.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Super_Wide.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Super_Wide.png new file mode 100644 index 00000000..e23994c9 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Super_Wide.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Wide.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Wide.png new file mode 100644 index 00000000..59710629 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Wide.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_tall.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_tall.png new file mode 100644 index 00000000..183a731a Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_tall.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Enter.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Enter.png new file mode 100644 index 00000000..744d3806 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Enter.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Mouse.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Mouse.png new file mode 100644 index 00000000..7891ea40 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Mouse.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Normal.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Normal.png new file mode 100644 index 00000000..beee975a Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Normal.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Super_Wide.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Super_Wide.png new file mode 100644 index 00000000..183b10c5 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Super_Wide.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Tall.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Tall.png new file mode 100644 index 00000000..ae3cdf5a Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Tall.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Wide.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Wide.png new file mode 100644 index 00000000..416b0560 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Wide.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_0.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_0.png new file mode 100644 index 00000000..ab5408ef Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_0.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_1.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_1.png new file mode 100644 index 00000000..d88cfd09 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_1.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_10.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_10.png new file mode 100644 index 00000000..17339fe3 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_10.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_11.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_11.png new file mode 100644 index 00000000..18001d0b Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_11.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_12.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_12.png new file mode 100644 index 00000000..a18bb74d Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_12.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_2.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_2.png new file mode 100644 index 00000000..257a0a8a Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_2.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_3.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_3.png new file mode 100644 index 00000000..37f01a24 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_3.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_4.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_4.png new file mode 100644 index 00000000..f2ec50e8 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_4.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_5.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_5.png new file mode 100644 index 00000000..4996f906 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_5.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_6.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_6.png new file mode 100644 index 00000000..7ebf62d6 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_6.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_7.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_7.png new file mode 100644 index 00000000..bae81b4f Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_7.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_8.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_8.png new file mode 100644 index 00000000..4cbf1590 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_8.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_9.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_9.png new file mode 100644 index 00000000..8da9b01c Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_9.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_A.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_A.png new file mode 100644 index 00000000..ba2b1dd6 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_A.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Alt.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Alt.png new file mode 100644 index 00000000..9c0ceb67 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Alt.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Down.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Down.png new file mode 100644 index 00000000..9edcf582 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Down.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Left.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Left.png new file mode 100644 index 00000000..3425005d Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Left.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Right.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Right.png new file mode 100644 index 00000000..929cb352 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Right.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Up.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Up.png new file mode 100644 index 00000000..025a68d4 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Up.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Asterisk.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Asterisk.png new file mode 100644 index 00000000..abcdd9f8 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Asterisk.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_B.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_B.png new file mode 100644 index 00000000..bb6b3bb4 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_B.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Backspace.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Backspace.png new file mode 100644 index 00000000..bd2b56df Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Backspace.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Backspace_Alt.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Backspace_Alt.png new file mode 100644 index 00000000..be1a7588 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Backspace_Alt.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Bracket_Left.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Bracket_Left.png new file mode 100644 index 00000000..8734b861 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Bracket_Left.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Bracket_Right.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Bracket_Right.png new file mode 100644 index 00000000..c56aef45 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Bracket_Right.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_C.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_C.png new file mode 100644 index 00000000..005e4ca4 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_C.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Caps_Lock.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Caps_Lock.png new file mode 100644 index 00000000..de5adb8f Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Caps_Lock.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Command.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Command.png new file mode 100644 index 00000000..22dfd60b Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Command.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Ctrl.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Ctrl.png new file mode 100644 index 00000000..12456bd0 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Ctrl.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_D.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_D.png new file mode 100644 index 00000000..cfd36f29 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_D.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Del.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Del.png new file mode 100644 index 00000000..87bd8307 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Del.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_E.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_E.png new file mode 100644 index 00000000..34b7be11 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_E.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_End.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_End.png new file mode 100644 index 00000000..2d6211cf Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_End.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Enter.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Enter.png new file mode 100644 index 00000000..1f144f58 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Enter.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Enter_Alt.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Enter_Alt.png new file mode 100644 index 00000000..54932935 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Enter_Alt.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Enter_Tall.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Enter_Tall.png new file mode 100644 index 00000000..de3abde2 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Enter_Tall.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Esc.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Esc.png new file mode 100644 index 00000000..c363cdc4 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Esc.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F.png new file mode 100644 index 00000000..0781a72c Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F1.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F1.png new file mode 100644 index 00000000..fc5865ab Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F1.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F10.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F10.png new file mode 100644 index 00000000..17339fe3 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F10.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F11.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F11.png new file mode 100644 index 00000000..18001d0b Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F11.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F12.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F12.png new file mode 100644 index 00000000..a18bb74d Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F12.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F2.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F2.png new file mode 100644 index 00000000..ffceae5b Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F2.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F3.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F3.png new file mode 100644 index 00000000..c49d8408 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F3.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F4.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F4.png new file mode 100644 index 00000000..c09acb24 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F4.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F5.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F5.png new file mode 100644 index 00000000..c304fd07 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F5.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F6.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F6.png new file mode 100644 index 00000000..bc3f31c4 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F6.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F7.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F7.png new file mode 100644 index 00000000..2c28dc0d Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F7.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F8.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F8.png new file mode 100644 index 00000000..6c09529c Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F8.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F9.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F9.png new file mode 100644 index 00000000..0b67e2bb Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F9.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_G.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_G.png new file mode 100644 index 00000000..79ffcd21 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_G.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_H.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_H.png new file mode 100644 index 00000000..00a4fe45 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_H.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Home.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Home.png new file mode 100644 index 00000000..10ba170a Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Home.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_I.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_I.png new file mode 100644 index 00000000..de8f252c Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_I.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Insert.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Insert.png new file mode 100644 index 00000000..d0ae4d5c Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Insert.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_J.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_J.png new file mode 100644 index 00000000..947b5eb3 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_J.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_K.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_K.png new file mode 100644 index 00000000..2ca24bd0 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_K.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_L.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_L.png new file mode 100644 index 00000000..725c8783 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_L.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_M.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_M.png new file mode 100644 index 00000000..4477153c Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_M.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mark_Left.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mark_Left.png new file mode 100644 index 00000000..a5e48ce3 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mark_Left.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mark_Right.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mark_Right.png new file mode 100644 index 00000000..d418e77c Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mark_Right.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Minus.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Minus.png new file mode 100644 index 00000000..1e6dcf72 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Minus.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mouse_Left.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mouse_Left.png new file mode 100644 index 00000000..1b1eb863 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mouse_Left.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mouse_Middle.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mouse_Middle.png new file mode 100644 index 00000000..0fd0a2ea Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mouse_Middle.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mouse_Right.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mouse_Right.png new file mode 100644 index 00000000..cc24f927 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mouse_Right.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mouse_Simple.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mouse_Simple.png new file mode 100644 index 00000000..774bc629 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mouse_Simple.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_N.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_N.png new file mode 100644 index 00000000..689e2f61 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_N.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Num_Lock.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Num_Lock.png new file mode 100644 index 00000000..2808f917 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Num_Lock.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_O.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_O.png new file mode 100644 index 00000000..b703ceb0 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_O.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_P.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_P.png new file mode 100644 index 00000000..13e8393e Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_P.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Page_Down.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Page_Down.png new file mode 100644 index 00000000..ace123f5 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Page_Down.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Page_Up.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Page_Up.png new file mode 100644 index 00000000..da15112d Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Page_Up.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Plus.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Plus.png new file mode 100644 index 00000000..ebc10352 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Plus.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Plus_Tall.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Plus_Tall.png new file mode 100644 index 00000000..3049116a Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Plus_Tall.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Print_Screen.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Print_Screen.png new file mode 100644 index 00000000..88ad6173 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Print_Screen.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Q.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Q.png new file mode 100644 index 00000000..fe8add96 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Q.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Question.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Question.png new file mode 100644 index 00000000..d32683c1 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Question.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Quote.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Quote.png new file mode 100644 index 00000000..108d665d Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Quote.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_R.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_R.png new file mode 100644 index 00000000..5ac24610 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_R.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_S.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_S.png new file mode 100644 index 00000000..1fb8919d Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_S.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Semicolon.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Semicolon.png new file mode 100644 index 00000000..800d299f Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Semicolon.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Shift.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Shift.png new file mode 100644 index 00000000..05ba7918 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Shift.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Shift_Alt.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Shift_Alt.png new file mode 100644 index 00000000..e57fb5f6 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Shift_Alt.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Slash.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Slash.png new file mode 100644 index 00000000..38b411bb Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Slash.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Space.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Space.png new file mode 100644 index 00000000..2298b4ff Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Space.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_T.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_T.png new file mode 100644 index 00000000..9ba1250a Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_T.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Tab.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Tab.png new file mode 100644 index 00000000..3fea857e Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Tab.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Tilda.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Tilda.png new file mode 100644 index 00000000..2f8db91a Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Tilda.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_U.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_U.png new file mode 100644 index 00000000..79f91389 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_U.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_V.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_V.png new file mode 100644 index 00000000..c0f0599f Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_V.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_W.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_W.png new file mode 100644 index 00000000..06278eee Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_W.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Win.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Win.png new file mode 100644 index 00000000..58576cb7 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Win.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_X.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_X.png new file mode 100644 index 00000000..95192f02 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_X.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Y.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Y.png new file mode 100644 index 00000000..b94e4555 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Y.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Z.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Z.png new file mode 100644 index 00000000..e9a12999 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Z.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_0.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_0.png new file mode 100644 index 00000000..243de8d7 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_0.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_1.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_1.png new file mode 100644 index 00000000..2e908716 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_1.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_10.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_10.png new file mode 100644 index 00000000..08e187a9 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_10.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_11.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_11.png new file mode 100644 index 00000000..a0d1945a Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_11.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_12.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_12.png new file mode 100644 index 00000000..19c2344a Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_12.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_2.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_2.png new file mode 100644 index 00000000..775745ba Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_2.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_3.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_3.png new file mode 100644 index 00000000..8dc2794e Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_3.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_4.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_4.png new file mode 100644 index 00000000..d09d43cc Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_4.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_5.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_5.png new file mode 100644 index 00000000..dd283152 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_5.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_6.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_6.png new file mode 100644 index 00000000..a3c29f46 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_6.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_7.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_7.png new file mode 100644 index 00000000..aeacb455 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_7.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_8.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_8.png new file mode 100644 index 00000000..30057810 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_8.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_9.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_9.png new file mode 100644 index 00000000..fb87ddbd Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_9.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_A.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_A.png new file mode 100644 index 00000000..57a1d6f6 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_A.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Alt.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Alt.png new file mode 100644 index 00000000..677fee78 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Alt.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Arrow_Down.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Arrow_Down.png new file mode 100644 index 00000000..3afcebab Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Arrow_Down.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Arrow_Left.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Arrow_Left.png new file mode 100644 index 00000000..6c4beecc Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Arrow_Left.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Arrow_Right.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Arrow_Right.png new file mode 100644 index 00000000..f0f9e764 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Arrow_Right.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Arrow_Up.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Arrow_Up.png new file mode 100644 index 00000000..8f4b0e4d Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Arrow_Up.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Asterisk.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Asterisk.png new file mode 100644 index 00000000..5de5317e Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Asterisk.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_B.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_B.png new file mode 100644 index 00000000..6de48cff Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_B.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Backspace.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Backspace.png new file mode 100644 index 00000000..d6da7ab2 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Backspace.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Backspace_Alt.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Backspace_Alt.png new file mode 100644 index 00000000..e583b607 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Backspace_Alt.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Bracket_Left.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Bracket_Left.png new file mode 100644 index 00000000..1e8fd691 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Bracket_Left.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Bracket_Right.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Bracket_Right.png new file mode 100644 index 00000000..56365f19 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Bracket_Right.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_C.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_C.png new file mode 100644 index 00000000..46a65138 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_C.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Caps_Lock.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Caps_Lock.png new file mode 100644 index 00000000..0b7a975c Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Caps_Lock.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Command.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Command.png new file mode 100644 index 00000000..382a351b Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Command.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Ctrl.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Ctrl.png new file mode 100644 index 00000000..00ba554a Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Ctrl.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_D.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_D.png new file mode 100644 index 00000000..70876b97 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_D.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Del.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Del.png new file mode 100644 index 00000000..6e0f5438 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Del.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_E.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_E.png new file mode 100644 index 00000000..f750f3ac Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_E.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_End.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_End.png new file mode 100644 index 00000000..bd8d6e18 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_End.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Enter.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Enter.png new file mode 100644 index 00000000..5f4c40af Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Enter.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Enter_Alt.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Enter_Alt.png new file mode 100644 index 00000000..7b567410 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Enter_Alt.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Enter_Tall.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Enter_Tall.png new file mode 100644 index 00000000..fd57a440 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Enter_Tall.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Esc.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Esc.png new file mode 100644 index 00000000..d152e31a Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Esc.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F.png new file mode 100644 index 00000000..1504aba8 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F1.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F1.png new file mode 100644 index 00000000..4dae2fb0 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F1.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F10.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F10.png new file mode 100644 index 00000000..08e187a9 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F10.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F11.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F11.png new file mode 100644 index 00000000..a0d1945a Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F11.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F12.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F12.png new file mode 100644 index 00000000..19c2344a Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F12.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F2.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F2.png new file mode 100644 index 00000000..e50bcb89 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F2.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F3.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F3.png new file mode 100644 index 00000000..c9feb577 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F3.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F4.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F4.png new file mode 100644 index 00000000..0b8f4f67 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F4.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F5.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F5.png new file mode 100644 index 00000000..c74317f2 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F5.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F6.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F6.png new file mode 100644 index 00000000..cedfd8f8 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F6.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F7.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F7.png new file mode 100644 index 00000000..6337d82a Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F7.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F8.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F8.png new file mode 100644 index 00000000..71ab4929 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F8.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F9.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F9.png new file mode 100644 index 00000000..90e70716 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F9.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_G.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_G.png new file mode 100644 index 00000000..f01c2817 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_G.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_H.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_H.png new file mode 100644 index 00000000..37d9c6e0 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_H.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Home.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Home.png new file mode 100644 index 00000000..9044181c Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Home.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_I.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_I.png new file mode 100644 index 00000000..adde0712 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_I.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Insert.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Insert.png new file mode 100644 index 00000000..2682a11f Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Insert.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_J.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_J.png new file mode 100644 index 00000000..7a3a3d7c Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_J.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_K.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_K.png new file mode 100644 index 00000000..92e5b38b Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_K.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_L.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_L.png new file mode 100644 index 00000000..995e284f Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_L.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_M.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_M.png new file mode 100644 index 00000000..f53cf50b Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_M.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mark_Left.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mark_Left.png new file mode 100644 index 00000000..6b7b865e Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mark_Left.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mark_Right.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mark_Right.png new file mode 100644 index 00000000..defc71ef Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mark_Right.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Minus.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Minus.png new file mode 100644 index 00000000..47d3bc1f Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Minus.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mouse_Left.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mouse_Left.png new file mode 100644 index 00000000..22983fa3 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mouse_Left.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mouse_Middle.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mouse_Middle.png new file mode 100644 index 00000000..d3298c1a Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mouse_Middle.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mouse_Right.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mouse_Right.png new file mode 100644 index 00000000..8106df7e Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mouse_Right.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mouse_Simple.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mouse_Simple.png new file mode 100644 index 00000000..7891ea40 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mouse_Simple.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_N.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_N.png new file mode 100644 index 00000000..b24d7f65 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_N.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Num_Lock.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Num_Lock.png new file mode 100644 index 00000000..98f5f29e Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Num_Lock.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_O.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_O.png new file mode 100644 index 00000000..a59c477f Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_O.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_P.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_P.png new file mode 100644 index 00000000..940e6ce8 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_P.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Page_Down.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Page_Down.png new file mode 100644 index 00000000..d50f14af Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Page_Down.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Page_Up.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Page_Up.png new file mode 100644 index 00000000..5a8ec850 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Page_Up.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Plus.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Plus.png new file mode 100644 index 00000000..29c4fdd9 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Plus.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Plus_Tall.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Plus_Tall.png new file mode 100644 index 00000000..bdfedbed Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Plus_Tall.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Print_Screen.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Print_Screen.png new file mode 100644 index 00000000..10c77985 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Print_Screen.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Q.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Q.png new file mode 100644 index 00000000..38a2fa06 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Q.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Question.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Question.png new file mode 100644 index 00000000..03ddf97f Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Question.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Quote.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Quote.png new file mode 100644 index 00000000..fe432220 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Quote.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_R.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_R.png new file mode 100644 index 00000000..eda35ee8 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_R.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_S.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_S.png new file mode 100644 index 00000000..0ca61d85 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_S.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Semicolon.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Semicolon.png new file mode 100644 index 00000000..fcbd630f Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Semicolon.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Shift.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Shift.png new file mode 100644 index 00000000..21c4f49b Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Shift.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Shift_Alt.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Shift_Alt.png new file mode 100644 index 00000000..1ecfe498 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Shift_Alt.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Slash.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Slash.png new file mode 100644 index 00000000..e30ff0b3 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Slash.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Space.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Space.png new file mode 100644 index 00000000..1a2f0f6f Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Space.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_T.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_T.png new file mode 100644 index 00000000..a9d97677 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_T.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Tab.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Tab.png new file mode 100644 index 00000000..9b0534a2 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Tab.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Tilda.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Tilda.png new file mode 100644 index 00000000..1b9d0570 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Tilda.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_U.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_U.png new file mode 100644 index 00000000..72c0edfc Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_U.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_V.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_V.png new file mode 100644 index 00000000..181f8d7e Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_V.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_W.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_W.png new file mode 100644 index 00000000..7431ef21 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_W.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Win.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Win.png new file mode 100644 index 00000000..70afb485 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Win.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_X.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_X.png new file mode 100644 index 00000000..25b9d33a Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_X.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Y.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Y.png new file mode 100644 index 00000000..4702c2cd Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Y.png differ diff --git a/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Z.png b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Z.png new file mode 100644 index 00000000..f6037a95 Binary files /dev/null and b/docs/guides/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Z.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Oculus_A.png b/docs/guides/images/Button_Pack/Oculus/Oculus_A.png new file mode 100644 index 00000000..0d6afde8 Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Oculus_A.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Oculus_B.png b/docs/guides/images/Button_Pack/Oculus/Oculus_B.png new file mode 100644 index 00000000..33a7abd1 Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Oculus_B.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Oculus_Grab_Blank.png b/docs/guides/images/Button_Pack/Oculus/Oculus_Grab_Blank.png new file mode 100644 index 00000000..5454dbdb Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Oculus_Grab_Blank.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Oculus_LT.png b/docs/guides/images/Button_Pack/Oculus/Oculus_LT.png new file mode 100644 index 00000000..3b40a067 Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Oculus_LT.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Oculus_Left_Grab.png b/docs/guides/images/Button_Pack/Oculus/Oculus_Left_Grab.png new file mode 100644 index 00000000..9173e534 Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Oculus_Left_Grab.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Oculus_Left_Stick.png b/docs/guides/images/Button_Pack/Oculus/Oculus_Left_Stick.png new file mode 100644 index 00000000..a7f01628 Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Oculus_Left_Stick.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Oculus_RT.png b/docs/guides/images/Button_Pack/Oculus/Oculus_RT.png new file mode 100644 index 00000000..4243565c Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Oculus_RT.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Oculus_Right_Grab.png b/docs/guides/images/Button_Pack/Oculus/Oculus_Right_Grab.png new file mode 100644 index 00000000..8c7d9a6f Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Oculus_Right_Grab.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Oculus_Right_Stick.png b/docs/guides/images/Button_Pack/Oculus/Oculus_Right_Stick.png new file mode 100644 index 00000000..2e7cc9f1 Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Oculus_Right_Stick.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Oculus_Touch_Left.png b/docs/guides/images/Button_Pack/Oculus/Oculus_Touch_Left.png new file mode 100644 index 00000000..407f9e4f Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Oculus_Touch_Left.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Oculus_Touch_Right.png b/docs/guides/images/Button_Pack/Oculus/Oculus_Touch_Right.png new file mode 100644 index 00000000..285e1ce3 Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Oculus_Touch_Right.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Oculus_Trigger_Blank.png b/docs/guides/images/Button_Pack/Oculus/Oculus_Trigger_Blank.png new file mode 100644 index 00000000..408f462e Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Oculus_Trigger_Blank.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Oculus_X.png b/docs/guides/images/Button_Pack/Oculus/Oculus_X.png new file mode 100644 index 00000000..c0d07b35 Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Oculus_X.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Oculus_Y.png b/docs/guides/images/Button_Pack/Oculus/Oculus_Y.png new file mode 100644 index 00000000..51227c1c Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Oculus_Y.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Remote_Back.png b/docs/guides/images/Button_Pack/Oculus/Remote_Back.png new file mode 100644 index 00000000..34e13d92 Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Remote_Back.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Remote_Circle.png b/docs/guides/images/Button_Pack/Oculus/Remote_Circle.png new file mode 100644 index 00000000..39547017 Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Remote_Circle.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Remote_Circle_Down.png b/docs/guides/images/Button_Pack/Oculus/Remote_Circle_Down.png new file mode 100644 index 00000000..9f545368 Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Remote_Circle_Down.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Remote_Circle_Inner.png b/docs/guides/images/Button_Pack/Oculus/Remote_Circle_Inner.png new file mode 100644 index 00000000..06da3822 Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Remote_Circle_Inner.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Remote_Circle_Left.png b/docs/guides/images/Button_Pack/Oculus/Remote_Circle_Left.png new file mode 100644 index 00000000..ec4f5b98 Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Remote_Circle_Left.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Remote_Circle_Outter.png b/docs/guides/images/Button_Pack/Oculus/Remote_Circle_Outter.png new file mode 100644 index 00000000..87bb50b1 Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Remote_Circle_Outter.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Remote_Circle_Right.png b/docs/guides/images/Button_Pack/Oculus/Remote_Circle_Right.png new file mode 100644 index 00000000..2d85ba60 Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Remote_Circle_Right.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Remote_Circle_Scroll_Left.png b/docs/guides/images/Button_Pack/Oculus/Remote_Circle_Scroll_Left.png new file mode 100644 index 00000000..aca22c77 Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Remote_Circle_Scroll_Left.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Remote_Circle_Scroll_Right.png b/docs/guides/images/Button_Pack/Oculus/Remote_Circle_Scroll_Right.png new file mode 100644 index 00000000..460ffe90 Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Remote_Circle_Scroll_Right.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Remote_Circle_Up.png b/docs/guides/images/Button_Pack/Oculus/Remote_Circle_Up.png new file mode 100644 index 00000000..ae464b7e Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Remote_Circle_Up.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Remote_Icon.png b/docs/guides/images/Button_Pack/Oculus/Remote_Icon.png new file mode 100644 index 00000000..4e4b9c4d Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Remote_Icon.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Remote_Minus.png b/docs/guides/images/Button_Pack/Oculus/Remote_Minus.png new file mode 100644 index 00000000..9d8701a4 Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Remote_Minus.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Remote_Plus.png b/docs/guides/images/Button_Pack/Oculus/Remote_Plus.png new file mode 100644 index 00000000..fd5d82f3 Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Remote_Plus.png differ diff --git a/docs/guides/images/Button_Pack/Oculus/Remote_System.png b/docs/guides/images/Button_Pack/Oculus/Remote_System.png new file mode 100644 index 00000000..8ce8bddd Binary files /dev/null and b/docs/guides/images/Button_Pack/Oculus/Remote_System.png differ diff --git a/docs/guides/images/Button_Pack/Ouya/Ouya_A.png b/docs/guides/images/Button_Pack/Ouya/Ouya_A.png new file mode 100644 index 00000000..5fcbb440 Binary files /dev/null and b/docs/guides/images/Button_Pack/Ouya/Ouya_A.png differ diff --git a/docs/guides/images/Button_Pack/Ouya/Ouya_Dpad.png b/docs/guides/images/Button_Pack/Ouya/Ouya_Dpad.png new file mode 100644 index 00000000..0ced97ae Binary files /dev/null and b/docs/guides/images/Button_Pack/Ouya/Ouya_Dpad.png differ diff --git a/docs/guides/images/Button_Pack/Ouya/Ouya_Dpad_Down.png b/docs/guides/images/Button_Pack/Ouya/Ouya_Dpad_Down.png new file mode 100644 index 00000000..6b295acb Binary files /dev/null and b/docs/guides/images/Button_Pack/Ouya/Ouya_Dpad_Down.png differ diff --git a/docs/guides/images/Button_Pack/Ouya/Ouya_Dpad_Left.png b/docs/guides/images/Button_Pack/Ouya/Ouya_Dpad_Left.png new file mode 100644 index 00000000..533e42a1 Binary files /dev/null and b/docs/guides/images/Button_Pack/Ouya/Ouya_Dpad_Left.png differ diff --git a/docs/guides/images/Button_Pack/Ouya/Ouya_Dpad_Right.png b/docs/guides/images/Button_Pack/Ouya/Ouya_Dpad_Right.png new file mode 100644 index 00000000..1b3d9aed Binary files /dev/null and b/docs/guides/images/Button_Pack/Ouya/Ouya_Dpad_Right.png differ diff --git a/docs/guides/images/Button_Pack/Ouya/Ouya_Dpad_Up.png b/docs/guides/images/Button_Pack/Ouya/Ouya_Dpad_Up.png new file mode 100644 index 00000000..70ea26ea Binary files /dev/null and b/docs/guides/images/Button_Pack/Ouya/Ouya_Dpad_Up.png differ diff --git a/docs/guides/images/Button_Pack/Ouya/Ouya_L1.png b/docs/guides/images/Button_Pack/Ouya/Ouya_L1.png new file mode 100644 index 00000000..2b200730 Binary files /dev/null and b/docs/guides/images/Button_Pack/Ouya/Ouya_L1.png differ diff --git a/docs/guides/images/Button_Pack/Ouya/Ouya_L2.png b/docs/guides/images/Button_Pack/Ouya/Ouya_L2.png new file mode 100644 index 00000000..6234c1e3 Binary files /dev/null and b/docs/guides/images/Button_Pack/Ouya/Ouya_L2.png differ diff --git a/docs/guides/images/Button_Pack/Ouya/Ouya_Left_Stick.png b/docs/guides/images/Button_Pack/Ouya/Ouya_Left_Stick.png new file mode 100644 index 00000000..631dad65 Binary files /dev/null and b/docs/guides/images/Button_Pack/Ouya/Ouya_Left_Stick.png differ diff --git a/docs/guides/images/Button_Pack/Ouya/Ouya_Menu.png b/docs/guides/images/Button_Pack/Ouya/Ouya_Menu.png new file mode 100644 index 00000000..b2eef111 Binary files /dev/null and b/docs/guides/images/Button_Pack/Ouya/Ouya_Menu.png differ diff --git a/docs/guides/images/Button_Pack/Ouya/Ouya_O.png b/docs/guides/images/Button_Pack/Ouya/Ouya_O.png new file mode 100644 index 00000000..e96a62cb Binary files /dev/null and b/docs/guides/images/Button_Pack/Ouya/Ouya_O.png differ diff --git a/docs/guides/images/Button_Pack/Ouya/Ouya_R1.png b/docs/guides/images/Button_Pack/Ouya/Ouya_R1.png new file mode 100644 index 00000000..5e8f9241 Binary files /dev/null and b/docs/guides/images/Button_Pack/Ouya/Ouya_R1.png differ diff --git a/docs/guides/images/Button_Pack/Ouya/Ouya_R2.png b/docs/guides/images/Button_Pack/Ouya/Ouya_R2.png new file mode 100644 index 00000000..55db1c7e Binary files /dev/null and b/docs/guides/images/Button_Pack/Ouya/Ouya_R2.png differ diff --git a/docs/guides/images/Button_Pack/Ouya/Ouya_Right_Stick.png b/docs/guides/images/Button_Pack/Ouya/Ouya_Right_Stick.png new file mode 100644 index 00000000..c46c7489 Binary files /dev/null and b/docs/guides/images/Button_Pack/Ouya/Ouya_Right_Stick.png differ diff --git a/docs/guides/images/Button_Pack/Ouya/Ouya_Touch.png b/docs/guides/images/Button_Pack/Ouya/Ouya_Touch.png new file mode 100644 index 00000000..2df0e465 Binary files /dev/null and b/docs/guides/images/Button_Pack/Ouya/Ouya_Touch.png differ diff --git a/docs/guides/images/Button_Pack/Ouya/Ouya_U.png b/docs/guides/images/Button_Pack/Ouya/Ouya_U.png new file mode 100644 index 00000000..c90ca2d6 Binary files /dev/null and b/docs/guides/images/Button_Pack/Ouya/Ouya_U.png differ diff --git a/docs/guides/images/Button_Pack/Ouya/Ouya_Y.png b/docs/guides/images/Button_Pack/Ouya/Ouya_Y.png new file mode 100644 index 00000000..c0a08e0c Binary files /dev/null and b/docs/guides/images/Button_Pack/Ouya/Ouya_Y.png differ diff --git a/docs/guides/images/Button_Pack/PS3/PS3_Circle.png b/docs/guides/images/Button_Pack/PS3/PS3_Circle.png new file mode 100644 index 00000000..10dd9b03 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS3/PS3_Circle.png differ diff --git a/docs/guides/images/Button_Pack/PS3/PS3_Cross.png b/docs/guides/images/Button_Pack/PS3/PS3_Cross.png new file mode 100644 index 00000000..73a42a70 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS3/PS3_Cross.png differ diff --git a/docs/guides/images/Button_Pack/PS3/PS3_Dpad.png b/docs/guides/images/Button_Pack/PS3/PS3_Dpad.png new file mode 100644 index 00000000..5a31103d Binary files /dev/null and b/docs/guides/images/Button_Pack/PS3/PS3_Dpad.png differ diff --git a/docs/guides/images/Button_Pack/PS3/PS3_Dpad_Down.png b/docs/guides/images/Button_Pack/PS3/PS3_Dpad_Down.png new file mode 100644 index 00000000..dddcc0d4 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS3/PS3_Dpad_Down.png differ diff --git a/docs/guides/images/Button_Pack/PS3/PS3_Dpad_Left.png b/docs/guides/images/Button_Pack/PS3/PS3_Dpad_Left.png new file mode 100644 index 00000000..78beb635 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS3/PS3_Dpad_Left.png differ diff --git a/docs/guides/images/Button_Pack/PS3/PS3_Dpad_Right.png b/docs/guides/images/Button_Pack/PS3/PS3_Dpad_Right.png new file mode 100644 index 00000000..94a6590b Binary files /dev/null and b/docs/guides/images/Button_Pack/PS3/PS3_Dpad_Right.png differ diff --git a/docs/guides/images/Button_Pack/PS3/PS3_Dpad_Up.png b/docs/guides/images/Button_Pack/PS3/PS3_Dpad_Up.png new file mode 100644 index 00000000..5bc87051 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS3/PS3_Dpad_Up.png differ diff --git a/docs/guides/images/Button_Pack/PS3/PS3_L1.png b/docs/guides/images/Button_Pack/PS3/PS3_L1.png new file mode 100644 index 00000000..8a1d87c5 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS3/PS3_L1.png differ diff --git a/docs/guides/images/Button_Pack/PS3/PS3_L2.png b/docs/guides/images/Button_Pack/PS3/PS3_L2.png new file mode 100644 index 00000000..3b938d19 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS3/PS3_L2.png differ diff --git a/docs/guides/images/Button_Pack/PS3/PS3_L3.png b/docs/guides/images/Button_Pack/PS3/PS3_L3.png new file mode 100644 index 00000000..e4455c09 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS3/PS3_L3.png differ diff --git a/docs/guides/images/Button_Pack/PS3/PS3_Left_Stick.png b/docs/guides/images/Button_Pack/PS3/PS3_Left_Stick.png new file mode 100644 index 00000000..101b99cb Binary files /dev/null and b/docs/guides/images/Button_Pack/PS3/PS3_Left_Stick.png differ diff --git a/docs/guides/images/Button_Pack/PS3/PS3_R1.png b/docs/guides/images/Button_Pack/PS3/PS3_R1.png new file mode 100644 index 00000000..722e405c Binary files /dev/null and b/docs/guides/images/Button_Pack/PS3/PS3_R1.png differ diff --git a/docs/guides/images/Button_Pack/PS3/PS3_R2.png b/docs/guides/images/Button_Pack/PS3/PS3_R2.png new file mode 100644 index 00000000..f05529fe Binary files /dev/null and b/docs/guides/images/Button_Pack/PS3/PS3_R2.png differ diff --git a/docs/guides/images/Button_Pack/PS3/PS3_R3.png b/docs/guides/images/Button_Pack/PS3/PS3_R3.png new file mode 100644 index 00000000..49d21925 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS3/PS3_R3.png differ diff --git a/docs/guides/images/Button_Pack/PS3/PS3_Right_Stick.png b/docs/guides/images/Button_Pack/PS3/PS3_Right_Stick.png new file mode 100644 index 00000000..374f589b Binary files /dev/null and b/docs/guides/images/Button_Pack/PS3/PS3_Right_Stick.png differ diff --git a/docs/guides/images/Button_Pack/PS3/PS3_Select.png b/docs/guides/images/Button_Pack/PS3/PS3_Select.png new file mode 100644 index 00000000..b493aff6 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS3/PS3_Select.png differ diff --git a/docs/guides/images/Button_Pack/PS3/PS3_Square.png b/docs/guides/images/Button_Pack/PS3/PS3_Square.png new file mode 100644 index 00000000..3ad12864 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS3/PS3_Square.png differ diff --git a/docs/guides/images/Button_Pack/PS3/PS3_Start.png b/docs/guides/images/Button_Pack/PS3/PS3_Start.png new file mode 100644 index 00000000..3822fd85 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS3/PS3_Start.png differ diff --git a/docs/guides/images/Button_Pack/PS3/PS3_Triangle.png b/docs/guides/images/Button_Pack/PS3/PS3_Triangle.png new file mode 100644 index 00000000..9dcdbba8 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS3/PS3_Triangle.png differ diff --git a/docs/guides/images/Button_Pack/PS4/PS4_Circle.png b/docs/guides/images/Button_Pack/PS4/PS4_Circle.png new file mode 100644 index 00000000..10dd9b03 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS4/PS4_Circle.png differ diff --git a/docs/guides/images/Button_Pack/PS4/PS4_Cross.png b/docs/guides/images/Button_Pack/PS4/PS4_Cross.png new file mode 100644 index 00000000..73a42a70 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS4/PS4_Cross.png differ diff --git a/docs/guides/images/Button_Pack/PS4/PS4_Dpad.png b/docs/guides/images/Button_Pack/PS4/PS4_Dpad.png new file mode 100644 index 00000000..5a31103d Binary files /dev/null and b/docs/guides/images/Button_Pack/PS4/PS4_Dpad.png differ diff --git a/docs/guides/images/Button_Pack/PS4/PS4_Dpad_Down.png b/docs/guides/images/Button_Pack/PS4/PS4_Dpad_Down.png new file mode 100644 index 00000000..dddcc0d4 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS4/PS4_Dpad_Down.png differ diff --git a/docs/guides/images/Button_Pack/PS4/PS4_Dpad_Left.png b/docs/guides/images/Button_Pack/PS4/PS4_Dpad_Left.png new file mode 100644 index 00000000..78beb635 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS4/PS4_Dpad_Left.png differ diff --git a/docs/guides/images/Button_Pack/PS4/PS4_Dpad_Right.png b/docs/guides/images/Button_Pack/PS4/PS4_Dpad_Right.png new file mode 100644 index 00000000..94a6590b Binary files /dev/null and b/docs/guides/images/Button_Pack/PS4/PS4_Dpad_Right.png differ diff --git a/docs/guides/images/Button_Pack/PS4/PS4_Dpad_Up.png b/docs/guides/images/Button_Pack/PS4/PS4_Dpad_Up.png new file mode 100644 index 00000000..5bc87051 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS4/PS4_Dpad_Up.png differ diff --git a/docs/guides/images/Button_Pack/PS4/PS4_L1.png b/docs/guides/images/Button_Pack/PS4/PS4_L1.png new file mode 100644 index 00000000..6be5fcb9 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS4/PS4_L1.png differ diff --git a/docs/guides/images/Button_Pack/PS4/PS4_L2.png b/docs/guides/images/Button_Pack/PS4/PS4_L2.png new file mode 100644 index 00000000..7abdfeff Binary files /dev/null and b/docs/guides/images/Button_Pack/PS4/PS4_L2.png differ diff --git a/docs/guides/images/Button_Pack/PS4/PS4_Left_Stick.png b/docs/guides/images/Button_Pack/PS4/PS4_Left_Stick.png new file mode 100644 index 00000000..61b6330a Binary files /dev/null and b/docs/guides/images/Button_Pack/PS4/PS4_Left_Stick.png differ diff --git a/docs/guides/images/Button_Pack/PS4/PS4_Options.png b/docs/guides/images/Button_Pack/PS4/PS4_Options.png new file mode 100644 index 00000000..21820ed4 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS4/PS4_Options.png differ diff --git a/docs/guides/images/Button_Pack/PS4/PS4_R1.png b/docs/guides/images/Button_Pack/PS4/PS4_R1.png new file mode 100644 index 00000000..b296a5ed Binary files /dev/null and b/docs/guides/images/Button_Pack/PS4/PS4_R1.png differ diff --git a/docs/guides/images/Button_Pack/PS4/PS4_R2.png b/docs/guides/images/Button_Pack/PS4/PS4_R2.png new file mode 100644 index 00000000..03038199 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS4/PS4_R2.png differ diff --git a/docs/guides/images/Button_Pack/PS4/PS4_Right_Stick.png b/docs/guides/images/Button_Pack/PS4/PS4_Right_Stick.png new file mode 100644 index 00000000..91d66f4e Binary files /dev/null and b/docs/guides/images/Button_Pack/PS4/PS4_Right_Stick.png differ diff --git a/docs/guides/images/Button_Pack/PS4/PS4_Share.png b/docs/guides/images/Button_Pack/PS4/PS4_Share.png new file mode 100644 index 00000000..9a1c4aba Binary files /dev/null and b/docs/guides/images/Button_Pack/PS4/PS4_Share.png differ diff --git a/docs/guides/images/Button_Pack/PS4/PS4_Square.png b/docs/guides/images/Button_Pack/PS4/PS4_Square.png new file mode 100644 index 00000000..3ad12864 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS4/PS4_Square.png differ diff --git a/docs/guides/images/Button_Pack/PS4/PS4_Touch_Pad.png b/docs/guides/images/Button_Pack/PS4/PS4_Touch_Pad.png new file mode 100644 index 00000000..2c8e7303 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS4/PS4_Touch_Pad.png differ diff --git a/docs/guides/images/Button_Pack/PS4/PS4_Triangle.png b/docs/guides/images/Button_Pack/PS4/PS4_Triangle.png new file mode 100644 index 00000000..9dcdbba8 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS4/PS4_Triangle.png differ diff --git a/docs/guides/images/Button_Pack/PS_Move/PSMove_Circle.png b/docs/guides/images/Button_Pack/PS_Move/PSMove_Circle.png new file mode 100644 index 00000000..10dd9b03 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Move/PSMove_Circle.png differ diff --git a/docs/guides/images/Button_Pack/PS_Move/PSMove_Controller_Stick.png b/docs/guides/images/Button_Pack/PS_Move/PSMove_Controller_Stick.png new file mode 100644 index 00000000..344a65f4 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Move/PSMove_Controller_Stick.png differ diff --git a/docs/guides/images/Button_Pack/PS_Move/PSMove_Controller_Wand.png b/docs/guides/images/Button_Pack/PS_Move/PSMove_Controller_Wand.png new file mode 100644 index 00000000..0ed87c32 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Move/PSMove_Controller_Wand.png differ diff --git a/docs/guides/images/Button_Pack/PS_Move/PSMove_Controllers.png b/docs/guides/images/Button_Pack/PS_Move/PSMove_Controllers.png new file mode 100644 index 00000000..94c8c672 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Move/PSMove_Controllers.png differ diff --git a/docs/guides/images/Button_Pack/PS_Move/PSMove_Cross.png b/docs/guides/images/Button_Pack/PS_Move/PSMove_Cross.png new file mode 100644 index 00000000..73a42a70 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Move/PSMove_Cross.png differ diff --git a/docs/guides/images/Button_Pack/PS_Move/PSMove_LT.png b/docs/guides/images/Button_Pack/PS_Move/PSMove_LT.png new file mode 100644 index 00000000..05c0c852 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Move/PSMove_LT.png differ diff --git a/docs/guides/images/Button_Pack/PS_Move/PSMove_Left_Stick.png b/docs/guides/images/Button_Pack/PS_Move/PSMove_Left_Stick.png new file mode 100644 index 00000000..61b6330a Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Move/PSMove_Left_Stick.png differ diff --git a/docs/guides/images/Button_Pack/PS_Move/PSMove_Move.png b/docs/guides/images/Button_Pack/PS_Move/PSMove_Move.png new file mode 100644 index 00000000..25d1f8dc Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Move/PSMove_Move.png differ diff --git a/docs/guides/images/Button_Pack/PS_Move/PSMove_RT.png b/docs/guides/images/Button_Pack/PS_Move/PSMove_RT.png new file mode 100644 index 00000000..c2a8470d Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Move/PSMove_RT.png differ diff --git a/docs/guides/images/Button_Pack/PS_Move/PSMove_Select.png b/docs/guides/images/Button_Pack/PS_Move/PSMove_Select.png new file mode 100644 index 00000000..e83731c8 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Move/PSMove_Select.png differ diff --git a/docs/guides/images/Button_Pack/PS_Move/PSMove_Square.png b/docs/guides/images/Button_Pack/PS_Move/PSMove_Square.png new file mode 100644 index 00000000..3ad12864 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Move/PSMove_Square.png differ diff --git a/docs/guides/images/Button_Pack/PS_Move/PSMove_Start.png b/docs/guides/images/Button_Pack/PS_Move/PSMove_Start.png new file mode 100644 index 00000000..ba0ef226 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Move/PSMove_Start.png differ diff --git a/docs/guides/images/Button_Pack/PS_Move/PSMove_T.png b/docs/guides/images/Button_Pack/PS_Move/PSMove_T.png new file mode 100644 index 00000000..a32a9460 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Move/PSMove_T.png differ diff --git a/docs/guides/images/Button_Pack/PS_Move/PSMove_Triangle.png b/docs/guides/images/Button_Pack/PS_Move/PSMove_Triangle.png new file mode 100644 index 00000000..9dcdbba8 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Move/PSMove_Triangle.png differ diff --git a/docs/guides/images/Button_Pack/PS_Move/PSMove_Trigger_Blank.png b/docs/guides/images/Button_Pack/PS_Move/PSMove_Trigger_Blank.png new file mode 100644 index 00000000..30678a1a Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Move/PSMove_Trigger_Blank.png differ diff --git a/docs/guides/images/Button_Pack/PS_Vita/Vita_Bumper_Right.png b/docs/guides/images/Button_Pack/PS_Vita/Vita_Bumper_Right.png new file mode 100644 index 00000000..012d0008 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Vita/Vita_Bumper_Right.png differ diff --git a/docs/guides/images/Button_Pack/PS_Vita/Vita_Bumpter_Left.png b/docs/guides/images/Button_Pack/PS_Vita/Vita_Bumpter_Left.png new file mode 100644 index 00000000..fb26d2cc Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Vita/Vita_Bumpter_Left.png differ diff --git a/docs/guides/images/Button_Pack/PS_Vita/Vita_Circle.png b/docs/guides/images/Button_Pack/PS_Vita/Vita_Circle.png new file mode 100644 index 00000000..281fbe1f Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Vita/Vita_Circle.png differ diff --git a/docs/guides/images/Button_Pack/PS_Vita/Vita_Cross.png b/docs/guides/images/Button_Pack/PS_Vita/Vita_Cross.png new file mode 100644 index 00000000..b7082f22 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Vita/Vita_Cross.png differ diff --git a/docs/guides/images/Button_Pack/PS_Vita/Vita_Dpad.png b/docs/guides/images/Button_Pack/PS_Vita/Vita_Dpad.png new file mode 100644 index 00000000..70a8a419 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Vita/Vita_Dpad.png differ diff --git a/docs/guides/images/Button_Pack/PS_Vita/Vita_Dpad_Down.png b/docs/guides/images/Button_Pack/PS_Vita/Vita_Dpad_Down.png new file mode 100644 index 00000000..e4f5d2e5 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Vita/Vita_Dpad_Down.png differ diff --git a/docs/guides/images/Button_Pack/PS_Vita/Vita_Dpad_Left.png b/docs/guides/images/Button_Pack/PS_Vita/Vita_Dpad_Left.png new file mode 100644 index 00000000..ead8c19c Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Vita/Vita_Dpad_Left.png differ diff --git a/docs/guides/images/Button_Pack/PS_Vita/Vita_Dpad_Right.png b/docs/guides/images/Button_Pack/PS_Vita/Vita_Dpad_Right.png new file mode 100644 index 00000000..dbd9e938 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Vita/Vita_Dpad_Right.png differ diff --git a/docs/guides/images/Button_Pack/PS_Vita/Vita_Dpad_Up.png b/docs/guides/images/Button_Pack/PS_Vita/Vita_Dpad_Up.png new file mode 100644 index 00000000..53a65f4c Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Vita/Vita_Dpad_Up.png differ diff --git a/docs/guides/images/Button_Pack/PS_Vita/Vita_Left_Stick.png b/docs/guides/images/Button_Pack/PS_Vita/Vita_Left_Stick.png new file mode 100644 index 00000000..4f97f57f Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Vita/Vita_Left_Stick.png differ diff --git a/docs/guides/images/Button_Pack/PS_Vita/Vita_Minus.png b/docs/guides/images/Button_Pack/PS_Vita/Vita_Minus.png new file mode 100644 index 00000000..b6319bab Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Vita/Vita_Minus.png differ diff --git a/docs/guides/images/Button_Pack/PS_Vita/Vita_Plus.png b/docs/guides/images/Button_Pack/PS_Vita/Vita_Plus.png new file mode 100644 index 00000000..1a0efd09 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Vita/Vita_Plus.png differ diff --git a/docs/guides/images/Button_Pack/PS_Vita/Vita_Power.png b/docs/guides/images/Button_Pack/PS_Vita/Vita_Power.png new file mode 100644 index 00000000..d4ca3efa Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Vita/Vita_Power.png differ diff --git a/docs/guides/images/Button_Pack/PS_Vita/Vita_Right_Stick.png b/docs/guides/images/Button_Pack/PS_Vita/Vita_Right_Stick.png new file mode 100644 index 00000000..3a99355a Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Vita/Vita_Right_Stick.png differ diff --git a/docs/guides/images/Button_Pack/PS_Vita/Vita_Select.png b/docs/guides/images/Button_Pack/PS_Vita/Vita_Select.png new file mode 100644 index 00000000..ccb43caa Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Vita/Vita_Select.png differ diff --git a/docs/guides/images/Button_Pack/PS_Vita/Vita_Square.png b/docs/guides/images/Button_Pack/PS_Vita/Vita_Square.png new file mode 100644 index 00000000..1c834a29 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Vita/Vita_Square.png differ diff --git a/docs/guides/images/Button_Pack/PS_Vita/Vita_Start.png b/docs/guides/images/Button_Pack/PS_Vita/Vita_Start.png new file mode 100644 index 00000000..8c6c1a83 Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Vita/Vita_Start.png differ diff --git a/docs/guides/images/Button_Pack/PS_Vita/Vita_Touch_Pad.png b/docs/guides/images/Button_Pack/PS_Vita/Vita_Touch_Pad.png new file mode 100644 index 00000000..7c3e261b Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Vita/Vita_Touch_Pad.png differ diff --git a/docs/guides/images/Button_Pack/PS_Vita/Vita_Triangle.png b/docs/guides/images/Button_Pack/PS_Vita/Vita_Triangle.png new file mode 100644 index 00000000..152e25be Binary files /dev/null and b/docs/guides/images/Button_Pack/PS_Vita/Vita_Triangle.png differ diff --git a/docs/guides/images/Button_Pack/Preview.gif b/docs/guides/images/Button_Pack/Preview.gif new file mode 100644 index 00000000..a9ec4c28 Binary files /dev/null and b/docs/guides/images/Button_Pack/Preview.gif differ diff --git a/docs/guides/images/Button_Pack/Readme.txt b/docs/guides/images/Button_Pack/Readme.txt new file mode 100644 index 00000000..0978303d --- /dev/null +++ b/docs/guides/images/Button_Pack/Readme.txt @@ -0,0 +1,77 @@ +Hey there! + +Hope you make good use of this pack. You can use all these assets in any project you want to (be it commercial or not). +All of the assets are in the public domain under Creative Commons 0 (CC0) + +In this pack you will find over 500 buttons including: + +Xbox 360 controller +Xbox One controller +Play Station 3 controller +Play Station 4 controller +Play Station Move +PS Vita +Vive Controller +Oculus Controllers & Remote +Wii Controller +Wii U Controller +Nintentdo Switch +Steam Controller (Updated to commercial version) +Ouya +Keyboard and mouse buttons (Both in black and white including blanks) +Directional arrows for thumb sticks and movement keys +Touch Screen Gestures + +---------------------------------- + +I am "Nicolae Berbece" (also known as Xelu), I founded "Those Awesome Guys" and made "Move or Die" which is out right now on Steam. +You can contact me at nick@thoseawesomeguys.com + +Feel free to credit me in case you use anything in this pack, but don't worry, I won't mind if you don't. ;) + +Please share this pack with other fellow developers in need of such assets! In the spirit of good old chain mail, if you share this pack with 5 fellow devs, your game's steam review score will rise by 7% and a notable twitch streamer will pick it up for his stream. + +Keep making awesome things!!! + +~Nick + + + + + +Here is a semi-updated list of games using these prompts: +---------------------------- +Mega Man Legacy +Postal 2 +Postal Redux +RWBY +Heat Signature +Turbo Dismount +Fallen Legion +20XX +Obduction +Battle Chef Brigade +Phantom Brigade +Redirection +Defender's Quest +Roundabout +Arena 3D +Super Comboman +Disc Jam +Mayan Death Robots +Sentris +Unbox +Induction +Shadow Warrior 2 +The Flock +Deputy dangle +Tumblestone +Solbrain Knight of Darkness +SSMP +Distance +Idarb +Earthlock +Everspace +Pylon Rogue +The Church in the darkness +Sword n' Board \ No newline at end of file diff --git a/docs/guides/images/Button_Pack/Steam/Steam_A.png b/docs/guides/images/Button_Pack/Steam/Steam_A.png new file mode 100644 index 00000000..60c214fd Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_A.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_B.png b/docs/guides/images/Button_Pack/Steam/Steam_B.png new file mode 100644 index 00000000..a1ba1a0d Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_B.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_Back.png b/docs/guides/images/Button_Pack/Steam/Steam_Back.png new file mode 100644 index 00000000..147eca26 Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_Back.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_Gyro.png b/docs/guides/images/Button_Pack/Steam/Steam_Gyro.png new file mode 100644 index 00000000..6e620849 Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_Gyro.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_LB.png b/docs/guides/images/Button_Pack/Steam/Steam_LB.png new file mode 100644 index 00000000..867ad60f Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_LB.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_LT.png b/docs/guides/images/Button_Pack/Steam/Steam_LT.png new file mode 100644 index 00000000..1890ea27 Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_LT.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_Left_Grip.png b/docs/guides/images/Button_Pack/Steam/Steam_Left_Grip.png new file mode 100644 index 00000000..b9417c03 Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_Left_Grip.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_Left_Track.png b/docs/guides/images/Button_Pack/Steam/Steam_Left_Track.png new file mode 100644 index 00000000..59f9ae12 Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_Left_Track.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_Left_Track_Center.png b/docs/guides/images/Button_Pack/Steam/Steam_Left_Track_Center.png new file mode 100644 index 00000000..37fc0f99 Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_Left_Track_Center.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_Left_Track_Down.png b/docs/guides/images/Button_Pack/Steam/Steam_Left_Track_Down.png new file mode 100644 index 00000000..92c62eab Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_Left_Track_Down.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_Left_Track_Left.png b/docs/guides/images/Button_Pack/Steam/Steam_Left_Track_Left.png new file mode 100644 index 00000000..23981de2 Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_Left_Track_Left.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_Left_Track_Right.png b/docs/guides/images/Button_Pack/Steam/Steam_Left_Track_Right.png new file mode 100644 index 00000000..8b936ff4 Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_Left_Track_Right.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_Left_Track_Up.png b/docs/guides/images/Button_Pack/Steam/Steam_Left_Track_Up.png new file mode 100644 index 00000000..419ce70b Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_Left_Track_Up.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_RB.png b/docs/guides/images/Button_Pack/Steam/Steam_RB.png new file mode 100644 index 00000000..4304c0f1 Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_RB.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_RT.png b/docs/guides/images/Button_Pack/Steam/Steam_RT.png new file mode 100644 index 00000000..ee4d7de4 Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_RT.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_Right_Grip.png b/docs/guides/images/Button_Pack/Steam/Steam_Right_Grip.png new file mode 100644 index 00000000..6545b079 Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_Right_Grip.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_Right_Track.png b/docs/guides/images/Button_Pack/Steam/Steam_Right_Track.png new file mode 100644 index 00000000..baefb364 Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_Right_Track.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_Right_Track_Center.png b/docs/guides/images/Button_Pack/Steam/Steam_Right_Track_Center.png new file mode 100644 index 00000000..b6b9e2fe Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_Right_Track_Center.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_Right_Track_Down.png b/docs/guides/images/Button_Pack/Steam/Steam_Right_Track_Down.png new file mode 100644 index 00000000..7ee27fa4 Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_Right_Track_Down.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_Right_Track_Left.png b/docs/guides/images/Button_Pack/Steam/Steam_Right_Track_Left.png new file mode 100644 index 00000000..0867facd Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_Right_Track_Left.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_Right_Track_Right.png b/docs/guides/images/Button_Pack/Steam/Steam_Right_Track_Right.png new file mode 100644 index 00000000..704e8aec Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_Right_Track_Right.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_Right_Track_Up.png b/docs/guides/images/Button_Pack/Steam/Steam_Right_Track_Up.png new file mode 100644 index 00000000..b6fed1ec Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_Right_Track_Up.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_Start.png b/docs/guides/images/Button_Pack/Steam/Steam_Start.png new file mode 100644 index 00000000..a088743f Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_Start.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_Stick.png b/docs/guides/images/Button_Pack/Steam/Steam_Stick.png new file mode 100644 index 00000000..182e6619 Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_Stick.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_System.png b/docs/guides/images/Button_Pack/Steam/Steam_System.png new file mode 100644 index 00000000..52e02bae Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_System.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_Tilt_Pitch.png b/docs/guides/images/Button_Pack/Steam/Steam_Tilt_Pitch.png new file mode 100644 index 00000000..3b4b312d Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_Tilt_Pitch.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_Tilt_Roll.png b/docs/guides/images/Button_Pack/Steam/Steam_Tilt_Roll.png new file mode 100644 index 00000000..f452d1bd Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_Tilt_Roll.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_Tilt_Yaw.png b/docs/guides/images/Button_Pack/Steam/Steam_Tilt_Yaw.png new file mode 100644 index 00000000..7d40a296 Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_Tilt_Yaw.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_X.png b/docs/guides/images/Button_Pack/Steam/Steam_X.png new file mode 100644 index 00000000..a8e9df1a Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_X.png differ diff --git a/docs/guides/images/Button_Pack/Steam/Steam_Y.png b/docs/guides/images/Button_Pack/Steam/Steam_Y.png new file mode 100644 index 00000000..16c2fc75 Binary files /dev/null and b/docs/guides/images/Button_Pack/Steam/Steam_Y.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_A.png b/docs/guides/images/Button_Pack/Switch/Switch_A.png new file mode 100644 index 00000000..df756ef0 Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_A.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_B.png b/docs/guides/images/Button_Pack/Switch/Switch_B.png new file mode 100644 index 00000000..ea7e7438 Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_B.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_Controller_Left.png b/docs/guides/images/Button_Pack/Switch/Switch_Controller_Left.png new file mode 100644 index 00000000..f90a2441 Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_Controller_Left.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_Controller_Right.png b/docs/guides/images/Button_Pack/Switch/Switch_Controller_Right.png new file mode 100644 index 00000000..873da7ed Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_Controller_Right.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_Controllers.png b/docs/guides/images/Button_Pack/Switch/Switch_Controllers.png new file mode 100644 index 00000000..b6ee54d4 Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_Controllers.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_Controllers_Separate.png b/docs/guides/images/Button_Pack/Switch/Switch_Controllers_Separate.png new file mode 100644 index 00000000..0c019da2 Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_Controllers_Separate.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_Down.png b/docs/guides/images/Button_Pack/Switch/Switch_Down.png new file mode 100644 index 00000000..7b7b2b29 Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_Down.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_Dpad.png b/docs/guides/images/Button_Pack/Switch/Switch_Dpad.png new file mode 100644 index 00000000..12f01eb3 Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_Dpad.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_Dpad_Down.png b/docs/guides/images/Button_Pack/Switch/Switch_Dpad_Down.png new file mode 100644 index 00000000..37f6d5b1 Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_Dpad_Down.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_Dpad_Left.png b/docs/guides/images/Button_Pack/Switch/Switch_Dpad_Left.png new file mode 100644 index 00000000..8efd7a40 Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_Dpad_Left.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_Dpad_Right.png b/docs/guides/images/Button_Pack/Switch/Switch_Dpad_Right.png new file mode 100644 index 00000000..8b5411db Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_Dpad_Right.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_Dpad_Up.png b/docs/guides/images/Button_Pack/Switch/Switch_Dpad_Up.png new file mode 100644 index 00000000..700a8ba7 Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_Dpad_Up.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_Home.png b/docs/guides/images/Button_Pack/Switch/Switch_Home.png new file mode 100644 index 00000000..9b6733c0 Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_Home.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_LB.png b/docs/guides/images/Button_Pack/Switch/Switch_LB.png new file mode 100644 index 00000000..fedbbed3 Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_LB.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_LT.png b/docs/guides/images/Button_Pack/Switch/Switch_LT.png new file mode 100644 index 00000000..8f7a8f84 Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_LT.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_Left.png b/docs/guides/images/Button_Pack/Switch/Switch_Left.png new file mode 100644 index 00000000..fd58439e Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_Left.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_Left_Stick.png b/docs/guides/images/Button_Pack/Switch/Switch_Left_Stick.png new file mode 100644 index 00000000..d861ca5b Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_Left_Stick.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_Minus.png b/docs/guides/images/Button_Pack/Switch/Switch_Minus.png new file mode 100644 index 00000000..d32608e1 Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_Minus.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_Plus.png b/docs/guides/images/Button_Pack/Switch/Switch_Plus.png new file mode 100644 index 00000000..f1b0dc48 Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_Plus.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_RB.png b/docs/guides/images/Button_Pack/Switch/Switch_RB.png new file mode 100644 index 00000000..4660c257 Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_RB.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_RT.png b/docs/guides/images/Button_Pack/Switch/Switch_RT.png new file mode 100644 index 00000000..3d25a4f4 Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_RT.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_Right.png b/docs/guides/images/Button_Pack/Switch/Switch_Right.png new file mode 100644 index 00000000..f524c6c9 Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_Right.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_Right_Stick.png b/docs/guides/images/Button_Pack/Switch/Switch_Right_Stick.png new file mode 100644 index 00000000..f2c605b7 Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_Right_Stick.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_Square.png b/docs/guides/images/Button_Pack/Switch/Switch_Square.png new file mode 100644 index 00000000..d0fd4324 Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_Square.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_Up.png b/docs/guides/images/Button_Pack/Switch/Switch_Up.png new file mode 100644 index 00000000..352f890b Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_Up.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_X.png b/docs/guides/images/Button_Pack/Switch/Switch_X.png new file mode 100644 index 00000000..bdf86ba7 Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_X.png differ diff --git a/docs/guides/images/Button_Pack/Switch/Switch_Y.png b/docs/guides/images/Button_Pack/Switch/Switch_Y.png new file mode 100644 index 00000000..46ac2160 Binary files /dev/null and b/docs/guides/images/Button_Pack/Switch/Switch_Y.png differ diff --git a/docs/guides/images/Button_Pack/Vector Source.fla b/docs/guides/images/Button_Pack/Vector Source.fla new file mode 100644 index 00000000..627fe18e Binary files /dev/null and b/docs/guides/images/Button_Pack/Vector Source.fla differ diff --git a/docs/guides/images/Button_Pack/Vive/Vive_Controller_Left.png b/docs/guides/images/Button_Pack/Vive/Vive_Controller_Left.png new file mode 100644 index 00000000..99d633c1 Binary files /dev/null and b/docs/guides/images/Button_Pack/Vive/Vive_Controller_Left.png differ diff --git a/docs/guides/images/Button_Pack/Vive/Vive_Controller_Right.png b/docs/guides/images/Button_Pack/Vive/Vive_Controller_Right.png new file mode 100644 index 00000000..4486f9f8 Binary files /dev/null and b/docs/guides/images/Button_Pack/Vive/Vive_Controller_Right.png differ diff --git a/docs/guides/images/Button_Pack/Vive/Vive_Controllers.png b/docs/guides/images/Button_Pack/Vive/Vive_Controllers.png new file mode 100644 index 00000000..cd3f2130 Binary files /dev/null and b/docs/guides/images/Button_Pack/Vive/Vive_Controllers.png differ diff --git a/docs/guides/images/Button_Pack/Vive/Vive_Girp_Left.png b/docs/guides/images/Button_Pack/Vive/Vive_Girp_Left.png new file mode 100644 index 00000000..233149e2 Binary files /dev/null and b/docs/guides/images/Button_Pack/Vive/Vive_Girp_Left.png differ diff --git a/docs/guides/images/Button_Pack/Vive/Vive_Grip_Right.png b/docs/guides/images/Button_Pack/Vive/Vive_Grip_Right.png new file mode 100644 index 00000000..b370a7f7 Binary files /dev/null and b/docs/guides/images/Button_Pack/Vive/Vive_Grip_Right.png differ diff --git a/docs/guides/images/Button_Pack/Vive/Vive_Hand_Left.png b/docs/guides/images/Button_Pack/Vive/Vive_Hand_Left.png new file mode 100644 index 00000000..f4031217 Binary files /dev/null and b/docs/guides/images/Button_Pack/Vive/Vive_Hand_Left.png differ diff --git a/docs/guides/images/Button_Pack/Vive/Vive_Hand_Right.png b/docs/guides/images/Button_Pack/Vive/Vive_Hand_Right.png new file mode 100644 index 00000000..5110f2e8 Binary files /dev/null and b/docs/guides/images/Button_Pack/Vive/Vive_Hand_Right.png differ diff --git a/docs/guides/images/Button_Pack/Vive/Vive_Hold_Left.png b/docs/guides/images/Button_Pack/Vive/Vive_Hold_Left.png new file mode 100644 index 00000000..4880e285 Binary files /dev/null and b/docs/guides/images/Button_Pack/Vive/Vive_Hold_Left.png differ diff --git a/docs/guides/images/Button_Pack/Vive/Vive_Hold_Right.png b/docs/guides/images/Button_Pack/Vive/Vive_Hold_Right.png new file mode 100644 index 00000000..609fd501 Binary files /dev/null and b/docs/guides/images/Button_Pack/Vive/Vive_Hold_Right.png differ diff --git a/docs/guides/images/Button_Pack/Vive/Vive_LT.png b/docs/guides/images/Button_Pack/Vive/Vive_LT.png new file mode 100644 index 00000000..51abb05e Binary files /dev/null and b/docs/guides/images/Button_Pack/Vive/Vive_LT.png differ diff --git a/docs/guides/images/Button_Pack/Vive/Vive_Menu.png b/docs/guides/images/Button_Pack/Vive/Vive_Menu.png new file mode 100644 index 00000000..6d04ba98 Binary files /dev/null and b/docs/guides/images/Button_Pack/Vive/Vive_Menu.png differ diff --git a/docs/guides/images/Button_Pack/Vive/Vive_RT.png b/docs/guides/images/Button_Pack/Vive/Vive_RT.png new file mode 100644 index 00000000..88883c2f Binary files /dev/null and b/docs/guides/images/Button_Pack/Vive/Vive_RT.png differ diff --git a/docs/guides/images/Button_Pack/Vive/Vive_System.png b/docs/guides/images/Button_Pack/Vive/Vive_System.png new file mode 100644 index 00000000..7cb73984 Binary files /dev/null and b/docs/guides/images/Button_Pack/Vive/Vive_System.png differ diff --git a/docs/guides/images/Button_Pack/Vive/Vive_Touch.png b/docs/guides/images/Button_Pack/Vive/Vive_Touch.png new file mode 100644 index 00000000..baefb364 Binary files /dev/null and b/docs/guides/images/Button_Pack/Vive/Vive_Touch.png differ diff --git a/docs/guides/images/Button_Pack/Vive/Vive_Touch_Center.png b/docs/guides/images/Button_Pack/Vive/Vive_Touch_Center.png new file mode 100644 index 00000000..b6b9e2fe Binary files /dev/null and b/docs/guides/images/Button_Pack/Vive/Vive_Touch_Center.png differ diff --git a/docs/guides/images/Button_Pack/Vive/Vive_Touch_Down.png b/docs/guides/images/Button_Pack/Vive/Vive_Touch_Down.png new file mode 100644 index 00000000..7ee27fa4 Binary files /dev/null and b/docs/guides/images/Button_Pack/Vive/Vive_Touch_Down.png differ diff --git a/docs/guides/images/Button_Pack/Vive/Vive_Touch_Left.png b/docs/guides/images/Button_Pack/Vive/Vive_Touch_Left.png new file mode 100644 index 00000000..0867facd Binary files /dev/null and b/docs/guides/images/Button_Pack/Vive/Vive_Touch_Left.png differ diff --git a/docs/guides/images/Button_Pack/Vive/Vive_Touch_Right.png b/docs/guides/images/Button_Pack/Vive/Vive_Touch_Right.png new file mode 100644 index 00000000..704e8aec Binary files /dev/null and b/docs/guides/images/Button_Pack/Vive/Vive_Touch_Right.png differ diff --git a/docs/guides/images/Button_Pack/Vive/Vive_Touch_Scroll_Left.png b/docs/guides/images/Button_Pack/Vive/Vive_Touch_Scroll_Left.png new file mode 100644 index 00000000..c761991f Binary files /dev/null and b/docs/guides/images/Button_Pack/Vive/Vive_Touch_Scroll_Left.png differ diff --git a/docs/guides/images/Button_Pack/Vive/Vive_Touch_Scroll_Right.png b/docs/guides/images/Button_Pack/Vive/Vive_Touch_Scroll_Right.png new file mode 100644 index 00000000..256577e4 Binary files /dev/null and b/docs/guides/images/Button_Pack/Vive/Vive_Touch_Scroll_Right.png differ diff --git a/docs/guides/images/Button_Pack/Vive/Vive_Touch_Up.png b/docs/guides/images/Button_Pack/Vive/Vive_Touch_Up.png new file mode 100644 index 00000000..b6fed1ec Binary files /dev/null and b/docs/guides/images/Button_Pack/Vive/Vive_Touch_Up.png differ diff --git a/docs/guides/images/Button_Pack/Vive/Vive_TriggerBlank.png b/docs/guides/images/Button_Pack/Vive/Vive_TriggerBlank.png new file mode 100644 index 00000000..a279f3e8 Binary files /dev/null and b/docs/guides/images/Button_Pack/Vive/Vive_TriggerBlank.png differ diff --git a/docs/guides/images/Button_Pack/Wii/Wii_1.png b/docs/guides/images/Button_Pack/Wii/Wii_1.png new file mode 100644 index 00000000..4b226def Binary files /dev/null and b/docs/guides/images/Button_Pack/Wii/Wii_1.png differ diff --git a/docs/guides/images/Button_Pack/Wii/Wii_2.png b/docs/guides/images/Button_Pack/Wii/Wii_2.png new file mode 100644 index 00000000..4d871971 Binary files /dev/null and b/docs/guides/images/Button_Pack/Wii/Wii_2.png differ diff --git a/docs/guides/images/Button_Pack/Wii/Wii_A.png b/docs/guides/images/Button_Pack/Wii/Wii_A.png new file mode 100644 index 00000000..b2d443f1 Binary files /dev/null and b/docs/guides/images/Button_Pack/Wii/Wii_A.png differ diff --git a/docs/guides/images/Button_Pack/Wii/Wii_B.png b/docs/guides/images/Button_Pack/Wii/Wii_B.png new file mode 100644 index 00000000..86e1c4a8 Binary files /dev/null and b/docs/guides/images/Button_Pack/Wii/Wii_B.png differ diff --git a/docs/guides/images/Button_Pack/Wii/Wii_C.png b/docs/guides/images/Button_Pack/Wii/Wii_C.png new file mode 100644 index 00000000..de16105f Binary files /dev/null and b/docs/guides/images/Button_Pack/Wii/Wii_C.png differ diff --git a/docs/guides/images/Button_Pack/Wii/Wii_Dpad.png b/docs/guides/images/Button_Pack/Wii/Wii_Dpad.png new file mode 100644 index 00000000..8f324b9d Binary files /dev/null and b/docs/guides/images/Button_Pack/Wii/Wii_Dpad.png differ diff --git a/docs/guides/images/Button_Pack/Wii/Wii_Dpad_Down.png b/docs/guides/images/Button_Pack/Wii/Wii_Dpad_Down.png new file mode 100644 index 00000000..f981ebc3 Binary files /dev/null and b/docs/guides/images/Button_Pack/Wii/Wii_Dpad_Down.png differ diff --git a/docs/guides/images/Button_Pack/Wii/Wii_Dpad_Left.png b/docs/guides/images/Button_Pack/Wii/Wii_Dpad_Left.png new file mode 100644 index 00000000..dda953fa Binary files /dev/null and b/docs/guides/images/Button_Pack/Wii/Wii_Dpad_Left.png differ diff --git a/docs/guides/images/Button_Pack/Wii/Wii_Dpad_Right.png b/docs/guides/images/Button_Pack/Wii/Wii_Dpad_Right.png new file mode 100644 index 00000000..7acfc795 Binary files /dev/null and b/docs/guides/images/Button_Pack/Wii/Wii_Dpad_Right.png differ diff --git a/docs/guides/images/Button_Pack/Wii/Wii_Dpad_Up.png b/docs/guides/images/Button_Pack/Wii/Wii_Dpad_Up.png new file mode 100644 index 00000000..27f08b66 Binary files /dev/null and b/docs/guides/images/Button_Pack/Wii/Wii_Dpad_Up.png differ diff --git a/docs/guides/images/Button_Pack/Wii/Wii_Home.png b/docs/guides/images/Button_Pack/Wii/Wii_Home.png new file mode 100644 index 00000000..ff6c3e9a Binary files /dev/null and b/docs/guides/images/Button_Pack/Wii/Wii_Home.png differ diff --git a/docs/guides/images/Button_Pack/Wii/Wii_Minus.png b/docs/guides/images/Button_Pack/Wii/Wii_Minus.png new file mode 100644 index 00000000..eb5dcce2 Binary files /dev/null and b/docs/guides/images/Button_Pack/Wii/Wii_Minus.png differ diff --git a/docs/guides/images/Button_Pack/Wii/Wii_Plus.png b/docs/guides/images/Button_Pack/Wii/Wii_Plus.png new file mode 100644 index 00000000..b7868e47 Binary files /dev/null and b/docs/guides/images/Button_Pack/Wii/Wii_Plus.png differ diff --git a/docs/guides/images/Button_Pack/Wii/Wii_Power.png b/docs/guides/images/Button_Pack/Wii/Wii_Power.png new file mode 100644 index 00000000..98c89c41 Binary files /dev/null and b/docs/guides/images/Button_Pack/Wii/Wii_Power.png differ diff --git a/docs/guides/images/Button_Pack/Wii/Wii_Stick.png b/docs/guides/images/Button_Pack/Wii/Wii_Stick.png new file mode 100644 index 00000000..80405032 Binary files /dev/null and b/docs/guides/images/Button_Pack/Wii/Wii_Stick.png differ diff --git a/docs/guides/images/Button_Pack/Wii/Wii_Z.png b/docs/guides/images/Button_Pack/Wii/Wii_Z.png new file mode 100644 index 00000000..0f8bf55f Binary files /dev/null and b/docs/guides/images/Button_Pack/Wii/Wii_Z.png differ diff --git a/docs/guides/images/Button_Pack/WiiU/WiiU_1.png b/docs/guides/images/Button_Pack/WiiU/WiiU_1.png new file mode 100644 index 00000000..4b226def Binary files /dev/null and b/docs/guides/images/Button_Pack/WiiU/WiiU_1.png differ diff --git a/docs/guides/images/Button_Pack/WiiU/WiiU_2.png b/docs/guides/images/Button_Pack/WiiU/WiiU_2.png new file mode 100644 index 00000000..4d871971 Binary files /dev/null and b/docs/guides/images/Button_Pack/WiiU/WiiU_2.png differ diff --git a/docs/guides/images/Button_Pack/WiiU/WiiU_A.png b/docs/guides/images/Button_Pack/WiiU/WiiU_A.png new file mode 100644 index 00000000..b2d443f1 Binary files /dev/null and b/docs/guides/images/Button_Pack/WiiU/WiiU_A.png differ diff --git a/docs/guides/images/Button_Pack/WiiU/WiiU_B.png b/docs/guides/images/Button_Pack/WiiU/WiiU_B.png new file mode 100644 index 00000000..54449d5d Binary files /dev/null and b/docs/guides/images/Button_Pack/WiiU/WiiU_B.png differ diff --git a/docs/guides/images/Button_Pack/WiiU/WiiU_Dpad.png b/docs/guides/images/Button_Pack/WiiU/WiiU_Dpad.png new file mode 100644 index 00000000..8f324b9d Binary files /dev/null and b/docs/guides/images/Button_Pack/WiiU/WiiU_Dpad.png differ diff --git a/docs/guides/images/Button_Pack/WiiU/WiiU_Dpad_Down.png b/docs/guides/images/Button_Pack/WiiU/WiiU_Dpad_Down.png new file mode 100644 index 00000000..f981ebc3 Binary files /dev/null and b/docs/guides/images/Button_Pack/WiiU/WiiU_Dpad_Down.png differ diff --git a/docs/guides/images/Button_Pack/WiiU/WiiU_Dpad_Left.png b/docs/guides/images/Button_Pack/WiiU/WiiU_Dpad_Left.png new file mode 100644 index 00000000..dda953fa Binary files /dev/null and b/docs/guides/images/Button_Pack/WiiU/WiiU_Dpad_Left.png differ diff --git a/docs/guides/images/Button_Pack/WiiU/WiiU_Dpad_Right.png b/docs/guides/images/Button_Pack/WiiU/WiiU_Dpad_Right.png new file mode 100644 index 00000000..7acfc795 Binary files /dev/null and b/docs/guides/images/Button_Pack/WiiU/WiiU_Dpad_Right.png differ diff --git a/docs/guides/images/Button_Pack/WiiU/WiiU_Dpad_Up.png b/docs/guides/images/Button_Pack/WiiU/WiiU_Dpad_Up.png new file mode 100644 index 00000000..27f08b66 Binary files /dev/null and b/docs/guides/images/Button_Pack/WiiU/WiiU_Dpad_Up.png differ diff --git a/docs/guides/images/Button_Pack/WiiU/WiiU_Home.png b/docs/guides/images/Button_Pack/WiiU/WiiU_Home.png new file mode 100644 index 00000000..ccda3a08 Binary files /dev/null and b/docs/guides/images/Button_Pack/WiiU/WiiU_Home.png differ diff --git a/docs/guides/images/Button_Pack/WiiU/WiiU_L.png b/docs/guides/images/Button_Pack/WiiU/WiiU_L.png new file mode 100644 index 00000000..c7fdc348 Binary files /dev/null and b/docs/guides/images/Button_Pack/WiiU/WiiU_L.png differ diff --git a/docs/guides/images/Button_Pack/WiiU/WiiU_Left_Stick.png b/docs/guides/images/Button_Pack/WiiU/WiiU_Left_Stick.png new file mode 100644 index 00000000..6de9f227 Binary files /dev/null and b/docs/guides/images/Button_Pack/WiiU/WiiU_Left_Stick.png differ diff --git a/docs/guides/images/Button_Pack/WiiU/WiiU_Look_Down.png b/docs/guides/images/Button_Pack/WiiU/WiiU_Look_Down.png new file mode 100644 index 00000000..94ff7eec Binary files /dev/null and b/docs/guides/images/Button_Pack/WiiU/WiiU_Look_Down.png differ diff --git a/docs/guides/images/Button_Pack/WiiU/WiiU_Look_Up.png b/docs/guides/images/Button_Pack/WiiU/WiiU_Look_Up.png new file mode 100644 index 00000000..b44a9226 Binary files /dev/null and b/docs/guides/images/Button_Pack/WiiU/WiiU_Look_Up.png differ diff --git a/docs/guides/images/Button_Pack/WiiU/WiiU_Minus.png b/docs/guides/images/Button_Pack/WiiU/WiiU_Minus.png new file mode 100644 index 00000000..eb5dcce2 Binary files /dev/null and b/docs/guides/images/Button_Pack/WiiU/WiiU_Minus.png differ diff --git a/docs/guides/images/Button_Pack/WiiU/WiiU_Plus.png b/docs/guides/images/Button_Pack/WiiU/WiiU_Plus.png new file mode 100644 index 00000000..b7868e47 Binary files /dev/null and b/docs/guides/images/Button_Pack/WiiU/WiiU_Plus.png differ diff --git a/docs/guides/images/Button_Pack/WiiU/WiiU_Power.png b/docs/guides/images/Button_Pack/WiiU/WiiU_Power.png new file mode 100644 index 00000000..98c89c41 Binary files /dev/null and b/docs/guides/images/Button_Pack/WiiU/WiiU_Power.png differ diff --git a/docs/guides/images/Button_Pack/WiiU/WiiU_R.png b/docs/guides/images/Button_Pack/WiiU/WiiU_R.png new file mode 100644 index 00000000..8aceed04 Binary files /dev/null and b/docs/guides/images/Button_Pack/WiiU/WiiU_R.png differ diff --git a/docs/guides/images/Button_Pack/WiiU/WiiU_Right_Stick.png b/docs/guides/images/Button_Pack/WiiU/WiiU_Right_Stick.png new file mode 100644 index 00000000..ab213f0e Binary files /dev/null and b/docs/guides/images/Button_Pack/WiiU/WiiU_Right_Stick.png differ diff --git a/docs/guides/images/Button_Pack/WiiU/WiiU_TV.png b/docs/guides/images/Button_Pack/WiiU/WiiU_TV.png new file mode 100644 index 00000000..db969eee Binary files /dev/null and b/docs/guides/images/Button_Pack/WiiU/WiiU_TV.png differ diff --git a/docs/guides/images/Button_Pack/WiiU/WiiU_X.png b/docs/guides/images/Button_Pack/WiiU/WiiU_X.png new file mode 100644 index 00000000..d4455aee Binary files /dev/null and b/docs/guides/images/Button_Pack/WiiU/WiiU_X.png differ diff --git a/docs/guides/images/Button_Pack/WiiU/WiiU_Y.png b/docs/guides/images/Button_Pack/WiiU/WiiU_Y.png new file mode 100644 index 00000000..b37c22e6 Binary files /dev/null and b/docs/guides/images/Button_Pack/WiiU/WiiU_Y.png differ diff --git a/docs/guides/images/Button_Pack/WiiU/WiiU_ZL.png b/docs/guides/images/Button_Pack/WiiU/WiiU_ZL.png new file mode 100644 index 00000000..d43da059 Binary files /dev/null and b/docs/guides/images/Button_Pack/WiiU/WiiU_ZL.png differ diff --git a/docs/guides/images/Button_Pack/WiiU/WiiU_ZR.png b/docs/guides/images/Button_Pack/WiiU/WiiU_ZR.png new file mode 100644 index 00000000..aff7ed00 Binary files /dev/null and b/docs/guides/images/Button_Pack/WiiU/WiiU_ZR.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_360/360_A.png b/docs/guides/images/Button_Pack/Xbox_360/360_A.png new file mode 100644 index 00000000..cd716d1a Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_360/360_A.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_360/360_B.png b/docs/guides/images/Button_Pack/Xbox_360/360_B.png new file mode 100644 index 00000000..73bcb6e0 Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_360/360_B.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_360/360_Back.png b/docs/guides/images/Button_Pack/Xbox_360/360_Back.png new file mode 100644 index 00000000..ce4c7787 Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_360/360_Back.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_360/360_Back_Alt.png b/docs/guides/images/Button_Pack/Xbox_360/360_Back_Alt.png new file mode 100644 index 00000000..900705b1 Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_360/360_Back_Alt.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_360/360_Dpad.png b/docs/guides/images/Button_Pack/Xbox_360/360_Dpad.png new file mode 100644 index 00000000..93e90deb Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_360/360_Dpad.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_360/360_Dpad_Down.png b/docs/guides/images/Button_Pack/Xbox_360/360_Dpad_Down.png new file mode 100644 index 00000000..944d59bb Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_360/360_Dpad_Down.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_360/360_Dpad_Left.png b/docs/guides/images/Button_Pack/Xbox_360/360_Dpad_Left.png new file mode 100644 index 00000000..6091cf2d Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_360/360_Dpad_Left.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_360/360_Dpad_Right.png b/docs/guides/images/Button_Pack/Xbox_360/360_Dpad_Right.png new file mode 100644 index 00000000..d099719f Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_360/360_Dpad_Right.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_360/360_Dpad_Up.png b/docs/guides/images/Button_Pack/Xbox_360/360_Dpad_Up.png new file mode 100644 index 00000000..8939669d Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_360/360_Dpad_Up.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_360/360_LB.png b/docs/guides/images/Button_Pack/Xbox_360/360_LB.png new file mode 100644 index 00000000..ec6e30ca Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_360/360_LB.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_360/360_LT.png b/docs/guides/images/Button_Pack/Xbox_360/360_LT.png new file mode 100644 index 00000000..76706104 Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_360/360_LT.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_360/360_Left_Stick.png b/docs/guides/images/Button_Pack/Xbox_360/360_Left_Stick.png new file mode 100644 index 00000000..8139be26 Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_360/360_Left_Stick.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_360/360_RB.png b/docs/guides/images/Button_Pack/Xbox_360/360_RB.png new file mode 100644 index 00000000..f182b6ad Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_360/360_RB.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_360/360_RT.png b/docs/guides/images/Button_Pack/Xbox_360/360_RT.png new file mode 100644 index 00000000..dc418ff2 Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_360/360_RT.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_360/360_Right_Stick.png b/docs/guides/images/Button_Pack/Xbox_360/360_Right_Stick.png new file mode 100644 index 00000000..dde08c00 Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_360/360_Right_Stick.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_360/360_Start.png b/docs/guides/images/Button_Pack/Xbox_360/360_Start.png new file mode 100644 index 00000000..00d7ecbe Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_360/360_Start.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_360/360_Start_Alt.png b/docs/guides/images/Button_Pack/Xbox_360/360_Start_Alt.png new file mode 100644 index 00000000..7a10fcdb Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_360/360_Start_Alt.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_360/360_X.png b/docs/guides/images/Button_Pack/Xbox_360/360_X.png new file mode 100644 index 00000000..4b8cec18 Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_360/360_X.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_360/360_Y.png b/docs/guides/images/Button_Pack/Xbox_360/360_Y.png new file mode 100644 index 00000000..e32b04a3 Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_360/360_Y.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_One/XboxOne_A.png b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_A.png new file mode 100644 index 00000000..28c3b601 Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_A.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_One/XboxOne_B.png b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_B.png new file mode 100644 index 00000000..2a4d9b6f Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_B.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Dpad.png b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Dpad.png new file mode 100644 index 00000000..9c04c85d Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Dpad.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Dpad_Down.png b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Dpad_Down.png new file mode 100644 index 00000000..530450f9 Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Dpad_Down.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Dpad_Left.png b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Dpad_Left.png new file mode 100644 index 00000000..af69c93c Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Dpad_Left.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Dpad_Right.png b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Dpad_Right.png new file mode 100644 index 00000000..a72a446b Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Dpad_Right.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Dpad_Up.png b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Dpad_Up.png new file mode 100644 index 00000000..6eefbad2 Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Dpad_Up.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_One/XboxOne_LB.png b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_LB.png new file mode 100644 index 00000000..21ba46b9 Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_LB.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_One/XboxOne_LT.png b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_LT.png new file mode 100644 index 00000000..d754535c Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_LT.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Left_Stick.png b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Left_Stick.png new file mode 100644 index 00000000..9c5ca5c7 Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Left_Stick.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Menu.png b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Menu.png new file mode 100644 index 00000000..2cbfb081 Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Menu.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_One/XboxOne_RB.png b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_RB.png new file mode 100644 index 00000000..6669568d Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_RB.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_One/XboxOne_RT.png b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_RT.png new file mode 100644 index 00000000..0772813c Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_RT.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Right_Stick.png b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Right_Stick.png new file mode 100644 index 00000000..3d83a222 Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Right_Stick.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Windows.png b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Windows.png new file mode 100644 index 00000000..3756d299 Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Windows.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_One/XboxOne_X.png b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_X.png new file mode 100644 index 00000000..a0f0ac13 Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_X.png differ diff --git a/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Y.png b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Y.png new file mode 100644 index 00000000..4e31627e Binary files /dev/null and b/docs/guides/images/Button_Pack/Xbox_One/XboxOne_Y.png differ diff --git a/docs/guides/images/netplay/netplay.png b/docs/guides/images/netplay/netplay.png new file mode 100644 index 00000000..cd148583 Binary files /dev/null and b/docs/guides/images/netplay/netplay.png differ diff --git a/docs/guides/images/netplay/nickname.png b/docs/guides/images/netplay/nickname.png new file mode 100644 index 00000000..0c33b138 Binary files /dev/null and b/docs/guides/images/netplay/nickname.png differ diff --git a/docs/guides/images/netplay/rooms.png b/docs/guides/images/netplay/rooms.png new file mode 100644 index 00000000..dc62f19d Binary files /dev/null and b/docs/guides/images/netplay/rooms.png differ diff --git a/docs/guides/images/retroachievements/achievements-list.png b/docs/guides/images/retroachievements/achievements-list.png new file mode 100644 index 00000000..6e6af18e Binary files /dev/null and b/docs/guides/images/retroachievements/achievements-list.png differ diff --git a/docs/guides/images/retroachievements/achievements-progress.png b/docs/guides/images/retroachievements/achievements-progress.png new file mode 100644 index 00000000..0300876d Binary files /dev/null and b/docs/guides/images/retroachievements/achievements-progress.png differ diff --git a/docs/guides/images/retroachievements/achievements-settings.png b/docs/guides/images/retroachievements/achievements-settings.png new file mode 100644 index 00000000..50e34ca2 Binary files /dev/null and b/docs/guides/images/retroachievements/achievements-settings.png differ diff --git a/docs/guides/images/retropad.png b/docs/guides/images/retropad.png new file mode 100644 index 00000000..e3478aee Binary files /dev/null and b/docs/guides/images/retropad.png differ diff --git a/docs/guides/images/rgui/rgui.png b/docs/guides/images/rgui/rgui.png new file mode 100644 index 00000000..132f6770 Binary files /dev/null and b/docs/guides/images/rgui/rgui.png differ diff --git a/docs/guides/images/themes/RA-Dot-Art.png b/docs/guides/images/themes/RA-Dot-Art.png new file mode 100644 index 00000000..caac0f96 Binary files /dev/null and b/docs/guides/images/themes/RA-Dot-Art.png differ diff --git a/docs/guides/images/themes/RA-Retroactive.png b/docs/guides/images/themes/RA-Retroactive.png new file mode 100644 index 00000000..3ae63d40 Binary files /dev/null and b/docs/guides/images/themes/RA-Retroactive.png differ diff --git a/docs/guides/images/themes/RA-Systematic.png b/docs/guides/images/themes/RA-Systematic.png new file mode 100644 index 00000000..97a700c0 Binary files /dev/null and b/docs/guides/images/themes/RA-Systematic.png differ diff --git a/docs/guides/images/themes/change-icons.png b/docs/guides/images/themes/change-icons.png new file mode 100644 index 00000000..618abb14 Binary files /dev/null and b/docs/guides/images/themes/change-icons.png differ diff --git a/docs/guides/images/windows/autoconf.gif b/docs/guides/images/windows/autoconf.gif new file mode 100644 index 00000000..d282d39f Binary files /dev/null and b/docs/guides/images/windows/autoconf.gif differ diff --git a/docs/guides/images/windows/core_updater.gif b/docs/guides/images/windows/core_updater.gif new file mode 100644 index 00000000..472b26c0 Binary files /dev/null and b/docs/guides/images/windows/core_updater.gif differ diff --git a/docs/guides/images/windows/first_run.png b/docs/guides/images/windows/first_run.png new file mode 100644 index 00000000..bd1c3a02 Binary files /dev/null and b/docs/guides/images/windows/first_run.png differ diff --git a/docs/guides/images/windows/run_content.gif b/docs/guides/images/windows/run_content.gif new file mode 100644 index 00000000..35388330 Binary files /dev/null and b/docs/guides/images/windows/run_content.gif differ diff --git a/docs/guides/input-joypad-drivers.md b/docs/guides/input-joypad-drivers.md new file mode 100644 index 00000000..4814315d --- /dev/null +++ b/docs/guides/input-joypad-drivers.md @@ -0,0 +1,315 @@ +# RetroArch input and joypad drivers + +RetroArch makes use of two input systems in order to support the full range of input devices available across RetroArch's supported platforms. + +- **Input Drivers** provide access to keyboards, mice, and mouse-like devices such as lightguns, spinners, steering wheels, etc. +- **Joypad Drivers** provide access to gamepads and joysticks. + +**Absolute mouse devices** in the tables below refers to input drivers which support mouse-like devices such as light guns, air mice, and Wiimotes that use 'absolute' coordinate systems. Certain input drivers only support mouse devices with 'relative' coordinate systems. + +## Linux +`udev` is the most full-featured Input Driver and Joypad Driver for Linux. + +**Linux Input Drivers** + +- linuxraw +- sdl2 +- udev +- wayland + +**Linux Joypad Drivers** + +- hid +- linuxraw +- sdl2 +- udev +- xinput + +### udev input driver +udev is the newest input driver and uses the evdev joypad interface at `/dev/input`. It supports hotplugging and force feedback (if supported by device). udev reads evdev events directly and supports keyboard callback, mice, and touchpads. `libudev` is used to discover devices and support hotplugging. + +#### Features + +| Multi-mouse | Absolute mice | +|-------------|---------------| +| Yes | Yes | + +#### Required packages +TThe `libudev` and `libxkbdcommon` packages are required. udev does not require X, but udev does depend on X11 keyboard layout files being installed. + +#### Setting up udev permissions +Most Linux distributions prevent users from capturing keyboard/mouse information by default. Only root and users in the group "input" are able to access raw input. This is a security feature in case the system is used by multiple users. + +The easiest way to gain access to this input is to: + +* **Step 1:** Add your user to the group "input" with the command: ``sudo usermod -a -G input `whoami` `` +* **Step 2:** Log out, and then log back in + +If adding your user to the input group does not succeed, you may also set up a udev rule which makes this input accessible to non-root users: + +* **Step 1:** Add to `/etc/udev/rules.d/99-evdev.rules` the following text: `KERNEL=="event*", NAME="input/%k", MODE="666"` +* **Step 2:** Reload the rules with `sudo udevadm control --reload-rules`. +* **Step 3:** Reboot + +### linuxraw input driver +The older linuxraw driver is available which uses the legacy joystick API at `/dev/input/js*`. The linuxraw driver requires an active TTY in order to read keyboard events. + +#### Features + +| Multi-mouse | Absolute mice | +|-------------|---------------| +| No | Yes | + +### wayland input driver + +#### Features + +| Multi-mouse | Absolute mice | +|-------------|---------------| +| - | - | + +### sdl2 input driver + +#### Features + +| Multi-mouse | Absolute mice* | +|-------------|----------------| +| No | No | + + +### hid joypad driver + +#### Features + +| Rumble | +|--------| +| - | + +### linuxraw joypad driver + +#### Features + +| Rumble | +|--------| +| - | + + +### sdl2 joypad driver + +#### Features + +| Rumble | +|--------| +| Yes | + +### udev joypad driver + +#### Features + +| Rumble | +|--------| +| Yes | + +### xinput joypad driver + +#### Features + +| Rumble | +|--------| +| Yes | + +--- + +## Windows + +**Windows Input Drivers** + +- dinput +- raw +- sdl2 + +**Windows Joypad Drivers** + +- dinput +- hid +- sdl2 +- xinput + +### raw input driver + +#### Features + +| Multi-mouse | Absolute mice | +|-------------|---------------| +| Yes | Yes | + + +### dinput input driver + +#### Features + +| Multi-mouse | Absolute mice | +|-------------|---------------| +| No | No | + +### sdl2 input driver +-To be written- + +#### Features + +| Multi-mouse | Absolute mice | +|-------------|---------------| +| - | - | + +### dinput joypad driver + +#### Features + +| Rumble | +|--------| +| No | + +### hid joypad driver + +#### Features + +| Rumble | +|--------| +| - | + +### sdl2 joypad driver + +#### Features + +| Rumble | +|--------| +| Yes | + +### xinput joypad driver + +#### Features + +| Rumble | +|--------| +| Yes | + +--- + +## Android + +**Android Input Drivers** + +- android +- linuxraw +- udev + +**Android Joypad Drivers** + +- android +- hid +- udev + +### android input driver + +#### Features + +| Multi-mouse | Absolute mice | +|-------------|---------------| +| - | - | + +### linuxraw input driver + +#### Features + +| Multi-mouse | Absolute mice | +|-------------|---------------| +| No | Yes | + +### udev input driver + +#### Features + +| Multi-mouse | Absolute mice | +|-------------|---------------| +| Yes | No | + + +### android joypad driver + +#### Features + +| Rumble | +|--------| +| - | + +### hid joypad driver + +#### Features + +| Rumble | +|--------| +| - | + +### udev joypad driver + +#### Features + +| Rumble | +|--------| +| Yes | + +## OS X + +**OS X Input Drivers** + +- cocoa + +**OS X Joypad Drivers** + +- hid + +### cocoa input driver +-To be written- + +#### Features + +| Multi-mouse | Absolute mice | +|-------------|---------------| +| - | - | + +### hid joypad driver + +#### Features + +| Rumble | +|--------| +| - | + +### sdl2 joypad driver + +#### Features + +| Rumble | +|--------| +| Yes | + +--- + +## DOS + + +### DOS input driver + +#### Features + +| Multi-mouse | Absolute mice | +|-------------|---------------| +| - | - | + +### DOS joypad driver + +#### Features + +| Rumble | +|--------| +| - | diff --git a/docs/guides/install-windows.md b/docs/guides/install-windows.md new file mode 100644 index 00000000..4248ec37 --- /dev/null +++ b/docs/guides/install-windows.md @@ -0,0 +1,17 @@ + +# Installing and Updating RetroArch + +Download a stable release [here](https://buildbot.libretro.com/stable) or a current nightly [here](https://buildbot.libretro.com/nightly/windows/). +There are several files you can download in these folders. For a new installation you want **RetroArch.7z** or the latest setup package (**RetroArch-20XX-XX-XX-setup.exe**). + +Both options are identical, the only difference is that one is a self extracting installer, and the other one an archive you have to extract manually. Both are portable installation which means the RetroArch setup is: +- It's self-contained +- It doesn't need users to guess random locations for configurations files +- It's easy to update by just replacing files + +If you pick the archive package, extract it in a folder that doesn't require administrator permissions such as *C:\Users\yourusername\RetroArch*. Don't extract it to *Program Files* or your Windows folder. You can update the installation by downloading the latest **20XX-XX-XX-RetroArch.7z** package and overwriting the executable. + +If you pick the installer package we recommend to use the default location, follow the installation steps and you should be good to go. You can update the installer version by downloading the latest version and re-running the installer. + +!!! Warning + If you were running a stable release prior to 1.4.0. you will need to update the system libraries. You can do so by downloading the full **RetroArch.7z** package or **redist.7z** from the download locations. diff --git a/docs/guides/kms-mode.md b/docs/guides/kms-mode.md new file mode 100644 index 00000000..b26e4af3 --- /dev/null +++ b/docs/guides/kms-mode.md @@ -0,0 +1,19 @@ +## Purpose +KMS (Kernel Mode Setting) mode is a feature where RetroArch can use the OpenGL driver outside Xorg, running straight in the virtual terminal. It is a fairly obscure feature, but very powerful in a console scenario. + +## Requirements +To use KMS mode you need: + +- Recent version of MESA (9.0+) (dev) +- libgbm 9.0+, libdrm (dev) +- Open source driver which supports KMS +- ./configure with flags "--enable-kms" and "--enable-egl" + +These require a fairly up-to-date distro. + +After compiling RetroArch, you should see this when running `retroarch --features`: + + KMS: + KMS/EGL context support: yes + +If KMS mode is working correctly, RetroArch should start up outside Xorg as well. diff --git a/docs/guides/netplay-faq.md b/docs/guides/netplay-faq.md new file mode 100644 index 00000000..627276f3 --- /dev/null +++ b/docs/guides/netplay-faq.md @@ -0,0 +1,74 @@ +# Netplay Getting Started / FAQ + +## FAQ + +Does RetroArch require port-forwarding to work? + +- Yes, the host needs to forward the ports properly, please read the Setup Guide below. + +Does it support more than two players? + +- Yes! + +RetroArch says *Content not found, try loading content manually* + +- Either load content manually, have the content in your recent history list, or scan your content to a playlist. + +Does the core need to be the same version for the server and the client? + +- Yes, also some cores may not work for cross-platform netplay. + +Which cores work for netplay? + +- On a techincal level, every core that supports save states should work but the performance requirements may be too high for it to work in any practical level. + +Does PSX / N64 / Dreamcast / Gamecube / Wii / 3DS netplay work? + +- No, currently the performance requirements and save state sizes make this too problematic at the moment. + +Can I play GB / GBC / GBA / PSP / 3DS games with multiple people via RetroArch Netplay? + +- No, RetroArch's netplay is not link-cable emulation, GB, GBA, PSP netplay are currently not possible with our implementation. One notable exception is same game GB/GBC Netplay via the TGB-Dual core. + +Can I trade pokemons via RetroArch Netplay? + +- No. + + +## Setup Guide + +### Configuring Nickname +- Navigate to **Settings** +- Navigate to **User** +- Select **Username** +- Configure your preferred nickname + +![Screenshot](images/netplay/nickname.png) + +### Configure Netplay Server + +If you are gonna host a game you don't need to scan content or to build databases. The only thing you need to do is to configure your network parameters and "Start Hosting" from the netplay menu. After doing that just load the content you want to netplay and wait for players. + +![Screenshot](images/netplay/netplay.png) + + +!!! tip + If your router doesn't support UPnP or you can't forward your ports or you are uncertain, enable the **Use Relay Server** option. This routes both sides of the connection through our man-in-the-middle server. + +!!! tip + If you want to run a private game you can setup a **Server Password** to prevent random people from connecting. Alternatively you can disable the **Publicly Announce Netplay** option. The clients will need to enter your IP address or hostname directly. + +!!! Warning + RetroArch doesn't check if you managed to open your ports manually, the lobby server doesn't either so make sure you do that properly or enable the Relay Server or people won't be able to connect to your session. You can use [this tool](http://www.yougetsignal.com/tools/open-ports/), enter your **Netplay TCP Port** once you are hosting and it will tell you if the port is open or not. + +Once you start hosting you can check your own lobby [here](http://newlobby.libretro.com/list). + +### Configure Netplay Clients + +You don't need to configure anything to connect to netplay rooms. Browse to the netplay menu, Select **Refresh** and then select the room you want to connect to. + +![Screenshot](images/netplay/rooms.png) + +You will be asked for a password if one is required, and if you have matching content scanned or in the **Content History** it will connect right away. Otherwise it will tell you to load the core and content manually and it will attempt to connect right away. + + diff --git a/docs/guides/optimal-vsync.md b/docs/guides/optimal-vsync.md new file mode 100644 index 00000000..80ae40bc --- /dev/null +++ b/docs/guides/optimal-vsync.md @@ -0,0 +1,45 @@ +# Getting optimal vsync performance + +RetroArch uses [Dynamic Rate Control](files/ratecontrol.pdf) to synchronize both video and audio at the same time. Synchronizing like this is a very demanding task timing-wise and dynamic rate control helps smooth out imperfections in timing which are guaranteed to arise. + +It can be disabled, but be aware that proper video/audio sync is nearly impossible to obtain in that case. + +!!! tip + +In order to propose improvements to this document, [visit it's corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/guides/optimal-vsync.md). Changes are proposed using "Pull Requests." + +## Problems + +While using RetroArch, the default settings might not be adequate, and you might experience video stuttering and/or audio crackling. For correct synchronization, `video_refresh_rate` must be configured for your monitor. It cannot be detected accurately enough by OS-provided APIs (i.e. they tend to blatantly lie). For proper behavior, an accuracy of roughly ~0.1% is needed for dynamic rate control to smooth out the drifting. This is trivial to obtain by measuring manually under normal conditions. Without dynamic rate control one would need a "perfect" measurement which obviously isn't possible without special hardware. + +RetroArch can give you an estimate of your monitors refresh rate in RGUI under video settings, which is updated in real-time using a running average over frame times. Make sure VSync is enabled and working. Also make sure you're running in full-screen for more accurate results (compositors can easily interfere with timing). Press accept button on the estimated refresh rate to configure RetroArch with the estimated rate. If the running average isn't drifting much anymore, it's probably a good result. + +You can also have RetroArch log the output at the end and configure things more manually. Start RetroArch directly in RGUI with `retroarch --verbose --menu`. Let it run uninterrupted for at least 4096 frames (displayed in title bar), and exit. In the log, you should see something like: + +``` +RetroArch: Average monitor Hz: 59.869485 Hz. (1.347 % frame time deviation, based on 2048 last samples). +``` +If you're unsure about the result, run this test several times and see if the results are consistent. Some systems tend to have very unreliable VSync behavior and this result will wildly fluctuate. You can use this value in `video_refresh_rate` and the video and audio should ideally be butter smooth if the game's FPS and monitor FPS are relatively close to each other (playing a PAL game on 60 Hz monitor won't be perfect no matter what you do ...) + +## Input latency + +There have been cases reported on excessive input lag in Windows for some users. It's not really input latency, but video driver latency. Some video drivers tend to buffer way too much in the name of increased performance. This problem is explained by Carmack [here](https://www.twentymilliseconds.com/post/latency-mitigation-strategies/). + +!!! note + The original John Carmack article is unavailable. The above link is a reproduction, as explained in the intro. + +RetroArch recently got an option to use a swap/fence sync method in OpenGL driver, which is reported to greatly lower input latency [forum thread](https://forums.libretro.com/t/an-input-lag-investigation/4407). To enable it, set `video_hard_sync = true` in config or enable it from RGUI. To ensure that this sync method is actually used, make sure that you see this in the log: +``` +RetroArch: Querying GL extension: ARB_sync => exists +RetroArch: [GL]: Using ARB_sync to reduce latency. +``` +Do note that this sync method can greatly reduce performance, and can turn smooth 60 fps into crawling 30 fps if there was not enough headroom in the performance. + +If you use [KMS mode,](https://github.com/libretro/RetroArch/wiki/KMS-mode) using `video_hard_sync` won't help as it already does something like this. + +## Threaded video fallback + +If your video driver has very bad performance, it is possible to run it on a thread to avoid almost all video driver overhead. Set `video_threaded = true` in config. Butter smooth VSync behavior in this case is impossible however, and latency might increase slighly. Use only if you cannot obtain full speed otherwise. + +## Windows Vista+ problems + +Windows Vista and up suffer problems with OpenGL in windowed mode where it appears to be impossible to obtain proper, smooth VSync behavior no matter what you do. If you are annoyed by this problem, and still want to play in windowed mode, you should use the D3D9 driver which doesn't have this problem. Disabling Aero sometimes helps OpenGL VSync behavior. diff --git a/docs/guides/overrides.md b/docs/guides/overrides.md new file mode 100644 index 00000000..e10e119e --- /dev/null +++ b/docs/guides/overrides.md @@ -0,0 +1,107 @@ +# Understanding RetroArch Settings Systems + +There are various and comprehensive ways to save customized settings within the RetroArch menus. 99% of settings can be adjusted and saved from the menu but are only plain text files and can be adjusted manually with a text editor. + +- Global settings can be overridden on a per core or per game basis, with the config override system. +- Input settings are handled separately with the input core and game Remap system. +- Likewise Shader Preset settings are also their own entity for per core and game settings +- A standalone file also saves the Option settings for all cores that support them. The settings in this file can be overridden on a per game basis. + +!!! tip + Please read the [Getting Started](windows.md) guide. + +## Hierarchy + +1. Game settings +2. Core settings +3. Default settings + +## Logic + +### Overrides *(.cfg)* & Remaps *(.rmp)* + +Overrides and Remaps are designed to be a lightweight easily maintained configuration method. They save only settings that differ from the preceding settings files. + +For example if only one setting differs between your `retroarch.cfg` and a `"core".cfg`, then the `"core.cfg"` file will only contain one setting. + +The RetroArch loading process is:- + +- Load `retroarch.cfg` + - Apply `"name-of-core".cfg` & `"name-of-core".rmp` override + - Apply `name-of-game.cfg` & `"name-of-game".cfg` override + +!!! note + Core specific overrides that are not in game specific overrides persist and will be loaded. + Also once you have created an override any future changes will need to be saved via the Quick Menu. + +### Options *(.opt)* & Shader Presets *(.cgp|.glslp|.slangp)* + +Custom per game core options and shader presets work slightly different. These are full configurations and are loaded instead of the base shader preset and core option settings. + +## Configuartion Files & Location + +!!! note + Depending on your chosen platform the location of these files after installation may vary. + +!!! warning + Some settings cannot be saved in an override file from the menu. You can manually add settings to the override file to workaround most situations. + +**The default and global settings file** + +- `retroarch.cfg` *(located in the base install path)* + +**The global file for core option settings, for cores that support options** + +- `retroarch-core-options.cfg` *(located with the `retroarch.cfg`)* + +### Core options + +- `"name-of-game.opt"` **If not found load** + - `retroarch-core-options.cfg` + +The options files list the settings found under `Quick Menu -> Options`. The `retroarch-core-options.cfg` is created automatically on loading a core that supports Options. + +A game specific options file is created when you select `Quick Menu -> Options -> Game-options file`. *(located in "/config/"corename"/"name-of-game.opt". The path is set under `Settings->Directory->Config`)* + +!!! attention + Load Content Specific Core Options Automatically must be set to On in RetroArch's Configuration settings in order for game specific options to be automatically loaded upon content load. + +### Override Configs + +The override system activates on loading of content. RetroArch looks for configs with the logic as explained previously. + +#### Per Core/Game Overrides + +- Load `retroarch.cfg` + - Apply `name-of-core.cfg` + - Apply `"name-of-game".cfg` + +**Per Core Override** + +- `"name-of-core".cfg` *(located in "/config/"corename"/"name-of-core.cfg". This path is set under `Settings->Directory->Config`)* + +These settings files are created from the `Quick Menu -> Save Core Overrides` option and contain ANY (supported) settings you have changed since loading content. These settings will be loaded every time you load content with that core. + +**Per Game Override** + +- `"name-of-game".cfg` *(located with per core override file)* + +These settings files are created as above with the `Quick Menu -> Save Game Overrides`. The settings will take precedence over `"name-of-core".cfg` + +### Input Remaps + +Input remaps use the same logic as core/game overrides and use the `.rmp` extension. They can be adjusted and saved from `Quick Menu -> Controls -> Save Game or Core Remap`. Set the save directory in `Settings -> Directory -> Input Remapping` *(by default they will save to /config/remaps/"name-of-core"/"name-of-core/game".rmp)* + +### Shader Presets + +Shader Presets are combinations of one or more shaders. They can be adjusted and saved from `Quick Menu -> Shaders -> Save Core/Game Preset`. Set the save directory in `Settings -> Directory -> Video Shader` *(by default they will save to /shaders/presets/"name-of-core"/"name-of-core/game".cgp|glslp|slangp)* + +In addition to this you can save custom non core/game specific shader presets from `Quick Menu -> Shaders -> Save Shader Preset As`*(by default this will save to the shader directory set in* `Settings -> Directory -> Video Shader` *under "name-you-assigned .cgp|glslp|slangp)* + +So if you create your "perfect" combination of shaders you can recall this with `Quick Menu -> Shaders -> Load Shader Preset` then continue on to save it as a core or game preset. This will save time if using the same preset for multiple games or cores. + +There are plenty of user created default presets that come bundled with the RetroArch installation and these can be updated from `Main Menu -> Online Updater -> Update Cg|Glsl|Slang Shaders` + +[Example Screenshots](https://docs.libretro.com/shader/introduction/) + +Explore the navigation bar diff --git a/docs/guides/recording-and-streaming.md b/docs/guides/recording-and-streaming.md new file mode 100644 index 00000000..3f6378f1 --- /dev/null +++ b/docs/guides/recording-and-streaming.md @@ -0,0 +1,65 @@ +# Recording and streaming video from RetroArch + +RetroArch has the capability to record gaming footage in real-time using libavcodec (FFmpeg). +Both lossless and lossy coding is supported. It is possible to configure most encoding options +for libavcodec using a separate config file. + +## FFmpeg version +RetroArch requires a very recent version of FFmpeg to work correctly. +If you are on Linux or OSX, your distros FFmpeg build is likely out of date, and you should build FFmpeg from Git. A recommended command line is: + + ./configure --prefix=/opt/ffmpeg --enable-libx264 --enable-gpl --enable-libmp3lame + make + sudo make install + +This assumes you will install a custom FFmpeg build into `/opt/ffmpeg`. +For Windows users, the redist includes recent enough libav* binaries. + +Now you can configure RetroArch with: + + PKG_CONFIG_PATH=/opt/ffmpeg/lib/pkgconfig ./configure + +and the configure script should pick up the FFmpeg libraries in `/opt/ffmpeg/lib`. Check config.mk +to make sure. After successfully compiling, make sure that the RetroArch binary picks up the correct FFmpeg libs by adding `/opt/ffmpeg/lib` to LD_LIBRARY_PATH (or the equivalent on OSX). + +## Lossless coding +By default (not providing an encoding config), lossless coding is used. This means libx264/RGB, with -qp 0 (lossless). The audio codec used is FLAC. libx264/RGB ensures very nice bitrates even when lossless and very fast encoding. + +## Lossy and flexible coding config +By adding the `--recordconfig ` parameter, you have more control over encoding. +The recognized config options are: + + vcodec = # Same as -vcodec + acodec = # Same as -acodec + format = # Muxer format to use. E.g. mkv, flv or mp4. This is normally inferred, but must be set when using extensionless formats like RTMP (streaming). + threads = # Threads to use when encoding video. Should be set to (# of CPU threads - 1). + frame_drop_ratio = # Only encodes every frames. + pix_fmt = # Same as -pix_fmt, no default is assumed, must be set! + scale_factor = # Scales input by . Useful when encoding in chroma subsampled formats like yuv420p. + sample_rate = # Audio output sampling rate. + audio_global_quality = # Global quality for audio (VBR). Maps to codec->global_quality in API. Play around with it. Higher = better. 75 seems to be a fair value. + audio_bit_rate = # Audio bit rate (CBR). This is in bit/s, so use e.g. 192000 for 192 kb/s. + + video_{option} = # Sets generic video option {option} to . This is codec specific. Mostly useful for libx264. + audio_{option} = # Sets generic audio option {option} to . This is codec specific. + +## Live streaming + +RetroArch can live stream to RTMP services like [twitch](http://www.twitch.tv/). +To live stream there, create a config that is tailored for twitch. Example: + + vcodec = libx264 + acodec = libmp3lame + pix_fmt = yuv420p + scale_factor = 2 + threads = 3 + video_crf = 25 + video_preset = superfast + video_tune = animation + audio_global_quality = 75 + sample_rate = 44100 + format = flv + +You can stream to twitch with a command such as: + + retroarch --record rtmp://live.twitch.tv/app/$YOUR_TWITCH_ID --recordconfig twitch.cfg diff --git a/docs/guides/retroachievements.md b/docs/guides/retroachievements.md new file mode 100644 index 00000000..6dfdb2db --- /dev/null +++ b/docs/guides/retroachievements.md @@ -0,0 +1,144 @@ +# RetroAchievements In RetroArch + +## **What are RetroAchievements?** + +[retroachievements.org](http://www.retroachievements.org/) is a service that provides a trophies unlocking mechanism similar to modern consoles, for Retro games. + +!!! Warning + The service is not maintained by RetroArch or the Libretro team. + +!!! Note + If you want to contribute, please update RetroArch and cores to get the latest fixes on the RetroAchievements feature; + then in order to propose improvements to this document, [do it via GitHub](https://github.com/libretro/docs/tree/master/docs/guides/retroachievements.md) using "Pull Requests" + +## **How to setup achievements** + +1. Register an account on [retroachievements.org](http://www.retroachievements.org/) (don't forget to confirm your account creation with the email they send to you). +2. Open Retroarch and go to Settings->Achievements +3. Enable the functionality and fill your retroachievements credentials + +!!! note + The hardcore mode prevents you from using emulation features like slow motion, cheats and savestates. + **BUT** gives you double points. + +![](../guides/images/retroachievements/achievements-settings.png) + +## **Check your connection to the service** + +**You need an active Internet connection.** + +In this example, we are using the game Chrono Trigger (USA) with the Snes9x core. + +Launch the game and trigger the Quick Menu. + +Go to Achievements and you should see a list of the unlockable trophies for this game. + +![](../guides/images/retroachievements/achievements-list.png) + +## **Check your progress** + +On the retroachievements website, you can login and access your account page. + +You should be able to check your progress in the games and see which trophies you unlocked. + +Trophies unlocked in hardcore mode are marked with a special color. + +You can also check the progress of your friends and add comments on their trophies. + +![](../guides/images/retroachievements/achievements-progress.png) + +## **Cores Compatibility** + +### Atari 2600 + +| Core | Supported | Notes | +|-------------------------------------------------------|:---------:|-------| +| [Stella](https://github.com/libretro/stella-libretro) | ✔ | | + +### NES + +| Core | Supported | Notes | +|-------------------------------------------------------|:---------:|-------| +| [Mesen](https://github.com/SourMesen/Mesen) | ✔ | | +| [FCEUmm](https://github.com/libretro/libretro-fceumm) | ✔ | | +| [QuickNES](https://github.com/libretro/QuickNES_Core) | ✔ | On Android has a [known issue](https://github.com/libretro/RetroArch/issues/3973) | +| [Nestopia UE](https://github.com/libretro/nestopia) | ✕ | | +| [bnes](https://github.com/libretro/bnes-libretro) | ✕ | | +| [Emux NES](https://github.com/libretro/emux) | ✕ | | + +### Master System / MegaDrive - Genesis + +| Core | Supported | +|----------------------------------------------------------------|:---------:| +| [Genesis Plus GX](https://github.com/libretro/Genesis-Plus-GX) | ✔ | +| [Picodrive](https://github.com/libretro/picodrive) | ✔ | +| [Emux SMS](https://github.com/libretro/emux) | ✕ | + +### SNES + +| Core | Supported | Notes | +|------------------------------------------------------------------------------|:---------:|-------| +| [Snes9x](https://github.com/libretro/snes9x) | ✔ | | +| [Snes9x 2010](https://github.com/libretro/snes9x2010) | ✔ | | +| [Snes9x 2005](https://github.com/libretro/snes9x2005) | ✔ | | +| [Snes9x 2005 Plus](https://github.com/libretro/snes9x2005) | ✔ | | +| [Snes9x 2002](https://github.com/libretro/snes9x2002) | ✔ | | +| [bsnes Accuracy](https://github.com/libretro/bsnes-libretro) | ✔ | | +| [bsnes Balanced](https://github.com/libretro/bsnes-libretro) | ✔ | | +| [bsnes Performance](https://github.com/libretro/bsnes-libretro) | ✔ | | +| [bsnes-mercury Accuracy](https://github.com/libretro/bsnes-mercury) | ✔ | | +| [bsnes-mercury Balanced](https://github.com/libretro/bsnes-mercury) | ✔ | | +| [bsnes-mercury Performance](https://github.com/libretro/bsnes-mercury) | ✔ | | +| [bsnes C++98 (v085)](https://github.com/libretro/bsnes-libretro-cplusplus98) | ✔ | | +| higan Accuracy | ✕ | [Achievement support isn't going to be added](https://forums.libretro.com/t/is-higan-105-accuracy-supposed-to-be-slow-on-a-3-ghz-ivy-bridge-i7/13405/7?u=esoptron) | +| nSide Balanced | ✕ | [Achievement support isn't going to be added](https://forums.libretro.com/t/is-higan-105-accuracy-supposed-to-be-slow-on-a-3-ghz-ivy-bridge-i7/13405/7?u=esoptron) | +| [Beetle bsnes](https://github.com/libretro/beetle-bsnes-libretro) | ✕ | | + +### Game Boy / Game Boy Color + +| Core | Supported | Notes | +|-----------------------------------------------------------|:---------:|-------| +| [Gambatte](https://github.com/libretro/gambatte-libretro) | ✔ | | +| [SameBoy](https://github.com/libretro/SameBoy) | ✔ | | +| [mGBA](https://github.com/libretro/mgba) | ✕ | Achievements only work for the Game Boy Advance | +| [Emux GB](https://github.com/libretro/emux) | ✕ | | +| [TGB Dual](https://github.com/libretro/tgbdual-libretro) | ✕ | | +| [Gearboy](https://github.com/libretro/gearboy) | ✕ | | + +### Game Boy Advance + +| Core | Supported | Notes | +|---------------------------------------------------------------|:---------:|-------| +| [mGBA](https://github.com/libretro/mgba) | ✔ | | +| [VBA Next](https://github.com/libretro/vba-next) | ✔ | | +| [VBA-M](https://github.com/libretro/vbam-libretro) | ✔ | | +| [Beetle GBA](https://github.com/libretro/beetle-gba-libretro) | ✔ | | +| [gpSP](https://github.com/libretro/gpsp) | ✕ | | +| [Meteor](https://github.com/libretro/meteor-libretro) | ✕ | | + +### PC Engine + +| Core | Supported | +|-------------------------------------------------------------------------|:---------:| +| [Beetle PCE Fast](https://github.com/libretro/beetle-pce-fast-libretro) | ✔ | +| [Beetle SGX](https://github.com/libretro/beetle-supergrafx-libretro) | ✔ | + +### Nintendo 64 + +| Core | Supported | +|-------------------------------------------------------------------|:---------:| +| [Mupen64Plus](https://github.com/libretro/mupen64plus-libretro) | ✔ | +| [ParaLLEl N64](https://github.com/libretro/parallel-n64) | ✔ | + +### Lynx + +| Core | Supported | Notes | +|------------------------------------------------------------------|:---------:|:-----:| +| [Handy](https://github.com/libretro/libretro-handy) | ✔ | | +| [Beetle Handy](https://github.com/libretro/beetle-lynx-libretro) | ✔ | Beetle Handy is incompatible with modern No-Intro romsets as they require headers to work properly. The regular Handy core does not have this issue. | + +### Virtual Boy + +| Core | Supported | Notes | +|-------------------------------------------------------------|:---------:|:-----:| +| [Beetle VB](https://github.com/libretro/beetle-vb-libretro) | ✔ | | \ No newline at end of file diff --git a/docs/guides/retroarch-keyboard-controls.md b/docs/guides/retroarch-keyboard-controls.md new file mode 100644 index 00000000..7940577c --- /dev/null +++ b/docs/guides/retroarch-keyboard-controls.md @@ -0,0 +1,42 @@ +# RetroArch Keyboard Controls + +## RetroArch Keyboard Gameplay Controls + +| User 1 Keyboard | Default RetroPad Mapping | User 1 Keyboard | Default RetroPad Mapping | +|-----------------|---------------------------|-----------------|--------------------------| +| `Up` | ![](../library/images/RetroPad/Retro_Dpad_Up.png) | `Z` | ![](../library/images/RetroPad/Retro_B_Round.png) | +| `Down` | ![](../library/images/RetroPad/Retro_Dpad_Down.png) | `X` | ![](../library/images/RetroPad/Retro_A_Round.png) | +| `Left` | ![](../library/images/RetroPad/Retro_Dpad_Left.png) | `A` | ![](../library/images/RetroPad/Retro_Y_Round.png) | +| `Right` | ![](../library/images/RetroPad/Retro_Dpad_Right.png) | `S` | ![](../library/images/RetroPad/Retro_X_Round.png) | +| `Q` | ![](../library/images/RetroPad/Retro_L1.png) | - | - | +| `W` | ![](../library/images/RetroPad/Retro_R1.png) | - | - | +| | ![](../library/images/RetroPad/Retro_Select.png) | - | - | +| `Enter` | ![](../library/images/RetroPad/Retro_Start.png) | - | - | + +## Introduction to Hotkeys +Hotkey binds can be configured at `Settings` → `Input` → 'Input Hotkey Binds'. If you map `Enable Hotkeys` to a key, it will require that key to be held in order to trigger any hotkeys. This can be useful in avoiding keyboard mapping conflicts between RetroArch and cores cores that use the keyboard for input. Hotkeys can also be mapped to RetroPad buttons. + +## RetroArch GUI and Core Controls + +Menu ||In-game || +------------- | ------------ |------------- | ------------ +**Key** | **Action** |**Key** |**Action** +![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Up.png) | Move cursor up |![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F1.png) | Menu toggle +![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Down.png) | Move cursor down |![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F2.png) | Save state +![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Left.png) | Move cursor left |![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F4.png) | Load state +![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Right.png) | Move cursor right |![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F7.png) | Increase current state slot +![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Page_Up.png) | Scroll one page up |![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F6.png) | Decrease current state slot +![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Page_Down.png) | Scroll one page down |![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F8.png) | Take screenshot +![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Enter.png) | Select |![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F9.png) | Mute +![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Backspace.png) | Return to the previous screen |![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F12.png) | Show on-screen keyboard +![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Shift.png) | Help |![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F11.png) | Grab mouse +![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Del.png) | Remove highlighted input bind | ![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Plus.png) | Volume Up +![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Space.png) | Reset to default | ![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Minus.png) | Volume Down +![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Slash.png) | Search | ![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Space.png) | Fast forward toggle | +![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Esc.png) | Exit RetroArch | ![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_L.png) | Fast forward hold | +![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_R.png) | Rewind | ![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_O.png) | Movie record | +![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_P.png) | Pause| ![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_K.png) | Frame advance | +![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_H.png) | Reset | ![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_E.png) | Slow motion | +![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_M.png) | Next shader| | | +![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_N.png) | Previous shader | | | +![](images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_I.png) | Netplay toggle play/spectate | | | diff --git a/docs/guides/roms-playlists-thumbnails.md b/docs/guides/roms-playlists-thumbnails.md new file mode 100644 index 00000000..6a44aa5d --- /dev/null +++ b/docs/guides/roms-playlists-thumbnails.md @@ -0,0 +1,132 @@ +# ROMs, Playlists, and Thumbnails + +## Storing game ROMs +Game ROMs should be placed within the `roms` folder as configured in RetroArch. It is recommanded to keep ROMs zipped, except for CD images. The preferred format for CD images is BIN+CUE, except for PSP games which have a preferred format of ISO. + +Many users sort their ROMs into subfolders named after the system which the ROMs belong to. This results in hierarchy such as: + + + roms/ + Atari - 2600/ + Game 1.zip + Game 2.zip + Game 3.zip + Sega - 32X/ + Game 1.zip + Game 2.zip + etc. + etc. + +You are free to organize your ROMs as you prefer. + +Playlists, or Collections, are the lists of games that can be generated automatically by the RetroArch playlist scanner, generated by a third-party playlist utility or script, or edited by hand in a text editor. + +## RetroArch Playlist Scanner + +RetroArch incoporates a ROM scanning system to automatically produce playlists. Each ROM that is scanned by the playlist generator is checked against a database of ROMs that are known to be good copies. + +#### Designating which core to use +Generally speaking, RetroARch will detect and use the correct core for use with the ROMs that are used as part of a playlist. Under some circumstances, it may be useful to manually set a particular core for one of its playlists. This can be accomplished within the Playlists submenu in the RetroArch settings. + +### Sources + +Generally, RetroArch's scanner is configured for ROMs that have been validated by [No-Intro](http://datomatic.no-intro.org) or Redump DAT files but many other source databases are also in use. + +|System|Source|Repository| +|----|---|---| +|The 3DO Company - 3DO|Redump > Trurip > TOSEC|[libretro-dats](https://github.com/robloach/libretro-dats)| +|Atari - 2600|[No-Intro](http://datomatic.no-intro.org)| +|Atari - 7800|[No-Intro](http://datomatic.no-intro.org)| +|Atari - Jaguar| [No-Intro](http://datomatic.no-intro.org)| +|Atari - Lynx|[No-Intro](http://datomatic.no-intro.org)| +|Bandai - WonderSwan|[No-Intro](http://datomatic.no-intro.org)| +|Bandai - WonderSwan Color|[No-Intro](http://datomatic.no-intro.org)| +|Cave Story|[CaveStory.org (English or Japanese)](http://www.cavestory.org)| +|DOS|[Total DOS Collection](http://www.totaldoscollection.org/)|[libretro-database-dos](https://github.com/robloach/libretro-database-dos)| +|FB Alpha - Arcade Games|FB Alpha v0.2.97.42| +|GCE - Vectrex|[No-Intro](http://datomatic.no-intro.org)| +|Id Software - Doom|Unknown| +|Lutro|Unknown| +|Magnavox - Odyssey2|[No-Intro](http://datomatic.no-intro.org)| +|MAME|MAME 0.37b5, 0.78, 0.139, 0.159| +|Microsoft - MSX|[No-Intro](http://datomatic.no-intro.org)| +|Microsoft - MSX 2|[No-Intro](http://datomatic.no-intro.org)| +|NEC - PC Engine CD - TurboGrafx-CD|Redump > Trurip > TOSEC|[libretro-dats](https://github.com/robloach/libretro-dats)| +|NEC - PC Engine - TurboGrafx 16|[No-Intro](http://datomatic.no-intro.org)| +|NEC - SuperGrafx|[No-Intro](http://datomatic.no-intro.org)| +|NEC - PC-FX|Redump > Trurip > TOSEC|[libretro-dats](https://github.com/robloach/libretro-dats)| +|Nintendo - Famicom Disk System|[No-Intro](http://datomatic.no-intro.org)| +|Nintendo - Nintendo DS|[No-Intro](http://datomatic.no-intro.org)| +|Nintendo - Game Boy|[No-Intro](http://datomatic.no-intro.org)| +|Nintendo - Game Boy Advance|[No-Intro](http://datomatic.no-intro.org)| +|Nintendo - Game Boy Color|[No-Intro](http://datomatic.no-intro.org)| +|Nintendo - Nintendo 64|[No-Intro](http://datomatic.no-intro.org)| +|Nintendo - Nintendo Entertainment System|[No-Intro](http://datomatic.no-intro.org)| +|Nintendo - Super Nintendo Entertainment System|[No-Intro](http://datomatic.no-intro.org)| +|Nintendo - Virtual Boy|[No-Intro](http://datomatic.no-intro.org)| +|Quake|Unknown| +|Phillips - Videopac+|[No-Intro](http://datomatic.no-intro.org)| +|ScummVM|Gruby's ScummVM Adventure Pack|[libretro-database-scummvm](https://github.com/RobLoach/libretro-database-scummvm)| +|Sega - 32X|[No-Intro](http://datomatic.no-intro.org)| +|Sega - Dreamcast|Redump > Trurip > TOSEC|[libretro-dats](https://github.com/robloach/libretro-dats)| +|Sega - Game Gear|[No-Intro](http://datomatic.no-intro.org)| +|Sega - Master System - Mark III|[No-Intro](http://datomatic.no-intro.org)| +|Sega - Mega Drive - Genesis|[No-Intro](http://datomatic.no-intro.org)| +|Sega - Mega CD - Sega CD|Redump|[libretro-dats](https://github.com/robloach/libretro-dats)| +|Sega - Saturn|Redump > Trurip > TOSEC|[libretro-dats](https://github.com/robloach/libretro-dats)| +|Sega - SG-1000|[No-Intro](http://datomatic.no-intro.org)| +|Sony - PlayStation|Redump > Trurip > TOSEC|[libretro-dats](https://github.com/robloach/libretro-dats)| +|Sony - PlayStation Portable|[No-Intro](http://datomatic.no-intro.org)|[libretro-database-dos](https://github.com/robloach/libretro-database-dos)| +|SNK - Neo Geo Pocket|[No-Intro](http://datomatic.no-intro.org)| +|SNK - Neo Geo Pocket Color|[No-Intro](http://datomatic.no-intro.org)| +|SNK - Neo Geo CD|Redump|[libretro-dats](https://github.com/robloach/libretro-dats)| +|Uzebox|Unknown| + +### Playlist file format + +Each playlist is a plain text file with an extension of `.lpl`. + +**Each entry in a playlist must be composed of 6 lines:** + + /storage/roms/n64/Legend of Zelda, The - Ocarina of Time (USA).n64 + Legend of Zelda, The - Ocarina of Time (USA) + /tmp/cores/mupen64plus_libretro.so + Nintendo 64 (Mupen64Plus) + EC95702D|crc + Nintendo - Nintendo 64.lpl + +1. The path to the ROM +2. The display name (you can use any name here) +3. The path to the core, this libretro core will be used to launch the ROM. **You can use the word DETECT in place of the core path here. Once this is done you can set the core to be used for this playlist via the RetroArch GUI.** +4. The displayname of the core, not really useful, we keep it there because the history list is also using this format +5. Link to the database entry. The fact that there is a CRC value here means that this playlist entry was originally created by the playlist scanner. In some other cases it is done by serial number. **You can omit a link to the database for a manualy created playlist entry by using the word DETECT here instead.** +6. The name of this playlist, ending in the extension .lpl + +**Note:** the paths used in this example will be different from system to system. This example uses Unix-style forward slashes `/` in the paths, as with Linux, OS X, and Android systems. Windows users should use backslashes `\`. + +## Thumbnails + +RetroArch can display three types of thumbnails for games in playlists: + +* In-game snapshots +* Title screen snapshots +* Boxart + +![An in-game snapshot displayed with a Sega - 32X playlist.](http://www.lakka.tv/doc/images/thumbnails.png "An in-game snapshot displayed with a Sega - 32X playlist.") + +### RetroArch Thumbnail packs +RetroArch provides packs of thumbnails suitable for use with many emulated systems. These thumbnail packs are recommended for most users and can be installed connecting to the internet and using the built-in thumbnails updater, available from the online update menu within the RetroArch settings interface. + +### Custom Thumbnails +Users who wish to use their own thumbnails can do so by naming PNG image files according to the RetroArch naming convention. + +#### Filenames +The thumbnail file should exactly match the game's title as listed in the playlist with an important exception. **The following characters in playlist titles must be replaced with _ in the corresponding thumbnail filename:** + + &*/:`<>?\| + +#### File locations +Thumbnails should be in the RetroArch Thumbnails directory within a subfolder named exactly the same as the playlist, except without `.lpl` at the end. Within this folder, place the correctly-named Thumbnail within a subfolder named either `Named_Boxarts`, `Named_Snaps`, or `Named_Titles` as appropriate for boxart/cover art, in-game snapshots, and title screens, respectively. + +### Changing Thumbnail type +Regardless of whether you download the RetroArch thumbnail packs or use your own custom thumbnails, you can use the RetroArch GUI to set which type of thumbnail to display. In order to change this setting, go to `Menu Settings,` and change the `Thumbnails` option to reflect the type of thumbnail you wish to display. diff --git a/docs/guides/softpatching.md b/docs/guides/softpatching.md new file mode 100644 index 00000000..831aa9dc --- /dev/null +++ b/docs/guides/softpatching.md @@ -0,0 +1,3 @@ +# Softpatching ROMs with RetroArch + +RetroArch currently supports UPS, IPS and BPS patching formats. If you load `rom.bin` and one of the following is present, the ROM will be autopatched: `rom.ups`, `rom.ips` or `rom.bps`. Autopatching only takes place if the libretro implementation supports loading ROMs from memory. diff --git a/docs/guides/theme-examples.md b/docs/guides/theme-examples.md new file mode 100644 index 00000000..881c9fb6 --- /dev/null +++ b/docs/guides/theme-examples.md @@ -0,0 +1,26 @@ +# Icon Theme Examples + +Here are three examples of available menu icon themes. + +To create your own theme please read [this guide](themes.md) + +## Dot-Art + +![Screenshot](images/themes/RA-Dot-Art.png) + +## Retroactive + +![Screenshot](images/themes/RA-Retroactive.png) + +## Systematic + +![Screenshot](images/themes/RA-Systematic.png) + + +## How To Change Icon Themes + +Navigate to Settings -> User Interface -> Menu -> Menu Icon Theme + +Scroll right to choose a theme + +![Screenshot](images/themes/change-icons.png) diff --git a/docs/guides/themes.md b/docs/guides/themes.md new file mode 100644 index 00000000..e340896d --- /dev/null +++ b/docs/guides/themes.md @@ -0,0 +1,252 @@ +# Making Custom Themes + +This page will guide you through the essential information needed to customize the core RetroArch theme. + +Credit for information goes to @baxysquare from this [forum post](https://forums.libretro.com/t/guide-to-making-themes/9554) + +!!! tip + For examples of Menu Icon Themes and how to change them please read [this guide](https://github.com/libretro/docs/blob/master/docs/guides/theme-examples.md) + +## Skills & Tools Needed to Make and Contribute a Theme + + * A GitHub account and a basic understanding on how to fork a project and contribute via Pull Requests. The GitHub project that hosts the theme is the [retroarch-assets](https://github.com/libretro/retroarch-assets) repository. + + * Computer application(s) to create source icons. You can use any photo editing application such as Photoshop or GIMP, but a Vector-based application such as Illustrator or Inkscape is preferred. The preferred source format is SVG. + + * Conversion applications can come in handy. You can use ImageMagick to batch convert your source files to PNG format. Running your PNG files through ImageOptim can help reduce the icon file size without reducing the quality. + + * Attention to detail, patience and time. Be prepared to create and revise as you learn and grow. Feel free to take an existing theme, make modifications and then test your new design. + +## Required Theme Components + + * A truetype font renamed to "font.ttf." You need to choose a typeface that has an open license. There is a wide selection to choose from at [Google Fonts](https://fonts.google.com/). If you have the tools and skills to make your own font and wish to contribute it via open license, feel free to do so. + + * A text file in GitHub Markdown format titled README.md. This file provides basic info on the theme itself along with specifications and guidelines to help others contribute to the theme. Make sure to include an attribution and license info for the included truetype font. + + * A PNG folder that contains a complete set of icons and a default background image. + +### Optional Theme Components + + * A SRC file containing SVG or other source files. If you choose not to include your source files, please host them elsewhere and indicate in the README. + +## Icons + +The majority of time and effort involved in creating a theme is creating and revising the icons. The default Monochrome set includes just over 200 icons as listed below. That number will continue to grow as more cores and features are added. + +## Tips & Tricks for Creating Icons + + * The icons should be set to a 256x256 pixel canvas and should be centered on a 64x64 grid. You need to snap your point and line elements to the grid wherever possible. Libretro icons are scaled down, so when design elements do not line up with the grid, they tend to render oddly. + + * Give your icons room to breathe. While you are capable of using the full canvas, a 248x248 or 240x240 maximum icon size is highly recommended. Alternatively, you can keep your icons inside a 256x256 circular "blueprint". This will keep the top and the bottom of your icons from touching when you're scrolling through a list of icons. + + * Create and stick to a color palette of 64 colors or less. While you can use an unlimited palette, your icons will look more uniform and consistent as a theme. + + * Keep the details of your icons in harmony with one another. If one icon has too many design details, try to simplify it to match with the other icons. If an icon is lacking in detail, do what you can to add balance in comparison to the other designs. + +Here's a complete list of icons (and wallpaper) in the default set. Category, Type, Menu Level and Size info has been included to help you understand an icon's purpose and use in the user interface. + +| Name | Category | Type | Level | Size | +|------------------------------------------------------------|----------|-------------|-------|-------| +| FB Alpha - Arcade Games-content.png | Arcade | Content | 1 | 256 | +| MAME-content.png | Arcade | Content | 1 | 256 | +| MAME2003-content.png | Arcade | Content | 1 | 256 | +| MAME2010-content.png | Arcade | Content | 1 | 256 | +| Neo Geo-content.png | Arcade | Content | 1 | 256 | +| FB Alpha - Arcade Games.png | Arcade | System | 0 | 256 | +| MAME.png | Arcade | System | 0 | 256 | +| MAME2003.png | Arcade | System | 0 | 256 | +| MAME2010.png | Arcade | System | 0 | 256 | +| Neo Geo.png | Arcade | System | 0 | 256 | +| Lutro.png | Computer | Application | 0 | 256 | +| DOS.png | Computer | Application | 0 | 256 | +| Atari - ST-content.png | Computer | Content | 1 | 256 | +| Commodore Amiga-content.png | Computer | Content | 1 | 256 | +| DOS-content.png | Computer | Content | 1 | 256 | +| Microsoft - MSX-content.png | Computer | Content | 1 | 256 | +| Microsoft - MSX2-content.png | Computer | Content | 1 | 256 | +| ScummVM-content.png | Computer | Content | 1 | 256 | +| Sinclair - ZX 81-content.png | Computer | Content | 1 | 256 | +| Sinclair - ZX Spectrum +3-content.png | Computer | Content | 1 | 256 | +| Sinclair - ZX Spectrum-content.png | Computer | Content | 1 | 256 | +| Lutro-content.png | Computer | Content | 1 | 256 | +| Atari - ST.png | Computer | System | 0 | 256 | +| Commodore Amiga.png | Computer | System | 0 | 256 | +| Microsoft - MSX.png | Computer | System | 0 | 256 | +| Microsoft - MSX2.png | Computer | System | 0 | 256 | +| ScummVM.png | Computer | System | 0 | 256 | +| Sinclair - ZX 81.png | Computer | System | 0 | 256 | +| Sinclair - ZX Spectrum +3.png | Computer | System | 0 | 256 | +| Sinclair - ZX Spectrum.png | Computer | System | 0 | 256 | +| Atari - 2600-content.png | Console | Content | 1 | 256 | +| Atari - 5200-content.png | Console | Content | 1 | 256 | +| Atari - 7800-content.png | Console | Content | 1 | 256 | +| Atari - Jaguar-content.png | Console | Content | 1 | 256 | +| Bandai - WonderSwan Color-content.png | Console | Content | 1 | 256 | +| Bandai - WonderSwan-content.png | Console | Content | 1 | 256 | +| Coleco - ColecoVision-content.png | Console | Content | 1 | 256 | +| GCE - Vectrex-content.png | Console | Content | 1 | 256 | +| Magnavox - Odyssey2-content.png | Console | Content | 1 | 256 | +| NEC - PC Engine - TurboGrafx 16-content.png | Console | Content | 1 | 256 | +| NEC - PC Engine CD - TurboGrafx-CD-content.png | Console | Content | 1 | 256 | +| NEC - PC Engine SuperGrafx-content.png | Console | Content | 1 | 256 | +| NEC - PC-FX-content.png | Console | Content | 1 | 256 | +| Nintendo - Family Computer Disk System-content.png | Console | Content | 1 | 256 | +| Nintendo - GameCube-content.png | Console | Content | 1 | 256 | +| Nintendo - Nintendo 64-content.png | Console | Content | 1 | 256 | +| Nintendo - Nintendo 64DD-content.png | Console | Content | 1 | 256 | +| Nintendo - Nintendo Entertainment System-content.png | Console | Content | 1 | 256 | +| Nintendo - Satellaview-content.png | Console | Content | 1 | 256 | +| Nintendo - Sufami Turbo-content.png | Console | Content | 1 | 256 | +| Nintendo - Super Nintendo Entertainment System-content.png | Console | Content | 1 | 256 | +| Nintendo - Wii-content.png | Console | Content | 1 | 256 | +| Sega - 32X-content.png | Console | Content | 1 | 256 | +| Sega - Dreamcast-content.png | Console | Content | 1 | 256 | +| Sega - Master System - Mark III-content.png | Console | Content | 1 | 256 | +| Sega - Mega Drive - Genesis-content.png | Console | Content | 1 | 256 | +| Sega - Mega-CD - Sega CD-content.png | Console | Content | 1 | 256 | +| Sega - PICO-content.png | Console | Content | 1 | 256 | +| Sega - Saturn-content.png | Console | Content | 1 | 256 | +| Sega - SG-1000-content.png | Console | Content | 1 | 256 | +| SNK - Neo Geo CD-content.png | Console | Content | 1 | 256 | +| SNK - Neo Geo-content.png | Console | Content | 1 | 256 | +| Sony - PlayStation-content.png | Console | Content | 1 | 256 | +| The 3DO Company - 3DO-content.png | Console | Content | 1 | 256 | +| Uzebox-content.png | Console | Content | 1 | 256 | +| Atari - 2600.png | Console | System | 0 | 256 | +| Atari - 5200.png | Console | System | 0 | 256 | +| Atari - 7800.png | Console | System | 0 | 256 | +| Atari - Jaguar.png | Console | System | 0 | 256 | +| Bandai - WonderSwan Color.png | Console | System | 0 | 256 | +| Bandai - WonderSwan.png | Console | System | 0 | 256 | +| Coleco - ColecoVision.png | Console | System | 0 | 256 | +| GCE - Vectrex.png | Console | System | 0 | 256 | +| Magnavox - Odyssey2.png | Console | System | 0 | 256 | +| NEC - PC Engine - TurboGrafx 16.png | Console | System | 0 | 256 | +| NEC - PC Engine CD - TurboGrafx-CD.png | Console | System | 0 | 256 | +| NEC - PC Engine SuperGrafx.png | Console | System | 0 | 256 | +| NEC - PC-FX.png | Console | System | 0 | 256 | +| Nintendo - Family Computer Disk System.png | Console | System | 0 | 256 | +| Nintendo - GameCube.png | Console | System | 0 | 256 | +| Nintendo - Nintendo 64.png | Console | System | 0 | 256 | +| Nintendo - Nintendo 64DD.png | Console | System | 0 | 256 | +| Nintendo - Nintendo Entertainment System.png | Console | System | 0 | 256 | +| Nintendo - Satellaview.png | Console | System | 0 | 256 | +| Nintendo - Sufami Turbo.png | Console | System | 0 | 256 | +| Nintendo - Super Nintendo Entertainment System.png | Console | System | 0 | 256 | +| Nintendo - Wii.png | Console | System | 0 | 256 | +| Sega - 32X.png | Console | System | 0 | 256 | +| Sega - Dreamcast.png | Console | System | 0 | 256 | +| Sega - Master System - Mark III.png | Console | System | 0 | 256 | +| Sega - Mega Drive - Genesis.png | Console | System | 0 | 256 | +| Sega - Mega-CD - Sega CD.png | Console | System | 0 | 256 | +| Sega - PICO.png | Console | System | 0 | 256 | +| Sega - Saturn.png | Console | System | 0 | 256 | +| Sega - SG-1000.png | Console | System | 0 | 256 | +| SNK - Neo Geo CD.png | Console | System | 0 | 256 | +| SNK - Neo Geo.png | Console | System | 0 | 256 | +| Sony - PlayStation.png | Console | System | 0 | 256 | +| The 3DO Company - 3DO.png | Console | System | 0 | 256 | +| Uzebox.png | Console | System | 0 | 256 | +| Atari - Lynx-content.png | Handheld | Content | 1 | 256 | +| Game Park - GP32-content.png | Handheld | Content | 1 | 256 | +| Handheld Electronic Game-content.png | Handheld | Content | 1 | 256 | +| Nintendo - Game Boy Advance-content.png | Handheld | Content | 1 | 256 | +| Nintendo - Game Boy Color-content.png | Handheld | Content | 1 | 256 | +| Nintendo - Game Boy-content.png | Handheld | Content | 1 | 256 | +| Nintendo - Nintendo DS Decrypted-content.png | Handheld | Content | 1 | 256 | +| Nintendo - Nintendo DS-content.png | Handheld | Content | 1 | 256 | +| Nintendo - Pokemon Mini-content.png | Handheld | Content | 1 | 256 | +| Nintendo - Virtual Boy-content.png | Handheld | Content | 1 | 256 | +| Sega - Game Gear-content.png | Handheld | Content | 1 | 256 | +| SNK - Neo Geo Pocket Color-content.png | Handheld | Content | 1 | 256 | +| SNK - Neo Geo Pocket-content.png | Handheld | Content | 1 | 256 | +| Sony - PlayStation Portable-content.png | Handheld | Content | 1 | 256 | +| Tiger - Game.com-content.png | Handheld | Content | 1 | 256 | +| Atari - Lynx.png | Handheld | System | 0 | 256 | +| Game Park - GP32.png | Handheld | System | 0 | 256 | +| Handheld Electronic Game.png | Handheld | System | 0 | 256 | +| Nintendo - Game Boy Advance.png | Handheld | System | 0 | 256 | +| Nintendo - Game Boy Color.png | Handheld | System | 0 | 256 | +| Nintendo - Game Boy.png | Handheld | System | 0 | 256 | +| Nintendo - Nintendo DS Decrypted.png | Handheld | System | 0 | 256 | +| Nintendo - Nintendo DS.png | Handheld | System | 0 | 256 | +| Nintendo - Pokemon Mini.png | Handheld | System | 0 | 256 | +| Nintendo - Virtual Boy.png | Handheld | System | 0 | 256 | +| Sega - Game Gear.png | Handheld | System | 0 | 256 | +| SNK - Neo Geo Pocket Color.png | Handheld | System | 0 | 256 | +| SNK - Neo Geo Pocket.png | Handheld | System | 0 | 256 | +| Sony - PlayStation Portable.png | Handheld | System | 0 | 256 | +| Tiger - Game.com.png | Handheld | System | 0 | 256 | +| 2048.png | Port | Application | 0 | 256 | +| Cave Story.png | Port | Application | 0 | 256 | +| Dinothawr.png | Port | Application | 0 | 256 | +| DOOM.png | Port | Application | 0 | 256 | +| Dungeon Crawl Stone Soup.png | Port | Application | 0 | 256 | +| Quake1.png | Port | Application | 0 | 256 | +| 2048-content.png | Port | Content | 1 | 256 | +| Cave Story-content.png | Port | Content | 1 | 256 | +| Dinothawr-content.png | Port | Content | 1 | 256 | +| DOOM-content.png | Port | Content | 1 | 256 | +| Dungeon Crawl Stone Soup-content.png | Port | Content | 1 | 256 | +| Quake1-content.png | Port | Content | 1 | 256 | +| FFmpeg.png | XMB | Application | 0 | 256 | +| default.png | XMB | Application | 0 | 256 | +| Game.png | XMB | Application | 0 | 256 | +| history.png | XMB | Application | 0 | 256 | +| images.png | XMB | Application | 0 | 256 | +| lakka.png | XMB | Application | 0 | 256 | +| movies.png | XMB | Application | 0 | 256 | +| netplay.png | XMB | Application | 0 | 256 | +| retroarch.png | XMB | Application | 0 | 256 | +| settings.png | XMB | Application | 0 | 256 | +| musics.png | XMB | Application | 0 | 256 | +| add.png | XMB | Application | 0 | 256 | +| FFmpeg-content.png | XMB | Content | 1 | 256 | +| music.png | XMB | Content | 1 | 256 | +| image.png | XMB | Content | 1 | 256 | +| movie.png | XMB | Content | 1 | 256 | +| achievement-list.png | XMB | Content | 1 | 256 | +| default-content.png | XMB | Content | 1 | 256 | +| Game-content.png | XMB | Content | 1 | 256 | +| netplay - iRoom-locked.png | XMB | Content | 1 | 256 | +| netplay - iRoom.png | XMB | Content | 1 | 256 | +| netplay - LAN Room-locked.png | XMB | Content | 1 | 256 | +| netplay - LAN Room.png | XMB | Content | 1 | 256 | +| netplay - rooms-locked.png | XMB | Content | 1 | 256 | +| netplay - rooms.png | XMB | Content | 1 | 256 | +| room.png | XMB | Content | 1 | 256 | +| setting.png | XMB | Content | 1 | 256 | +| zip.png | XMB | Content | 2 | 256 | +| file.png | XMB | Content | 2 | Small | +| folder.png | XMB | Content | 2 | Small | +| dialog-slice.png | XMB | Dialog | 2 | 256 | +| Libretro - Pad.png | XMB | Help | - | 256 | +| battery-charging.png | XMB | Info Bar | - | Small | +| battery-full.png | XMB | Info Bar | - | Small | +| clock.png | XMB | Info Bar | - | Small | +| undo.png | XMB | Info Bar | - | Small | +| wifi.png | XMB | Info Bar | - | Small | +| key-hover.png | XMB | Key | 2 | 256 | +| key.png | XMB | Key | 2 | 256 | +| arrow.png | XMB | Nav | 2 | Small | +| close.png | XMB | Nav | 2 | Small | +| core-cheat-options.png | XMB | Nav | 2 | Small | +| core-disk-options.png | XMB | Nav | 2 | Small | +| core-infos.png | XMB | Nav | 2 | Small | +| core-input-remapping-options.png | XMB | Nav | 2 | Small | +| core-options.png | XMB | Nav | 2 | Small | +| core-shader-options.png | XMB | Nav | 2 | Small | +| core.png | XMB | Nav | 2 | Small | +| cursor.png | XMB | Nav | 2 | Small | +| database.png | XMB | Nav | 2 | Small | +| loadstate.png | XMB | Nav | 2 | Small | +| pointer.png | XMB | Nav | 2 | Small | +| reload.png | XMB | Nav | 2 | Small | +| resume.png | XMB | Nav | 2 | Small | +| run.png | XMB | Nav | 2 | Small | +| savestate.png | XMB | Nav | 2 | Small | +| screenshot.png | XMB | Nav | 2 | Small | +| subsetting.png | XMB | Nav | 2 | Small | +| off.png | XMB | Selection | 2 | Small | +| on.png | XMB | Selection | 2 | Small | +| bg.png | XMB | Wallpaper | - | 1080p | diff --git a/docs/guides/troubleshooting-retroarch.md b/docs/guides/troubleshooting-retroarch.md new file mode 100644 index 00000000..e04e5793 --- /dev/null +++ b/docs/guides/troubleshooting-retroarch.md @@ -0,0 +1,73 @@ +# Troubleshooting RetroArch + +## Common video issues + +### Optimal vsync performance with dynamic rate control +RetroArch uses Dynamic Rate Control to synchronize both video and audio at the same time. Synchronizing like this is a very demanding task timing-wise and dynamic rate control helps smooth out imperfections in timing which are guaranteed to arise. It can be disabled, but be aware that proper video/audio sync is nearly impossible to obtain. + +While using RetroArch, the default settings might not be adequate, and you might experience video stuttering and/or audio crackling. For correct synchronization, video_refresh_rate must be configured for your monitor. It cannot be detected accuractely enough by OS-provided APIs (i.e. they tend to blatantly lie). For proper behavior, an accuracy of roughly ~0.1% is needed for dynamic rate control to smooth out the drifting. This is trivial to obtain by measuring manually under normal conditions. Without dynamic rate control one would need a "perfect" measurement which obviously isn't possible without special hardware. + +RetroArch can give you an estimate of your monitors refresh rate under video settings, which is updated in real-time using a running average over frame times. Make sure vysnc is enabled and working. Also make sure you're running in full-screen for more accurate results (compositors can easily interfere with timing). Press accept button on the estimated refresh rate to configure RetroArch with the estimated rate. If the running average isn't drifting much anymore, it's probably a good result. + +You can also have RetroArch log the output at the end and configure things more manually. Start RetroArch directly in RGUI with retroarch --verbose --menu. Let it run uninterrupted for at least 4096 frames (displayed in title bar), and exit. In the log, you should see something like: + + RetroArch: Average monitor Hz: 59.869485 Hz. (1.347 % frame time deviation, based on 2048 last samples). + +If you're unsure about the result, run this test several times and see if the results are consistent. Some systems tend to have very unreliable vsync behavior and this result will wildly fluctuate. You can use this value in `video_refresh_rate` and the video and audio should ideally be butter smooth if the game's FPS and monitor FPS are relatively close to each other. Playing a PAL game on 60 Hz monitor won't be perfect no matter what you do, however. + +### Threaded video +If your video driver has very bad performance, it is possible to run it on a thread to avoid almost all video driver overhead. Set video_threaded = true in config. Butter smooth VSync behavior in this case is impossible however, and latency might increase slighly. Use only if you cannot obtain full speed otherwise. + +### Low frame rate + +Make sure your system meets the requirement of the core you picked. + + See if your core options aren't set too high for your system. + +Disable shaders. + +Lower the video scale setting. + +Try another video driver. + +Try enabling threaded video in the video options. + +### Windows Vista and up video problems +Windows Vista and up suffer problems with OpenGL in windowed mode where it appears to be impossible to obtain proper, smooth VSync behavior no matter what you do. If you are annoyed by this problem, and still want to play in windowed mode, you should use the D3D driver which doesn't have this problem. Disabling Aero sometimes helps OpenGL VSync behavior. + +## Input latency +There have been cases reported on excessive input lag in Windows for some users. It's not really input latency, but video driver latency. Some video drivers tend to buffer way too much in the name of increased performance. This problem is explained by Carmack here. + +RetroArch recently got an option to use a swap/fence sync method in OpenGL driver, which is reported to greatly lower input latency (thread). To enable it, set video_hard_sync = true in config or enable it from RGUI. To ensure that this sync method is actually used, make sure that you see this in the log: + + RetroArch: Querying GL extension: ARB_sync => exists + RetroArch: [GL]: Using ARB_sync to reduce latency. + +Do note that this sync method can greatly reduce performance, and can turn smooth 60 fps into crawling 30 fps if there was not enough headroom in the performance. If you use KMS mode, using `video_hard_sync` won't help as it already does something like this. + +## Why isn’t my BIOS working? + +1. Make sure the BIOS files are placed into the correct directory +2. Make sure they are named correctly so the core can identify them. +3. Make sure it’s the correct version/region of a BIOS. +4. Make sure your files are not corrupted (bad source, broken download, etc.). +5. Make sure to check the log for any errors. + +# Getting ready to ask for help + +When problems arise with RetroArch, it is helpful for the developers and other volunteers to have certain standard information in order to find a solution. When requesting help with a RetroArch issue, please try to include: + +1. A description of the problem: What did you expect to happen, and what happened instead? +2. The version of RetroArch you are using +3. The hardware and operating system that you are using +4. If the problem occurs while using a core: What is the the core name, its version, and the name of the game or media you were playing? +5. RetroArch log files recorded when the problem occurs + +See: Generating RetroArch Logs + +## "OK, I've done these things. Where can I get help?" +If you have questions or issues which cannot be resolved on your own, visit [the RetroArch forum](http://forums.libretro.com/) + +## "I know my problem is a bug. Where can I report it?" +You can report issues in the [RetroArch issues tracker](https://github.com/libretro/RetroArch/issues). + diff --git a/docs/guides/windows.md b/docs/guides/windows.md new file mode 100644 index 00000000..256ddb5a --- /dev/null +++ b/docs/guides/windows.md @@ -0,0 +1,102 @@ +# Getting Started with RetroArch + +## Starting RetroArch + +On the first run you will be greeted by this screen: + +![Screenshot](images/windows/first_run.png) + +From here you can launch content, change settings and build up your content collection. + +## Keyboard Controls + +The RetroArch user interface is designed with gamepad navigation in mind but it also features robust keyboard and mouse support. Learn more about keyboard input at [RetroArch Keyboard Controls](https://buildbot.libretro.com/.docs/guides/retroarch-keyboard-controls/). + +## Gamepad Controls + +XINPUT controllers should work out of the box. If the controller can be autoconfigured the OSD will inform you of the autoconfiguration event. We also include autoconf profiles for many popular controllers. If your controller doesn't auto configure you can follow this procedure: + +![Screenshot](images/windows/autoconf.gif) + +- Navigate to **Settings** +- Navigate to **Input** +- Navigate to **Input User 1 Binds** +- Select **User 1 Bind All** +- Press the buttons as required + +!!! tip + If you have several different controller types you may want to use the **User 1 Save Autoconfig** followed by **User 1 Bind Default All** options after binding in order to achieve hotplug functionality + +### Directory Configuration + +Configuring directories is an important aspect to get the best RetroArch experience possible. +To configure the directories follow these steps: + +- Navigate to **Settings** +- Navigate to **Directories** +- Select the directory you want to changed +- Navigate to the desired location + +You should always configure the following paths: + +- System Directory for *system files* +- Savefile Directory for *save files* +- Savestate Directory *save state files* +- Browser Directory for *your content* + +!!! tip + The **Browser Directory** is used as a startup location which allows easy access to your content library. + +### Installing Cores + +RetroArch requires cores to run any content. You can download cores directly from RetroArch's interface by following this procedure: + +![Screenshot](images/windows/core_updater.gif) + +- Navigate to **Online Updater** +- Navigate to **Select Core Updater** +- Select the core you want to download + +### Running Content + +After you have installed one or more cores you can run your content following this procedure: + +- Navigate to **Load Content** +- Browse to the folder that contains the content you want to run +- Select the content that you want to run +- If you have more than one compatible core you will be asked to select the core you want to use for that purpose + +![Screenshot](images/windows/run_content.gif) + +!!! tip + By default loading content will trigger a content scan. If your content matches with any of our databases it will be added to a playlist for easy access. You can find the playlists by navigating to the right of the main menu. + +!!! tip + Every content you launch is added to a history playlist that you can use to load it again quickly at any time + +## Glossary + +#### frontend +A frontend is a program designed to run libretro cores such as Kodi's RetroPlayer, RetroArch, Phoenix, Minir + +#### core +A core is a program that has been ported to the libretro API and runs inside a libretro frontend + +#### content +Content can be a game, an image, a video, an audio file that is executed by a core. In most cases contents are the ROMs of an emulated platform + +#### retropad +RetroPad is libretro’s input abstraction controller, it’s the interface between the physical controller and the core inputs + +#### save files +Save files are saves that are made from within a game, usually cross platform and should work across emulators in most cases + +#### save states +Save states are snapshots of the content menory at a particular moment, these are not always cross platform and most certainly won’t work on a different emulator that the one used to create them + +#### system files +Additional files that might or not be part of the romset that might be needed to get some content to work (usually referred to by the BIOS term) + +#### autoconf +A configuration file that has button definitions for a particular gamepad + diff --git a/docs/help.md b/docs/help.md new file mode 100644 index 00000000..436593c6 --- /dev/null +++ b/docs/help.md @@ -0,0 +1,24 @@ +# Welcome to MkDocs + +For full documentation visit [mkdocs.org](http://mkdocs.org). + +## Commands + +* `mkdocs new [dir-name]` - Create a new project. +* `mkdocs serve` - Start the live-reloading docs server. +* `mkdocs build` - Build the documentation site. +* `mkdocs help` - Print this help message. + +## Project layout + + mkdocs.yml # The configuration file. + docs/ + index.md # The documentation homepage. + ... # Other markdown pages, images and other files. + + +!!! note + Test note. + +!!! warning "Don't try this at home" + Test warning. diff --git a/docs/images/RetroArch_Banner.png b/docs/images/RetroArch_Banner.png new file mode 100644 index 00000000..663187db Binary files /dev/null and b/docs/images/RetroArch_Banner.png differ diff --git a/docs/images/invader.png b/docs/images/invader.png new file mode 100644 index 00000000..30e58c82 Binary files /dev/null and b/docs/images/invader.png differ diff --git a/docs/images/libretro_banner.png b/docs/images/libretro_banner.png new file mode 100644 index 00000000..2e7d8c93 Binary files /dev/null and b/docs/images/libretro_banner.png differ diff --git a/docs/images/retroarch-96x96.png b/docs/images/retroarch-96x96.png new file mode 100644 index 00000000..30e58c82 Binary files /dev/null and b/docs/images/retroarch-96x96.png differ diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000..373743b9 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,11 @@ +# Welcome to the Libretro/RetroArch Documentation Center! +![Libretro_Banner](images/libretro_banner.png) +![RetroArch_Banner](images/RetroArch_Banner.png) + +RetroArch is a frontend for emulators, game engines and media players. + +It enables you to run classic games on a wide range of computers and consoles through its slick graphical interface. Settings are also unified so configuration is done once and for all. RetroArch has advanced features like shaders, netplay, rewinding, and more! + +### Which platforms are RetroArch available for? +RetroArch runs and is supported on GNU/Linux, BSD, Windows, Mac OSX (PPC/Intel), Haiku, PlayStation 3, Playstation Vita, Playstation Portable, XBox 360, XBox 1, Raspberry Pi, Nintendo Gamecube, Nintendo Wii, Nintendo Wii U, Nintendo 3DS, Android, iOS, Open Pandora, and Blackberry. + diff --git a/docs/legacy/xml_shaders.md b/docs/legacy/xml_shaders.md new file mode 100644 index 00000000..bc9d972d --- /dev/null +++ b/docs/legacy/xml_shaders.md @@ -0,0 +1,64 @@ +# XML Shaders + +XML shaders have been deprecated and are no longer supported by RetroArch. This page should be considered only for historical reference. + +## History + +XML shaders were originally implemented in bSNES as single pass GLSL shaders. The extension is .shader and is marked up with XML. These shaders were written against the fixed-function pipeline and is now referred to as a legacy XML shaders by RetroArch. The prefix ofruby originates from bSNES’ driver module, ruby::. + +## Example legacy XML shader + +``` + + + + + +``` + +RetroArch implemented this legacy shader spec to be compatible with many shaders written at the time. It is also referred to as v1.0 XML shaders. This specification was then extended to support multi-pass, scaling arguments, etc, which resulted in v1.1 XML shaders (spec here). It is still legacy as it uses fixed-function features. RetroArch implements v1.1 XML shaders, and some more features to be feature equivalent with the Cg shader implementation. bSNES did not implement v1.1 and adoption of this spec was slowed down. + +## Modern XML shaders + +Legacy XML shaders used fixed function, and they would therefore never work with modern GL (GLES, GL3.x+). To fix this, RetroArch extended the XML shader spec. Fixed function cruft like gl_ModelViewProjectionMatrix, gl_MultiTexCoord0 and gl_Vertex was replaced with uniforms and attribute streams. The modern XML shader spec in RetroArch focuses on being compatible with GLES2 (and compatible with GL 3.x+ as well). + +The ruby prefix was later deprecated and you could use TexCoord, VertexCoord etc. For compatibility reasons, the ruby prefix is still accepted. + +## Example modern shader + +``` + + + + + +``` + +## Moving off XML shaders + +XML shaders as a whole are deprecated in RetroArch, and will not be selectable in RGUI. You can still use them via video_shader config option. To use GLSL in RetroArch, the new GLSL shaders format is used, which mirrors the Cg shaders implementation quite well. The new GLSL shaders only support modern style, no fixed function. To convert XML shaders into straight GLSL, see GLSL shaders. \ No newline at end of file diff --git a/docs/library/2048.md b/docs/library/2048.md new file mode 100644 index 00000000..df1771e5 --- /dev/null +++ b/docs/library/2048.md @@ -0,0 +1,109 @@ +# 2048 + +## Background + +This is a port of 2048, a game, to libretro. + +#### How to start the 2048 core: + +- To start the 2048 core, go to RetroArch's main menu screen. Select 'Load Core', then '2048'. + +- Now, select 'Start Core'. + +
![](images\Cores\2048\start.png)
+ +The content should now start running! + +### Author/License + +The 2048 core has been authored by + +- Gabriele Cirulli + +The 2048 core is licensed under + +- [Public Domain](https://github.com/libretro/libretro-2048/blob/master/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Features + +Frontend-level settings or features that the 2048 core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The 2048 core's internal core name is '2048' + +The 2048 core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 2048.srm (Previous game sessions and hiscores) + +**Frontend's State directory** + +- 2048.state# (State) + +### Geometry and timing + +- The 2048 core's core provided FPS is 60 +- The 2048 core's core provided sample rate is 30000 Hz +- The 2048 core's core provided aspect ratio is 1 + +## Controllers + +The 2048 core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad +- RetroPad w/Analog - Joypad - There's no reason to switch to this. + +### Controller tables + +#### Joypad + +| User 1 Remap descriptors | RetroPad Inputs | +|--------------------------|----------------------------------------------| +| Pause | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| Right | ![](images/RetroPad/Retro_Dpad_Right.png) | + +## External Links + +- [Official 2048 Website](https://gabrielecirulli.github.io/2048/) +- [Official 2048 Github Repository](https://github.com/gabrielecirulli/2048) +- [Libretro 2048 Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/2048_libretro.info) +- [Libretro 2048 Github Repository](https://github.com/libretro/libretro-2048) +- [Report Libretro 2048 Core Issues Here](https://github.com/libretro/libretro-2048/issues) \ No newline at end of file diff --git a/docs/library/3d_engine.md b/docs/library/3d_engine.md new file mode 100644 index 00000000..d816ab36 --- /dev/null +++ b/docs/library/3d_engine.md @@ -0,0 +1,182 @@ +# 3D Engine + +## Contribute to this documentation + +In order to propose improvements to this document, [visit its corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/3d_engine.md). Changes are proposed using "Pull Requests." + +## Background + +A tech demo for libretro GL with additional features (camera/location/etc). + +### Why use this core? + +Awaiting description. + +### How to get and install the 3D Engine core: + +1. Start up RetroArch. Inside the main menu, go to 'Online Updater'. + +2. Just to make sure we have the latest info files, select 'Update Core Info FIles'. Wait until this is done. Then, select 'Core Updater'. + +3. Browse through the list and select '3D Engine'. + +After this has finished downloading, the core should now be ready for use! + +#### How to start (after installation): + +1. Go back to RetroArch's main menu screen. Select 'Load Content'. + +2. Browse to the folder that contains the content you want to run. + +3. Select the content that you want to run. + +4. If you are asked which core to select, choose '3D Engine'. + +The content should now start running! + +### Authors + +- [Team Libretro](https://www.libretro.com/) + +## License + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +- [GPLv3](https://github.com/libretro/libretro-3dengine/blob/master/license) + +## Extensions + +Content that can be loaded by the 3D Engine core have the following file extensions: + +- .png +- .jpg +- .mtl +- .obj + +## Features + +RetroArch features that the 3D Engine core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✕ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✕ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✔ | +| Camera | ✔ | +| Location | ✔ | +| Subsystem | ✕ | +| Softpatching | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | + +### Directories + +The 3D Engine core's directory name is 'Libretro 3DEngine' + +### Geometry and timing + +The 3D Engine core's internal FPS is 60.0. + +The 3D Engine core's internal sample rate is 30000.0 Hz. + +The 3D Engine core's core provided aspect ratio is (Ratio). + +## Core options + +The 3D Engine core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Internal resolution** (**320x240**/360x480/480x272/512x384/512x512/640x240/640x448/640x480/720x576/800x600/960x720/1024x768/1024x1024/1280x720/1280x960/1600x1200/1920x1080/1920x1440/1920x1600/2048x1152/2048x1536/2048x2048/320x240) + +
Self explanatory.
+ +- **Cube size** (**0**/1/2/4/8/16/32/64/128) + +
Awaiting description.
+ +- **Cube stride** (2.0 to 8.0 in increments of 1.0. **2.0 is default**) + +
Awaiting description.
+ +- **Camera enable** (**Off**/On) + +
Awaiting description.
+ +- **Camera FB Type** (**texture/**/raw framebuffer) + +
Awaiting description.
+ +- **Sensor enable** (**Off**/On) + +
Awaiting description.
+ +- **Location enable** (**Off**/On) + +
Awaiting description.
+ +- **Location camera control** (**Off**/On) + +
Awaiting description.
+ +- **Discard hack enable** (**Off**/On) + +
Awaiting description.
+ +- **Location position OSD** (**Off**/On) + +
Awaiting description.
+ +## Controllers + +### Device types + +The 3D Engine core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +#### User 1 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad +- RetroPad w/Analog - Joypad - **There is no reason to switch to this.** + +### Controller tables + +#### Joypad and analog device type table + +| User 1 input descriptors | RetroPad Inputs | RetroPad | +|-------------------------------|----------------------------------------------|------------------------------------------| +| N/A | ![](images/RetroPad/Retro_B_Round.png) | Jump/Zoom-in | +| N/A | ![](images/RetroPad/Retro_Dpad_Up.png) | Move forwards | +| N/A | ![](images/RetroPad/Retro_Dpad_Down.png) | Move backwards | +| N/A | ![](images/RetroPad/Retro_Dpad_Left.png) | Turn left | +| N/A | ![](images/RetroPad/Retro_Dpad_Right.png) | Turn right | +| N/A | ![](images/RetroPad/Retro_A_Round.png) | Zoom-out | +| N/A | ![](images/RetroPad/Retro_L1.png) | Move left | +| N/A | ![](images/RetroPad/Retro_R1.png) | Move right | +| N/A | ![](images/RetroPad/Retro_L2.png) | Adjust lighting | +| N/A | ![](images/RetroPad/Retro_R2.png) | Adjust lighting | +| N/A | ![](images/RetroPad/Retro_R3.png) | Adjust lighting | +| N/A | ![](images/RetroPad/Retro_Left_Stick.png) X | Move right or left/Rotate model | +| N/A | ![](images/RetroPad/Retro_Left_Stick.png) Y | Move forwards and backwards/Rotate model | +| N/A | ![](images/RetroPad/Retro_Right_Stick.png) X | Look right and left | +| N/A | ![](images/RetroPad/Retro_Right_Stick.png) Y | Look up and down/Zoom-in or Zoom-out | + +## External Links + +- [Libretro 3D Engine Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/3dengine_libretro.info) +- [Libretro 3D Engine Github Repository](https://github.com/libretro/libretro-3dengine) +- [Report Libretro 3D Engine Core Issues Here](https://github.com/libretro/libretro-3dengine/issues) \ No newline at end of file diff --git a/docs/library/4do.md b/docs/library/4do.md new file mode 100644 index 00000000..047c75a8 --- /dev/null +++ b/docs/library/4do.md @@ -0,0 +1,149 @@ +# The 3DO Company - 3DO (4DO) + +## Background + +4DO is an open-source, low-level emulator for the 3DO Game Console based on the FreeDO source code. + +### Author/License + +The 4DO core has been authored by + +- JohnnyDude +- FreeDO team + +The 4DO core is licensed under + +- [Non-commercial](https://github.com/libretro/4do-libretro/blob/master/libfreedo/freedocore.h) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the 4DO core have the following file extensions: + +- .iso +- .cue + +## Databases + +RetroArch database(s) that are associated with the 4DO core: + +- [The 3DO Company - 3DO](https://github.com/libretro/libretro-database/blob/master/rdb/The%203DO%20Company%20-%203DO.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +| Filename | Description | md5sum | +|:------------:|:-------------------------------:|:--------------------------------:| +| panafz10.bin | Panasonic FZ-10 BIOS - Required | 51f2f43ae2f3508a14d9f56597e2d3ce | + +## Features + +Frontend-level settings or features that the 4DO core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | - | +| LEDs | ✕ | + +### Directories + +The 4DO core's internal core name is '4DO' + +The 4DO core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The 4DO core's core provided FPS is 60 +- The 4DO core's core provided sample rate is 44100 Hz +- The 4DO core's core provided aspect ratio is 4/3 + +## Core options + +The 4DO core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **High Resolution (restart)** [4do_high_resolution] (**disabled**|enabled) + + Doubles internal resolution. + +??? note "High Resolution - Off" + ![](images\Cores\4do\high_off.png) + +??? note "High Resolution - On" + ![](images\Cores\4do\high_on.png) + +## Controllers + +The 4DO core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 2 device types + +- None - Doesn't disable input. There's no reason to switch to this. +- **RetroPad** - Joypad - Stay on this +- RetroPad w/Analog - Joypad - Seme as RetroPad. There's no reason to switch to this. + +### Controller tables + +#### Joypad + +![](images/Controllers/3do.png) + +| User 1 - 2 Remap descriptors | RetroPad Inputs | +|------------------------------|----------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| A | ![](images/RetroPad/Retro_Y_Round.png) | +| X (Stop) | ![](images/RetroPad/Retro_Select.png) | +| P (Play/Pause) | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| C | ![](images/RetroPad/Retro_A_Round.png) | +| L | ![](images/RetroPad/Retro_L1.png) | +| R | ![](images/RetroPad/Retro_R1.png) | + +## Compatibility + +- [4DO Core Compatibility List](http://wiki.fourdo.com/Compatibility_List) + +## External Links + +- [Official 4DO Website](http://www.fourdo.com/) +- [Official 4DO Wiki](http://wiki.fourdo.com/Main_Page) +- [Official 4DO SourceForge Repository](https://sourceforge.net/projects/fourdo/) +- [Libretro 4DO Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/4do_libretro.info) +- [Libretro 4DO Github Repository](https://github.com/libretro/4do-libretro) +- [Report Libretro 4DO Core Issues Here](https://github.com/libretro/4do-libretro/issues) \ No newline at end of file diff --git a/docs/library/atari800.md b/docs/library/atari800.md new file mode 100644 index 00000000..51b38a79 --- /dev/null +++ b/docs/library/atari800.md @@ -0,0 +1,270 @@ +# Atari 8-bit computer systems and 5200 (Atari800) + +## Contribute to this documentation + +In order to propose improvements to this document, [visit its corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/atari800.md). Changes are proposed using "Pull Requests." + +## Background + +Atari 8-bit computer systems (400, 800, 600 XL, 800XL, 130XE) and 5200 game console emulator. + +### How to get and install the Atari800 core: + +1. Start up RetroArch. Inside the main menu, go to 'Online Updater'. + +2. Just to make sure we have the latest info files, select 'Update Core Info FIles'. Wait until this is done. Then, select 'Core Updater'. + +3. Browse through the list and select 'Atari 8-bit computer systems and 5200 (Atari800)'. + +After this has finished downloading, the core should now be ready for use! + +#### How to play (after installation): + +1. Go back to RetroArch's main menu screen. Select 'Load Content'. + +2. Browse to the folder that contains the content you want to run. + +3. Select the content that you want to run. + +4. If you are asked which core to select, choose 'Atari 8-bit computer systems and 5200 (Atari800)'. + +The game should now start running! + +### Authors + +- Petr Stehlik + +## See also + +Awaiting description. + +## License + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +- [GPLv2](https://github.com/atari800/atari800/blob/master/COPYING) + +## Extensions + +Content that can be loaded by the Atari800 core have the following file extensions: + +- .xfd +- .atr +- .atx +- .cdm +- .cas +- .bin +- .a52 +- .xex +- .zip + +## Databases + +RetroArch database(s) that are associated with the Atari800 core: + +- [Atari - 5200](https://github.com/libretro/libretro-database/blob/master/rdb/Atari%20-%205200.rdb) + +## BIOS + +Required or optional firmware files go in RetroArch's system directory. + +| Filename | Description | md5sum | +|:-------------:|:--------------------------------------:|:--------------------------------:| +| 5200.rom | 5200 BIOS - Required | 281f20ea4320404ec820fb7ec0693b38 | +| ATARIXL.ROM | Atari XL/XE OS BIOS - Required | 06daac977823773a3eea3422fd26a703 | +| ATARIBAS.ROM | BASIC interpreter BIOS - Required | 0bac0c6a50104045d902df4503a4c30b | +| ATARIOSA.ROM | Atari 400/800 PAL BIOS - Required | eb1f32f5d9f382db1bbfb8d7f9cb343a | +| ATARIOSB.ROM | BIOS for Atari 400/800 NTSC - Required | a3e8d617c95d08031fe1b20d541434b2 | + +## Features + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✕ | +| Screenshots | ✔ | +| Saves | - | +| States | - | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | - | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| Softpatching | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Crop Overscan (in RetroArch's Video settings) | ✕ | + +### Directories + +The Atari800 core's directory name is 'Atari800' + +Atari800 config settings are saved/loaded to and from .atari800.cfg in RetroArch's home directory (where RetroArch.exe is in Windows). + +- .atari800.cfg (Config) + +RetroArch.exe directory + +- .atari800.cfg (config) +- .atari000.wav in exe directory (startup noise?) +- .atari000.pcx in exe directory (screenshot) + +### Core provided aspect ratio + +Atari800's core provided aspect ratio is 4/3. + +### Usage + +Make sure you have the appropriate system files in RetroArch's system directory. Then, load a content file. + +The Atari800 core should boot to the 'Atari Computer - Memo Pad' screen. + +The Atari800 core will generate a '.atari800.cfg' config file in RetroArch's home directory and will add the required BIOS files it detects in the system directory to the config file. + +Now you can manually select what Atari system you want to emulate through the 'Atari System' core option. + +Finally, you can load any content files compatible with the system chosen through RetroArch's Load Content menu. + +!!! attention + You can set per-game core option settings by creating a game-options file through RetroArch's Core Opitons menu. + +Alternatively, you can manually configure how the Atari800 will look for and handle BIOS files. + +While the Atari800 core is running, you can press F1 to get into the internal emulator menu. There - emulator configuration, system rom settings. + +From there, You can go to the 'Emulator Configuration' section and then the System ROM settings section to configure BIOS options. (Press Enter to confirm menu selections and press Escape to go back a menu) + +Then press Escape a few times to go back to the 'Emulator Configuration' section and select Save Configuration File or alternatively change Save configuration file on exit from no to yes + +Then you can exit the emulator by pressing F9 and then try the game again or press Shift+F5 to reboot the game. + +## Core options + +The Atari800 core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Atari System** (**400/800 (OS B)**/800XL (64K)/130XE (128K)/5200) + +
Choose what Atari System to emulate.
+ +- **Video Standard** (**NTSC**/PAL) + +
Awaiting description.
+ +- **Internal BASIC (hold OPTION on boot)** (**Off**/On) + +
Awaiting description.
+ +- **SIO Acceleration** (**Off**/On) + +
Awaiting description.
+ +- **Boot from Cassette** (**Off**/On) + +
Awaiting description.
+ +- **Hi-Res Artifacting** (**Off**/On) + +
Awaiting description.
+ +- **Autodetect A5200 CartType** (**Off**/On) + +
Awaiting description.
+ +- **Joy hack A5200 for robotron** (**Off**/On) + +
Awaiting description.
+ +- **Internal resolution** (**336x240**/320x240/384x240/384x272/384x288/400x300) + +
Awaiting description.
+ +- **Retroarch Keyboard type** (**poll**/callback) + +
Awaiting description.
+ +## Controllers + +### Device types + +The Atari800 core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +#### User 1 - 2 device types + +- None - Input disabled. +- **RetroPad** - Joypad - Don't use this, switch to ATARI Joystick for joypad usage. +- ATARI Joystick - Joypad +- ATARI Keyboard - Keyboard - For keyboard usage + +### Controller tables + +#### Joypad and analog device type table + +| User 1 input descriptors | | ATARI Joystick | +|-------------------------------|----------------------------------------------|-------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | KEY RETURN | +| Y | ![](images/RetroPad/Retro_Y_Round.png) | VKBD ON/OFF | +| Select | ![](images/RetroPad/Retro_Select.png) | CONSOL_SELECT | +| Start | ![](images/RetroPad/Retro_Start.png) | CONSOL_START | +| Up | ![](images/RetroPad/Retro_Dpad_Up.png) | Up | +| Down | ![](images/RetroPad/Retro_Dpad_Down.png) | Down | +| Left | ![](images/RetroPad/Retro_Dpad_Left.png) | Left | +| Right | ![](images/RetroPad/Retro_Dpad_Right.png) | Right | +| A | ![](images/RetroPad/Retro_A_Round.png) | FIRE1/KEY RETURN IN GUI | +| X | ![](images/RetroPad/Retro_X_Round.png) | FIRE2/KEY ESCAPE IN GUI | +| L | ![](images/RetroPad/Retro_L1.png) | CONSOL_OPTION | +| R | ![](images/RetroPad/Retro_R1.png) | TOGGLE UI | +| L2 | ![](images/RetroPad/Retro_L2.png) | KEY SPACE | +| R2 | ![](images/RetroPad/Retro_R2.png) | KEY ESCAPE | +| L3 | ![](images/RetroPad/Retro_L3.png) | N/A | +| R3 | ![](images/RetroPad/Retro_R3.png) | N/A | + +#### Keyboard device type table + +| User # input descriptors | | ATARI Keyboard | +|-------------------------------|-------------------------------|----------------------------| +| N/A | Keyboard Numpad 2 | Down | +| N/A | Keyboard Numpad 4 | Left | +| N/A | Keyboard Numpad 6 | Right | +| N/A | Keyboard Numpad 8 | Up | +| N/A | Keyboard Up | Up | +| N/A | Keyboard Down | Down | +| N/A | Keyboard Right | Right | +| N/A | Keyboard Left | Left | +| N/A | Keyboard F1 | Built in UI | +| N/A | Keyboard F2 | Option key | +| N/A | Keyboard F3 | Select key | +| N/A | Keyboard F4 | Start key | +| N/A | Keyboard F5 | Reset key | +| N/A | Keyboard F6 | Help key (XL/XE only) | +| N/A | Keyboard F7 | Break key | +| N/A | Keyboard F8 | Enter monitor | +| N/A | Keyboard F9 | Exit emulator | +| N/A | Keyboard F10 | Save screenshot | +| N/A | Keyboard Right Control | Fire | +| N/A | Keyboard Shift + F5 | Reboot | +| N/A | Keyboard Shift + F10 | Save interlaced screenshot | +| N/A | Keyboard Alt + R | Run Atari program | +| N/A | Keyboard Alt + D | Disk management | +| N/A | Keyboard Alt + C | Cartridge management | +| N/A | Keyboard Alt + Y | Select system | +| N/A | Keyboard Alt + O | Sound settings | +| N/A | Keyboard Alt + W | Sound recording start/stop | +| N/A | Keyboard Alt + S | Save state file | +| N/A | Keyboard Alt + L | Load state file | +| N/A | Keyboard Alt + A | About the emulator | + +## External Links + +- [Libretro Atari800 Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/atari800_libretro.info) +- [Libretro Atari800 Github Repository](https://github.com/libretro/libretro-atari800) +- [Report Libretro Atari800 Core Issues Here](https://github.com/libretro/libretro-atari800/issues) +- [Official Atari800 Website](https://atari800.github.io/) +- [Official Atari800 Github Repository](https://github.com/atari800/atari800) \ No newline at end of file diff --git a/docs/library/beetle_bsnes.md b/docs/library/beetle_bsnes.md new file mode 100644 index 00000000..75a7e84f --- /dev/null +++ b/docs/library/beetle_bsnes.md @@ -0,0 +1,163 @@ +# Nintendo - SNES / Famicom (Beetle bsnes) + +## Background + +Standalone port of Mednafen bSNES to libretro, itself a old fork of bsnes 0.59. + +This core exists as a side effect of porting/forking mednafen for its other cores in the past. There's no reason to use this core now that there's other more compatible and faster SNES cores. + +### Author/License + +The Beetle bsnes core has been authored by + +- byuu +- [Mednafen Team](https://mednafen.github.io/) + +The Beetle bsnes core is licensed under + +- [GPLv2](https://github.com/libretro/beetle-bsnes-libretro/blob/master/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Beetle bsnes core have the following file extensions: + +- .smc +- .fig +- .bs +- .st +- .sfc + +## Databases + +RetroArch database(s) that are associated with the Beetle bsnes core: + +- [Nintendo - Super Nintendo Entertainment System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System.rdb) +- [Nintendo - Super Nintendo Entertainment System Hacks](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System%20Hacks.rdb) +- [Nintendo - Sufami Turbo](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Sufami%20Turbo.rdb) + +## Features + +Frontend-level settings or features that the Beetle bsnes core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✕ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✔ | +| LEDs | ✕ | + +### Directories + +The Beetle bsnes core's internal core name is 'Mednafen bSNES' + +The Beetle bsnes core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) +- 'content-name'.rtc (Real time clock save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The Beetle bsnes core's core provided FPS is 60.10 +- The Beetle bsnes core's core provided sample rate is 44100 Hz +- The Beetle bsnes core's core provided aspect ratio is 4/3 + +## Controllers + +The Beetle bsnes core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 2 device types + +- None - Doesn't disable input +- **RetroPad** - Joypad +- RetroPad w/Analog - Joypad - There's no reason to switch to this. + +### Controller tables + +#### Joypad + +![](images/Controllers/snes.png) + +| RetroPad Inputs | Beetle bsnes Inputs | +|----------------------------------------------|---------------------------| +| ![](images/RetroPad/Retro_B_Round.png) | B | +| ![](images/RetroPad/Retro_Y_Round.png) | Y | +| ![](images/RetroPad/Retro_Select.png) | Select | +| ![](images/RetroPad/Retro_Start.png) | Start | +| ![](images/RetroPad/Retro_Dpad_Up.png) | D-Pad Up | +| ![](images/RetroPad/Retro_Dpad_Down.png) | D-Pad Down | +| ![](images/RetroPad/Retro_Dpad_Left.png) | D-Pad Left | +| ![](images/RetroPad/Retro_Dpad_Right.png) | D-Pad Right | +| ![](images/RetroPad/Retro_A_Round.png) | A | +| ![](images/RetroPad/Retro_X_Round.png) | X | +| ![](images/RetroPad/Retro_L1.png) | L | +| ![](images/RetroPad/Retro_R1.png) | R | + +## External Links + +- [Official Mednafen Website](https://mednafen.github.io/) +- [Official Mednafen Downloads](https://mednafen.github.io/releases/) +- [Libretro Beetle bsnes Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/mednafen_snes_libretro.info) +- [Libretro Beetle bsnes Github Repository](https://github.com/libretro/beetle-bsnes-libretro) +- [Report Libretro Beetle bsnes Core Issues Here](https://github.com/libretro/beetle-bsnes-libretro/issues) + +### See also + +#### Nintendo - Sufami Turbo + +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) + +#### Nintendo - Super Nintendo Entertainment System (+Hacks) + +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (higan Accuracy)](https://docs.libretro.com/library/higan_accuracy/) +- [Nintendo - SNES / Famicom (nSide Balanced)](https://docs.libretro.com/library/nside_balanced/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) \ No newline at end of file diff --git a/docs/library/beetle_cygne.md b/docs/library/beetle_cygne.md new file mode 100644 index 00000000..810f0fca --- /dev/null +++ b/docs/library/beetle_cygne.md @@ -0,0 +1,126 @@ +# Bandai - WonderSwan/Color (Beetle Cygne) + +## Background + +Standalone port of Mednafen WonderSwan to libretro, itself a fork of Cygne. + +### Author/License + +The Beetle Cygne core has been authored by + +- Dox +- [Mednafen Team](https://mednafen.github.io/) + +The Beetle Cygne core is licensed under + +- [GPLv2](https://github.com/libretro/beetle-wswan-libretro/blob/master/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Beetle Cygne core have the following file extensions: + +- .ws +- .wsc + +## Databases + +RetroArch database(s) that are associated with the Beetle Cygne core: + +- [Bandai - WonderSwan](https://github.com/libretro/libretro-database/blob/master/rdb/Bandai%20-%20WonderSwan.rdb) +- [Bandai - WonderSwan Color](https://github.com/libretro/libretro-database/blob/master/rdb/Bandai%20-%20WonderSwan%20Color.rdb) + +## Features + +Frontend-level settings or features that the Beetle Cygne core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ (not link-cable emulation) | +| Core Options | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✔ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Beetle Cygne core's internal core name is 'Mednafen WonderSwan' + +The Beetle Cygne core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge backup save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The Beetle Cygne core's core provided FPS is 75.47 +- The Beetle Cygne core's core provided sample rate is 44100 Hz +- The Beetle Cygne core's core provided aspect ratio is 14/9 + +## Controllers + +The Beetle Cygne core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad +- RetroPad w/Analog - There is no reason to switch to this. + +### Controller tables + +#### Joypad + +| User 1 Remap descriptors | RetroPad Inputs | +|------------------------------|-------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Rotate screen + active D-Pad | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| X Cursor Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| X Cursor Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| X Cursor Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| X Cursor Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| Y Cursor Left | ![](images/RetroPad/Retro_L1.png) | +| Y Cursor Right | ![](images/RetroPad/Retro_R1.png) | +| Y Cursor Down | ![](images/RetroPad/Retro_L2.png) | +| Y Cursor Up | ![](images/RetroPad/Retro_R2.png) | + +## Compatibility + +| Game | Issue | +|-----------|------------------------------------------------------------------------------| +| Tonpuusou | Title screen announcer voice missing. Softlocks after picking a menu option. | + +## External Links + +- [Official Mednafen Website](https://mednafen.github.io/) +- [Official Mednafen Downloads](https://mednafen.github.io/releases/) +- [Libretro Beetle Cygne Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/mednafen_wswan_libretro.info) +- [Libretro Beetle Cygne Github Repository](https://github.com/libretro/beetle-wswan-libretro) +- [Report Libretro Beetle Cygne Core Issues Here](https://github.com/libretro/beetle-wswan-libretro/issues) \ No newline at end of file diff --git a/docs/library/beetle_gba.md b/docs/library/beetle_gba.md new file mode 100644 index 00000000..a41f2653 --- /dev/null +++ b/docs/library/beetle_gba.md @@ -0,0 +1,150 @@ +# Nintendo - Game Boy Advance (Beetle GBA) + +## Background + +Standalone port of Mednafen GBA to libretro, itself a fork of VBA-M, itself a fork of Visual Boy Advance. + +### Author/License + +The Beetle GBA core has been authored by + +- Forgotten +- [Mednafen Team](https://mednafen.github.io/) + +The Beetle GBA core is licensed under + +- [GPLv2](https://github.com/libretro/beetle-gba-libretro/blob/master/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Beetle GBA core have the following file extensions: + +- .gba +- .agb +- .bin + +## Databases + +RetroArch database(s) that are associated with the Beetle GBA core: + +- [Nintendo - Game Boy Advance](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Game%20Boy%20Advance.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +| Filename | Description | md5sum | +|:------------:|:--------------------------------:|:--------------------------------:| +| gba_bios.bin | Game Boy Advance BIOS - Optional | a860e8c0b6d573d191e4ec7db1b1e4f6 | + +## Features + +Frontend-level settings or features that the Beetle GBA core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ (not link-cable emulation) | +| Core Options | ✔ | +| RetroAchievements | ✔ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✔ | +| LEDs | ✕ | + +### Directories + +The Beetle GBA core's internal core name is 'Mednafen VBA-M' + +The Beetle GBA core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.'ROM MD5'.sav (SRAM) +- 'content-name'.'ROM MD5'.eep (EEPROM) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The Beetle GBA core's core provided FPS is 59.73 +- The Beetle GBA core's core provided sample rate is 44100 Hz +- The Beetle GBA core's core provided aspect ratio is 3/2 + +## Core options + +The Beetle GBA core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **HLE bios emulation** [gba_hle] (**enabled**/disabled) + + Self-explanatory. When set to off, a Game Boy Advance BIOS is required. + +## Controllers + +The Beetle GBA core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad +- RetroPad w/Analog - Joypad - There's no reason to switch to this. + +### Controller tables + +#### Joypad + +![](images/Controllers/gba.png) + +| User 1 Remap descriptors | RetroPad Inputs | +|--------------------------|----------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| L | ![](images/RetroPad/Retro_L1.png) | +| R | ![](images/RetroPad/Retro_R1.png) | + +## External Links + +- [Official Mednafen Website](https://mednafen.github.io/) +- [Official Mednafen Downloads](https://mednafen.github.io/releases/) +- [Libretro Beetle GBA Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/mednafen_gba_libretro.info) +- [Libretro Beetle GBA Github Repository](https://github.com/libretro/beetle-gba-libretro) +- [Report Libretro Beetle GBA Core Issues Here](https://github.com/libretro/beetle-gba-libretro/issues) + +### See also + +#### Nintendo - Game Boy Advance + +- [Nintendo - Game Boy Advance (gpSP)](https://docs.libretro.com/library/gpsp/) +- [Nintendo - Game Boy Advance (Meteor)](https://docs.libretro.com/library/meteor/) +- [Nintendo - Game Boy Advance (mGBA)](https://docs.libretro.com/library/mgba/) +- [Nintendo - Game Boy Advance (TempGBA)](https://docs.libretro.com/library/tempgba/) +- [Nintendo - Game Boy Advance (VBA-M)](https://docs.libretro.com/library/vba_m/) +- [Nintendo - Game Boy Advance (VBA Next)](https://docs.libretro.com/library/vba_next/) \ No newline at end of file diff --git a/docs/library/beetle_handy.md b/docs/library/beetle_handy.md new file mode 100644 index 00000000..03acf763 --- /dev/null +++ b/docs/library/beetle_handy.md @@ -0,0 +1,148 @@ +# Atari - Lynx (Beetle Handy) + +## Background + +Beetle Lynx is an Atari Lynx video game system emulator that can be used as a libretro core. Specifically it's a port of Mednafen Lynx which is a fork of Handy. + +!!! attention + Beetle Handy is incompatible with modern No-Intro romsets as they require headers to work properly. The regular Handy core does not have this issue. + +### Author/License + +The Beetle Handy core has been authored by + +- K. Wilkins +- [Mednafen Team](https://mednafen.github.io/) + +The Beetle Handy core is licensed under + +- [zlib](https://github.com/libretro/beetle-lynx-libretro/blob/master/mednafen/lynx/license.txt), [GPLv2](https://github.com/libretro/beetle-lynx-libretro/blob/master/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Beetle Handy core have the following file extensions: + +- .lnx + +## Databases + +RetroArch database(s) that are associated with the Beetle Handy core: + +- [Atari - Lynx](https://github.com/libretro/libretro-database/blob/master/rdb/Atari%20-%20Lynx.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +| Filename | Description | md5sum | +|:-------------:|:--------------------------:|:--------------------------------:| +| lynxboot.img | Lynx Boot Image - Required | fcd403db69f54290b51035d82f835e7b | + +## Features + +Frontend-level settings or features that the Beetle Handy core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✔ | +| Rewind | ✔ | +| Netplay (State based) | ✔ (not link-cable emulation) | +| Core Options | ✕ | +| RetroAchievements | ✔ | +| Cheats (Cheats menu) | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✕ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✔ | +| LEDs | ✕ | + +### Directories + +The Beetle Handy core's directory name is 'Mednafen Lynx' + +The Beetle Handy core saves/loads to/from these directories. + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The Beetle Handy core's core provided FPS is 75 +- The Beetle Handy core's core provided sample rate is 44100 Hz +- The Beetle Handy core's core provided aspect ratio is 80/51 + +## Loading content + +Beetle Handy is incompatible with modern No-Intro romsets as they require headers to work properly. The regular Handy core does not have this issue. + +## Controllers + +The Beetle Handy core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad +- RetroPad w/Analog - Joypad - There's no reason to switch to this. + +### Controller tables + +![](images/Controllers/beetle_lynx_retropad.png) + +#### Joypad + +| User 1 Remap descriptors | RetroPad Inputs | Beetle Handy Inputs | +|--------------------------|-------------------------------------------|---------------------| +| NULL | ![](images/RetroPad/Retro_B_Round.png) | B | +| NULL | ![](images/RetroPad/Retro_Start.png) | Pause | +| NULL | ![](images/RetroPad/Retro_Dpad_Up.png) | D-Pad Up | +| NULL | ![](images/RetroPad/Retro_Dpad_Down.png) | D-Pad Down | +| NULL | ![](images/RetroPad/Retro_Dpad_Left.png) | D-Pad Left | +| NULL | ![](images/RetroPad/Retro_Dpad_Right.png) | D-Pad Right | +| NULL | ![](images/RetroPad/Retro_A_Round.png) | A | +| NULL | ![](images/RetroPad/Retro_L1.png) | Option 1 | +| NULL | ![](images/RetroPad/Retro_R1.png) | Option 2 | + +Supported combinations + +* Option 1 + Pause = Flips Screen +* Option 2 + Pause = Restarts game + +## Compatibility + +!!! attention + Beetle Handy is incompatible with modern No-Intro romsets as they require headers to work properly. The regular Handy core does not have this issue. + +| Game | Issue | +|------------------|-------------------------------------------------------------------------| +| RoadBlasters | Graphics glitches. Minor flickering and glitches after starting a race. | + +## External Links + +- [Official Mednafen Website](https://mednafen.github.io/) +- [Official Mednafen Downloads](https://mednafen.github.io/releases/) +- [Libretro Beetle Handy Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/mednafen_lynx_libretro.info) +- [Libretro Beetle Handy Github Repository](https://github.com/libretro/beetle-lynx-libretro) +- [Report Libretro Beetle Handy Core Issues Here](https://github.com/libretro/beetle-lynx-libretro/issues) + +### See also + +#### Atari - Lynx + +- [Atari - Lynx (Handy)](https://docs.libretro.com/library/handy/) \ No newline at end of file diff --git a/docs/library/beetle_neopop.md b/docs/library/beetle_neopop.md new file mode 100644 index 00000000..6932fa34 --- /dev/null +++ b/docs/library/beetle_neopop.md @@ -0,0 +1,127 @@ +# SNK - Neo Geo Pocket / Color (Beetle NeoPop) + +## Background + +Beetle/Mednafen NGP is a SNK Neo Geo Pocket (Color) video game system emulator based on NeoPop. + +### Author/License + +The Beetle NeoPop core has been authored by + +- neopop_uk +- [Mednafen Team](https://mednafen.github.io/) + +The Beetle NeoPop core is licensed under + +- [GPLv2](https://github.com/libretro/beetle-ngp-libretro/blob/master/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Beetle NeoPop core have the following file extensions: + +- .ngp +- .ngc + +## Databases + +RetroArch database(s) that are associated with the Beetle Neopop core: + +- [SNK - Neo Geo Pocket](https://github.com/libretro/libretro-database/blob/master/rdb/SNK%20-%20Neo%20Geo%20Pocket.rdb) +- [SNK - Neo Geo Pocket Color](https://github.com/libretro/libretro-database/blob/master/rdb/SNK%20-%20Neo%20Geo%20Pocket%20Color.rdb) + +## Features + +Frontend-level settings or features that the Beetle NeoPop core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ (not link-cable emulation) | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✔ | + +### Directories + +The Beetle NeoPop core's internal core name is 'Mednafen NeoPop' + +The Beetle NeoPop core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.flash (Cartrtidge battery save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The Beetle NeoPop core's core provided FPS is 60 +- The Beetle NeoPop core's core provided sample rate is 44100 Hz +- The Beetle NeoPop core's core provided aspect ratio is 20/19 + +## Core options + +The Beetle NeoPop core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Language (restart)** [ngp_language] (**english**/japanese) + + Choose system language of the BIOS. + +## Controllers + +The Beetle NeoPop core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad +- RetroPad w/Analog - Joypad - There's no reason to switch to this. + +### Controller tables + +#### Joypad + +![](images/Controllers/ngp.png) + +| User 1 Remap descriptors | RetroPad Inputs | +|--------------------------|-------------------------------------------| +| A | ![](images/RetroPad/Retro_B_Round.png) | +| Option | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| B | ![](images/RetroPad/Retro_A_Round.png) | + +## External Links + +- [Official Mednafen Website](https://mednafen.github.io/) +- [Official Mednafen Downloads](https://mednafen.github.io/releases/) +- [Libretro Beetle NeoPop Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/mednafen_ngp_libretro.info) +- [Libretro Beetle NeoPop Github Repository](https://github.com/libretro/beetle-ngp-libretro) +- [Report Libretro Beetle NeoPop Core Issues Here](https://github.com/libretro/beetle-ngp-libretro/issues) \ No newline at end of file diff --git a/docs/library/beetle_pc_fx.md b/docs/library/beetle_pc_fx.md new file mode 100644 index 00000000..cbae5e3e --- /dev/null +++ b/docs/library/beetle_pc_fx.md @@ -0,0 +1,204 @@ +# NEC - PC-FX (Beetle PC-FX) + +## Background + +Beetle PC-FX is a port of Mednafen PC-FX video game system emulator for the NEC PC-FX. + +### Author/License + +The Beetle PC-FX core has been authored by + +- [Mednafen Team](https://mednafen.github.io/) + +The Beetle PC-FX core is licensed under + +- [GPLv2](https://github.com/libretro/beetle-pcfx-libretro/blob/master/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Beetle PC-FX core have the following file extensions: + +- .cue +- .ccd +- .toc +- .chd + +## Databases + +RetroArch database(s) that are associated with the Beetle PC-FX core: + +- [NEC - PC-FX](https://github.com/libretro/libretro-database/blob/master/rdb/NEC%20-%20PC-FX.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +| Filename | Description | md5sum | +|:-------------:|:----------------------------------------:|:--------------------------------:| +| pcfx.rom | PC-FX BIOS v1.00 - 2 Sep 1994 - Required | 08e36edbea28a017f79f8d4f7ff9b6d7 | + +## Features + +Frontend-level settings or features that the Beetle PC-FX core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✔ | +| LEDs | ✕ | + +### Directories + +The Beetle PC-FX core's internal core name is 'Mednafen PC-FX' + +The Beetle PC-FX core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Save) + +**Frontend's State directory** + +- 'content-name-.state# (State) + +### Geometry and timing + +- The Beetle PC-FX core's core provided FPS is 60 +- The Beetle PC-FX core's core provided sample rate is 44100 Hz +- The Beetle PC-FX core's core provided aspect ratio is 4/3 + +### Loading PC-FX content + +Beetle PC-FX needs a cue-sheet that points to an image file. A cue sheet, or cue file, is a metadata file which describes how the tracks of a CD or DVD are laid out. + +If you have e.g. `foo.bin`, you should create a text file and save it as `foo.cue`. If you're playing a single-track Saturn game, then the cue file contents should look like this: + +`foobin.cue` +``` + FILE "foo.bin" BINARY + TRACK 01 MODE1/2352 + INDEX 01 00:00:00 +``` + +After that, you can load the `foo.cue` file in RetroArch with the Beetle PC-FX core. + +!!! attention + Certain PC-FX games are multi-track, so their .cue files might be more complicated. + +## Core options + +The Beetle PC-FX core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **High Dotclock Width (Restart)** [pcfx_high_dotclock_width] (**1024**/256/341) + + Emulated width for 7.16MHz dot-clock mode. Lower values are faster, but will cause some degree of pixel distortion. + +- **Suppress Channel Reset Clicks (Restart)** [pcfx_suppress_channel_reset_clicks] (**enabled**/disabled) + + Hack to suppress clicks caused by forced channel resets. + +- **Emulate Buggy Codec (Restart)** [pcfx_emulate_buggy_codec] (**disabled**/enabled) + + Hack that emulates the codec a buggy ADPCM encoder used for some games' ADPCM. + +- **Sound Quality (Restart)** [pcfx_resamp_quality] (**3**/4/5/0/1/2) + + Higher values correspond to better SNR and better preservation of higher frequencies("brightness"), at the cost of increased computational complexity and a negligible increase in latency. + +- **Chroma channel bilinear interpolation (Restart)** [pcfx_rainbow_chromaip] (**disabled**/enabled) + + Enable bilinear interpolation on the chroma channel of RAINBOW YUV output. Enabling it may cause graphical glitches with some games. + +- **No Sprite Limit (Restart)** [pcfx_nospritelimit] (**disabled**/enabled) + + Remove 16-sprites-per-scanline hardware limit. + +- **Initial scanline** [pcfx_initial_scanline] ((0 to 40 in increments of 1. **4 is default**.) + + Adjust first display scanline. + +- **Last scanline** [pcfx_last_scanline] (208 to 238 in increments of 1. **235 is default**.) + + Adjust last display scanline. + +- **Mouse Sensitivity** [pcfx_mouse_sensitivity] (1.00 to 5.00 in increments of 0.25. **1.25 is default**.) + + Configure the sensitivity of the 'PCFX Mouse' device type, + +## Controllers + +The Beetle PC-FX core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 2 device types + +- None - Doesn't disable input. +- **PCFX Joypad** - Joypad +- PCFX Mouse - Mouse + +### Controller tables + +#### Joypad + +| User 1 - 6 Remap descriptors | RetroPad Inputs | +|------------------------------|-------------------------------------------| +| II | ![](images/RetroPad/Retro_B_Round.png) | +| IV | ![](images/RetroPad/Retro_Y_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Run | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| I | ![](images/RetroPad/Retro_A_Round.png) | +| III | ![](images/RetroPad/Retro_X_Round.png) | +| V | ![](images/RetroPad/Retro_L1.png) | +| VI | ![](images/RetroPad/Retro_R1.png) | +| MODE 1 (Switch) | ![](images/RetroPad/Retro_L2.png) | +| MODE 2 (Switch) | ![](images/RetroPad/Retro_R2.png) | + +#### Mouse + +| RetroMouse Inputs | PCFX Mouse | +|-----------------------------------------------------|-------------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Mouse Cursor | PCFX Mouse Cursor | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | PCFX Mouse Left Button | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | PCFX Mouse Right Button | + +## Compatibility + +| Game | Issue | +|---------------------------------------------------------------------|---------------------------------------------------------| +| Pia Carrot e Youkoso!! (Japan) [T-En by David Michel + filler v1.0] | Doesn't boot. Confirmed to work on real hardware. | + +## External Links + +- [Official Mednafen Website](https://mednafen.github.io/) +- [Official Mednafen Downloads](https://mednafen.github.io/releases/) +- [Libretro Beetle PC-FX Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/mednafen_pcfx_libretro.info) +- [Libretro Beetle PC-FX Github Repository](https://github.com/libretro/beetle-pcfx-libretro) +- [Report Libretro Beetle PC-FX Core Issues Here](https://github.com/libretro/beetle-pcfx-libretro/issues) \ No newline at end of file diff --git a/docs/library/beetle_pce_fast.md b/docs/library/beetle_pce_fast.md new file mode 100644 index 00000000..54bafc99 --- /dev/null +++ b/docs/library/beetle_pce_fast.md @@ -0,0 +1,287 @@ +# NEC - PC Engine / CD (Beetle PCE FAST) + +## Background + +Beetle/Mednafen PCE FAST is a libretro port of Mednafen PCE Fast with the PC Engine SuperGrafx module removed. + +### Author/License + +The Beetle PCE FAST core has been authored by + +- [Mednafen Team](https://mednafen.github.io/) + +The Beetle PCE FAST core is licensed under + +- [GPLv2](https://github.com/libretro/beetle-pce-fast-libretro/blob/master/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Beetle PCE FAST core have the following file extensions: + +- .pce +- .cue +- .ccd +- .iso +- .img +- .bin +- .chd + +## Databases + +RetroArch database(s) that are associated with the Beetle PCE FAST core: + +- [NEC - PC Engine - TurboGrafx 16](https://github.com/libretro/libretro-database/blob/master/rdb/NEC%20-%20PC%20Engine%20-%20TurboGrafx%2016.rdb) +- [NEC - PC Engine CD - TurboGrafx-CD](https://github.com/libretro/libretro-database/blob/master/rdb/NEC%20-%20PC%20Engine%20CD%20-%20TurboGrafx-CD.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +Any CD-ROM System BIOS will work, but some them are known to be incompatible with certain games. + +| Filename | Description | md5sum | +|:-------------:|:-------------------------------------:|:--------------------------------:| +| syscard3.pce | Super CD-ROM2 System V3.xx - Required | 38179df8f4ac870017db21ebcbf53114 | +| syscard2.pce | CD-ROM System V2.xx - Optional | | +| syscard1.pce | CD-ROM System V1.xx - Optional | | +| gexpress.pce | Game Express CD Card - Optional | | + +!!! attention + Any CD-ROM System BIOS will work, but some them are known to be incompatible with certain games. + +!!! attention + Which PCE CD BIOS file the Beetle PCE FAST core will use can be configured by the ['CD BIOS' core option](https://docs.libretro.com/library/beetle_pce_fast#core-options). + +## Features + +Frontend-level settings or features that the Beetle PCE FAST core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✔ | +| RetroArch Cheats | - | +| Native Cheats | - | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Beetle PCE FAST core's internal core name is 'Mednafen PCE Fast' + +The Beetle PCE FAST core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The Beetle PCE FAST core's core provided FPS is 59.82 +- The Beetle PCE FAST core's core provided sample rate is 44100 Hz +- The Beetle PCE FAST core's core provided aspect ratio is 6/5 + +## Loading PC Engine CD content + +When loading PC Engine CD games, Beetle PCE FAST needs a cue-sheet that points to an image file. A cue sheet, or cue file, is a metadata file which describes how the tracks of a CD or DVD are laid out. + +If you have e.g. `foo.bin`, you should create a text file and save it as `foo.cue`. If the PC Engine CD game is single-track, the cue file contents should look like this: + +``` + FILE "foo.bin" BINARY + TRACK 01 MODE1/2352 + INDEX 01 00:00:00 +``` + +After that, you can load the `foo.cue` file in RetroArch with the Beetle PCE FAST core. + +!!! warning + Certain Beetle PCE FAST games are multi-track, so their .cue files might be more complicated. + +!!! attention + For cue files track type use OGG for ogg files, WAVE for wav files, BINARY for iso files. + +## Core options + +The Beetle PCE FAST core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **CD Image Cache (Restart)** [pce_fast_cdimagecache] (**disabled**/enabled) + + Loads the complete image in memory at startup. Can potentially decrease loading times at the cost of increased startup time. + +- **CD Bios (Restart)** [pce_fast_cdbios] (**System Card 3**/Games Express/System Card 1/System Card 2) + + Select which PC Engine CD BIOS to use. + +- **No Sprite Limit (Restart)** [pce_nospritelimit] (**disabled**/enabled") + + Remove 16-sprites-per-scanline hardware limit. + +- **CPU Overclock Multiplier (Restart)** [pce_ocmultiplier] (**1**/2/3/4/5/6/7/8/9/10/20/30/40/50) + + Overclock the emulated CPU. + +- **Horizontal Overscan (352 Width Mode Only)** [pce_hoverscan] (300 to 352 in increments of 2. **352 in default**.) + + Awaiting description. + +- **Initial scanline** [pce_initial_scanline] (0 to 40 in increments of 1. **3 is default.**) + + Adjust first display scanline. + +- **Last scanline** [pce_last_scanline] (208 to 242 in increments of 1. **242 is default.**) + + Adjust last display scanline. + +- **(CD) CDDA Volume %** [pce_cddavolume] (0 to 200 in increments of 10. **100 is default**.) + + Awaiting description. + +- **(CD) ADPCM Volume %** [pce_adpcmvolume] (0 to 200 in increments of 10. **100 is default**.) + + Awaiting description. + +- **(CD) CD PSG Volume %** [pce_cdpsgvolume] (0 to 200 in increments of 10. **100 is default**.) + + Awaiting description. + +- **(CD) CD Speed** [pce_cdspeed] (**1**/2/4/8) + + Set the speed of the emulated CD drive. + +- **Turbo Delay** [pce_Turbo_Delay] (**Fast**/Medium/Slow) + + Awaiting description. + +- **Turbo ON/OFF Toggle** [pce_Turbo_Toggling] (**disabled**/enabled) + + Enables Turbo ON/OFF inputs. Look at the [Controllers table section](https://docs.libretro.com/library/beetle_pce_fast#controller-tables) for more information. + +- **Alternate Turbo Hotkey** [pce_turbo_toggle_hotkey] (**disabled**/enabled) + + nables Alternate Turbo ON/OFF inputs. You can avoid remapping Button III and IV when switching to 6-button gamepad mode with this. Look at the [Controllers table section](https://docs.libretro.com/library/beetle_pce_fast#controller-tables) for more information. + +- **P1 Turbo I** [pce_p0_turbo_I_enable] (**disabled**/enabled) + + Awaiting description. + +- **P1 Turbo II** [pce_p0_turbo_II_enable] (**disabled**/enabled) + + Awaiting description. + +- **P2 Turbo I** [pce_p1_turbo_I_enable] (**disabled**/enabled) + + Awaiting description. + +- **P2 Turbo II** [pce_p1_turbo_II_enable] (**disabled**/enabled) + + Awaiting description. + +- **P3 Turbo I** [pce_p2_turbo_I_enable] (**disabled**/enabled) + + Awaiting description. + +- **P3 Turbo II** [pce_p2_turbo_II_enable] (**disabled**/enabled) + + Awaiting description. + +- **P4 Turbo I** [pce_p3_turbo_I_enable] (**disabled**/enabled) + + Awaiting description. + +- **P4 Turbo II** [pce_p3_turbo_II_enable] (**disabled**/enabled) + + Awaiting description. + +- **P5 Turbo I** [pce_p4_turbo_I_enable] (**disabled**/enabled) + + Awaiting description. + +- **P5 Turbo II** [pce_p4_turbo_II_enable] (**disabled**/enabled) + + Awaiting description. + +## Controllers + +The Beetle PCE FAST core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 2 device types + +- None - Doesn't disable input. +- **PCE Joypad** - Joypad +- Mouse - Mouse + +### Controller tables + +#### Joypad + +![](images/Controllers/pce.png) + +!!! attention + Which PCE Joypad button mode is in use can be configured by the Mode Switch input. + +!!! attention + The regular Turbo inputs for 2-button mode are only active when the ['Turbo ON/OFF Toggle' core option](https://docs.libretro.com/library/beetle_pce_fast#core-options) is set to On. + +!!! attention + The Alternate Turbo inputs for 2-button mode are only active when the ['Turbo ON/OFF Toggle' core option](https://docs.libretro.com/library/beetle_pce_fast#core-options) is set to On and the ['Alternate Turbo Hotkey' core option](https://docs.libretro.com/library/beetle_pce_fast#core-options) is set to On. + +| User 1 - 5 Remap descriptors | RetroPad Inputs | PCE Joypad 2 button mode | PCE Joypad 6-button mode | +|------------------------------|----------------------------------------------|---------------------------|--------------------------| +| II | ![](images/RetroPad/Retro_B_Round.png) | II | II | +| III | ![](images/RetroPad/Retro_Y_Round.png) | II Turbo On/Off | III | +| Select | ![](images/RetroPad/Retro_Select.png) | Select | Select | +| Run | ![](images/RetroPad/Retro_Start.png) | Run | Run | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | D-Pad Up | D-Pad Up | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | D-Pad Down | D-Pad Down | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | D-Pad Left | D-Pad Left | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | D-Pad Right | D-Pad Right | +| I | ![](images/RetroPad/Retro_A_Round.png) | I | I | +| IV | ![](images/RetroPad/Retro_X_Round.png) | I Turbo On/Off | IV | +| V | ![](images/RetroPad/Retro_L1.png) | | V | +| VI | ![](images/RetroPad/Retro_R1.png) | | VI | +| Mode Switch | ![](images/RetroPad/Retro_L2.png) | Mode Switch | Mode Switch | +| | ![](images/RetroPad/Retro_L3.png) | Alternate II Turbo On/Off | | +| | ![](images/RetroPad/Retro_R3.png) | Alternate I Turbo On/Off | | + +#### Mouse + +| RetroMouse Inputs | Mouse | +|-----------------------------------------------------|---------------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Mouse Cursor | Mouse Cursor | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | Mouse Left Button | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | Mouse Right Button | + +## External Links + +- [Official Mednafen Website](https://mednafen.github.io/) +- [Official Mednafen Downloads](https://mednafen.github.io/releases/) +- [Libretro Beetle PCE FAST Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/mednafen_pce_fast_libretro.info) +- [Libretro Beetle PCE FAST Github Repository](https://github.com/libretro/beetle-pce-fast-libretro) +- [Report Libretro Beetle PCE FAST Core Issues Here](https://github.com/libretro/beetle-pce-fast-libretro/issues) \ No newline at end of file diff --git a/docs/library/beetle_psx.md b/docs/library/beetle_psx.md new file mode 100644 index 00000000..d4c098f1 --- /dev/null +++ b/docs/library/beetle_psx.md @@ -0,0 +1,473 @@ +# PlayStation (Beetle PSX) + +## Background + +Beetle PSX is a port/fork of Mednafen's PSX module to the libretro API. It can be compiled in C++98 mode, excluding the Vulkan renderer, which is written in C++11 for the time being. Beetle PSX currently runs on Linux, OSX and Windows. + +Notable additions in this fork are: + +- PBP and CHD file format support, developed by Zapeth; +- Software renderer internal resolution upscaling, implemented by simias; +- An OpenGL 3.2 renderer, developed by simias; +- A Vulkan renderer, developed by TinyTiger; +- PGXP perspectve correct texturing and subpixel precision, developed by iCatButler; + +### Author/License + +The Beetle PSX core has been authored by + +- [Mednafen Team](https://mednafen.github.io/) + +The Beetle PSX core is licensed under + +- [GPLv2](https://github.com/libretro/beetle-psx-libretro/blob/master/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Beetle PSX core have the following file extensions: + +- .cue +- .toc +- .m3u +- .ccd +- .exe +- .pbp +- .chd + +## Databases + +RetroArch database(s) that are associated with the Beetle PSX core: + +- [Sony - PlayStation](https://github.com/libretro/libretro-database/blob/master/rdb/Sony%20-%20PlayStation.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +| Filename | Description | md5sum | +|:------------:|:-----------------------------------:|:--------------------------------:| +| scph5500.bin | PS1 JP BIOS - Required for JP games | 8dd7d5296a650fac7319bce665a6a53c | +| scph5501.bin | PS1 US BIOS - Required for US games | 490f666e1afb15b7362b406ed1cea246 | +| scph5502.bin | PS1 EU BIOS - Required for EU games | 32736f17079d0b2b7024407c39bd3050 | + +## Features + +Frontend-level settings or features that the Beetle PSX core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay (State based) | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| Cheats (Cheats menu) | ✔ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | - | +| Rumble | ✔ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✔ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Beetle PSX core's directory name is 'Beetle PSX' + +The Beetle PSX core saves/loads to/from these directories. + +**Frontend's Save directory** + +- Memory cards + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The Beetle PSX core's core provided FPS is (FPS) +- The Beetle PSX core's core provided sample rate is (Rate) +- The Beetle PSX core's core provided aspect ratio is (Ratio) + +### Loading content + +Beetle PSX needs a cue-sheet that points to an image file. A cue sheet, or cue file, is a metadata file which describes how the tracks of a CD or DVD are laid out. + +If you have e.g. `foo.bin`, you should create a text file and save it as `foo.cue`. Most PS1 games are single-track, so the cue file contents should look like this: + +`foobin.cue` +``` + FILE "foo.bin" BINARY + TRACK 01 MODE1/2352 + INDEX 01 00:00:00 +``` + +After that, you can load the `foo.cue` file in RetroArch with the Beetle PSX core. + +!!! attention + Certain PS1 games are multi-track, so their .cue files might be more complicated. + +#### Playing PAL copy protected games + +PAL copy protected games need a SBI Subchannel file next to the bin/cue files in order to get past the copy protection. + +- Ape Escape (Europe).bin +- Ape Escape (Europe).cue +- **Ape Escape (Europe).sbi** + +!!! warning + For proper PAL game compatibility, the 'Skip BIOS' core option needs to be set to off. + +### Multiple-disk games + +If foo is a multiple-disk game, you should have .cue files for each one, e.g. `foo (Disc 1).cue`, `foo (Disc 2).cue`, `foo (Disc 3).cue`. + +To take advantage of Beetle PSW's Disk Control feature for disk swapping, an index file (a m3u file) should be made. + +Create a text file and save it as `foo.m3u`. Then enter your game's .cue files on it. The m3u file contents should look something like this: + +`foo.m3u` +``` +foo (Disc 1).cue +foo (Disc 2).cue +foo (Disc 3).cue +``` + +After that, you can load the `foo.m3u` file in RetroArch with the Beetle PSX core. + +Here's a m3u example done with Valkryie Profile + +![](images\Cores\beetle_psx_hw\m3u.png) + +!!! attention + Adding multi-track games to a RetroArch playlist is recommended. (Manually add an entry a playlist that points to `foo.m3u`) + +### Game compression + +Alternatively to using cue sheets with .bin files, you can convert your games to .pbp (Playstation Portable update file) to reduce file sizes and neaten up your game folder. A recommended .pbp convert tool is PSX2PSP. + +If converting a multiple-disk game, all disks should be added to the same .pbp file, rather than making a .m3u file for them. + +Most conversion tools will want a single .bin file for each disk. If your game uses multiple .bin files (tracks) per disk, you will have to mount the cue sheet to a virtual drive and re-burn the images onto a single track before conversion. + +!!! attention + RetroArch does not currently have .pbp database due to variability in users' conversion methods. All .pbp games will have to be added to playlists manually. + +### Saves + +For game savedata storage, the PSX console used memory cards. The PSX console had two slots for memory cards. + +In this doc, the first memory card slot will be referred to as 'Memcard slot 0' and the second slot will be referred to as 'Memcard slot 1'. + +For memory card functionality and usage, the Beetle PSX core will either use the Libretro savedata format or the Mednafen savedata format. + +
+ +| Libretro savedata format | Mednafen savedata format | +|----------------------------|----------------------------------| +| gamename.srm | gamename.slot#.mcr | + +
+ +**By default**, the Beetle PSX core will use Libretro's savedata format for Memcard slot 0 and Mednafen's savedata format for Memcard slot 1. + +
+ +| Memcard slot 0 | Memcard slot 1 | +|----------------|----------------| +| gamename.srm | gamename.1.mcr | + +
+ +!!! attention + Memory card behavior can be controlled with the following [core options](https://docs.libretro.com/library/beetle_psx/#core-options) (Memcard 0 method, Enable memory card 1, Shared memcards). + +**By default**, the filenames of the Memcard savedata will match the loaded cue or m3u or pbp filename, like this: + +- Loaded content: Breath of Fire III (USA).cue + +- **Memcard slot 0: Breath of Fire III (USA).srm** + +- **Memcard slot 1: Breath of Fire III (USA).1.mcr** + +or + +- Loaded content: Final Fantasy VII (USA).m3u + +- **Memcard slot 0: Final Fantasy VII (USA).srm** + +- **Memcard slot 1: Final Fantasy VII (USA).1.mcr** + +or + +- Loaded content: Wild Arms 2 (USA).pbp + +- **Memcard slot 0: `Wild Arms 2 (USA).srm** + +- **Memcard slot 1: `Wild Arms 2 (USA).1.mcr** + +!!! attention + To import your old memory cards from other emulators, you need to rename them to either the Libretro savedata format or the Mednafen savedata format. + +!!! warning + Keep in mind that save states also include the state of the memory card; carelessly loading an old save state will **OVEWRITE** the memory card, potentially resulting in lost saved games. **You can set the 'Don't overwrite SaveRAM on loading savestate' option in RetroArch's Saving settings to On to prevent this.** + +## Core options + +The Beetle PSX core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Internal GPU resolution** [beetle_psx_internal_resolution] (**1x(native)**/2x/4x/8x/16x/32x) + + Modify the resolution. + +??? note "*Internal GPU Resolution - 1x*" + ![](images\Cores\beetle_psx_hw\gpu_1.png) + +??? note "*Internal GPU Resolution - 2x*" + ![](images\Cores\beetle_psx_hw\gpu_2.png) + +- **Widescreen mode hack** [beetle_psx_widescreen_hack] (**Off**/On) + + If on, renders in 16:9. Works best on 3D games. + +??? note "Widescreen mode hack - Off" + ![](images\Cores\beetle_psx_hw\wide_off.png) + +??? note "Widescreen mode hack - On" + ![](images\Cores\beetle_psx_hw\wide_on.png) + +- **Frame duping (speedup)** [beetle_psx_frame_duping_enable] (**Off**/On) + + Redraws/reuses the last frame if there was no new data. + +- **CPU Overclock** [beetle_psx_cpu_overclock] (**Off**/On) + + Gets rid of memory access latency and makes all GTE instructions have 1 cycle latency. + +- **Skip BIOS** [beetle_psx_skipbios] (**Off**/On) + + Self-explanatory. **Some games have issues when this core option is enabled (Saga Frontier, PAL copy protected games, etc).** + +??? note "Skip BIOS - Off" + ![](images\Cores\beetle_psx_hw\bios.png) + +- **Dithering pattern** [beetle_psx_dither_mode] (**1x(native)**/internal resolution/Off) + + If off, disables the dithering pattern the PSX applies to combat color banding. **Only for the OpenGL and Vulkan renderers. Vulkan always disables the pattern.** + +- **Display internal FPS** [beetle_psx_display_internal_framerate] (**Off**/On) + + Shows the frame rate at which the emulated PSX is drawing at. **Onscreen Notifications must be enabled in the RetroArch Onscreen Display Settings.** + +??? note "Display internal FPS - On" + ![](images\Cores\beetle_psx_hw\fps.png) + +- **Initial scanline** [beetle_psx_initial_scanline] (0 to 40 in increments of 1. **0 is default**) + + Sets the first scanline to be drawn on screen. + +- **Last scanline** [beetle_psx_last_scanline] (210 to 239 in increments of 1. **239 is default**) + + Sets the last scanline to be drawn on screen. + +- **Initial scanline PAL** [beetle_psx_initial_scanline_pal] (0 to 40 in increments of 1. **0 is default**) + + Sets the first scanline to be drawn on screen for PAL systems. + +- **Last scanline PAL** [beetle_psx_last_scanline_pal] (260 to 287 in increments of 1. **287 is default**) + + Sets the last scanline to be drawn on screen for PAL systems. + +- **Crop Overscan** [beetle_psx_crop_overscan] (Off/**On**) + + Crop out the potentially random glitchy video output that would have been hidden by the bezel around the edge of a standard-definition television screen. + +??? note "Crop Overscan - On" + ![](images\Cores\beetle_psx_hw\scan_on.png) + +??? note "Crop Overscan - Off" + ![](images\Cores\beetle_psx_hw\scan_off.png) + +- **Additional Cropping** [beetle_psx_image_crop] (**Off**/1 px/2 px/3 px/4 px/5 px/6 px/7 px/8 px) + + Self-explanatory. + +- **Offset Cropped Image** [beetle_psx_image_offset] (**Off**/1 px/2 px/3 px/4 px/-4 px/-3 px/-2 px/-1 px) + + Self-explanatory. + +- **Analog self-calibration** [beetle_psx_analog_calibration] (**Off**/On) + + When enabled, monitors the max values reached by the input, using it as a calibration heuristic which then scales the analog coordinates sent to the emulator accordingly. For best results, rotate the sticks at max amplitude for the algorithm to get a good estimate of the scaling factor, otherwise it will adjust while playing. + +- **DualShock Analog button toggle** [beetle_psx_analog_toggle] (**Off**/On) + + Toggles the Analog button from DualShock controllers, if disabled analogs are always on, if enabled you can toggle their state by pressing and holding START+SELECT+L1+L2+R1+R2. + +- **Port 1: Multitap enable** [beetle_psx_enable_multitap_port1] (**Off**/On) + + Enables/Disables multitap functionality on port 1. + +- **Port 2: Multitap enable** [beetle_psx_enable_multitap_port2] (**Off**/On) + + Enables/Disables multitap functionality on port 2. + +- **Gun Cursor** [beetle_psx_gun_cursor] (**Cross**/Dot/Off) + + Choose the cursor for the 'Guncon / G-Con 45' and 'Justifier' Device Types. Setting it to off disables the crosshair. + +??? note "Gun Cursor - Cross" + ![](images\Cores\beetle_psx_hw\cursor_cross.png) + +??? note "Gun Cursor - Dot" + ![](images\Cores\beetle_psx_hw\cursor_dot.png) + +??? note "Gun Cursor - Off" + ![](images\Cores\beetle_psx_hw\cursor_off.png) + +- **Mouse Sensitivity** [beetle_psx_mouse_sensitivity] (5% to 200% in increments of 5%. **100% is default**) + + Configure the 'Mouse' Device Type's sensitivity. + +- **CD Access Method (restart)** [beetle_psx_cd_access_method] (**sync**/async/precache) + + The precache setting loads the complete image in memory at startup. Can potentially decrease loading times at the cost of increased startup time. + +- **Memcard 0 method** [beetle_psx_use_mednafen_memcard0_method] (**libretro**/mednafen) + + Choose the savedata format used for Memcard slot 0 (libretro or mednafen) . Look above at the [Saves section](https://docs.libretro.com/library/beetle_psx/#saves) for an explanation regarding the libretro and mednafen formats. + +- **Enable memory card 1** [beetle_psx_enable_memcard1] (Off/**On**) + + Enable or disables Memcard slot 1. When disabled, games cannot save/load to Memcard slot 1. **Memcard 1 must be enabled for game 'Codename Tenka'.** + +- **Shared memcards (restart)** [beetle_psx_shared_memory_cards] (**Setting1**/Setting2) + + Games will share and save/load to the same memory cards. + +
+ +| Memcard slot 0 | Memcard slot 1 | +|------------------------------------|------------------------------------| +| mednafen_psx_libretro_shared.0.mcr | mednafen_psx_libretro_shared.1.mcr | + +
+ +!!! attention + The 'Memcard 0 method' core option needs to be set to 'mednafen' for the 'Shared memcards' core option to function properly. + +- **Increase CD loading speed** [beetle_psx_cd_fastload] (**2x (native)**/4x/6x/8x/10x/12x/14x) + + An **experimental** feature, may not work correctly in all games. Some games may break if you set them past a certain speed. Can greatly reduce the loading times on games. + +## Controllers + +The Beetle PSX core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 8 device types + +- None - Input disabled. +- [**PlayStation Controller**](https://en.wikipedia.org/wiki/PlayStation_Controller) - Joypad - PlayStation Controller (SCPH-1080) +- [DualShock](https://en.wikipedia.org/wiki/DualShock) - Joypad - DualShock (SCPH-1200) +- [Analog Controller](https://en.wikipedia.org/wiki/Dual_Analog_Controller) - Joypad - PlayStation Dual Analog Controller(SCPH-1180) +- [Analog Joystick](https://en.wikipedia.org/wiki/PlayStation_Analog_Joystick) - Joypad - PlayStation Analog Joystick (SCPH-1110) +- [Guncon / G-Con 45](https://en.wikipedia.org/wiki/GunCon) - Lightgun - Namco Gun Controller (SLEH-00007) +- [Justifier](https://en.wikipedia.org/wiki/Konami_Justifier) - Lightgun - Konami Justifier lightgun peripheral (SLEH-00005, SLUH-00017) +- [Mouse](https://en.wikipedia.org/wiki/PlayStation_Mouse) - Mouse - PlayStation Mouse (SCPH-1090, SCPH-1030) +- [neGcon](https://en.wikipedia.org/wiki/NeGcon) - Joypad - Namco third party controller + +### Rumble support + +Rumble only works in the Beetle PSX core when + +- The content being ran has rumble support. +- The frontend being used has rumble support. +- The joypad device being used has rumble support. +- The corresponding user's device type is set to **DualShock** + +### Multitap support + +Activating multitap support in compatible games can be configured by the ['Port 1: Multitap enable' and 'Port 2: Multitap enable' core options](https://docs.libretro.com/library/beetle_psx#core-options). + +### Controller tables + +#### Joypad + +![](images/Controllers/beetle_psx_hw_ps1joypad.png) + +| User 1 - 8 Remap descriptors | RetroPad Inputs | PlayStation Controller Inputs | DualShock Inputs | Analog Controller Inputs | Analog Joystick Inputs | neGcon Inputs | +|-------------------------------|----------------------------------------------|------------------------------------------------|-------------------------------------------------|-------------------------------------------------|------------------------------------------------|---------------------------------| +| Cross | ![](images/RetroPad/Retro_B_Round.png) | ![](images/Button_Pack/PS3/PS3_Cross.png) | ![](images/Button_Pack/PS3/PS3_Cross.png) | ![](images/Button_Pack/PS3/PS3_Cross.png) | ![](images/Button_Pack/PS3/PS3_Cross.png) | Analog button I | +| Square | ![](images/RetroPad/Retro_Y_Round.png) | ![](images/Button_Pack/PS3/PS3_Square.png) | ![](images/Button_Pack/PS3/PS3_Square.png) | ![](images/Button_Pack/PS3/PS3_Square.png) | ![](images/Button_Pack/PS3/PS3_Square.png) | Analog button II | +| Select | ![](images/RetroPad/Retro_Select.png) | ![](images/Button_Pack/PS3/PS3_Select.png) | ![](images/Button_Pack/PS3/PS3_Select.png) | ![](images/Button_Pack/PS3/PS3_Select.png) | ![](images/Button_Pack/PS3/PS3_Select.png) | | +| Start | ![](images/RetroPad/Retro_Start.png) | ![](images/Button_Pack/PS3/PS3_Start.png) | ![](images/Button_Pack/PS3/PS3_Start.png) | ![](images/Button_Pack/PS3/PS3_Start.png) | ![](images/Button_Pack/PS3/PS3_Start.png) | Start | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Up.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Up.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Up.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Up.png) | D-Pad Up | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Down.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Down.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Down.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Down.png) | D-Pad Down | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Left.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Left.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Left.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Left.png) | D-Pad Left | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Right.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Right.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Right.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Right.png) | D-Pad Right | +| Circle | ![](images/RetroPad/Retro_A_Round.png) | ![](images/Button_Pack/PS3/PS3_Circle.png) | ![](images/Button_Pack/PS3/PS3_Circle.png) | ![](images/Button_Pack/PS3/PS3_Circle.png) | ![](images/Button_Pack/PS3/PS3_Circle.png) | A | +| Triangle | ![](images/RetroPad/Retro_X_Round.png) | ![](images/Button_Pack/PS3/PS3_Triangle.png) | ![](images/Button_Pack/PS3/PS3_Triangle.png) | ![](images/Button_Pack/PS3/PS3_Triangle.png) | ![](images/Button_Pack/PS3/PS3_Triangle.png) | B | +| L1 | ![](images/RetroPad/Retro_L1.png) | ![](images/Button_Pack/PS3/PS3_L1.png) | ![](images/Button_Pack/PS3/PS3_L1.png) | ![](images/Button_Pack/PS3/PS3_L1.png) | ![](images/Button_Pack/PS3/PS3_L1.png) | Left shoulder button (analog) | +| R1 | ![](images/RetroPad/Retro_R1.png) | ![](images/Button_Pack/PS3/PS3_R1.png) | ![](images/Button_Pack/PS3/PS3_R1.png) | ![](images/Button_Pack/PS3/PS3_R1.png) | ![](images/Button_Pack/PS3/PS3_R1.png) | Right shoulder button (digital) | +| L2 | ![](images/RetroPad/Retro_L2.png) | ![](images/Button_Pack/PS3/PS3_L2.png) | ![](images/Button_Pack/PS3/PS3_L2.png) | ![](images/Button_Pack/PS3/PS3_L2.png) | ![](images/Button_Pack/PS3/PS3_L2.png) | Analog button II | +| R2 | ![](images/RetroPad/Retro_R2.png) | ![](images/Button_Pack/PS3/PS3_R2.png) | ![](images/Button_Pack/PS3/PS3_R2.png) | ![](images/Button_Pack/PS3/PS3_R2.png) | ![](images/Button_Pack/PS3/PS3_R2.png) | Analog button I | +| L3 | ![](images/RetroPad/Retro_L3.png) | | ![](images/Button_Pack/PS3/PS3_L3.png) | | | | +| R3 | ![](images/RetroPad/Retro_R3.png) | | ![](images/Button_Pack/PS3/PS3_R3.png) | | | | +| Left Analog X | ![](images/RetroPad/Retro_Left_Stick.png) X | | ![](images/Button_Pack/PS3/PS3_Left_Stick.png) | ![](images/Button_Pack/PS3/PS3_Left_Stick.png) | Left Joystick X | Twist | +| Left Analog Y | ![](images/RetroPad/Retro_Left_Stick.png) Y | | ![](images/Button_Pack/PS3/PS3_Left_Stick.png) | ![](images/Button_Pack/PS3/PS3_Left_Stick.png) | Left Joystick Y | | +| Right Analog X | ![](images/RetroPad/Retro_Right_Stick.png) X | | ![](images/Button_Pack/PS3/PS3_Right_Stick.png) | ![](images/Button_Pack/PS3/PS3_Right_Stick.png) | Right Joystick X | | +| Right Analog Y | ![](images/RetroPad/Retro_Right_Stick.png) Y | | ![](images/Button_Pack/PS3/PS3_Right_Stick.png) | ![](images/Button_Pack/PS3/PS3_Right_Stick.png) | Right Joystick Y | | + +#### Mouse + +| RetroMouse Inputs | Mouse Inputs | +|-----------------------------------------------------|--------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Mouse Cursor | Mouse Cursor | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | Mouse Left Button | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | Mouse Right Button | + +#### Lightgun + +| RetroLightgun Inputs | Guncon / G-Con 45 Inputs | Justifier Inputs | +|------------------------------------------------------|-----------------------------|---------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Gun Crosshair | Guncon / G-Con 45 Crosshair | Justifier Crosshair | +| Gun Trigger | Guncon / G-Con 45 Trigger | Justifier Trigger | +| Gun Reload | Guncon / G-Con 45 Reload | Justifier Reload | +| Gun Aux A | Guncon / G-Con 45 A | Justifier Aux | +| Gun Aux B | Guncon / G-Con 45 B | | +| Gun Start | | Justifier Start | + +## Compatibility + +A list of known emulation bugs can be found here [https://forum.fobby.net/index.php?t=msg&th=1114&start=0&](https://forum.fobby.net/index.php?t=msg&th=1114&start=0&) + +## External Links + +- [Beetle PSX Libretro Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/mednafen_psx_libretro.info) +- [Beetle PSX Libretro Github Repository](https://github.com/libretro/beetle-psx-libretro) +- [Report Beetle PSX Core Issues Here](https://github.com/libretro/beetle-psx-libretro/issues) +- [Official Mednafen Website](https://mednafen.github.io/) +- [Official Mednafen Downloads](https://mednafen.github.io/releases/) + +### See also + +#### PSX + +- [PlayStation (Beetle PSX HW)](https://docs.libretro.com/library/beetle_psx_hw/) +- [PlayStation (PCSX ReARMed)](https://docs.libretro.com/library/pcsx_rearmed/) \ No newline at end of file diff --git a/docs/library/beetle_psx_hw.md b/docs/library/beetle_psx_hw.md new file mode 100644 index 00000000..6cf7a188 --- /dev/null +++ b/docs/library/beetle_psx_hw.md @@ -0,0 +1,543 @@ +# PlayStation (Beetle PSX HW) + +## Background + +Beetle PSX is a port/fork of Mednafen's PSX module to the libretro API. It can be compiled in C++98 mode, excluding the Vulkan renderer, which is written in C++11 for the time being. Beetle PSX currently runs on Linux, OSX and Windows. + +Notable additions in this fork are: + +- PBP and CHD file format support, developed by Zapeth; +- Software renderer internal resolution upscaling, implemented by simias; +- An OpenGL 3.2 renderer, developed by simias; +- A Vulkan renderer, developed by TinyTiger; +- PGXP perspectve correct texturing and subpixel precision, developed by iCatButler; + +### Author/License + +The Beetle PSX HW core has been authored by + +- [Mednafen Team](https://mednafen.github.io/) + +The Beetle PSX HW core is licensed under + +- [GPLv2](https://github.com/libretro/beetle-psx-libretro/blob/master/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Beetle PSX HW core have the following file extensions: + +- .cue +- .toc +- .m3u +- .ccd +- .exe +- .pbp +- .chd + +## Databases + +RetroArch database(s) that are associated with the Beetle PSX HW core: + +- [Sony - PlayStation](https://github.com/libretro/libretro-database/blob/master/rdb/Sony%20-%20PlayStation.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +| Filename | Description | md5sum | +|:------------:|:-----------------------------------:|:--------------------------------:| +| scph5500.bin | PS1 JP BIOS - Required for JP games | 8dd7d5296a650fac7319bce665a6a53c | +| scph5501.bin | PS1 US BIOS - Required for US games | 490f666e1afb15b7362b406ed1cea246 | +| scph5502.bin | PS1 EU BIOS - Required for EU games | 32736f17079d0b2b7024407c39bd3050 | + +## Features + +Frontend-level settings or features that the Beetle PSX HW core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay (State based) | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| Cheats (Cheats menu) | ✔ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | - | +| Rumble | ✔ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✔ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Beetle PSX HW core's directory name is 'Beetle PSX HW' + +The Beetle PSX HW core saves/loads to/from these directories. + +**Frontend's Save directory** + +- Memory cards + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The Beetle PSX HW core's core provided FPS is (FPS) +- The Beetle PSX HW core's core provided sample rate is (Rate) +- The Beetle PSX HW core's core provided aspect ratio is (Ratio) + +### Loading content + +Beetle PSX HW needs a cue-sheet that points to an image file. A cue sheet, or cue file, is a metadata file which describes how the tracks of a CD or DVD are laid out. + +If you have e.g. `foo.bin`, you should create a text file and save it as `foo.cue`. Most PS1 games are single-track, so the cue file contents should look like this: + +`foobin.cue` +``` + FILE "foo.bin" BINARY + TRACK 01 MODE1/2352 + INDEX 01 00:00:00 +``` + +After that, you can load the `foo.cue` file in RetroArch with the Beetle PSX HW core. + +!!! attention + Certain PS1 games are multi-track, so their .cue files might be more complicated. + +#### Playing PAL copy protected games + +PAL copy protected games need a SBI Subchannel file next to the bin/cue files in order to get past the copy protection. + +- Ape Escape (Europe).bin +- Ape Escape (Europe).cue +- **Ape Escape (Europe).sbi** + +!!! warning + For proper PAL game compatibility, the 'Skip BIOS' core option needs to be set to off. + +### Multiple-disk games + +If foo is a multiple-disk game, you should have .cue files for each one, e.g. `foo (Disc 1).cue`, `foo (Disc 2).cue`, `foo (Disc 3).cue`. + +To take advantage of Beetle PSW HW's Disk Control feature for disk swapping, an index file (a m3u file) should be made. + +Create a text file and save it as `foo.m3u`. Then enter your game's .cue files on it. The m3u file contents should look something like this: + +`foo.m3u` +``` +foo (Disc 1).cue +foo (Disc 2).cue +foo (Disc 3).cue +``` + +After that, you can load the `foo.m3u` file in RetroArch with the Beetle PSX HW core. + +Here's a m3u example done with Valkryie Profile + +![](images\Cores\beetle_psx_hw\m3u.png) + +!!! attention + Adding multi-track games to a RetroArch playlist is recommended. (Manually add an entry a playlist that points to `foo.m3u`) + +### Game compression + +Alternatively to using cue sheets with .bin files, you can convert your games to .pbp (Playstation Portable update file) to reduce file sizes and neaten up your game folder. A recommended .pbp convert tool is PSX2PSP. + +If converting a multiple-disk game, all disks should be added to the same .pbp file, rather than making a .m3u file for them. + +Most conversion tools will want a single .bin file for each disk. If your game uses multiple .bin files (tracks) per disk, you will have to mount the cue sheet to a virtual drive and re-burn the images onto a single track before conversion. + +!!! attention + RetroArch does not currently have .pbp database due to variability in users' conversion methods. All .pbp games will have to be added to playlists manually. + +### Saves + +For game savedata storage, the PSX console used memory cards. The PSX console had two slots for memory cards. + +In this doc, the first memory card slot will be referred to as 'Memcard slot 0' and the second slot will be referred to as 'Memcard slot 1'. + +For memory card functionality and usage, the Beetle PSX HW core will either use the Libretro savedata format or the Mednafen savedata format. + +
+ +| Libretro savedata format | Mednafen savedata format | +|----------------------------|----------------------------------| +| gamename.srm | gamename.slot#.mcr | + +
+ +**By default**, the Beetle PSX HW core will use Libretro's savedata format for Memcard slot 0 and Mednafen's savedata format for Memcard slot 1. + +
+ +| Memcard slot 0 | Memcard slot 1 | +|----------------|----------------| +| gamename.srm | gamename.1.mcr | + +
+ +!!! attention + Memory card behavior can be controlled with the following [core options](https://docs.libretro.com/library/beetle_psx/#core-options) (Memcard 0 method, Enable memory card 1, Shared memcards). + +**By default**, the filenames of the Memcard savedata will match the loaded cue or m3u or pbp filename, like this: + +- Loaded content: Breath of Fire III (USA).cue + +- **Memcard slot 0: Breath of Fire III (USA).srm** + +- **Memcard slot 1: Breath of Fire III (USA).1.mcr** + +or + +- Loaded content: Final Fantasy VII (USA).m3u + +- **Memcard slot 0: Final Fantasy VII (USA).srm** + +- **Memcard slot 1: Final Fantasy VII (USA).1.mcr** + +or + +- Loaded content: Wild Arms 2 (USA).pbp + +- **Memcard slot 0: `Wild Arms 2 (USA).srm** + +- **Memcard slot 1: `Wild Arms 2 (USA).1.mcr** + +!!! attention + To import your old memory cards from other emulators, you need to rename them to either the Libretro savedata format or the Mednafen savedata format. + +!!! warning + Keep in mind that save states also include the state of the memory card; carelessly loading an old save state will **OVEWRITE** the memory card, potentially resulting in lost saved games. **You can set the 'Don't overwrite SaveRAM on loading savestate' option in RetroArch's Saving settings to On to prevent this.** + +## Core options + +The Beetle PSX HW core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Renderer (restart)** [beetle_psx_hw_renderer] (**vulkan**/opengl/software) + + Choose which video renderer will be used. **Software is the most accurate renderer.** The OpenGL and Vulkan renderers will enable and/or speedup enhancements like upscaling and texture filtering. **The OpenGL and Vulkan renderers must be used with its corresponding video driver in RetroArch's Driver settings.** **Also, Hardware Shared Context must be enabled in RetroArch's Core settings.** + +- **Software framebuffer** [beetle_psx_hw_renderer_software_fb] (Off/**On**) + + If off, the software renderer will skip some steps. Potential speedup. Causes bad graphics when doing framebuffer readbacks. + +- **Adaptive smoothing** [beetle_psx_hw_adaptive_smoothing] (Off/**On**) + + When upscaling, smooths out 2D elements while keeping 3D elements sharp. Only for the Vulkan renderer at the moment. + +??? note "*Adapative smoothing - Off*" + ![](images\Cores\beetle_psx_hw\smooth_off.png) + +??? note "*Adaptive smoothing - On*" + ![](images\Cores\beetle_psx_hw\smooth_on.png) + +- **Internal GPU resolution** [beetle_psx_hw_internal_resolution] (**1x(native)**/2x/4x/8x/16x/32x) + + Modify the resolution. + +??? note "*Internal GPU Resolution - 1x*" + ![](images\Cores\beetle_psx_hw\gpu_1.png) + +??? note "*Internal GPU Resolution - 2x*" + ![](images\Cores\beetle_psx_hw\gpu_2.png) + +- **Texture filtering** [beetle_psx_hw_filter] (**nearest**/SABR/xBR/bilinear/3-point/JINC2) + + Per-texture filtering. Only for the OpenGL renderer at the moment. + +??? note "*nearest*" + ![](images\Cores\beetle_psx_hw\nearest.png) + +??? note "*SABR*" + ![](images\Cores\beetle_psx_hw\sabr.png) + +??? note "*xBR*" + ![](images\Cores\beetle_psx_hw\xbr.png) + +??? note "*bilinear*" + ![](images\Cores\beetle_psx_hw\bilinear.png) + +??? note "*3-point*" + ![](images\Cores\beetle_psx_hw\3point.png) + +??? note "*JINC2*" + ![](images\Cores\beetle_psx_hw\jinc2.png) + +- **Internal color depth** [beetle_psx_hw_internal_color_depth] (**dithered 16bpp (native)**/32bpp) + + PSX had 16bpp depth, Beetle PSX HW can go up to 32bpp. **Only for the OpenGL and Vulkan renderers at the moment.** The Vulkan renderer always uses 32bpp. + +- **Wireframe mode** [beetle_psx_hw_wireframe] (**Off**/On) + + Shows only the outlines of polygons. Only for the OpenGL renderer. **For debug use.** + +??? note "Wireframe mode - On" + ![](images\Cores\beetle_psx_hw\wire.png) + +- **Display full VRAM** [beetle_psx_hw_display_vram] (**Off**/On) + + Everything in VRAM is drawn on screen. **For debug use.** + +??? note "Display full VRAM - On" + ![](images\Cores\beetle_psx_hw\vram.png) + +- **PGXP operation mode** [beetle_psx_hw_pgxp_mode] (**Off**/memory only/memory + CPU) + + When on, floating point coordinates will be used for vertex positions, to avoid the PSX polygon jitter. 'memory + cpu' mode can further reduce jitter at the cost of performance and geometry glitches. + +- **PGXP vertex cache** [beetle_psx_hw_pgxp_caching] (**Off**/On) + + Maintains a cache for vertices. May result in better performance but can result in graphics glitches in most games. + +- **PGXP perspective correct texturing** [beetle_psx_hw_pgxp_texture] (**Off**/On) + + Original PSX did affine texture mapping, resulting in e.g. crooked lines across walls. This fixes it. + +- **Widescreen mode hack** [beetle_psx_hw_widescreen_hack] (**Off**/On) + + If on, renders in 16:9. Works best on 3D games. + +??? note "Widescreen mode hack - Off" + ![](images\Cores\beetle_psx_hw\wide_off.png) + +??? note "Widescreen mode hack - On" + ![](images\Cores\beetle_psx_hw\wide_on.png) + +- **Frame duping (speedup)** [beetle_psx_hw_frame_duping_enable] (**Off**/On) + + Redraws/reuses the last frame if there was no new data. + +- **CPU Overclock** [beetle_psx_hw_cpu_overclock] (**Off**/On) + + Gets rid of memory access latency and makes all GTE instructions have 1 cycle latency. + +- **Skip BIOS** [beetle_psx_hw_skipbios] (**Off**/On) + + Self-explanatory. **Some games have issues when this core option is enabled (Saga Frontier, PAL copy protected games, etc).** + +??? note "Skip BIOS - Off" + ![](images\Cores\beetle_psx_hw\bios.png) + +- **Dithering pattern** [beetle_psx_hw_dither_mode] (**1x(native)**/internal resolution/Off) + + If off, disables the dithering pattern the PSX applies to combat color banding. **Only for the OpenGL and Software renderers. Vulkan always disables the pattern.** + +- **Display internal FPS** [beetle_psx_hw_display_internal_framerate] (**Off**/On) + + Shows the frame rate at which the emulated PSX is drawing at. **Onscreen Notifications must be enabled in the RetroArch Onscreen Display Settings.** + +??? note "Display internal FPS - On" + ![](images\Cores\beetle_psx_hw\fps.png) + +- **Initial scanline** [beetle_psx_hw_initial_scanline] (0 to 40 in increments of 1. **0 is default**) + + Sets the first scanline to be drawn on screen. + +- **Last scanline** [beetle_psx_hw_last_scanline] (210 to 239 in increments of 1. **239 is default**) + + Sets the last scanline to be drawn on screen. + +- **Initial scanline PAL** [beetle_psx_hw_initial_scanline_pal] (0 to 40 in increments of 1. **0 is default**) + + Sets the first scanline to be drawn on screen for PAL systems. + +- **Last scanline PAL** [beetle_psx_hw_last_scanline_pal] (260 to 287 in increments of 1. **287 is default**) + + Sets the last scanline to be drawn on screen for PAL systems. + +- **Crop Overscan** [beetle_psx_hw_crop_overscan] (**Setting1**/Setting2) + + Crop out the potentially random glitchy video output that would have been hidden by the bezel around the edge of a standard-definition television screen. + +??? note "Crop Overscan - On" + ![](images\Cores\beetle_psx_hw\scan_on.png) + +??? note "Crop Overscan - Off" + ![](images\Cores\beetle_psx_hw\scan_on.png) + +- **Additional Cropping** [beetle_psx_hw_image_crop] (**Off**/1 px/2 px/3 px/4 px/5 px/6 px/7 px/8 px) + + Self-explanatory. + +- **Offset Cropped Image** [beetle_psx_hw_image_offset] (**Off**/1 px/2 px/3 px/4 px/-4 px/-3 px/-2 px/-1 px) + + Self-explanatory. + +- **Analog self-calibration** [beetle_psx_hw_analog_calibration] (**Off**/On) + + When enabled, monitors the max values reached by the input, using it as a calibration heuristic which then scales the analog coordinates sent to the emulator accordingly. For best results, rotate the sticks at max amplitude for the algorithm to get a good estimate of the scaling factor, otherwise it will adjust while playing. + +- **DualShock Analog button toggl** [beetle_psx_hw_analog_toggle] (**Setting1**/Setting2) + + Toggles the Analog button from DualShock controllers, if disabled analogs are always on, if enabled you can toggle their state by pressing and holding START+SELECT+L1+L2+R1+R2. + +- **Port 1: Multitap enable** [beetle_psx_hw_enable_multitap_port2] (**Off**/On) + + Enables/Disables multitap functionality on port 1. + +- **Port 2: Multitap enable** [beetle_psx_hw_enable_multitap_port2] (**Off**/On) + + Enables/Disables multitap functionality on port 2. + +- **Gun Cursor** [beetle_psx_hw_gun_cursor] (**Cross**/Dot/Off) + + Choose the cursor for the 'Guncon / G-Con 45' and 'Justifier' Device Types. Setting it to off disables the crosshair. + +??? note "Gun Cursor - Cross" + ![](images\Cores\beetle_psx_hw\cursor_cross.png) + +??? note "Gun Cursor - Dot" + ![](images\Cores\beetle_psx_hw\cursor_dot.png) + +??? note "Gun Cursor - Off" + ![](images\Cores\beetle_psx_hw\cursor_off.png) + +- **Mouse Sensitivity** [beetle_psx_hw_mouse_sensitivity] (5% to 200% in increments of 5%. **100% is default**) + + Configure the 'Mouse' Device Type's sensitivity. + +- **CD Access Method (restart)** [beetle_psx_hw_cd_access_method] (**sync**/async/precache) + + The precache setting loads the complete image in memory at startup. Can potentially decrease loading times at the cost of increased startup time. + +- **Memcard 0 method** [beetle_psx_hw_use_mednafen_memcard0_method] (**libretro**/mednafen) + + Choose the savedata format used for Memcard 0 (libretro or mednafen). Look above at the [Saves section](https://docs.libretro.com/library/beetle_psx_hw/#saves) for an explanation regarding the libretro and mednafen formats. + +- **Enable memory card 1** [beetle_psx_hw_enable_memcard1] (Off/**On**) + + Enable or disables Memcard slot 1. When disabled, games cannot save/load to Memcard slot 1. **Memcard 1 must be enabled for game 'Codename Tenka'.** + +- **Shared memcards (restart)** [beetle_psx_hw_shared_memory_cards] (**Off**/On) + + Games will share and save/load to the same memory cards. + +
+ +| Memcard slot 0 | Memcard slot 1 | +|------------------------------------|------------------------------------| +| mednafen_psx_libretro_shared.0.mcr | mednafen_psx_libretro_shared.1.mcr | + +
+ +!!! attention + The 'Memcard 0 method' core option needs to be set to 'mednafen' for the 'Shared memcards' core option to function properly. + +- **Increase CD loading speed** [beetle_psx_hw_cd_fastload] (**2x (native)**/4x/6x/8x/10x/12x/14x) + + An **experimental** feature, may not work correctly in all games. Some games may break if you set them past a certain speed. Can greatly reduce the loading times on games. + +## Controllers + +The Beetle PSX HW core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 8 device types + +- None - Input disabled. +- [**PlayStation Controller**](https://en.wikipedia.org/wiki/PlayStation_Controller) - Joypad - PlayStation Controller (SCPH-1080) +- [DualShock](https://en.wikipedia.org/wiki/DualShock) - Joypad - DualShock (SCPH-1200) +- [Analog Controller](https://en.wikipedia.org/wiki/Dual_Analog_Controller) - Joypad - PlayStation Dual Analog Controller(SCPH-1180) +- [Analog Joystick](https://en.wikipedia.org/wiki/PlayStation_Analog_Joystick) - Joypad - PlayStation Analog Joystick (SCPH-1110) +- [Guncon / G-Con 45](https://en.wikipedia.org/wiki/GunCon) - Lightgun - Namco Gun Controller (SLEH-00007) +- [Justifier](https://en.wikipedia.org/wiki/Konami_Justifier) - Lightgun - Konami Justifier lightgun peripheral (SLEH-00005, SLUH-00017) +- [Mouse](https://en.wikipedia.org/wiki/PlayStation_Mouse) - Mouse - PlayStation Mouse (SCPH-1090, SCPH-1030) +- [neGcon](https://en.wikipedia.org/wiki/NeGcon) - Joypad - Namco third party controller + +### Rumble support + +Rumble only works in the Beetle PSX HW core when + +- The content being ran has rumble support. +- The frontend being used has rumble support. +- The joypad device being used has rumble support. +- The corresponding user's device type is set to **DualShock** + +### Multitap support + +['Port 1: Multitap enable' and 'Port 2: Multitap enable' core options](https://docs.libretro.com/library/beetle_psx_hw#core-options). + +### Controller tables + +#### Joypad + +![](images/Controllers/beetle_psx_hw_ps1joypad.png) + +| User 1 - 8 Remap descriptors | RetroPad Inputs | PlayStation Controller Inputs | DualShock Inputs | Analog Controller Inputs | Analog Joystick Inputs | neGcon Inputs | +|-------------------------------|----------------------------------------------|------------------------------------------------|-------------------------------------------------|-------------------------------------------------|------------------------------------------------|---------------------------------| +| Cross | ![](images/RetroPad/Retro_B_Round.png) | ![](images/Button_Pack/PS3/PS3_Cross.png) | ![](images/Button_Pack/PS3/PS3_Cross.png) | ![](images/Button_Pack/PS3/PS3_Cross.png) | ![](images/Button_Pack/PS3/PS3_Cross.png) | Analog button I | +| Square | ![](images/RetroPad/Retro_Y_Round.png) | ![](images/Button_Pack/PS3/PS3_Square.png) | ![](images/Button_Pack/PS3/PS3_Square.png) | ![](images/Button_Pack/PS3/PS3_Square.png) | ![](images/Button_Pack/PS3/PS3_Square.png) | Analog button II | +| Select | ![](images/RetroPad/Retro_Select.png) | ![](images/Button_Pack/PS3/PS3_Select.png) | ![](images/Button_Pack/PS3/PS3_Select.png) | ![](images/Button_Pack/PS3/PS3_Select.png) | ![](images/Button_Pack/PS3/PS3_Select.png) | | +| Start | ![](images/RetroPad/Retro_Start.png) | ![](images/Button_Pack/PS3/PS3_Start.png) | ![](images/Button_Pack/PS3/PS3_Start.png) | ![](images/Button_Pack/PS3/PS3_Start.png) | ![](images/Button_Pack/PS3/PS3_Start.png) | Start | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Up.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Up.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Up.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Up.png) | D-Pad Up | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Down.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Down.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Down.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Down.png) | D-Pad Down | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Left.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Left.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Left.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Left.png) | D-Pad Left | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Right.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Right.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Right.png) | ![](images/Button_Pack/PS3/PS3_Dpad_Right.png) | D-Pad Right | +| Circle | ![](images/RetroPad/Retro_A_Round.png) | ![](images/Button_Pack/PS3/PS3_Circle.png) | ![](images/Button_Pack/PS3/PS3_Circle.png) | ![](images/Button_Pack/PS3/PS3_Circle.png) | ![](images/Button_Pack/PS3/PS3_Circle.png) | A | +| Triangle | ![](images/RetroPad/Retro_X_Round.png) | ![](images/Button_Pack/PS3/PS3_Triangle.png) | ![](images/Button_Pack/PS3/PS3_Triangle.png) | ![](images/Button_Pack/PS3/PS3_Triangle.png) | ![](images/Button_Pack/PS3/PS3_Triangle.png) | B | +| L1 | ![](images/RetroPad/Retro_L1.png) | ![](images/Button_Pack/PS3/PS3_L1.png) | ![](images/Button_Pack/PS3/PS3_L1.png) | ![](images/Button_Pack/PS3/PS3_L1.png) | ![](images/Button_Pack/PS3/PS3_L1.png) | Left shoulder button (analog) | +| R1 | ![](images/RetroPad/Retro_R1.png) | ![](images/Button_Pack/PS3/PS3_R1.png) | ![](images/Button_Pack/PS3/PS3_R1.png) | ![](images/Button_Pack/PS3/PS3_R1.png) | ![](images/Button_Pack/PS3/PS3_R1.png) | Right shoulder button (digital) | +| L2 | ![](images/RetroPad/Retro_L2.png) | ![](images/Button_Pack/PS3/PS3_L2.png) | ![](images/Button_Pack/PS3/PS3_L2.png) | ![](images/Button_Pack/PS3/PS3_L2.png) | ![](images/Button_Pack/PS3/PS3_L2.png) | Analog button II | +| R2 | ![](images/RetroPad/Retro_R2.png) | ![](images/Button_Pack/PS3/PS3_R2.png) | ![](images/Button_Pack/PS3/PS3_R2.png) | ![](images/Button_Pack/PS3/PS3_R2.png) | ![](images/Button_Pack/PS3/PS3_R2.png) | Analog button I | +| L3 | ![](images/RetroPad/Retro_L3.png) | | ![](images/Button_Pack/PS3/PS3_L3.png) | | | | +| R3 | ![](images/RetroPad/Retro_R3.png) | | ![](images/Button_Pack/PS3/PS3_R3.png) | | | | +| Left Analog X | ![](images/RetroPad/Retro_Left_Stick.png) X | | ![](images/Button_Pack/PS3/PS3_Left_Stick.png) | ![](images/Button_Pack/PS3/PS3_Left_Stick.png) | Left Joystick X | Twist | +| Left Analog Y | ![](images/RetroPad/Retro_Left_Stick.png) Y | | ![](images/Button_Pack/PS3/PS3_Left_Stick.png) | ![](images/Button_Pack/PS3/PS3_Left_Stick.png) | Left Joystick Y | | +| Right Analog X | ![](images/RetroPad/Retro_Right_Stick.png) X | | ![](images/Button_Pack/PS3/PS3_Right_Stick.png) | ![](images/Button_Pack/PS3/PS3_Right_Stick.png) | Right Joystick X | | +| Right Analog Y | ![](images/RetroPad/Retro_Right_Stick.png) Y | | ![](images/Button_Pack/PS3/PS3_Right_Stick.png) | ![](images/Button_Pack/PS3/PS3_Right_Stick.png) | Right Joystick Y | | + +#### Mouse + +| RetroMouse Inputs | Mouse Inputs | +|-----------------------------------------------------|--------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Mouse Cursor | Mouse Cursor | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | Mouse Left Button | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | Mouse Right Button | + +#### Lightgun + +| RetroLightgun Inputs | Guncon / G-Con 45 Inputs | Justifier Inputs | +|------------------------------------------------------|-----------------------------|---------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Gun Crosshair | Guncon / G-Con 45 Crosshair | Justifier Crosshair | +| Gun Trigger | Guncon / G-Con 45 Trigger | Justifier Trigger | +| Gun Reload | Guncon / G-Con 45 Reload | Justifier Reload | +| Gun Aux A | Guncon / G-Con 45 A | Justifier Aux | +| Gun Aux B | Guncon / G-Con 45 B | | +| Gun Start | | Justifier Start | + +## Compatibility + +A list of known emulation bugs can be found here [https://forum.fobby.net/index.php?t=msg&th=1114&start=0&](https://forum.fobby.net/index.php?t=msg&th=1114&start=0&) + +## External Links + +- [Beetle PSX HW Libretro Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/mednafen_psx_hw_libretro.info) +- [Beetle PSX HW Libretro Github Repository](https://github.com/libretro/beetle-psx-libretro) +- [Report Beetle PSX HW Core Issues Here](https://github.com/libretro/beetle-psx-libretro/issues) +- [Official Mednafen Website](https://mednafen.github.io/) +- [Official Mednafen Downloads](https://mednafen.github.io/releases/) + +### See also + +#### PSX + +- [PlayStation (Beetle PSX)](https://docs.libretro.com/library/beetle_psx/) +- [PlayStation (PCSX ReARMed)](https://docs.libretro.com/library/pcsx_rearmed/) \ No newline at end of file diff --git a/docs/library/beetle_saturn.md b/docs/library/beetle_saturn.md new file mode 100644 index 00000000..266bbfe5 --- /dev/null +++ b/docs/library/beetle_saturn.md @@ -0,0 +1,305 @@ +# Sega - Saturn (Beetle Saturn) + +## Background + +Port of standalone Mednafen Saturn to libretro. + +### Author/License + +The Beetle Saturn core has been authored by + +- [Mednafen Team](https://mednafen.github.io/) + +The Beetle Saturn core is licensed under + +- [GPLv2](https://github.com/libretro/beetle-saturn-libretro/blob/master/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Beetle Saturn core have the following file extensions: + +- .cue +- .toc +- .m3u +- .ccd +- .chd + +## Databases + +RetroArch database(s) that are associated with the Beetle Saturn core: + +- [Sega - Saturn](https://github.com/libretro/libretro-database/blob/master/rdb/Sega%20-%20Saturn.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +!!! attention + The King of Fighters '95 and Ultraman: Hikari no Kyojin Densetsu ROM Cartridges can be manually selected with the ['Cartridge' core option](https://docs.libretro.com/library/beetle_saturn#core-options). + +| Filename | Description | md5sum | +|:----------------:|:--------------------------------------------------------------------------:|:--------------------------------:| +| sega_101.bin | Saturn JP BIOS - Required for JP games | 85ec9ca47d8f6807718151cbcca8b964 | +| mpr-17933.bin | Saturn US/EU BIOS - Required for US/EU games | 3240872c70984b6cbfda1586cab68dbe | +| mpr-18811-mx.ic1 | The King of Fighters '95 ROM Cartridge - Required for this game | 255113ba943c92a54facd25a10fd780c | +| mpr-19367-mx.ic1 | Ultraman: Hikari no Kyojin Densetsu ROM Cartridge - Required for this game | 1cd19988d1d72a3e7caa0b73234c96b4 | + +## Features + +Frontend-level settings or features that the Beetle Saturn core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | - | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | - | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Beetle Saturn core's internal core name is 'Mednafen Saturn' + +The Beetle Saturn core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.bcr (External cartridge backup save) +- 'content-name'.bkr (Internal save) +- 'content-name'.smpc (SMPC's emulated Real-Time Clock save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The Beetle Saturn core's core provided FPS is 59.82 +- The Beetle Saturn core's core provided sample rate is 44100 Hz +- The Beetle Saturn core's core provided aspect ratio is 4/3 + +## Loading Saturn Sega content + +Beetle Saturn needs a cue-sheet that points to an image file. A cue sheet, or cue file, is a metadata file which describes how the tracks of a CD or DVD are laid out. + +If you have e.g. `foo.bin`, you should create a text file and save it as `foo.cue`. If you're playing a single-track Saturn game, then the cue file contents should look like this: + +`foobin.cue` +``` + FILE "foo.bin" BINARY + TRACK 01 MODE1/2352 + INDEX 01 00:00:00 +``` + +After that, you can load the `foo.cue` file in RetroArch with the Beetle Saturn core. + +!!! attention + Certain Saturn games are multi-track, so their .cue files might be more complicated. + +## Multiple-disk games + +If foo is a multiple-disk game, you should have .cue files for each one, e.g. `foo (Disc 1).cue`, `foo (Disc 2).cue`, `foo (Disc 3).cue`. + +To take advantage of Beetle Saturn's Disk Control feature for disk swapping, an index file (a m3u file) should be made. + +Create a text file and save it as `foo.m3u`. Then enter your game's .cue files on it. The m3u file contents should look something like this: + +`foo.m3u` +``` +foo (Disc 1).cue +foo (Disc 2).cue +foo (Disc 3).cue +``` + +After that, you can load the `foo.m3u` file in RetroArch with the Beetle Saturn core. + +## Core options + +The Beetle Saturn core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **System Region** [beetle_saturn_region] (**Auto Detect**|Japan|North America|Europe|South Korea|Asia (NTSC)|Asia (PAL)|Brazil|Latin America) + + Choose which region the system is from. + +- **Cartridge** [beetle_saturn_cart] (**Auto Detect**|None|Backup Memory|Extended RAM (1MB)|Extended RAM (4MB)|The King of Fighters '95|Ultraman: Hikari no Kyojin Densetsu) + + A list of games that require a cartridge can be found [here](https://www.satakore.com/cartridge.php). + +- **6Player Adaptor on Port 1** [beetle_saturn_multitap_port1] (**disabled**|enabled) + + Enable [multitap](https://segaretro.org/Saturn_6_Player_Adaptor) on Saturn port 1. + +- **6Player Adaptor on Port 2** [beetle_saturn_multitap_port2] (**disabled**|enabled) + + Enable [multitap](https://segaretro.org/Saturn_6_Player_Adaptor) on Saturn port 2. + +- **Analog Stick Deadzone** [beetle_saturn_analog_stick_deadzone] (**15%**|20%|25%|30%|0%|5%|10%) + + Configure the '3D Control Pad' Device Type's analog deadzone. + +- **Trigger Deadzone** [beetle_saturn_trigger_deadzone] (**15%**|20%|25%|30%|0%|5%|10%) + + Configure the '3D Control Pad' Device Type's trigger deadzone. + +- **Mouse Sensitivity** [beetle_saturn_mouse_sensitivity] (5% to 200% in increments of 5%. **100% is default**) + + Configure the 'Mouse' device type's sensitivity. + +- **Gun Crosshair** [beetle_saturn_virtuagun_crosshair] (**Cross**|Dot|Off) + + Choose the crosshair for the 'Stunner' and 'Virtua Gun' device types. Setting it to Off disables the crosshair. + +??? note "Gun - Crosshair - Cross" + ![](images\Cores\beetle_saturn\cross.png) + +??? note "Gun - Crosshair - Dot" + ![](images\Cores\beetle_saturn\dot.png) + +??? note "Gun - Crosshair - Off" + ![](images\Cores\beetle_saturn\off.png) + +- **CD Image Cache (restart)** [beetle_saturn_cdimagecache] (**disabled**|enabled) + + Loads the complete image in memory at startup. Can potentially decrease loading times at the cost of increased startup time. + +- **Automatically set RTC on game load** [beetle_saturn_autortc] (**enabled**|disabled) + + Automatically set the SMPC's emulated Real-Time Clock to the host system's current time and date upon game load. + +- **BIOS language** [beetle_saturn_autortc_lang] (**english**|german|french|spanish|italian|japanese) + + Self explanatory. Also affects language used in some games (e.g. the European release of "Panzer Dragoon"). + +- **Horizontal Overscan Mask** [beetle_saturn_horizontal_overscan] (0 to 60 in increments of 2. **0 is default**) + + Self-explanatory. + +- **Initial scanline** [beetle_saturn_initial_scanline] (0 to 40 in increments of 1. **0 is default**) + + Adjust the first displayed scanline in NTSC mode. + +- **Last scanline** [beetle_saturn_last_scanline] (210 to 239 in increments of 1. **239 is default**) + + Adjust the first displayed scanline in NTSC mode. + +- **Initial scanline PAL** [beetle_saturn_initial_scanline_pal] (0 to 60 in increments of 1. **16 is default**) + + Adjust the first displayed scanline in NTSC mode. + +- **Last scanline PAL* [beetle_saturn_last_scanline_pal] (230 to 287 in increments of 1. **271 is default**) + + Adjust the last displayed scanline in PAL mode. + +- **Enable Horizontal Blend(blur)** [beetle_saturn_horizontal_blend] (**disabled**|enabled) + + Self-explanatory. + +??? note "Enable Horizontal Blend(blur) - Off" + ![](images\Cores\beetle_saturn\blend_off.png) + +??? note "Enable Horizontal Blend(blur) - On" + ![](images\Cores\beetle_saturn\blend_on.png) + +## Controllers + +The Beetle Saturn core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 12 device types + +- None - Input disabled. +- [**Control Pad**](http://segaretro.org/Control_Pad_(Saturn)) - Joypad +- [3D Control Pad](http://segaretro.org/3D_Control_Pad) - Analog +- [Arcade Racer](http://segaretro.org/Arcade_Racer_Joystick) - Analog +- [Mission Stick](https://segaretro.org/Sega_Mission_Stick) - Analog +- [Mouse](http://segaretro.org/Shuttle_Mouse) - Mouse +- [Stunner](http://segaretro.org/Virtua_Gun) - Lightgun +- [Twin-Stick](https://segaretro.org/Saturn_Twin-Stick) - Analog +- [Virtua Gun](https://segaretro.org/Virtua_Gun) - Lightgun +- [Dual Mission Sticks](https://segaretro.org/Sega_Mission_Stick) - Analog - Panzer Dragoon Zwei only + +### Multitap support + +Activating multitap support in compatible games can be configured by the ['6Player Adaptor on Port 1' and '6Player Adaptor on Port 2' core options](https://docs.libretro.com/library/beetle_saturn#core-options). + +### Controller tables + +#### Joypad + +| User 1 - 12 Remap descriptors | RetroPad Inputs | Control Pad | 3D Control Pad | Arcade Racer | Mission Stick | Twin-Stick | Dual Mission Sticks | +|-------------------------------|----------------------------------------------|--------------|----------------|---------------------------|----------------|---------------------|----------------------| +| A Button | ![](images/RetroPad/Retro_B_Round.png) | A Button | A Button | A Button | A Button | | A Button | +| X Button | ![](images/RetroPad/Retro_Y_Round.png) | X Button | X Button | X Button | X Button | | X Button | +| Mode Switch | ![](images/RetroPad/Retro_Select.png) | | Mode Switch | | | | | +| Start Button | ![](images/RetroPad/Retro_Start.png) | Start Button | Start Button | Start Button | Start Button | Start Button | Start Button | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | D-Pad Up | D-Pad Up | | | | | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | D-Pad Down | D-Pad Down | | | | | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | D-Pad Left | D-Pad Left | | | | | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | D-Pad Right | D-Pad Right | | | | | +| B Button | ![](images/RetroPad/Retro_A_Round.png) | B Button | B Button | B Button | B Button | | B Button | +| Y Button | ![](images/RetroPad/Retro_X_Round.png) | Y Button | Y Button | Y Button | Y Button | | Y Button | +| Z Button | ![](images/RetroPad/Retro_L1.png) | Z Button | Z Button | Z Button | Z Button | Left Stick Button | Z Button | +| C Button | ![](images/RetroPad/Retro_R1.png) | C Button | C Button | C Button | C Button | Right Stick Button | C Button | +| L Button | ![](images/RetroPad/Retro_L2.png) | L Button | L Button | Left shift paddle (Up) | L Button | Left Stick Trigger | L Button | +| R Button | ![](images/RetroPad/Retro_R2.png) | R Button | R Button | Right shift paddle (Down) | R Button | Right Stick Trigger | R Button | +| | ![](images/RetroPad/Retro_R3.png) | | | | Throttle latch | | Throttle latch | +| Analog X | ![](images/RetroPad/Retro_Left_Stick.png) X | | Analog X | Analog wheel | Analog Stick X | Left Stick X | Left Analog Stick X | +| Analog Y | ![](images/RetroPad/Retro_Left_Stick.png) Y | | Analog Y | | Analog Stick Y | Left Stick Y | Left Analog Stick Y | +| Analog X (Right) | ![](images/RetroPad/Retro_Right_Stick.png) X | | | | | Right Stick X | Right Analog Stick X | +| Analog Y (Right) | ![](images/RetroPad/Retro_Right_Stick.png) Y | | | | Throttle | Right Stick Y | Right Analog Stick Y | + +#### Mouse + +| RetroMouse Inputs | Mouse | +|-----------------------------------------------------|--------------| +| ![](images/RetroMouse/Retro_Mouse.png) Mouse Cursor | Mouse Cursor | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | Mouse A | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | Mouse B | +| ![](images/RetroMouse/Retro_Middle.png) Mouse 3 | Mouse C | +| Mouse 4 | Mouse Start | +| Mouse 5 | Mouse Start | + +#### Lightgun + +| RetroLightgun Inputs | Stunner | Virtua Gun | +|------------------------------------------------------|-------------------|----------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Gun Crosshair | Stunner Crosshair | Virtua Gun Crosshair | +| Gun Trigger | Stunner Trigger | Virtua Gun Trigger | +| Gun Reload | Stunner Reload | Virtua Gun Reload | +| Gun Start | Stunner Start | Virtua Gun Start | + +## External Links + +- [Official Mednafen Website](https://mednafen.github.io/) +- [Official Mednafen Downloads](https://mednafen.github.io/releases/) +- [Libretro Beetle Saturn Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/mednafen_saturn_libretro.info) +- [Libretro Beetle Saturn Github Repository](https://github.com/libretro/beetle-saturn-libretro) +- [Report Libretro Beetle Saturn Core Issues Here](https://github.com/libretro/beetle-saturn-libretro/issues) + +### See also + +#### Sega - Saturn + +- [Sega - Saturn (Yabause)](https://docs.libretro.com/library/yabause/) \ No newline at end of file diff --git a/docs/library/beetle_sgx.md b/docs/library/beetle_sgx.md new file mode 100644 index 00000000..dcbe7c45 --- /dev/null +++ b/docs/library/beetle_sgx.md @@ -0,0 +1,302 @@ +# PC Engine SuperGrafx (Beetle SGX) + +## Contribute to this documentation + +**In order to propose improvements to this document, [visit its corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/beetle_sgx.md). Changes are proposed using "Pull Requests."** + +**There is a To-Do list for libretro/docs [here](https://docs.libretro.com/docguide/todo/)** + +**You can submit suggestions or issues regarding documentation at the [libretro/docs issue tracker](https://github.com/libretro/docs/issues) or in our [forum thread](https://forums.libretro.com/t/wip-adding-pages-to-documentation-site/10078/).** + +## Background + +Standalone port of Mednafen PCE Fast to libretro. + +### Why use this core? + +Awaiting description. + +### How to get and install the Beetle SGX core: + +1. Start up RetroArch. Inside the main menu, go to 'Online Updater'. + +2. Just to make sure we have the latest info files, select 'Update Core Info FIles'. Wait until this is done. Then, select 'Core Updater'. + +3. Browse through the list and select 'PC Engine SuperGrafx (Beetle SGX)'. + +After this has finished downloading, the core should now be ready for use! + +#### How to start (after installation): + +1. Go back to RetroArch's main menu screen. Select 'Load Content'. + +2. Browse to the folder that contains the content you want to run. + +3. Select the content that you want to run. + +4. If you are asked which core to select, choose 'PC Engine SuperGrafx (Beetle SGX)'. + +The content should now start running! + +### Authors + +- [Mednafen Team](https://mednafen.github.io/) + +## See also + +### NEC PC Engine + +- [PC Engine/PCE-CD (Beetle PCE FAST)](https://docs.libretro.com/library/beetle_pce_fast/) + +## License + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +[GPLv2](https://github.com/libretro/beetle-supergrafx-libretro/blob/master/COPYING) + +## Extensions + +Content that can be loaded by the Beetle SGX core have the following file extensions: + +- .pce +- .sgx +- .cue +- .ccd +- .chd + +## Databases + +RetroArch database(s) that are associated with the Beetle SGX core: + +- [NEC - PC Engine SuperGrafx](https://github.com/libretro/libretro-database/blob/master/rdb/NEC%20-%20PC%20Engine%20SuperGrafx.rdb) + +## BIOS + +Required or optional firmware files go in RetroArch's system directory. + +Any CD-ROM System BIOS will work, but some them are known to be incompatible with certain games. + +| Filename | Description | md5sum | +|:-------------:|:-------------------------------------:|:--------------------------------:| +| syscard3.pce | Super CD-ROM2 System V3.xx - Required | 38179df8f4ac870017db21ebcbf53114 | +| syscard2.pce | CD-ROM System V2.xx - Optional | | +| syscard1.pce | CD-ROM System V1.xx - Optional | | +| gexpress.pce | Game Express CD Card - Optional | | + +!!! attention + Which PCE CD BIOS file the Beetle SGX core will use can be configured by the ['CD BIOS' core option](https://docs.libretro.com/library/beetle_sgx#core-options). + +## Features + +RetroArch-level settings or features that the Beetle SGX core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✔ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| Softpatching | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | + +### Directories + +The Beetle SGX core's directory name is 'Mednafen SuperGrafx' + +The Beetle SGX core saves/loads to/from these directories. + +**RetroArch's Save directory** + +- 'content-name'.srm (Save) + +**RetroArch's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The Beetle SGX core's internal FPS is 59.82 +- The Beetle SGX core's internal sample rate is 44100 Hz +- The Beetle SGX core's core provided aspect ratio is dependent on the ['Aspect Ratio' core option](https://docs.libretro.com/library/beetle_sgx#core-options). + +## Loading PC Engine CD content + +To load PC Engine CD content, Beetle SGX needs a cue-sheet that points to an image file. A cue sheet, or cue file, is a metadata file which describes how the tracks of a CD or DVD are laid out. + +If you have e.g. `foo.bin`, you should create a text file and save it as `foo.cue`. If you're playing a single-track Saturn game, then the cue file contents should look like this: + +`foobin.cue` +``` + FILE "foo.bin" BINARY + TRACK 01 MODE1/2352 + INDEX 01 00:00:00 +``` + +After that, you can load the `foo.cue` file in RetroArch with the Beetle SGX core. + +!!! warning "" + Certain PC Engine content are multi-track, so their .cue files might be more complicated. + +## Core options + +The Beetle SGX core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **CD Image Cache (Restart)** (**Off**/On) + + Loads the complete image in memory at startup. Can potentially decrease loading times at the cost of increased startup time. + +- **CD Bios (Restart)** (**System Card 3**/Games Express/System Card 1/System Card 2) + + Select which PC Engine CD BIOS to use. + +- **Force SuperGrafx Emulation (Restart)** (**Off**/On) + + This is helpful to run homebrew games or isolate games that will not run in SuperGrafx mode. (like Space Harrier). + +!!! attention + **Savestates are not compatible with each mode.** It's better to leave this option at default (Off) unless needed. Known Supergrafx games (like Dai-Makaimura, Aldyns) will automatically switch to SuperGrafx regardless of this option. + +- **No Sprite Limit (Restart)** (**Off**/On) + + Remove 16-sprites-per-scanline hardware limit. + +- **CPU Overclock Multiplier (Restart)** (**1**/2/3/4/5/6/7/8/9/10/20/30/40/50) + + Overclock the emulated CPU. + +- **Horizontal Overscan (352 Width Mode Only)** (300 to 352 in increments of 2. **352 in default**.) + + Awaiting description. + +- **Initial scanline** (0 to 40 in increments of 1. **3 is default.**) + + Adjust first display scanline. + +- **Last scanline** (208 to 242 in increments of 1. **242 is default.**) + + Adjust last display scanline. + +- **(CD) CDDA Volume %** (0 to 200 in increments of 10. **100 is default**.) + + Awaiting description. + +- **(CD) ADPCM Volume %** (0 to 200 in increments of 10. **100 is default**.) + + Awaiting description. + +- **(CD) CD PSG Volume %** (0 to 200 in increments of 10. **100 is default**.) + + Awaiting description. + +- **(CD) CD Speed** (**1**/2/4/8) + + Set the speed of the emulated CD drive. + +- **Turbo Delay** (**3**/4/5/6/7/8/9/10/11/12/13/14/15/30/60/2) + + Awaiting description. + +- **Turbo ON/OFF Toggle** (**Off**/On) + + Enables Turbo ON/OFF inputs. Look at the [Controllers table section](https://docs.libretro.com/library/beetle_sgx/#controller-tables) for more information. + +- **Alternate Turbo Hotkey** (**Off**/On) + + Enables Alternate Turbo ON/OFF inputs. You can avoid remapping Button III and IV when switching to 6-button gamepad mode with this. Look at the [Controllers table section](https://docs.libretro.com/library/beetle_sgx/#controller-tables) for more information. + +- **Mouse Sensitivity** (1.00 to 5.00 in increments of 0.25. **1.00 is default**.) + + Configure the Mouse device type's sensitivity. + +- **Aspect Ratio** (**auto**/6:5/4:3) + + Select an auto (PAR) aspect ratio, or a 6:5 (Used to be default) aspect ratio, or a 4:3 TV aspect ratio. + +!!! attention + When using games that constantly switches between 256 and 352 modes and using auto aspect, its best to set Horizontal width to 342 as to minimize resizing and extra black lines since this width is in ratio of 256-width mode(or something like that, just test with Asuka 100% which is one of the game that switches between these modes) + +## Controllers + +### Device types + +The Beetle SGX core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +#### User 1 - 5 device types + +- None - Input disabled. +- **PCE Joypad** - Joypad +- Mouse - Mouse + +### Controller tables + +#### Joypad and analog device type table + +| User 1 - 5 Remap descriptors | RetroPad Inputs | PCE Joypad 2-button mode | PCE Joypad 6-button mode | +|-------------------------------|----------------------------------------------|-----------------------------|--------------------------| +| II | ![](images/RetroPad/Retro_B_Round.png) | II | II | +| III | ![](images/RetroPad/Retro_Y_Round.png) | II Turbo On/Off † | III | +| Select | ![](images/RetroPad/Retro_Select.png) | Select | Select | +| Run | ![](images/RetroPad/Retro_Start.png) | Run | Run | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | D-Pad Up | D-Pad Up | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | D-Pad Down | D-Pad Down | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | D-Pad Left | D-Pad Left | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | D-Pad Right | D-Pad Right | +| I | ![](images/RetroPad/Retro_A_Round.png) | I | I | +| IV | ![](images/RetroPad/Retro_X_Round.png) | I Turbo On/Off † | IV | +| V | ![](images/RetroPad/Retro_L1.png) | | V | +| VI | ![](images/RetroPad/Retro_R1.png) | | VI | +| Mode Switch | ![](images/RetroPad/Retro_L2.png) | Mode Switch | Mode Switch | +| | ![](images/RetroPad/Retro_L3.png) | Alternate II Turbo On/Off § | | +| | ![](images/RetroPad/Retro_R3.png) | Alternate I Turbo On/Off § | | + +!!! attention + Which PCE Joypad button mode is in use can be configured by the Mode Switch input. + +† + +!!! attention + The regular Turbo inputs for 2-button mode are only active when the ['Turbo ON/OFF Toggle' core option](https://docs.libretro.com/library/beetle_sgx#core-options) is set to On. + +§ + +!!! attention + The Alternate Turbo inputs for 2-button mode are only active when the ['Turbo ON/OFF Toggle' core option](https://docs.libretro.com/library/beetle_sgx#core-options) is set to On and the ['Alternate Turbo Hotkey' core option](https://docs.libretro.com/library/beetle_sgx#core-options) is set to On. + +#### Mouse device type table + +| User 1 - 5 Remap descriptors | RetroMouse Inputs | Mouse | +|-------------------------------|------------------------------------------|--------------------| +| | ![](images/RetroMouse/Retro_Mouse.png) | Mouse Cursor | +| | ![](images/RetroMouse/Retro_Left.png) | Left Button | +| | ![](images/RetroMouse/Retro_Right.png) | Right Button | + +## Compatibility + +Awaiting description. + +## External Links + +- [Libretro Beetle SGX Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/mednafen_supergrafx_libretro.info) +- [Libretro Beetle SGX Github Repository](https://github.com/libretro/beetle-supergrafx-libretro) +- [Report Libretro Beetle SGX Core Issues Here](https://github.com/libretro/beetle-supergrafx-libretro/issues) +- [Official Mednafen Website](https://mednafen.github.io/) +- [Official Mednafen Downloads](https://mednafen.github.io/releases/) diff --git a/docs/library/beetle_vb.md b/docs/library/beetle_vb.md new file mode 100644 index 00000000..05289410 --- /dev/null +++ b/docs/library/beetle_vb.md @@ -0,0 +1,179 @@ +# Nintendo - Virtual Boy (Beetle VB) + +## Background + +Port of Mednafen VB to libretro. + +### Author/License + +The Beetle VB core has been authored by + +- [Mednafen Team](https://mednafen.github.io/) + +The Beetle VB core is licensed under + +- [GPLv2](https://github.com/libretro/beetle-vb-libretro/blob/master/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Beetle VB core have the following file extensions: + +- .vb +- .vboy +- .bin + +## Databases + +RetroArch database(s) that are associated with the Beetle VB core: + +- [Nintendo - Virtual Boy](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Virtual%20Boy.rdb) + +## Features + +Frontend-level settings or features that the Beetle VB core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay (State based) | ✔ (not link-cable emulation) | +| Core Options | ✔ | +| RetroAchievements | ✔ | +| Cheats (Cheats menu) | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✔ | +| LEDs | ✕ | + +### Directories + +The Beetle VB core's directory name is 'Mednafen VB' + +The Beetle VB core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The Beetle VB core's core provided FPS is 50.27 +- The Beetle VB core's core provided sample rate is 44100 Hz +- The Beetle VB core's core provided aspect ratio is 12/7 + +## Core options + +The Beetle VB core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Anaglyph preset (restart)** [vb_anaglyph_preset] (**Off**/red & blue/red & cyan/red & electric cyan/red & green/green & magenta/yellow & blue) + + Select anaglyph 3D mode. + +!!! attention + These Analglyph preset screenshots have been taken with the Palette core option set to black & red. + +??? note "Anaglyph preset - Off" + ![](images\Cores\beetle_vb\off.png) + +??? note "Anaglyph preset - red & blue" + ![](images\Cores\beetle_vb\red&blue.png) + +??? note "Anaglyph preset - red & cyan" + ![](images\Cores\beetle_vb\red&cyan.png) + +??? note "Anaglyph preset - red & electric cyan" + ![](images\Cores\beetle_vb\red&electriccyan.png) + +??? note "Anaglyph preset - red & green" + ![](images\Cores\beetle_vb\red&green.png) + +??? note "Anaglyph preset - green & magenta" + ![](images\Cores\beetle_vb\green&magenta.png) + +??? note "Anaglyph preset - yellow & blue" + ![](images\Cores\beetle_vb\yellow&blue.png) + +- **Palette (restart)** [vb_color_mode] (**black & red**/black & white) + + Choose which color palette to use. + +??? note "Palette - black & red" + ![](images\Cores\beetle_vb\black&red.png) + +??? note "Palette - black & white" + ![](images\Cores\beetle_vb\black&white.png) + +- **Right Analog to Digital** [vb_right_analog_to_digital] (**Off**/On/invert x/invert y/invert both) + + Self-explanatory. + +## Controllers + +The Beetle VB core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad +- Retropad w/Analog - Joypad - There's no reason to switch to this. + +### Controller tables + +#### Joypad + +!!! attention + The Right D-Pad X and Right D-Pad Y inputs are only active when the 'Right Analog to Digital' core option is set to anything other than Off. + +| User 1 Remap descriptors | RetroPad Inputs | +|--------------------------|----------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| Left D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| Left D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| Left D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| Left D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| L | ![](images/RetroPad/Retro_L1.png) | +| R | ![](images/RetroPad/Retro_R1.png) | +| Right D-Pad Up | ![](images/RetroPad/Retro_L2.png) | +| Right D-Pad Left | ![](images/RetroPad/Retro_R2.png) | +| Right D-Pad Down | ![](images/RetroPad/Retro_L3.png) | +| Right D-Pad Right | ![](images/RetroPad/Retro_R3.png) | +| Right D-Pad X | ![](images/RetroPad/Retro_Right_Stick.png) X | +| Right D-Pad Y | ![](images/RetroPad/Retro_Right_Stick.png) Y | + +## Compatibility + +Awaiting description. + +## External Links + +- [Official Mednafen Website](https://mednafen.github.io/) +- [Official Mednafen Downloads](https://mednafen.github.io/releases/) +- [Official Mednafen Virtual Boy Documentation](https://mednafen.github.io/documentation/vb.html) +- [Libretro Beetle VB Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/mednafen_vb_libretro.info) +- [Libretro Beetle VB Github Repository](https://github.com/libretro/beetle-vb-libretro) +- [Report Libretro Beetle VB Core Issues Here](https://github.com/libretro/beetle-vb-libretro/issues) \ No newline at end of file diff --git a/docs/library/bluemsx.md b/docs/library/bluemsx.md new file mode 100644 index 00000000..fb65f7a7 --- /dev/null +++ b/docs/library/bluemsx.md @@ -0,0 +1,387 @@ +# MSX/SVI/ColecoVision/SG-1000 (blueMSX) + +## Contribute to this documentation + +**DOCUMENTATION IS A WORK IN PROGRESS** + +**In order to propose improvements to this document, [visit its corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/bluemsx.md). Changes are proposed using "Pull Requests."** + +**There is a To-Do list for libretro/docs [here](https://docs.libretro.com/docguide/todo/)** + +**You can submit suggestions or issues regarding documentation at the [libretro/docs issue tracker](https://github.com/libretro/docs/issues) or in our [forum thread](https://forums.libretro.com/t/wip-adding-pages-to-documentation-site/10078/).** + +## Background + +blueMSX is a cycle accurate emulator that emulates all generations of MSX computers as well as SVI, ColecoVision and Sega SG-1000. + +### Why use this core? + +Awaiting description. + +### How to install the blueMSX core: + +- Start up RetroArch. Inside the main menu, go to 'Online Updater'. + +
![](images\Cores\all\updater.png)
+ +- Just to make sure we have the latest info files, select 'Update Core Info FIles'. Wait until this is done. Then, select 'Core Updater'. + +
![](images\Cores\all\info.png)
+ +- Browse through the list and select 'MSX/SVI/ColecoVision/SG-1000 (blueMSX)'. + +
![](images\Cores\updater\bluemsx.png)
+ +After this has finished downloading, the core should now be ready for use! + +#### How to start the (Core name) core: + +- Go back to RetroArch's main menu screen. Select 'Load Content'. + +
![](images\Cores\all\load.png)
+ +- Browse to the folder that contains the content you want to run. + +- Select the content that you want to run. + +- If you are asked which core to select, choose 'MSX/SVI/ColecoVision/SG-1000 (blueMSX)'. + +The content should now start running! + +### Authors + +- Daniel Vik + +## See also + +- [MSX (fMSX)](https://docs.libretro.com/library/fmsx/) + +## License + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +The blueMSX core is licensed under + +- [GPLv2](https://github.com/libretro/blueMSX-libretro/blob/master/license.txt) + +## Extensions + +Content that can be loaded by the blueMSX core have the following file extensions: + +- .rom +- .ri +- .mx1 +- .mx2 +- .col +- .dsk +- .cas +- .sg +- .sc +- .m3u + +## Databases + +RetroArch database(s) that are associated with the blueMSX core: + +- [Microsoft - MSX](https://github.com/libretro/libretro-database/blob/master/rdb/Microsoft%20-%20MSX.rdb) +- [Microsoft - MSX2](https://github.com/libretro/libretro-database/blob/master/rdb/Microsoft%20-%20MSX2.rdb) +- [Coleco - ColecoVision](https://github.com/libretro/libretro-database/blob/master/rdb/Coleco%20-%20ColecoVision.rdb) +- [Sega - SG-1000](https://github.com/libretro/libretro-database/blob/master/rdb/Sega%20-%20SG-1000.rdb) + +## BIOS + +The blueMSX core requires the 'Databases' and 'Machines' folders from a full installation of blueMSX. + +You can download the 'Databases' and 'Machines' folders from here [https://github.com/libretro/blueMSX-libretro/tree/master/system/bluemsx](https://github.com/libretro/blueMSX-libretro/tree/master/system/bluemsx) or you can get them from an official full standalone blueMSX emulator installation. (link to blueMSX official website at bottom of page) + +Copy the 'Databases' and 'Machines' Folders to RetroArch's System directory. + +## Features + +RetroArch-level settings or features that the blueMSX core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | - | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✔ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The blueMSX core's directory name is 'blueMSX' + +The blueMSX core saves/loads to/from these directories. + +**RetroArch's Config directory** + +- blueMSX.cfg (Core Overrides) +- 'content-name'.cfg (Game Overrides) +- 'content-name'.opt (Game-options) + +**RetroArch's Input Remapping directory** + +- blueMSX.rmp (Core Remap) +- 'content-name'.rmp (Game Remap) + +**RetroArch's Video Shader directory** + +- blueMSX.'shader-preset-extension' (Core Shader Preset) +- 'content-name'.'shader-preset-extension' (Game Shader Preset) + +### Geometry and timing + +- The blueMSX core's core provided FPS is 60 +- The blueMSX core's core provided sample rate is 41000 Hz +- The blueMSX core's core provided aspect ratio is (Ratio) + +### Usage + +To play SpectraVideo cassettes, type 'cload' and then 'run' or BLOAD "CAS:",R depending on the game. + +### Multiple-disk games + +If foo is a multiple-disk game, you should have .dsk files for each one, e.g. `foo (Disk 1).dsk`, `foo (Disk 2).dsk`, `foo (Disk 3).dsk`. + +To take advantage of BlueMSX Disk Control feature for disk swapping, an index file (a m3u file) should be made. + +Create a text file and save it as `foo.m3u`. Then enter your game's .dsk files on it. The m3u file contents should look something like this: + +`foo.m3u` +``` +foo (Disk 1).dsk +foo (Disk 2).dsk +foo (Disk 3).dsk +``` + +After that, you can load the `foo.m3u` file in RetroArch with the BlueMSX core. + +An alternative is to append disks to the current playlist via the "Disk Image Append" option RetroArch menu. + +## Core options + +The blueMSX core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Machine Type (Restart)** (**Auto**/MSX/MSXturboR/MSX2/MSX2+/SEGA - SG-1000/SEGA - SC-3000/SEGA - SF-7000/SVI - Spectravideo SVI-318/SVI - Spectravideo SVI-328/SVI - Spectravideo SVI-328 MK2/ColecoVision/Coleco (Spectravideo SVI-603)) + + Select the machine type you would like the core to start in. + +- **Crop Overscan** (**Off**/On/MSX2) + + Forces cropping of overscanned frames + +??? note "*Crop Overscan Off*" + ![](images\Cores\bluemsx\crop_off.png) + +??? note "*Crop Overscan On*" + ![](images\Cores\bluemsx\crop_on.png) + +??? note "*Crop Overscan MSX2*" + ![](images\Cores\bluemsx\crop_msx2.png) + +- **VDP Sync Type (Restart)** (**Auto**/50Hz/60Hz) + + Match the game/machine region frequency to avoid emulated speed issues. + +- **No Sprite Limit** (**Off**/On) + + Remove the 4 sprite per line limit which can reduce or remove sprite flicker in some games. + +- **Sound YM2413 Enable (Restart)** (Off/**On**) + + Sound YM2413 enable. + +- **Cart Mapper Type (Restart)** (**Auto**/Normal/mirrored/basic/0x4000/0xC000/ascii8/ascii8sram/ascii16/ascii16sram/ascii16nf/konami4/konami4nf/konami5/konamisynth/korean80/korean90/korean126/MegaFlashRomScc/MegaFlashRomSccPlus/msxdos2/scc/sccexpanded/sccmirrored/sccplus/snatcher/dsnatcher/SegaBasic/SG1000/SG1000Castle/SG1000RamA/SG1000RamB/SC3000) + + When a rom game or application is in the database, the emulator uses the databases to apply the correct mapper. If the sha1 value of a dump is not yet in the databases, it uses an automatic mapper detection system, but it can fail in some cases. In this situation, you can manually select the correct mapper. + +## Controllers + +The blueMSX core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad +- RetroKeyboard - Keyboard - Has keymapper support +- RetroPad Keyboard Map - Joypad + +### User 2 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad +- RetroKeyboard - Keyboard + +### Controller tables + +#### Joypad + +| User 1 - 2 Remap descriptors for 'RetroPad' device type | RetroPad Inputs | RetroPad | +|---------------------------------------------------------|----------------------------------------------|----------------------| +| Button 2 | ![](images/RetroPad/Retro_B_Round.png) | Button 2 | +| Button 3 | ![](images/RetroPad/Retro_Y_Round.png) | Button 3, Coleco #2 | +| Select | ![](images/RetroPad/Retro_Select.png) | Select, Coleco * | +| Start | ![](images/RetroPad/Retro_Start.png) | Start, Coleco # | +| Joy Up | ![](images/RetroPad/Retro_Dpad_Up.png) | D-Pad Up | +| Joy Down | ![](images/RetroPad/Retro_Dpad_Down.png) | D-Pad Down | +| Joy Left | ![](images/RetroPad/Retro_Dpad_Left.png) | D-Pad Left | +| Joy Right | ![](images/RetroPad/Retro_Dpad_Right.png) | D-Pad Right | +| Button 1 | ![](images/RetroPad/Retro_A_Round.png) | Button 1 | +| Button 4 | ![](images/RetroPad/Retro_X_Round.png) | Button 4, Coleco #1 | +| Button 5 | ![](images/RetroPad/Retro_L1.png) | Button 5, Coleco #4 | +| Button 6 | ![](images/RetroPad/Retro_R1.png) | Button 6, Coleco #3 | +| Button 7 | ![](images/RetroPad/Retro_L2.png) | Button 7, Coleco #6 | +| Button 8 | ![](images/RetroPad/Retro_R2.png) | Button 8, Coleco #5 | +| Button 9 | ![](images/RetroPad/Retro_L3.png) | Button 9, Coleco #8 | +| Button 10 | ![](images/RetroPad/Retro_R3.png) | Button 10, Coleco #7 | + +!!! attention + Coleco #0 and #9 inputs are mapped to Keyboard 1 & 2 for Player 1 and Keyboard 3 & 4 for Player 2. + +| User 1 Remap descriptors for 'RetroPad Keyboard Map' device type | RetroPad Inputs | RetroPad Keyboard Map | +|------------------------------------------------------------------|----------------------------------------------|-----------------------| +| | ![](images/RetroPad/Retro_B_Round.png) | | +| | ![](images/RetroPad/Retro_Y_Round.png) | | +| | ![](images/RetroPad/Retro_Select.png) | | +| | ![](images/RetroPad/Retro_Start.png) | | +| | ![](images/RetroPad/Retro_Dpad_Up.png) | | +| | ![](images/RetroPad/Retro_Dpad_Down.png) | | +| | ![](images/RetroPad/Retro_Dpad_Left.png) | | +| | ![](images/RetroPad/Retro_Dpad_Right.png) | | +| | ![](images/RetroPad/Retro_A_Round.png) | | +| | ![](images/RetroPad/Retro_X_Round.png) | | +| | ![](images/RetroPad/Retro_L1.png) | | +| | ![](images/RetroPad/Retro_R1.png) | | +| | ![](images/RetroPad/Retro_L2.png) | | +| | ![](images/RetroPad/Retro_R2.png) | | +| | ![](images/RetroPad/Retro_L3.png) | | +| | ![](images/RetroPad/Retro_R3.png) | | + +#### Keyboard + +| RetroKeyboard Inputs | RetroKeyboard | +|------------------------------|--------------------| +| Keyboard Backspace | EC_BKSPACE | +| Keyboard Tab | EC_TAB | +| Keyboard Return | EC_RETURN | +| Keyboard Pause | EC_PAUSE | +| Keyboard Escape | EC_ESC | +| Keyboard Space | EC_SPACE | +| Keyboard Quote ' | EC_COLON | +| Keyboard Comma , | EC_COMMA | +| Keyboard Minus - | EC_NEG | +| Keyboard Period . | EC_PERIOD | +| Keyboard Slash / | EC_DIV | +| Keyboard 0 | EC_0 | +| Keyboard 0 + Keyboard Left Shift | EC_UNDSCRE | +| Keyboard 1 | EC_1 | +| Keyboard 2 | EC_2 | +| Keyboard 3 | EC_3 | +| Keyboard 4 | EC_4 | +| Keyboard 5 | EC_5 | +| Keyboard 6 | EC_6 | +| Keyboard 7 | EC_7 | +| Keyboard 8 | EC_8 | +| Keyboard 9 | EC_9 | +| Keyboard Semicolon ; | EC_SEMICOL | +| Keyboard Equals = | EC_CIRCFLX | +| Keyboard Left Bracket [ | EC_LBRACK | +| Keyboard Backslash \ | EC_BKSLASH | +| Keyboard Right Bracket ] | EC_RBRACK | +| Keyboard Backquote ` | EC_AT | +| Keyboard a | EC_A | +| Keyboard b | EC_B | +| Keyboard c | EC_C | +| Keyboard d | EC_D | +| Keyboard e | EC_E | +| Keyboard f | EC_F | +| Keyboard g | EC_G | +| Keyboard h | EC_H | +| Keyboard i | EC_I | +| Keyboard j | EC_J | +| Keyboard k | EC_K | +| Keyboard l | EC_L | +| Keyboard m | EC_M | +| Keyboard n | EC_N | +| Keyboard o | EC_O | +| Keyboard p | EC_P | +| Keyboard q | EC_Q | +| Keyboard r | EC_R | +| Keyboard s | EC_S | +| Keyboard t | EC_T | +| Keyboard u | EC_U | +| Keyboard v | EC_V | +| Keyboard w | EC_W | +| Keyboard x | EC_X | +| Keyboard y | EC_Y | +| Keyboard z | EC_Z | +| Keyboard Delete | EC_DEL | +| Keyboard Keypad 0 | EC_NUM0 | +| Keyboard Keypad 1 | EC_NUM1 | +| Keyboard Keypad 2 | EC_NUM2 | +| Keyboard Keypad 3 | EC_NUM3 | +| Keyboard Keypad 4 | EC_NUM4 | +| Keyboard Keypad 5 | EC_NUM5 | +| Keyboard Keypad 6 | EC_NUM6 | +| Keyboard Keypad 7 | EC_NUM7 | +| Keyboard Keypad 8 | EC_NUM8 | +| Keyboard Keypad 9 | EC_NUM9 | +| Keyboard Keypad Period . | EC_NUMCOM | +| Keyboard Keypad Divide / | EC_NUMDIV | +| Keyboard Keypad Multiply * | EC_NUMMUL | +| Keyboard Keypad Minus - | EC_NUMSUB | +| Keyboard Keypad Plus + | EC_NUMADD | +| Keyboard Keypad Equals = | EC_NUMPER | +| Keyboard Up | EC_UP | +| Keyboard Down | EC_DOWN | +| Keyboard Right | EC_RIGHT | +| Keyboard Left | EC_LEFT | +| Keyboard Insert | EC_INS | +| Keyboard Home | EC_CLS | +| Keyboard End | EC_STOP | +| Keyboard Page Up | EC_SELECT | +| Keyboard F1 | EC_F1 | +| Keyboard F2 | EC_F2 | +| Keyboard F3 | EC_F3 | +| Keyboard F4 | EC_F4 | +| Keyboard F5 | EC_F5 | +| Keyboard Caps Lock | EC_CAPS | +| Keyboard Right Shift | EC_RSHIFT | +| Keyboard Left Shift | EC_LSHIFT | +| Keyboard Left Control | EC_CTRL | +| Keyboard Left Alt | EC_GRAPH | +| Keyboard Print | EC_PRINT | + +## Compatibility + +Awaiting description. + +## External Links + +- [Libretro blueMSX Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/bluemsx_libretro.info) +- [Libretro blueMSX Github Repository](https://github.com/libretro/blueMSX-libretro) +- [Report Libretro blueMSX Core Issues Here](https://github.com/libretro/blueMSX-libretro/issues) +- [Official/Original blueMSX Website](http://bluemsx.com/) +- [Official/Original blueMSX SourceForge Repository](http://sourceforge.net/projects/bluemsx/) \ No newline at end of file diff --git a/docs/library/bnes.md b/docs/library/bnes.md new file mode 100644 index 00000000..89a69901 --- /dev/null +++ b/docs/library/bnes.md @@ -0,0 +1,139 @@ +# Nintendo - NES / Famicom (bnes) + +## Background + +A port of bNES v083 to libretro. + +### Author/License + +The bnes core has been authored by + +- byuu +- Ryphecha + +The bnes core is licensed under + +- [GPLv3](https://github.com/libretro/bnes-libretro/blob/master/license) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the bnes core have the following file extensions: + +- .nes + +## Databases + +RetroArch database(s) that are associated with the bnes core: + +- [Nintendo - Nintendo Entertainment System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Nintendo%20Entertainment%20System.rdb) + +## Features + +Frontend-level settings or features that the bnes core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✔ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The bnes core's directory name is 'bnes' + +The bnes core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The bnes core's core provided FPS is 60 +- The bnes core's core provided sample rate is 32000 Hz +- The bnes core's core provided aspect ratio is 16/15 + +## Controllers + +The bnes core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 2 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad +- RetroPad w/Analog - Joypad - There is no reason to switch to this. + +### Controller tables + +![](images/Controllers/nes.png) + +#### Joypad + +| User 1 - 2 Remap descriptors | RetroPad Inputs | +|------------------------------|-------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | + +## Compatibility + +| Game | Issue | +|------------------------------|------------------------------------------------| +| Crisis Force | Graphical glitches. (1) | +| Huge Insect | No enemies spawn. | +| Lagrange Point | No music. | +| Ms. Pac-Man (Tengen version) | Graphical glitches on the sides of the screen. | +| Skull & Crossbones | Crashes on start. | + +??? note "(1)" + ![](images/Cores/bnes/crisisforce.png) + +## External Links + +- [Official higan Website](https://byuu.org/) +- [Official higan Downloads](https://byuu.org/emulation/higan/) +- [Libretro bnes Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/bnes_libretro.info) +- [Libretro bnes Github Repository](https://github.com/libretro/bnes-libretro) +- [Report Libretro bnes Core Issues Here](https://github.com/libretro/bnes-libretro/issues) + +### See also + +#### Nintendo - Nintendo Entertainment System + +- [Nintendo - NES / Famicom (Emux NES)](https://docs.libretro.com/library/emux_nes/) +- [Nintendo - NES / Famicom (FCEUmm)](https://docs.libretro.com/library/fceumm/) +- [Nintendo - NES / Famicom (Mesen)](https://docs.libretro.com/library/mesen/) +- [Nintendo - NES / Famicom (Nestopia UE)](https://docs.libretro.com/library/nestopia_ue/) +- [Nintendo - NES / Famicom (QuickNES)](https://docs.libretro.com/library/quicknes/) \ No newline at end of file diff --git a/docs/library/bsnes_accuracy.md b/docs/library/bsnes_accuracy.md new file mode 100644 index 00000000..389ceccb --- /dev/null +++ b/docs/library/bsnes_accuracy.md @@ -0,0 +1,295 @@ +# Nintendo - SNES / Famicom (bsnes Accuracy) + +## Background + +bsnes is a Super Nintendo emulator that began development on 2004-10-14. It focuses on accuracy and clean code above all else. It never uses speed or compatibilty hacks. As a result, the minimum system requirements are greater than with other emulators. bsnes comes in three different profiles (accuracy, balanced and performance) which contain minor differences in the PPU (graphics) emulation. + +This core has been compiled with the Accuracy profile. + +Highly accurate SNES emulation. Whether to use the Accuracy, or Balanced or Performance core depends on how much accuracy you want to give up for game performance. + +Please check the [compatibility section](https://docs.libretro.com/library/bsnes_accuracy/#compatibility) for more information. + +### Author/License + +The bsnes Accuracy core has been authored by + +- byuu + +The bsnes Accuracy core is licensed under + +- [GPLv3](https://github.com/libretro/bsnes-libretro/blob/libretro/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the bsnes Accuracy core have the following file extensions: + +- .sfc +- .smc +- .bml + +## Databases + +RetroArch database(s) that are associated with the bsnes Accuracy core: + +- [Nintendo - Super Nintendo Entertainment System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System.rdb) +- [Nintendo - Super Nintendo Entertainment System Hacks](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System%20Hacks.rdb) +- [Nintendo - Sufami Turbo](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Sufami%20Turbo.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +!!! attention + The bsnes Accuracy core uses split ROMS for [special chip games](https://en.wikipedia.org/wiki/List_of_Super_NES_enhancement_chips#List_of_Super_NES_games_that_use_enhancement_chips). + +Notable DSP1/DSP1B Games: + +- Super Mario Kart +- Pilotwings + +Notable DSP2 Games: + +- Dungeon Master + +Notable DSP3 Games: + +- SD Gundam GX + +Notable DSP4 Games: + +- Top Gear 3000 + +Notable Cx4 Games: + +- Mega Man X2 +- Mega Man X3 + +| Filename | Description | md5sum | +|:-----------------:|:--------------------------------------:|:--------------------------------:| +| dsp1.data.rom | DSP1 co-processor firmware | 3d81b45fa0c2aa8b852dfb1ece7c0971 | +| dsp1.program.rom | DSP1 co-processor firmware | ae209fbe789fbf11a48aea5ab1197321 | +| dsp1b.data.rom | DSP1B co-processor firmware | 1e3f568634a7d8284020dddc0ae905bc | +| dsp1b.program.rom | DSP1B co-processor firmware | d10f446888e097cbf500f3f663cf4f6d | +| dsp2.data.rom | DSP2 co-processor firmware | e9417e29223b139c3c4b635a2a3b8744 | +| dsp2.program.rom | DSP2 co-processor firmware | aa6e5922a3ed5ded54f24247c11143c5 | +| dsp3.data.rom | DSP3 co-processor firmware | 0a81210c0a940b997dd9843281008ee6 | +| dsp3.program.rom | DSP3 co-processor firmware | d99ca4562818d49cee1f242705bba6f8 | +| dsp4.data.rom | DSP4 co-processor firmware | ee4990879eb68e3cbca239c5bc20303d | +| dsp4.program.rom | DSP4 co-processor firmware | a151023b948b90ffc23a5b594bb6fef2 | +| cx4.data.rom | CX4 co-processor firmware | 037ac4296b6b6a5c47c440188d3c72e3 | +| st010.data.rom | ST010 co-processor firmware | 254d70762b6f59f99c27c395aba7d07d | +| st010.program.rom | ST010 co-processor firmware | 1d70019179a59a566a0bb5d3f2845544 | +| st011.data.rom | ST011 co-processor firmware | 10bd3f4aa949737ab9836512c35bcc29 | +| st011.program.rom | ST011 co-processor firmware | 95222ebf1c0c2990bcf25db43743f032 | +| st018.data.rom | ST018 co-processor firmware | 49c898b60d0f15e90d0ba780dd12f366 | +| st018.program.rom | ST018 co-processor firmware | dda40ccd57390c96e49d30a041f9a9e7 | +| sgb.boot.rom | Super Game Boy BIOS | | + +## Features + +Frontend-level settings or features that the bsnes Accuracy core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✕ | +| RetroAchievements | ✔ | +| RetroArch Cheats | ✔ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | - | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✔ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✔ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✔ | +| LEDs | ✕ | + +### Directories + +The bsnes Accuracy core's internal core name is 'bsnes' + +The bsnes Accuracy core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The bsnes Accuracy core's core provided FPS is 60.0988118623 for NTSC games and 50.0069789082 for PAL games. +- The bsnes Accuracy core's core provided sample rate is 32040.5 Hz +- The bsnes Accuracy core's core provided aspect ratio is 4/3 + +## Super GameBoy + +!!! warning + Super GameBoy support in this core is **Windows only**, and has **buggy save state support** and **visual glitches**. **Use the [higan Accuracy core](https://docs.libretro.com/library/higan_accuracy#super-gameboy-support) or the [nSide Balanced core](https://docs.libretro.com/library/nside_balanced#super-gameboy-support) for simplified, functional, and easily accessible Super Gameboy support.** + +For Super GameBoy support, you need sgb.boot.rom (in RetroArch's System directory), a GameBoy ROM and a Super GameBoy ROM. + +Please note that the Game Boy and Super GameBoy ROMs have to be unzipped. + +Super GameBoy is supported via the Subsystem API. + +There are two ways to access the Subsystem API. + +**One way is to access the Subsystem API through RetroArch's GUI like this.** + +First, we load our GameBoy ROM through 'Load Super GameBoy' in RetroArch's Main Menu. + +![](images/Cores/bsnes/menu1.png) + +![](images/Cores/bsnes/gb.png) + +Next, we load our Super GameBoy ROM through 'Load Super GameBoy' in RetroArch's Menu Menu. + +![](images/Cores/bsnes/menu2.png) + +![](images/Cores/bsnes/sgb.png) + +Then, we start the content by selecting 'Start GameBoy' In RetroArch's Menu Menu. + +![](images/Cores/bsnes/start.png) + +**The other way is to launch RetroArch with commandline like this.** + +``` +retroarch -L {path to bsnes core} {path to Super GameBoy ROM} --subsystem sgb {path to GameBoy rom} +``` + +## MSU-1 + +!!! attention + MSU-1 support in this core is complex. **Use the [Snes9x core](https://docs.libretro.com/library/snes9x#msu-1-support) for simplified and easily accessible MSU-1 support.** + +MSU-1 support can be used by loading a correct .bml file. + +There's documentation for loading MSU-1 games in standalone higan [here](https://higan.readthedocs.io/en/stable/guides/import/#msu-1-games). + +## Controllers + +The bsnes Accuracy core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Disables input. +- **[SNES Joypad](http://nintendo.wikia.com/wiki/Super_Nintendo_Entertainment_System_controller)** - Joypad +- [SNES Mouse](https://en.wikipedia.org/wiki/Super_NES_Mouse) - Mouse + +### User 2 device types + +- None - Disables input. +- **[SNES Joypad](http://nintendo.wikia.com/wiki/Super_Nintendo_Entertainment_System_controller)** - Joypad +- [SNES Mouse](https://en.wikipedia.org/wiki/Super_NES_Mouse) - Mouse +- [Multitap](http://nintendo.wikia.com/wiki/Super_Multitap) - Joypad - Allows for up to five players to play together in multitap games. +- [SuperScope](https://en.wikipedia.org/wiki/Super_Scope) - Lightgun +- [Justifier](https://en.wikipedia.org/wiki/Konami_Justifier) - Lightgun +- [Justifiers](https://en.wikipedia.org/wiki/Konami_Justifier) - Lightgun - Two Justifiers are plugged in, for two-player Justifier games. + +### Multitap support + +Activating multitap support in compatible games can be configured by switching to the [Multitap device type](https://docs.libretro.com/library/bsnes_accuracy#controllers) for User 2. + +### Controller tables + +#### Joypad + +![](images/Controllers/snes.png) + +| User 1 - 5 Remap descriptors | RetroPad Inputs | +|------------------------------|-------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Y | ![](images/RetroPad/Retro_Y_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| X | ![](images/RetroPad/Retro_X_Round.png) | +| L | ![](images/RetroPad/Retro_L1.png) | +| R | ![](images/RetroPad/Retro_R1.png) | + +#### Mouse + +| RetroMouse Inputs | SNES Mouse | +|-----------------------------------------------------|---------------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Mouse Cursor | SNES Mouse Cursor | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | SNES Mouse Left Button | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | SNES Mouse Right Button | + +#### Lightgun + +| RetroLightgun Inputs | SuperScope | Justifier(s) | +|------------------------------------------------------|---------------------------|---------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Gun Crosshair | SuperScope Crosshair | Justifier Crosshair | +| Gun Trigger | SuperScope Trigger | Justifier Trigger | +| Gun Aux A | SuperScope Cursor | | +| Gun Aux B | SuperScope Turbo | | +| Gun Start | SuperScope Pause | Justifier Start | + +## Compatibility + +The bsnes Accuracy core fully emulates all SNES games that have ever been officially released. + +## External Links + +- [Official higan Website](https://byuu.org/) +- [Official higan Upstream Downloads](https://byuu.org/emulation/higan/) +- [Libretro bsnes Accuracy Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/bsnes_accuracy_libretro.info) +- [Libretro bsnes Accuracy Github Repository](https://github.com/libretro/bsnes-libretro) +- [Report Libretro bsnes Accuracy Core Issues Here](https://github.com/libretro/bsnes-libretro/issues) + +### See also + +#### Nintendo - Sufami Turbo + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) + +#### Nintendo - Super Nintendo Entertainment System (+ Hacks) + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (higan Accuracy)](https://docs.libretro.com/library/higan_accuracy/) +- [Nintendo - SNES / Famicom (nSide Balanced)](https://docs.libretro.com/library/nside_balanced/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) \ No newline at end of file diff --git a/docs/library/bsnes_balanced.md b/docs/library/bsnes_balanced.md new file mode 100644 index 00000000..299d849e --- /dev/null +++ b/docs/library/bsnes_balanced.md @@ -0,0 +1,297 @@ +# Nintendo - SNES / Famicom (bsnes Balanced) + +## Background + +bsnes is a Super Nintendo emulator that began development on 2004-10-14. It focuses on accuracy and clean code above all else. It never uses speed or compatibilty hacks. As a result, the minimum system requirements are greater than with other emulators. bsnes comes in three different profiles (accuracy, balanced and performance) which contain minor differences in the PPU (graphics) emulation. + +This core has been compiled with the Balanced profile. + +Highly accurate SNES emulation. Whether to use the Accuracy, or Balanced or Performance core depends on how much accuracy you want to give up for game performance. + +Please check the [compatibility section](https://docs.libretro.com/library/bsnes_balanced/#compatibility) for more information. + +### Author/License + +The bsnes Balanced core has been authored by + +- byuu + +The bsnes Balanced core is licensed under + +- [GPLv3](https://github.com/libretro/bsnes-libretro/blob/libretro/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the bsnes Balanced core have the following file extensions: + +- .sfc +- .smc +- .bml + +## Databases + +RetroArch database(s) that are associated with the bsnes Balanced core: + +- [Nintendo - Super Nintendo Entertainment System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System.rdb) +- [Nintendo - Super Nintendo Entertainment System Hacks](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System%20Hacks.rdb) +- [Nintendo - Sufami Turbo](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Sufami%20Turbo.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +!!! attention + The bsnes Balanced core uses split ROMS for [special chip games](https://en.wikipedia.org/wiki/List_of_Super_NES_enhancement_chips#List_of_Super_NES_games_that_use_enhancement_chips). + +Notable DSP1/DSP1B Games: + +- Super Mario Kart +- Pilotwings + +Notable DSP2 Games: + +- Dungeon Master + +Notable DSP3 Games: + +- SD Gundam GX + +Notable DSP4 Games: + +- Top Gear 3000 + +Notable Cx4 Games: + +- Mega Man X2 +- Mega Man X3 + +| Filename | Description | md5sum | +|:-----------------:|:--------------------------------------:|:--------------------------------:| +| dsp1.data.rom | DSP1 co-processor firmware | 3d81b45fa0c2aa8b852dfb1ece7c0971 | +| dsp1.program.rom | DSP1 co-processor firmware | ae209fbe789fbf11a48aea5ab1197321 | +| dsp1b.data.rom | DSP1B co-processor firmware | 1e3f568634a7d8284020dddc0ae905bc | +| dsp1b.program.rom | DSP1B co-processor firmware | d10f446888e097cbf500f3f663cf4f6d | +| dsp2.data.rom | DSP2 co-processor firmware | e9417e29223b139c3c4b635a2a3b8744 | +| dsp2.program.rom | DSP2 co-processor firmware | aa6e5922a3ed5ded54f24247c11143c5 | +| dsp3.data.rom | DSP3 co-processor firmware | 0a81210c0a940b997dd9843281008ee6 | +| dsp3.program.rom | DSP3 co-processor firmware | d99ca4562818d49cee1f242705bba6f8 | +| dsp4.data.rom | DSP4 co-processor firmware | ee4990879eb68e3cbca239c5bc20303d | +| dsp4.program.rom | DSP4 co-processor firmware | a151023b948b90ffc23a5b594bb6fef2 | +| cx4.data.rom | CX4 co-processor firmware | 037ac4296b6b6a5c47c440188d3c72e3 | +| st010.data.rom | ST010 co-processor firmware | 254d70762b6f59f99c27c395aba7d07d | +| st010.program.rom | ST010 co-processor firmware | 1d70019179a59a566a0bb5d3f2845544 | +| st011.data.rom | ST011 co-processor firmware | 10bd3f4aa949737ab9836512c35bcc29 | +| st011.program.rom | ST011 co-processor firmware | 95222ebf1c0c2990bcf25db43743f032 | +| st018.data.rom | ST018 co-processor firmware | 49c898b60d0f15e90d0ba780dd12f366 | +| st018.program.rom | ST018 co-processor firmware | dda40ccd57390c96e49d30a041f9a9e7 | +| sgb.boot.rom | Super Game Boy BIOS | | + +## Features + +Frontend-level settings or features that the bsnes Balanced core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✕ | +| RetroAchievements | ✔ | +| RetroArch Cheats | ✔ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | - | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✔ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✔ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✔ | +| LEDs | ✕ | + +### Directories + +The bsnes Balanced core's internal core name is 'bsnes' + +The bsnes Balanced core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The bsnes Balanced core's core provided FPS is 60.0988118623 for NTSC games and 50.0069789082 for PAL games. +- The bsnes Balanced core's core provided sample rate is 32040.5 Hz +- The bsnes Balanced core's core provided aspect ratio is 4/3 + +## Super GameBoy + +!!! warning + Super GameBoy support in this core is **Windows only**, and has **buggy save state support** and **visual glitches**. **Use the [higan Accuracy core](https://docs.libretro.com/library/higan_accuracy#super-gameboy-support) or the [nSide Balanced core](https://docs.libretro.com/library/nside_balanced#super-gameboy-support) for simplified, functional, and easily accessible Super Gameboy support.** + +For Super GameBoy support, you need sgb.boot.rom (in RetroArch's System directory), a GameBoy ROM and a Super GameBoy ROM. + +Please note that the Game Boy and Super GameBoy ROMs have to be unzipped. + +Super GameBoy is supported via the Subsystem API. + +There are two ways to access the Subsystem API. + +**One way is to access the Subsystem API through RetroArch's GUI like this.** + +First, we load our GameBoy ROM through 'Load Super GameBoy' in RetroArch's Main Menu. + +![](images/Cores/bsnes/menu1.png) + +![](images/Cores/bsnes/gb.png) + +Next, we load our Super GameBoy ROM through 'Load Super GameBoy' in RetroArch's Menu Menu. + +![](images/Cores/bsnes/menu2.png) + +![](images/Cores/bsnes/sgb.png) + +Then, we start the content by selecting 'Start GameBoy' In RetroArch's Menu Menu. + +![](images/Cores/bsnes/start.png) + +**The other way is to launch RetroArch with commandline like this.** + +``` +retroarch -L {path to bsnes core} {path to Super GameBoy ROM} --subsystem sgb {path to GameBoy rom} +``` + +## MSU-1 + +!!! attention + MSU-1 support in this core is complex. **Use the [Snes9x core](https://docs.libretro.com/library/snes9x#msu-1-support) for simplified and easily accessible MSU-1 support.** + +MSU-1 support can be used by loading a correct .bml file. + +There's documentation for loading MSU-1 games in standalone higan [here](https://higan.readthedocs.io/en/stable/guides/import/#msu-1-games). + +## Controllers + +The bsnes Balanced core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Disables input. +- **[SNES Joypad](http://nintendo.wikia.com/wiki/Super_Nintendo_Entertainment_System_controller)** - Joypad +- [SNES Mouse](https://en.wikipedia.org/wiki/Super_NES_Mouse) - Mouse + +### User 2 device types + +- None - Disables input. +- **[SNES Joypad](http://nintendo.wikia.com/wiki/Super_Nintendo_Entertainment_System_controller)** - Joypad +- [SNES Mouse](https://en.wikipedia.org/wiki/Super_NES_Mouse) - Mouse +- [Multitap](http://nintendo.wikia.com/wiki/Super_Multitap) - Joypad - Allows for up to five players to play together in multitap games. +- [SuperScope](https://en.wikipedia.org/wiki/Super_Scope) - Lightgun +- [Justifier](https://en.wikipedia.org/wiki/Konami_Justifier) - Lightgun +- [Justifiers](https://en.wikipedia.org/wiki/Konami_Justifier) - Lightgun - Two Justifiers are plugged in, for two-player Justifier games. + +### Multitap support + +Activating multitap support in compatible games can be configured by switching to the [Multitap device type](https://docs.libretro.com/library/bsnes_balanced#controllers) for User 2. + +### Controller tables + +#### Joypad + +![](images/Controllers/snes.png) + +| User 1 - 5 Remap descriptors | RetroPad Inputs | +|------------------------------|-------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Y | ![](images/RetroPad/Retro_Y_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| X | ![](images/RetroPad/Retro_X_Round.png) | +| L | ![](images/RetroPad/Retro_L1.png) | +| R | ![](images/RetroPad/Retro_R1.png) | + +#### Mouse + +| RetroMouse Inputs | SNES Mouse | +|-----------------------------------------------------|---------------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Mouse Cursor | SNES Mouse Cursor | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | SNES Mouse Left Button | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | SNES Mouse Right Button | + +#### Lightgun + +| RetroLightgun Inputs | SuperScope | Justifier(s) | +|------------------------------------------------------|---------------------------|---------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Gun Crosshair | SuperScope Crosshair | Justifier Crosshair | +| Gun Trigger | SuperScope Trigger | Justifier Trigger | +| Gun Aux A | SuperScope Cursor | | +| Gun Aux B | SuperScope Turbo | | +| Gun Start | SuperScope Pause | Justifier Start | + +## Compatibility + +| Game | Issue | +|--------------------------|--------------------------------------------------------------------------------| +| A.S.P. Air Strike Patrol | Black lines show up during gameplay. The shadow below the aircraft is missing. | + +## External Links + +- [Official higan Website](https://byuu.org/) +- [Official higan Upstream Downloads](https://byuu.org/emulation/higan/) +- [Libretro bsnes Balanced Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/bsnes_balanced_libretro.info) +- [Libretro bsnes Balanced Github Repository](https://github.com/libretro/bsnes-libretro) +- [Report Libretro bsnes Balanced Core Issues Here](https://github.com/libretro/bsnes-libretro/issues) + +### See also + +#### Nintendo - Sufami Turbo + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) + +#### Nintendo - Super Nintendo Entertainment System (+ Hacks) + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (higan Accuracy)](https://docs.libretro.com/library/higan_accuracy/) +- [Nintendo - SNES / Famicom (nSide Balanced)](https://docs.libretro.com/library/nside_balanced/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) \ No newline at end of file diff --git a/docs/library/bsnes_cplusplus98.md b/docs/library/bsnes_cplusplus98.md new file mode 100644 index 00000000..9fdbbcdc --- /dev/null +++ b/docs/library/bsnes_cplusplus98.md @@ -0,0 +1,196 @@ +# Nintendo - SNES / Famicom (bsnes C++98 (v085)) + +## Background + +bsnes c++98 is a special fork from around v085 that's been backported to work with older compilers. Many platforms Libretro supports such as various consoles (PlayStation 3) are stuck with super-old compilers that don't support the latest c++ features that are in the newer bsnes v094 ports. + +There's no reason to use this core now expect for edge cases on less compatible platforms. + +### Author/License + +The bsnes C++98 (v085) core has been authored by + +- byuu +- Themaister +- Ver GreenEyes + +The bsnes C++98 (v085) core is licensed under + +- [GPLv3](https://github.com/libretro/bsnes-libretro/blob/libretro/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the bsnes C++98 (v085) core have the following file extensions: + +- .sfc +- .smc + +## Databases + +RetroArch database(s) that are associated with the bsnes C++98 (v085) core: + +- [Nintendo - Super Nintendo Entertainment System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System.rdb) +- [Nintendo - Super Nintendo Entertainment System Hacks](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System%20Hacks.rdb) +- [Nintendo - Sufami Turbo](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Sufami%20Turbo.rdb) + +## Features + +Frontend-level settings or features that the bsnes C++98 (v085) core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✕ | +| RetroAchievements | ✔ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✔ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✔ | +| LEDs | ✕ | + +### Directories + +The bsnes C++98 (v085) core's internal core name is '"bSNES' + +The bsnes C++98 (v085) core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The bsnes C++98 (v085) core's core provided FPS is 60.0988118623 for NTSC games and 50.0069789082 for PAL games. +- The bsnes C++98 (v085) core's core provided sample rate is 32040.5 Hz. +- The bsnes C++98 (v085) core's core provided aspect ratio is (Ratio) + +## Controllers + +The bsnes C++98 (v085) core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. +- **[SNES Joypad](http://nintendo.wikia.com/wiki/Super_Nintendo_Entertainment_System_controller)** - Joypad +- [SNES Mouse](https://en.wikipedia.org/wiki/Super_NES_Mouse) - Mouse + +### User 2 device types + +- None - Doesn't disable input. +- **[SNES Joypad](http://nintendo.wikia.com/wiki/Super_Nintendo_Entertainment_System_controller)** - Joypad +- [SNES Mouse](https://en.wikipedia.org/wiki/Super_NES_Mouse) - Mouse +- [Multitap](http://nintendo.wikia.com/wiki/Super_Multitap) - Joypad - Allows for up to five players to play together in mulitap games. +- [SuperScope](https://en.wikipedia.org/wiki/Super_Scope) - Lightgun +- [Justifier](https://en.wikipedia.org/wiki/Konami_Justifier) - Lightgun +- [Justifiers](https://en.wikipedia.org/wiki/Konami_Justifier) - Lightgun - Two Justifiers are plugged in, for two-player Justifier games. + +### Multitap support + +Activating multitap support in compatible games can be configured by switching to the [Multitap device type](https://docs.libretro.com/library/bsnes_cplusplus98#controllers) for User 2. + +### Controller tables + +#### Joypad + +![](images/Controllers/snes.png) + +| User 1 - 5 Remap descriptors | RetroPad Inputs | +|------------------------------|-------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Y | ![](images/RetroPad/Retro_Y_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| X | ![](images/RetroPad/Retro_X_Round.png) | +| L | ![](images/RetroPad/Retro_L1.png) | +| R | ![](images/RetroPad/Retro_R1.png) | + +#### Mouse + +| RetroMouse Inputs | SNES Mouse | +|-----------------------------------------------------|-------------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Mouse Cursor | SNES Mouse Cursor | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | SNES Mouse Left Button | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | SNES Mouse Right Button | + +#### Lightgun + +| RetroLightgun Inputs | SuperScope | Justifier(s) | +|------------------------------------------------------|---------------------------|---------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Gun Crosshair | SuperScope Crosshair | Justifier Crosshair | +| Gun Trigger | SuperScope Trigger | Justifier Trigger | +| Gun Aux A | SuperScope Cursor | | +| Gun Aux B | SuperScope Turbo | | +| Gun Start | SuperScope Pause | Justifier Start | + +## Compatibility + +Awaiting description. + +## External Links + +- [Official higan Website](https://byuu.org/) +- [Official higan Upstream Downloads](https://byuu.org/emulation/higan/) +- [Libretro bsnes C++98 (v085) Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/bsnes_cplusplus98_libretro.info) +- [Libretro bsnes C++98 (v085) Github Repository](https://github.com/libretro/bsnes-libretro-cplusplus98) +- [Report Libretro bsnes C++98 (v085) Core Issues Here](https://github.com/libretro/bsnes-libretro-cplusplus98/issues) + +### See also + +#### Nintendo - Sufami Turbo + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) + +#### Nintendo - Super Nintendo Entertainment System (+ Hacks) + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (higan Accuracy)](https://docs.libretro.com/library/higan_accuracy/) +- [Nintendo - SNES / Famicom (nSide Balanced)](https://docs.libretro.com/library/nside_balanced/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) \ No newline at end of file diff --git a/docs/library/bsnes_mercury_accuracy.md b/docs/library/bsnes_mercury_accuracy.md new file mode 100644 index 00000000..c3669a48 --- /dev/null +++ b/docs/library/bsnes_mercury_accuracy.md @@ -0,0 +1,325 @@ +# Nintendo - SNES / Famicom (bsnes-mercury Accuracy) + +## Background + +bsnes-mercury is a fork of higan, aiming to restore some useful features that have been removed, as well as improving performance a bit. +Maximum accuracy is still uncompromisable; anything that affects accuracy is optional and off by default. + +This core has been compiled with the Accuracy profile. + +Improvements include: + +* Improved framerate +* Faster ROM loading +* HLE emulation of some special chips is optionally restored (defaults to LLE), to improve performance and reduce reliance on those chip ROMs (they're not really easy to find). Chips for which no HLE emulation was developed (ST-0011 and ST-0018) are still LLE. +* SuperFX overclock is now available (off by default, of course); if enabled, it makes SuperFX look quite a lot smoother. + +**The bsnes-mercury cores are not less accurate at default settings than the mainline bsnes cores (you have to explicitly enable 2 core options to switch to the less accurate special chip HLE).** + +### Author/License + +The bsnes-mercury Accuracy core has been authored by + +- byuu +- Alcaro + +The bsnes-mercury Accuracy core is licensed under + +- [GPLv3](https://github.com/libretro/bsnes-mercury/blob/master/LICENSE) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the bsnes-mercury Accuracy core have the following file extensions: + +- .sfc +- .smc +- .bml + +## Databases + +RetroArch database(s) that are associated with the bsnes-mercury Accuracy core: + +- [Nintendo - Super Nintendo Entertainment System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System.rdb) +- [Nintendo - Super Nintendo Entertainment System Hacks](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System%20Hacks.rdb) +- [Nintendo - Sufami Turbo](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Sufami%20Turbo.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +| Filename | Description | md5sum | +|:-----------------:|:--------------------------------------:|:--------------------------------:| +| dsp1.data.rom | DSP1 co-processor firmware | 3d81b45fa0c2aa8b852dfb1ece7c0971 | +| dsp1.program.rom | DSP1 co-processor firmware | ae209fbe789fbf11a48aea5ab1197321 | +| dsp1b.data.rom | DSP1B co-processor firmware | 1e3f568634a7d8284020dddc0ae905bc | +| dsp1b.program.rom | DSP1B co-processor firmware | d10f446888e097cbf500f3f663cf4f6d | +| dsp2.data.rom | DSP2 co-processor firmware | e9417e29223b139c3c4b635a2a3b8744 | +| dsp2.program.rom | DSP2 co-processor firmware | aa6e5922a3ed5ded54f24247c11143c5 | +| dsp3.data.rom | DSP3 co-processor firmware | 0a81210c0a940b997dd9843281008ee6 | +| dsp3.program.rom | DSP3 co-processor firmware | d99ca4562818d49cee1f242705bba6f8 | +| dsp4.data.rom | DSP4 co-processor firmware | ee4990879eb68e3cbca239c5bc20303d | +| dsp4.program.rom | DSP4 co-processor firmware | a151023b948b90ffc23a5b594bb6fef2 | +| cx4.data.rom | CX4 co-processor firmware | 037ac4296b6b6a5c47c440188d3c72e3 | +| st010.data.rom | ST010 co-processor firmware | 254d70762b6f59f99c27c395aba7d07d | +| st010.program.rom | ST010 co-processor firmware | 1d70019179a59a566a0bb5d3f2845544 | +| st011.data.rom | ST011 co-processor firmware | 10bd3f4aa949737ab9836512c35bcc29 | +| st011.program.rom | ST011 co-processor firmware | 95222ebf1c0c2990bcf25db43743f032 | +| st018.data.rom | ST018 co-processor firmware | 49c898b60d0f15e90d0ba780dd12f366 | +| st018.program.rom | ST018 co-processor firmware | dda40ccd57390c96e49d30a041f9a9e7 | +| sgb.boot.rom | Super Game Boy BIOS | | + +## Features + +Frontend-level settings or features that the bsnes-mercury Accuracy core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✔ | +| RetroArch Cheats | ✔ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | - | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✔ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✔ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The bsnes-mercury Accuracy core's internal core name is 'bsnes-mercury' + +The bsnes-mercury Accuracy core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The bsnes-mercury Accuracy core's core provided FPS is 60.0988118623 for NTSC games and 50.0069789082 for PAL games. +- The bsnes-mercury Accuracy core's core provided sample rate is 32040.5 Hz +- The bsnes-mercury Accuracy core's core provided aspect ratio is dependent on the ['Preferred aspect ratio' core option](https://docs.libretro.com/library/bsnes_mercury_accuracy#core-options). + +## Super GameBoy + +!!! warning + Super GameBoy support in this core is **Windows only**, and has **buggy save state support** and **visual glitches**. **Use the [higan Accuracy core](https://docs.libretro.com/library/higan_accuracy#super-gameboy-support) or the [nSide Balanced core](https://docs.libretro.com/library/nside_balanced#super-gameboy-support) for simplified, functional, and easily accessible Super Gameboy support.** + +For Super GameBoy support, you need sgb.boot.rom (in RetroArch's System directory), a GameBoy ROM and a Super GameBoy ROM. + +Please note that the Game Boy and Super GameBoy ROMs have to be unzipped. + +Super GameBoy is supported via the Subsystem API. + +There are two ways to access the Subsystem API. + +**One way is to access the Subsystem API through RetroArch's GUI like this.** + +First, we load our GameBoy ROM through 'Load Super GameBoy' in RetroArch's Main Menu. + +![](images/Cores/bsnes/menu1.png) + +![](images/Cores/bsnes/gb.png) + +Next, we load our Super GameBoy ROM through 'Load Super GameBoy' in RetroArch's Menu Menu. + +![](images/Cores/bsnes/menu2.png) + +![](images/Cores/bsnes/sgb.png) + +Then, we start the content by selecting 'Start GameBoy' In RetroArch's Menu Menu. + +![](images/Cores/bsnes/start.png) + +**The other way is to launch RetroArch with commandline like this.** + +``` +retroarch -L {path to bsnes core} {path to Super GameBoy ROM} --subsystem sgb {path to GameBoy rom} +``` + +## MSU-1 + +!!! attention + MSU-1 support in this core is complex. **Use the [Snes9x core](https://docs.libretro.com/library/snes9x#msu-1-support) for simplified and easily accessible MSU-1 support.** + +MSU-1 support can be used by loading a correct .bml file. + +There's documentation for loading MSU-1 games in standalone higan [here](https://higan.readthedocs.io/en/stable/guides/import/#msu-1-games). + +## Core options + +The bsnes-mercury Accuracy core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Allow settings to reduce accuracy** [bsnes_violate_accuracy] (**disabled**|enabled) + + Respect accuracy-impacting settings. + +- **Special chip accuracy** [bsnes_chip_hle] (**LLE**|HLE) + + **The Allow settings to reduce accuracy core option must be enabled in order for this to function properly. ** + + Choose whether to use LLE (real BIOS) or HLE (emulated BIOS) for enhancement chips. + + HLE is less accurate but also less demanding for the special chips. + + The ST-0011 and ST-0018 co-processors cannot be HLE'd. + +- **SuperFX speed** [bsnes_superfx_overclock] (**100%**|150%|200%|300%|400%|500%|1000%) + + **The Allow settings to reduce accuracy core option must be enabled in order for this to function properly.** + + Overclock the [SuperFX chip](https://en.wikipedia.org/wiki/Super_FX). 100% is stock clockspeed. + +- **System region** [bsnes_region] (**auto**|ntsc|pal) + + Choose which region the system is from. + +- **Preferred aspect ratio** [bsnes_aspect_ratio] (**auto**|ntsc|pal) + + Choose the preferred aspect ratio. RetroArch's aspect ratio must be set to Core provided in the Video seetings. + +- **Crop overscan** [bsnes_crop_overscan] (**disabled**|enabled) + + Crop out the potentially random glitchy video output that would have been hidden by the bezel around the edge of a standard-definition television screen. + +- **Gamma ramp (requires restart)** [bsnes_gamma_ramp] (**disabled**|enabled) + + Simulates the way a console’s display device differs from modern computer monitor’s colour reproduction. In particular, it simulates the slightly-different gamma correction used by the Super Famicom. + +??? note "Gamma ramp - Disabled" + ![](images/Cores/higan/gamma_off.png) + +??? note "Gamma ramp - Enabled" + ![](images/Cores/higan/gamma_on.png) + +## Controllers + +The bsnes-mercury Accuracy core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. +- **[SNES Joypad](http://nintendo.wikia.com/wiki/Super_Nintendo_Entertainment_System_controller)** - Joypad +- [SNES Mouse](https://en.wikipedia.org/wiki/Super_NES_Mouse) - Mouse + +### User 2 device types + +- None - Doesn't disable input. +- **[SNES Joypad](http://nintendo.wikia.com/wiki/Super_Nintendo_Entertainment_System_controller)** - Joypad +- [SNES Mouse](https://en.wikipedia.org/wiki/Super_NES_Mouse) - Mouse +- [Multitap](http://nintendo.wikia.com/wiki/Super_Multitap) - Joypad - Allows for up to five players to play together in multitap games. +- [SuperScope](https://en.wikipedia.org/wiki/Super_Scope) - Lightgun +- [Justifier](https://en.wikipedia.org/wiki/Konami_Justifier) - Lightgun +- [Justifiers](https://en.wikipedia.org/wiki/Konami_Justifier) - Lightgun - Two Justifiers are plugged in, for two-player Justifier games. + +### Multitap support + +Activating multitap support in compatible games can be configured by switching to the [Multitap device type](https://docs.libretro.com/library/bsnes_mercury_accuracy#controllers) for User 2. + +### Controller tables + +#### Joypad + +![](images/Controllers/snes.png) + +| User 1 - 5 Remap descriptors | RetroPad Inputs | +|------------------------------|----------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Y | ![](images/RetroPad/Retro_Y_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| X | ![](images/RetroPad/Retro_X_Round.png) | +| L | ![](images/RetroPad/Retro_L1.png) | +| R | ![](images/RetroPad/Retro_R1.png) | + +#### Mouse + +| RetroMouse Inputs | SNES Mouse | +|-----------------------------------------------------|-------------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Mouse Cursor | SNES Mouse Cursor | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | SNES Mouse Left Button | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | SNES Mouse Right Button | + +#### Lightgun + +| RetroLightgun Inputs | SuperScope | Justifier(s) | +|------------------------------------------------------|----------------------|---------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Gun Crosshair | SuperScope Crosshair | Justifier Crosshair | +| Gun Trigger | SuperScope Trigger | Justifier Trigger | +| Gun Aux A | SuperScope Cursor | | +| Gun Aux B | SuperScope Turbo | | +| Gun Start | SuperScope Pause | Justifier Start | + +## Compatibility + +The bsnes-mercury Accuracy core fully emulates all SNES games that have ever been officially released. + +## External Links + +- [Official higan Website](https://byuu.org/) +- [Official higan Upstream Downloads](https://byuu.org/emulation/higan/) +- [Libretro bsnes-mercury Accuracy Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/bsnes_mercury_accuracy_libretro.info) +- [Libretro bsnes-mercury Accuracy Github Repository](https://github.com/libretro/bsnes-mercury) +- [Report Libretro bsnes-mercury Accuracy Core Issues Here](https://github.com/libretro/bsnes-mercury/issues) + +### See also + +#### Nintendo - Sufami Turbo + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) + +#### Nintendo - Super Nintendo Entertainment System (+ Hacks) + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (higan Accuracy)](https://docs.libretro.com/library/higan_accuracy/) +- [Nintendo - SNES / Famicom (nSide Balanced)](https://docs.libretro.com/library/nside_balanced/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) \ No newline at end of file diff --git a/docs/library/bsnes_mercury_balanced.md b/docs/library/bsnes_mercury_balanced.md new file mode 100644 index 00000000..42b19b76 --- /dev/null +++ b/docs/library/bsnes_mercury_balanced.md @@ -0,0 +1,327 @@ +# Nintendo - SNES / Famicom (bsnes-mercury Balanced) + +## Background + +bsnes-mercury is a fork of higan, aiming to restore some useful features that have been removed, as well as improving performance a bit. +Maximum accuracy is still uncompromisable; anything that affects accuracy is optional and off by default. + +This core has been compiled with the Balanced profile. + +Improvements include: + +* Improved framerate +* Faster ROM loading +* HLE emulation of some special chips is optionally restored (defaults to LLE), to improve performance and reduce reliance on those chip ROMs (they're not really easy to find). Chips for which no HLE emulation was developed (ST-0011 and ST-0018) are still LLE. +* SuperFX overclock is now available (off by default, of course); if enabled, it makes SuperFX look quite a lot smoother. + +**The bsnes-mercury cores are not less accurate at default settings than the mainline bsnes cores (you have to explicitly enable 2 core options to switch to the less accurate special chip HLE).** + +### Author/License + +The bsnes-mercury Balanced core has been authored by + +- byuu +- Alcaro + +The bsnes-mercury Balanced core is licensed under + +- [GPLv3](https://github.com/libretro/bsnes-mercury/blob/master/LICENSE) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the bsnes-mercury Balanced core have the following file extensions: + +- .sfc +- .smc +- .bml + +## Databases + +RetroArch database(s) that are associated with the bsnes-mercury Balanced core: + +- [Nintendo - Super Nintendo Entertainment System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System.rdb) +- [Nintendo - Super Nintendo Entertainment System Hacks](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System%20Hacks.rdb) +- [Nintendo - Sufami Turbo](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Sufami%20Turbo.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +| Filename | Description | md5sum | +|:-----------------:|:--------------------------------------:|:--------------------------------:| +| dsp1.data.rom | DSP1 co-processor firmware | 3d81b45fa0c2aa8b852dfb1ece7c0971 | +| dsp1.program.rom | DSP1 co-processor firmware | ae209fbe789fbf11a48aea5ab1197321 | +| dsp1b.data.rom | DSP1B co-processor firmware | 1e3f568634a7d8284020dddc0ae905bc | +| dsp1b.program.rom | DSP1B co-processor firmware | d10f446888e097cbf500f3f663cf4f6d | +| dsp2.data.rom | DSP2 co-processor firmware | e9417e29223b139c3c4b635a2a3b8744 | +| dsp2.program.rom | DSP2 co-processor firmware | aa6e5922a3ed5ded54f24247c11143c5 | +| dsp3.data.rom | DSP3 co-processor firmware | 0a81210c0a940b997dd9843281008ee6 | +| dsp3.program.rom | DSP3 co-processor firmware | d99ca4562818d49cee1f242705bba6f8 | +| dsp4.data.rom | DSP4 co-processor firmware | ee4990879eb68e3cbca239c5bc20303d | +| dsp4.program.rom | DSP4 co-processor firmware | a151023b948b90ffc23a5b594bb6fef2 | +| cx4.data.rom | CX4 co-processor firmware | 037ac4296b6b6a5c47c440188d3c72e3 | +| st010.data.rom | ST010 co-processor firmware | 254d70762b6f59f99c27c395aba7d07d | +| st010.program.rom | ST010 co-processor firmware | 1d70019179a59a566a0bb5d3f2845544 | +| st011.data.rom | ST011 co-processor firmware | 10bd3f4aa949737ab9836512c35bcc29 | +| st011.program.rom | ST011 co-processor firmware | 95222ebf1c0c2990bcf25db43743f032 | +| st018.data.rom | ST018 co-processor firmware | 49c898b60d0f15e90d0ba780dd12f366 | +| st018.program.rom | ST018 co-processor firmware | dda40ccd57390c96e49d30a041f9a9e7 | +| sgb.boot.rom | Super Game Boy BIOS | | + +## Features + +Frontend-level settings or features that the bsnes-mercury Balanced core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✔ | +| RetroArch Cheats | ✔ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | - | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✔ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✔ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The bsnes-mercury Balanced core's internal core name is 'bsnes-mercury' + +The bsnes-mercury Balanced core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The bsnes-mercury Balanced core's core provided FPS is 60.0988118623 for NTSC games and 50.0069789082 for PAL games. +- The bsnes-mercury Balanced core's core provided sample rate is 32040.5 Hz +- The bsnes-mercury Balanced core's core provided aspect ratio is dependent on the ['Preferred aspect ratio' core option](https://docs.libretro.com/library/bsnes_mercury_balanced#core-options). + +## Super GameBoy + +!!! warning + Super GameBoy support in this core is **Windows only**, and has **buggy save state support** and **visual glitches**. **Use the [higan Accuracy core](https://docs.libretro.com/library/higan_accuracy#super-gameboy-support) or the [nSide Balanced core](https://docs.libretro.com/library/nside_balanced#super-gameboy-support) for simplified, functional, and easily accessible Super Gameboy support.** + +For Super GameBoy support, you need sgb.boot.rom (in RetroArch's System directory), a GameBoy ROM and a Super GameBoy ROM. + +Please note that the Game Boy and Super GameBoy ROMs have to be unzipped. + +Super GameBoy is supported via the Subsystem API. + +There are two ways to access the Subsystem API. + +**One way is to access the Subsystem API through RetroArch's GUI like this.** + +First, we load our GameBoy ROM through 'Load Super GameBoy' in RetroArch's Main Menu. + +![](images/Cores/bsnes/menu1.png) + +![](images/Cores/bsnes/gb.png) + +Next, we load our Super GameBoy ROM through 'Load Super GameBoy' in RetroArch's Menu Menu. + +![](images/Cores/bsnes/menu2.png) + +![](images/Cores/bsnes/sgb.png) + +Then, we start the content by selecting 'Start GameBoy' In RetroArch's Menu Menu. + +![](images/Cores/bsnes/start.png) + +**The other way is to launch RetroArch with commandline like this.** + +``` +retroarch -L {path to bsnes core} {path to Super GameBoy ROM} --subsystem sgb {path to GameBoy rom} +``` + +## MSU-1 + +!!! attention + MSU-1 support in this core is complex. **Use the [Snes9x core](https://docs.libretro.com/library/snes9x#msu-1-support) for simplified and easily accessible MSU-1 support.** + +MSU-1 support can be used by loading a correct .bml file. + +There's documentation for loading MSU-1 games in standalone higan [here](https://higan.readthedocs.io/en/stable/guides/import/#msu-1-games). + +## Core options + +The bsnes-mercury @@@@@@@@@ core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Allow settings to reduce accuracy** [bsnes_violate_accuracy] (**disabled**|enabled) + + Respect accuracy-impacting settings. + +- **Special chip accuracy** [bsnes_chip_hle] (**LLE**|HLE) + + **The Allow settings to reduce accuracy core option must be enabled in order for this to function properly. ** + + Choose whether to use LLE (real BIOS) or HLE (emulated BIOS) for enhancement chips. + + HLE is less accurate but also less demanding for the special chips. + + The ST-0011 and ST-0018 co-processors cannot be HLE'd. + +- **SuperFX speed** [bsnes_superfx_overclock] (**100%**|150%|200%|300%|400%|500%|1000%) + + **The Allow settings to reduce accuracy core option must be enabled in order for this to function properly.** + + Overclock the [SuperFX chip](https://en.wikipedia.org/wiki/Super_FX). 100% is stock clockspeed. + +- **System region** [bsnes_region] (**auto**|ntsc|pal) + + Choose which region the system is from. + +- **Preferred aspect ratio** [bsnes_aspect_ratio] (**auto**|ntsc|pal) + + Choose the preferred aspect ratio. RetroArch's aspect ratio must be set to Core provided in the Video seetings. + +- **Crop overscan** [bsnes_crop_overscan] (**disabled**|enabled) + + Crop out the potentially random glitchy video output that would have been hidden by the bezel around the edge of a standard-definition television screen. + +- **Gamma ramp (requires restart)** [bsnes_gamma_ramp] (**disabled**|enabled) + + Simulates the way a console’s display device differs from modern computer monitor’s colour reproduction. In particular, it simulates the slightly-different gamma correction used by the Super Famicom. + +??? note "Gamma ramp - Disabled" + ![](images/Cores/higan/gamma_off.png) + +??? note "Gamma ramp - Enabled" + ![](images/Cores/higan/gamma_on.png) + +## Controllers + +The bsnes-mercury Balanced core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. +- **[SNES Joypad](http://nintendo.wikia.com/wiki/Super_Nintendo_Entertainment_System_controller)** - Joypad +- [SNES Mouse](https://en.wikipedia.org/wiki/Super_NES_Mouse) - Mouse + +### User 2 device types + +- None - Doesn't disable input. +- **[SNES Joypad](http://nintendo.wikia.com/wiki/Super_Nintendo_Entertainment_System_controller)** - Joypad +- [SNES Mouse](https://en.wikipedia.org/wiki/Super_NES_Mouse) - Mouse +- [Multitap](http://nintendo.wikia.com/wiki/Super_Multitap) - Joypad - Allows for up to five players to play together in multitap games. +- [SuperScope](https://en.wikipedia.org/wiki/Super_Scope) - Lightgun +- [Justifier](https://en.wikipedia.org/wiki/Konami_Justifier) - Lightgun +- [Justifiers](https://en.wikipedia.org/wiki/Konami_Justifier) - Lightgun - Two Justifiers are plugged in, for two-player Justifier games. + +### Multitap support + +Activating multitap support in compatible games can be configured by switching to the [Multitap device type](https://docs.libretro.com/library/bsnes_mercury_balanced#controllers) for User 2. + +### Controller tables + +#### Joypad + +![](images/Controllers/snes.png) + +| User 1 - 5 Remap descriptors | RetroPad Inputs | +|------------------------------|----------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Y | ![](images/RetroPad/Retro_Y_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| X | ![](images/RetroPad/Retro_X_Round.png) | +| L | ![](images/RetroPad/Retro_L1.png) | +| R | ![](images/RetroPad/Retro_R1.png) | + +#### Mouse + +| RetroMouse Inputs | SNES Mouse | +|-----------------------------------------------------|-------------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Mouse Cursor | SNES Mouse Cursor | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | SNES Mouse Left Button | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | SNES Mouse Right Button | + +#### Lightgun + +| RetroLightgun Inputs | SuperScope | Justifier(s) | +|------------------------------------------------------|----------------------|---------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Gun Crosshair | SuperScope Crosshair | Justifier Crosshair | +| Gun Trigger | SuperScope Trigger | Justifier Trigger | +| Gun Aux A | SuperScope Cursor | | +| Gun Aux B | SuperScope Turbo | | +| Gun Start | SuperScope Pause | Justifier Start | + +## Compatibility + +| Game | Issue | +|--------------------------|--------------------------------------------------------------------------------| +| A.S.P. Air Strike Patrol | Black lines show up during gameplay. The shadow below the aircraft is missing. | + +## External Links + +- [Official higan Website](https://byuu.org/) +- [Official higan Upstream Downloads](https://byuu.org/emulation/higan/) +- [Libretro bsnes-mercury Balanced Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/bsnes_mercury_balanced_libretro.info) +- [Libretro bsnes-mercury Balanced Github Repository](https://github.com/libretro/bsnes-mercury) +- [Report Libretro bsnes-mercury Balanced Core Issues Here](https://github.com/libretro/bsnes-mercury/issues) + +### See also + +#### Nintendo - Sufami Turbo + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) + +#### Nintendo - Super Nintendo Entertainment System (+ Hacks) + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (higan Accuracy)](https://docs.libretro.com/library/higan_accuracy/) +- [Nintendo - SNES / Famicom (nSide Balanced)](https://docs.libretro.com/library/nside_balanced/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) \ No newline at end of file diff --git a/docs/library/bsnes_mercury_performance.md b/docs/library/bsnes_mercury_performance.md new file mode 100644 index 00000000..3de08488 --- /dev/null +++ b/docs/library/bsnes_mercury_performance.md @@ -0,0 +1,334 @@ +# Nintendo - SNES / Famicom (bsnes-mercury Performance) + +## Background + +bsnes-mercury is a fork of higan, aiming to restore some useful features that have been removed, as well as improving performance a bit. +Maximum accuracy is still uncompromisable; anything that affects accuracy is optional and off by default. + +This core has been compiled with the Performance profile. + +Improvements include: + +* Improved framerate +* Faster ROM loading +* HLE emulation of some special chips is optionally restored (defaults to LLE), to improve performance and reduce reliance on those chip ROMs (they're not really easy to find). Chips for which no HLE emulation was developed (ST-0011 and ST-0018) are still LLE. +* SuperFX overclock is now available (off by default, of course); if enabled, it makes SuperFX look quite a lot smoother. + +**The bsnes-mercury cores are not less accurate at default settings than the mainline bsnes cores (you have to explicitly enable 2 core options to switch to the less accurate special chip HLE).** + +### Author/License + +The bsnes-mercury Performance core has been authored by + +- byuu +- Alcaro + +The bsnes-mercury Performance core is licensed under + +- [GPLv3](https://github.com/libretro/bsnes-mercury/blob/master/LICENSE) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the bsnes-mercury Performance core have the following file extensions: + +- .sfc +- .smc +- .bml + +## Databases + +RetroArch database(s) that are associated with the bsnes-mercury Performance core: + +- [Nintendo - Super Nintendo Entertainment System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System.rdb) +- [Nintendo - Super Nintendo Entertainment System Hacks](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System%20Hacks.rdb) +- [Nintendo - Sufami Turbo](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Sufami%20Turbo.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +| Filename | Description | md5sum | +|:-----------------:|:--------------------------------------:|:--------------------------------:| +| dsp1.data.rom | DSP1 co-processor firmware | 3d81b45fa0c2aa8b852dfb1ece7c0971 | +| dsp1.program.rom | DSP1 co-processor firmware | ae209fbe789fbf11a48aea5ab1197321 | +| dsp1b.data.rom | DSP1B co-processor firmware | 1e3f568634a7d8284020dddc0ae905bc | +| dsp1b.program.rom | DSP1B co-processor firmware | d10f446888e097cbf500f3f663cf4f6d | +| dsp2.data.rom | DSP2 co-processor firmware | e9417e29223b139c3c4b635a2a3b8744 | +| dsp2.program.rom | DSP2 co-processor firmware | aa6e5922a3ed5ded54f24247c11143c5 | +| dsp3.data.rom | DSP3 co-processor firmware | 0a81210c0a940b997dd9843281008ee6 | +| dsp3.program.rom | DSP3 co-processor firmware | d99ca4562818d49cee1f242705bba6f8 | +| dsp4.data.rom | DSP4 co-processor firmware | ee4990879eb68e3cbca239c5bc20303d | +| dsp4.program.rom | DSP4 co-processor firmware | a151023b948b90ffc23a5b594bb6fef2 | +| cx4.data.rom | CX4 co-processor firmware | 037ac4296b6b6a5c47c440188d3c72e3 | +| st010.data.rom | ST010 co-processor firmware | 254d70762b6f59f99c27c395aba7d07d | +| st010.program.rom | ST010 co-processor firmware | 1d70019179a59a566a0bb5d3f2845544 | +| st011.data.rom | ST011 co-processor firmware | 10bd3f4aa949737ab9836512c35bcc29 | +| st011.program.rom | ST011 co-processor firmware | 95222ebf1c0c2990bcf25db43743f032 | +| st018.data.rom | ST018 co-processor firmware | 49c898b60d0f15e90d0ba780dd12f366 | +| st018.program.rom | ST018 co-processor firmware | dda40ccd57390c96e49d30a041f9a9e7 | +| sgb.boot.rom | Super Game Boy BIOS | | + +## Features + +Frontend-level settings or features that the bsnes-mercury Performance core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✔ | +| RetroArch Cheats | ✔ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | - | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✔ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✔ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The bsnes-mercury Performance core's internal core name is 'bsnes-mercury' + +The bsnes-mercury Performance core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The bsnes-mercury Performance core's core provided FPS is 60.0988118623 for NTSC games and 50.0069789082 for PAL games. +- The bsnes-mercury Performance core's core provided sample rate is 32040.5 Hz +- The bsnes-mercury Performance core's core provided aspect ratio is dependent on the ['Preferred aspect ratio' core option](https://docs.libretro.com/library/bsnes_mercury_performance#core-options). + +## Super GameBoy + +!!! warning + Super GameBoy support in this core is **Windows only**, and has **buggy save state support** and **visual glitches**. **Use the [higan Accuracy core](https://docs.libretro.com/library/higan_accuracy#super-gameboy-support) or the [nSide Balanced core](https://docs.libretro.com/library/nside_balanced#super-gameboy-support) for simplified, functional, and easily accessible Super Gameboy support.** + +For Super GameBoy support, you need sgb.boot.rom (in RetroArch's System directory), a GameBoy ROM and a Super GameBoy ROM. + +Please note that the Game Boy and Super GameBoy ROMs have to be unzipped. + +Super GameBoy is supported via the Subsystem API. + +There are two ways to access the Subsystem API. + +**One way is to access the Subsystem API through RetroArch's GUI like this.** + +First, we load our GameBoy ROM through 'Load Super GameBoy' in RetroArch's Main Menu. + +![](images/Cores/bsnes/menu1.png) + +![](images/Cores/bsnes/gb.png) + +Next, we load our Super GameBoy ROM through 'Load Super GameBoy' in RetroArch's Menu Menu. + +![](images/Cores/bsnes/menu2.png) + +![](images/Cores/bsnes/sgb.png) + +Then, we start the content by selecting 'Start GameBoy' In RetroArch's Menu Menu. + +![](images/Cores/bsnes/start.png) + +**The other way is to launch RetroArch with commandline like this.** + +``` +retroarch -L {path to bsnes core} {path to Super GameBoy ROM} --subsystem sgb {path to GameBoy rom} +``` + +## MSU-1 + +!!! attention + MSU-1 support in this core is complex. **Use the [Snes9x core](https://docs.libretro.com/library/snes9x#msu-1-support) for simplified and easily accessible MSU-1 support.** + +MSU-1 support can be used by loading a correct .bml file. + +There's documentation for loading MSU-1 games in standalone higan [here](https://higan.readthedocs.io/en/stable/guides/import/#msu-1-games). + +## Core options + +The bsnes-mercury Performance core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Allow settings to reduce accuracy** [bsnes_violate_accuracy] (**disabled**|enabled) + + Respect accuracy-impacting settings. + +- **Special chip accuracy** [bsnes_chip_hle] (**LLE**|HLE) + + **The Allow settings to reduce accuracy core option must be enabled in order for this to function properly. ** + + Choose whether to use LLE (real BIOS) or HLE (emulated BIOS) for enhancement chips. + + HLE is less accurate but also less demanding for the special chips. + + The ST-0011 and ST-0018 co-processors cannot be HLE'd. + +- **SuperFX speed** [bsnes_superfx_overclock] (**100%**|150%|200%|300%|400%|500%|1000%) + + **The Allow settings to reduce accuracy core option must be enabled in order for this to function properly.** + + Overclock the [SuperFX chip](https://en.wikipedia.org/wiki/Super_FX). 100% is stock clockspeed. + +- **System region** [bsnes_region] (**auto**|ntsc|pal) + + Choose which region the system is from. + +- **Preferred aspect ratio** [bsnes_aspect_ratio] (**auto**|ntsc|pal) + + Choose the preferred aspect ratio. RetroArch's aspect ratio must be set to Core provided in the Video seetings. + +- **Crop overscan** [bsnes_crop_overscan] (**disabled**|enabled) + + Crop out the potentially random glitchy video output that would have been hidden by the bezel around the edge of a standard-definition television screen. + +- **Gamma ramp (requires restart)** [bsnes_gamma_ramp] (**disabled**|enabled) + + Simulates the way a console’s display device differs from modern computer monitor’s colour reproduction. In particular, it simulates the slightly-different gamma correction used by the Super Famicom. + +??? note "Gamma ramp - Disabled" + ![](images/Cores/higan/gamma_off.png) + +??? note "Gamma ramp - Enabled" + ![](images/Cores/higan/gamma_on.png) + +## Controllers + +The bsnes-mercury Performance core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. +- **[SNES Joypad](http://nintendo.wikia.com/wiki/Super_Nintendo_Entertainment_System_controller)** - Joypad +- [SNES Mouse](https://en.wikipedia.org/wiki/Super_NES_Mouse) - Mouse + +### User 2 device types + +- None - Doesn't disable input. +- **[SNES Joypad](http://nintendo.wikia.com/wiki/Super_Nintendo_Entertainment_System_controller)** - Joypad +- [SNES Mouse](https://en.wikipedia.org/wiki/Super_NES_Mouse) - Mouse +- [Multitap](http://nintendo.wikia.com/wiki/Super_Multitap) - Joypad - Allows for up to five players to play together in multitap games. +- [SuperScope](https://en.wikipedia.org/wiki/Super_Scope) - Lightgun +- [Justifier](https://en.wikipedia.org/wiki/Konami_Justifier) - Lightgun +- [Justifiers](https://en.wikipedia.org/wiki/Konami_Justifier) - Lightgun - Two Justifiers are plugged in, for two-player Justifier games. + +### Multitap support + +Activating multitap support in compatible games can be configured by switching to the [Multitap device type](https://docs.libretro.com/library/bsnes_mercury_performance#controllers) for User 2. + +### Controller tables + +#### Joypad + +![](images/Controllers/snes.png) + +| User 1 - 5 Remap descriptors | RetroPad Inputs | +|------------------------------|----------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Y | ![](images/RetroPad/Retro_Y_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| X | ![](images/RetroPad/Retro_X_Round.png) | +| L | ![](images/RetroPad/Retro_L1.png) | +| R | ![](images/RetroPad/Retro_R1.png) | + +#### Mouse + +| RetroMouse Inputs | SNES Mouse | +|-----------------------------------------------------|-------------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Mouse Cursor | SNES Mouse Cursor | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | SNES Mouse Left Button | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | SNES Mouse Right Button | + +#### Lightgun + +| RetroLightgun Inputs | SuperScope | Justifier(s) | +|------------------------------------------------------|----------------------|---------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Gun Crosshair | SuperScope Crosshair | Justifier Crosshair | +| Gun Trigger | SuperScope Trigger | Justifier Trigger | +| Gun Aux A | SuperScope Cursor | | +| Gun Aux B | SuperScope Turbo | | +| Gun Start | SuperScope Pause | Justifier Start | + +## Compatibility + +| Game | Issue | +|--------------------------------------------------|--------------------------------------------------------------------------------| +| A.S.P. Air Strike Patrol | Black lines show up during gameplay. The shadow below the aircraft is missing. | +| Funaki Masakatsu Hybrid Wrestler – Tougi Denshou | Corrupted graphics on the Pancrase logo screen. | +| Mecarobot Golf | The ground "wobbles" during gameplay. | +| Mega Man X2 | Only displays a black screen. | +| Mega Man X3 | Only displays a black screen. | +| Mortal Kombat II | Various glitched graphics. | +| NHL ’94 | Corrupted line on the NHL logo screen. | +| Tetris Attack | Lots of flickering on the VS. CPU mode map screen. | + +## External Links + +- [Official higan Website](https://byuu.org/) +- [Official higan Upstream Downloads](https://byuu.org/emulation/higan/) +- [Libretro bsnes-mercury Performance Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/bsnes_mercury_performance_libretro.info) +- [Libretro bsnes-mercury Performance Github Repository](https://github.com/libretro/bsnes-mercury) +- [Report Libretro bsnes-mercury Performance Core Issues Here](https://github.com/libretro/bsnes-mercury/issues) + +### See also + +#### Nintendo - Sufami Turbo + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) + +#### Nintendo - Super Nintendo Entertainment System (+ Hacks) + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (higan Accuracy)](https://docs.libretro.com/library/higan_accuracy/) +- [Nintendo - SNES / Famicom (nSide Balanced)](https://docs.libretro.com/library/nside_balanced/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) \ No newline at end of file diff --git a/docs/library/bsnes_performance.md b/docs/library/bsnes_performance.md new file mode 100644 index 00000000..f6778025 --- /dev/null +++ b/docs/library/bsnes_performance.md @@ -0,0 +1,304 @@ +# Nintendo - SNES / Famicom (bsnes Performance) + +## Background + +bsnes is a Super Nintendo emulator that began development on 2004-10-14. It focuses on accuracy and clean code above all else. It never uses speed or compatibilty hacks. As a result, the minimum system requirements are greater than with other emulators. bsnes comes in three different profiles (accuracy, balanced and performance) which contain minor differences in the PPU (graphics) emulation. + +This core has been compiled with the Performance profile. + +Highly accurate SNES emulation. Whether to use the Accuracy, or Balanced or Performance core depends on how much accuracy you want to give up for game performance. + +Please check the [compatibility section](https://docs.libretro.com/library/bsnes_performance/#compatibility) for more information. + +### Author/License + +The bsnes Performance core has been authored by + +- byuu + +The bsnes Performance core is licensed under + +- [GPLv3](https://github.com/libretro/bsnes-libretro/blob/libretro/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the bsnes Performance core have the following file extensions: + +- .sfc +- .smc +- .bml + +## Databases + +RetroArch database(s) that are associated with the bsnes Performance core: + +- [Nintendo - Super Nintendo Entertainment System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System.rdb) +- [Nintendo - Super Nintendo Entertainment System Hacks](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System%20Hacks.rdb) +- [Nintendo - Sufami Turbo](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Sufami%20Turbo.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +!!! attention + The bsnes Performance core uses split ROMS for [special chip games](https://en.wikipedia.org/wiki/List_of_Super_NES_enhancement_chips#List_of_Super_NES_games_that_use_enhancement_chips). + +Notable DSP1/DSP1B Games: + +- Super Mario Kart +- Pilotwings + +Notable DSP2 Games: + +- Dungeon Master + +Notable DSP3 Games: + +- SD Gundam GX + +Notable DSP4 Games: + +- Top Gear 3000 + +Notable Cx4 Games: + +- Mega Man X2 +- Mega Man X3 + +| Filename | Description | md5sum | +|:-----------------:|:--------------------------------------:|:--------------------------------:| +| dsp1.data.rom | DSP1 co-processor firmware | 3d81b45fa0c2aa8b852dfb1ece7c0971 | +| dsp1.program.rom | DSP1 co-processor firmware | ae209fbe789fbf11a48aea5ab1197321 | +| dsp1b.data.rom | DSP1B co-processor firmware | 1e3f568634a7d8284020dddc0ae905bc | +| dsp1b.program.rom | DSP1B co-processor firmware | d10f446888e097cbf500f3f663cf4f6d | +| dsp2.data.rom | DSP2 co-processor firmware | e9417e29223b139c3c4b635a2a3b8744 | +| dsp2.program.rom | DSP2 co-processor firmware | aa6e5922a3ed5ded54f24247c11143c5 | +| dsp3.data.rom | DSP3 co-processor firmware | 0a81210c0a940b997dd9843281008ee6 | +| dsp3.program.rom | DSP3 co-processor firmware | d99ca4562818d49cee1f242705bba6f8 | +| dsp4.data.rom | DSP4 co-processor firmware | ee4990879eb68e3cbca239c5bc20303d | +| dsp4.program.rom | DSP4 co-processor firmware | a151023b948b90ffc23a5b594bb6fef2 | +| cx4.data.rom | CX4 co-processor firmware | 037ac4296b6b6a5c47c440188d3c72e3 | +| st010.data.rom | ST010 co-processor firmware | 254d70762b6f59f99c27c395aba7d07d | +| st010.program.rom | ST010 co-processor firmware | 1d70019179a59a566a0bb5d3f2845544 | +| st011.data.rom | ST011 co-processor firmware | 10bd3f4aa949737ab9836512c35bcc29 | +| st011.program.rom | ST011 co-processor firmware | 95222ebf1c0c2990bcf25db43743f032 | +| st018.data.rom | ST018 co-processor firmware | 49c898b60d0f15e90d0ba780dd12f366 | +| st018.program.rom | ST018 co-processor firmware | dda40ccd57390c96e49d30a041f9a9e7 | +| sgb.boot.rom | Super Game Boy BIOS | | + +## Features + +Frontend-level settings or features that the bsnes Performance core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✕ | +| RetroAchievements | ✔ | +| RetroArch Cheats | ✔ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | - | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✔ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✔ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✔ | +| LEDs | ✕ | + +### Directories + +The bsnes Performance core's internal core name is 'bsnes' + +The bsnes Performance core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The bsnes Performance core's core provided FPS is 60.0988118623 for NTSC games and 50.0069789082 for PAL games. +- The bsnes Performance core's core provided sample rate is 32040.5 Hz +- The bsnes Performance core's core provided aspect ratio is 4/3 + +## Super GameBoy + +!!! warning + Super GameBoy support in this core is **Windows only**, and has **buggy save state support** and **visual glitches**. **Use the [higan Accuracy core](https://docs.libretro.com/library/higan_accuracy#super-gameboy-support) or the [nSide Balanced core](https://docs.libretro.com/library/nside_balanced#super-gameboy-support) for simplified, functional, and easily accessible Super Gameboy support.** + +For Super GameBoy support, you need sgb.boot.rom (in RetroArch's System directory), a GameBoy ROM and a Super GameBoy ROM. + +Please note that the Game Boy and Super GameBoy ROMs have to be unzipped. + +Super GameBoy is supported via the Subsystem API. + +There are two ways to access the Subsystem API. + +**One way is to access the Subsystem API through RetroArch's GUI like this.** + +First, we load our GameBoy ROM through 'Load Super GameBoy' in RetroArch's Main Menu. + +![](images/Cores/bsnes/menu1.png) + +![](images/Cores/bsnes/gb.png) + +Next, we load our Super GameBoy ROM through 'Load Super GameBoy' in RetroArch's Menu Menu. + +![](images/Cores/bsnes/menu2.png) + +![](images/Cores/bsnes/sgb.png) + +Then, we start the content by selecting 'Start GameBoy' In RetroArch's Menu Menu. + +![](images/Cores/bsnes/start.png) + +**The other way is to launch RetroArch with commandline like this.** + +``` +retroarch -L {path to bsnes core} {path to Super GameBoy ROM} --subsystem sgb {path to GameBoy rom} +``` + +## MSU-1 + +!!! attention + MSU-1 support in this core is complex. **Use the [Snes9x core](https://docs.libretro.com/library/snes9x#msu-1-support) for simplified and easily accessible MSU-1 support.** + +MSU-1 support can be used by loading a correct .bml file. + +There's documentation for loading MSU-1 games in standalone higan [here](https://higan.readthedocs.io/en/stable/guides/import/#msu-1-games). + +## Controllers + +The bsnes Performance core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Disables input. +- **[SNES Joypad](http://nintendo.wikia.com/wiki/Super_Nintendo_Entertainment_System_controller)** - Joypad +- [SNES Mouse](https://en.wikipedia.org/wiki/Super_NES_Mouse) - Mouse + +### User 2 device types + +- None - Disables input. +- **[SNES Joypad](http://nintendo.wikia.com/wiki/Super_Nintendo_Entertainment_System_controller)** - Joypad +- [SNES Mouse](https://en.wikipedia.org/wiki/Super_NES_Mouse) - Mouse +- [Multitap](http://nintendo.wikia.com/wiki/Super_Multitap) - Joypad - Allows for up to five players to play together in multitap games. +- [SuperScope](https://en.wikipedia.org/wiki/Super_Scope) - Lightgun +- [Justifier](https://en.wikipedia.org/wiki/Konami_Justifier) - Lightgun +- [Justifiers](https://en.wikipedia.org/wiki/Konami_Justifier) - Lightgun - Two Justifiers are plugged in, for two-player Justifier games. + +### Multitap support + +Activating multitap support in compatible games can be configured by switching to the [Multitap device type](https://docs.libretro.com/library/bsnes_performance#controllers) for User 2. + +### Controller tables + +#### Joypad + +![](images/Controllers/snes.png) + +| User 1 - 5 Remap descriptors | RetroPad Inputs | +|------------------------------|-------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Y | ![](images/RetroPad/Retro_Y_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| X | ![](images/RetroPad/Retro_X_Round.png) | +| L | ![](images/RetroPad/Retro_L1.png) | +| R | ![](images/RetroPad/Retro_R1.png) | + +#### Mouse + +| RetroMouse Inputs | SNES Mouse | +|-----------------------------------------------------|---------------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Mouse Cursor | SNES Mouse Cursor | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | SNES Mouse Left Button | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | SNES Mouse Right Button | + +#### Lightgun + +| RetroLightgun Inputs | SuperScope | Justifier(s) | +|------------------------------------------------------|---------------------------|---------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Gun Crosshair | SuperScope Crosshair | Justifier Crosshair | +| Gun Trigger | SuperScope Trigger | Justifier Trigger | +| Gun Aux A | SuperScope Cursor | | +| Gun Aux B | SuperScope Turbo | | +| Gun Start | SuperScope Pause | Justifier Start | + +## Compatibility + +| Game | Issue | +|--------------------------------------------------|--------------------------------------------------------------------------------| +| A.S.P. Air Strike Patrol | Black lines show up during gameplay. The shadow below the aircraft is missing. | +| Funaki Masakatsu Hybrid Wrestler – Tougi Denshou | Corrupted graphics on the Pancrase logo screen. | +| Mecarobot Golf | The ground "wobbles" during gameplay. | +| Mega Man X2 | Only displays a black screen. | +| Mega Man X3 | Only displays a black screen. | +| Mortal Kombat II | Various glitched graphics. | +| NHL ’94 | Corrupted line on the NHL logo screen. | +| Tetris Attack | Lots of flickering on the VS. CPU mode map screen. | + +## External Links + +- [Official higan Website](https://byuu.org/) +- [Official higan Upstream Downloads](https://byuu.org/emulation/higan/) +- [Libretro bsnes Performance Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/bsnes_performance_libretro.info) +- [Libretro bsnes Performance Github Repository](https://github.com/libretro/bsnes-libretro) +- [Report Libretro bsnes Performance Core Issues Here](https://github.com/libretro/bsnes-libretro/issues) + +### See also + +#### Nintendo - Sufami Turbo + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) + +#### Nintendo - Super Nintendo Entertainment System (+ Hacks) + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (higan Accuracy)](https://docs.libretro.com/library/higan_accuracy/) +- [Nintendo - SNES / Famicom (nSide Balanced)](https://docs.libretro.com/library/nside_balanced/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) \ No newline at end of file diff --git a/docs/library/caprice32.md b/docs/library/caprice32.md new file mode 100644 index 00000000..3b5d463b --- /dev/null +++ b/docs/library/caprice32.md @@ -0,0 +1,299 @@ +# Amstrad - CPC (Caprice32) + +## Background + +Caprice32 is a software emulator of the Amstrad CPC 8bit home computer series running on Linux and Windows. The emulator faithfully imitates the CPC464, CPC664, and CPC6128 models. By recreating the operations of all hardware components at a low level, the emulator achieves a high degree of compatibility with original CPC software. These programs or games can be run unmodified at real-time or higher speeds, depending on the emulator host environment. + +### Author/License + +The Caprice32 core has been authored by + +- Ulrich Doewich +- dantoine + +The Caprice32 core is licensed under + +- [GPLv2](https://github.com/ColinPitrat/caprice32/blob/master/COPYING.txt) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Caprice32 core have the following file extensions: + +- .dsk +- .sna +- .zip +- .tap +- .cdt +- .voc + +## Databases + +RetroArch database(s) that are associated with the Caprice32 core: + +- [Amstrad - CPC](https://github.com/libretro/libretro-database/blob/master/rdb/Amstrad%20-%20CPC.rdb) + +## Features + +Frontend-level settings or features that the Caprice32 core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✔ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Caprice32 core's internal core name is 'cap32' + +The Caprice32 core saves/loads to/from these directories. + +**Loaded content's directory** + +- 'content-name'#.SNA (SNA) + +### Geometry and timing + +- The Caprice32 core's core provided FPS is (FPS) +- The Caprice32 core's core provided sample rate is (Rate) +- The Caprice32 core's core provided aspect ratio is (Ratio) + +## Usage + +The Caprice32 core has a virtual keyboard GUI that can be accessed through User 1's RetroPad Y input. + +The mouse cursor can be controlled by RetroPad D-Pad inputs when the RetroPad Select input is pressed. + +![](images/Cores/caprice32/vkbd.png) + +Here are some actions you can do in page 2 of the virtual keyboard GUI. + +- "EXT" EXIT EMU +- "SNA" SAVE SNA +- "DSK" SWITCH DSK DRIVE A/B +- "Col" SWTICH FGCOL ON/OFF + +## Core options + +The Caprice32 core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Autorun** [cap32_autorun] (**disabled**|enabled) + + If enabled, the core will run the first bas/bin found in the DSK. + +- **Internal resolution** [cap32_resolution] (**384x272**|400x300) + + Self-explanatory. + +- **Model:** [cap32_Model] (**464**|664|6128) + + Choose which Amstrad CPC model to emulate. + +- **Ram size:** [cap32_Ram] (**64**|128|192|512|576) + + CPC physical RAM size in kB + +- **Status Bar** [cap32_Statusbar] (**disabled**|enabled) + + Awaiting description. + +- **Drive:** [cap32_Drive] (**0**|1) + + Awaiting description. + +- **scr_tube** [cap32_scr_tube] (**disabled**|enabled) + + Choose between a color display or a monochrome display. + +??? note "scr_tube - Off" + ![](images\Cores\caprice32\tube_off.png) + +??? note "scr_tube - On" + ![](images\Cores\caprice32\tube_on.png) + +- **scr_intensity** [cap32_scr_intensity] (**5**|6|7|8|9|10|11|12|13|14|15) + + Screen cathodic tube intensity. + +!!! attention + These 'scr_intensity' core option screenshots have been taken with the 'scr_tube' core option set to Off. + +??? note "scr_intensity - 5" + ![](images\Cores\caprice32\5.png) + +??? note "scr_intensity - 15" + ![](images\Cores\caprice32\15.png) + +- **Retro joy0** [cap32_RetroJoy] (**disabled**|enabled) + + Awaiting description. + +## Controllers + +The Caprice32 core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 2 device types + +- None - Doesn't disable input. There's no reason to switch to this. +- **RetroPad** - Joypad - Don't use this. Switch to Amstrad Joystick for joypad input. +- Amstrad Joystick - Joypad - Use this for joypad input. +- Amstrad Keyboard - Keyboard - Keyboard input are always active. Has keymapper support. + +### Other controllers + +- Mouse - The mouse cursor in the Virtual Keyboard GUI can be controlled with mouse inputs. + +### Controller tables + +#### Joypad + +| User 1 Remap descriptors | RetroPad Inputs | Amstrad Joystick | +|--------------------------|-------------------------------------------|------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | RUN | +| Y | ![](images/RetroPad/Retro_Y_Round.png) | VKBD ON/OFF | +| Select | ![](images/RetroPad/Retro_Select.png) | MOUSE/JOY in GUI | +| Start | ![](images/RetroPad/Retro_Start.png) | ENTER/RETURN | +| Up | ![](images/RetroPad/Retro_Dpad_Up.png) | JOY UP | +| Down | ![](images/RetroPad/Retro_Dpad_Down.png) | JOY DOWN | +| Left | ![](images/RetroPad/Retro_Dpad_Left.png) | JOY LEFT | +| Right | ![](images/RetroPad/Retro_Dpad_Right.png) | JOY RIGHT | +| A | ![](images/RetroPad/Retro_A_Round.png) | FIRE1/VKBD KEY | +| X | ![](images/RetroPad/Retro_X_Round.png) | FIRE2 | +| L | ![](images/RetroPad/Retro_L1.png) | CAT | +| R | ![](images/RetroPad/Retro_R1.png) | RESET | +| L2 | ![](images/RetroPad/Retro_L2.png) | STATUS ON/OFF | +| R2 | ![](images/RetroPad/Retro_R2.png) | AUTOLOAD TAPE | +| L3 | ![](images/RetroPad/Retro_L3.png) | | +| R3 | ![](images/RetroPad/Retro_R3.png) | | + +#### Keyboard + +| RetroKeyboard Inputs | Amstrad Keyboard | +|------------------------------|-----------------------------| +| Keyboard Backspace | CPC_KEY_DEL | +| Keyboard Tab | CPC_KEY_TAB | +| Keyboard Return | CPC_KEY_RETURN | +| Keyboard Escape | CPC_KEY_ESC | +| Keyboard Space | CPC_KEY_SPACE | +| Keyboard Comma , | CPC_KEY_COMMA | +| Keyboard Minus - | CPC_KEY_MINUS | +| Keyboard Period . | CPC_KEY_DOT | +| Keyboard 0 | CPC_KEY_ZERO | +| Keyboard 1 | CPC_KEY_1 | +| Keyboard 2 | CPC_KEY_2 | +| Keyboard 3 | CPC_KEY_3 | +| Keyboard 4 | CPC_KEY_4 | +| Keyboard 5 | CPC_KEY_5 | +| Keyboard 6 | CPC_KEY_6 | +| Keyboard 7 | CPC_KEY_7 | +| Keyboard 8 | CPC_KEY_8 | +| Keyboard 9 | CPC_KEY_9 | +| Keyboard Semicolon ; | CPC_KEY_COLON | +| Keyboard Equals = | CPC_KEY_HAT | +| Keyboard Left Bracket [ | CPC_KEY_AT | +| Keyboard Right Bracket ] | CPC_KEY_OPEN_SQUARE_BRACKET | +| Keyboard a | CPC_KEY_A | +| Keyboard b | CPC_KEY_B | +| Keyboard c | CPC_KEY_C | +| Keyboard d | CPC_KEY_D | +| Keyboard e | CPC_KEY_E | +| Keyboard f | CPC_KEY_F | +| Keyboard g | CPC_KEY_G | +| Keyboard h | CPC_KEY_H | +| Keyboard i | CPC_KEY_I | +| Keyboard j | CPC_KEY_J | +| Keyboard k | CPC_KEY_K | +| Keyboard l | CPC_KEY_L | +| Keyboard m | CPC_KEY_M | +| Keyboard n | CPC_KEY_N | +| Keyboard o | CPC_KEY_O | +| Keyboard p | CPC_KEY_P | +| Keyboard q | CPC_KEY_Q | +| Keyboard r | CPC_KEY_R | +| Keyboard s | CPC_KEY_S | +| Keyboard t | CPC_KEY_T | +| Keyboard u | CPC_KEY_U | +| Keyboard v | CPC_KEY_V | +| Keyboard w | CPC_KEY_W | +| Keyboard x | CPC_KEY_X | +| Keyboard y | CPC_KEY_Y | +| Keyboard z | CPC_KEY_Z | +| Keyboard Delete | CPC_KEY_JOY_LEFT | +| Keyboard Keypad 0 | CPC_KEY_F0 | +| Keyboard Keypad 1 | CPC_KEY_F1 | +| Keyboard Keypad 2 | CPC_KEY_F2 | +| Keyboard Keypad 3 | CPC_KEY_F3 | +| Keyboard Keypad 4 | CPC_KEY_F4 | +| Keyboard Keypad 5 | CPC_KEY_F5 | +| Keyboard Keypad 6 | CPC_KEY_F6 | +| Keyboard Keypad 7 | CPC_KEY_F7 | +| Keyboard Keypad 8 | CPC_KEY_F8 | +| Keyboard Keypad 9 | CPC_KEY_F9 | +| Keyboard Keypad Period . | CPC_KEY_FDOT | +| Keyboard Keypad Enter | CPC_KEY_SMALL_ENTER | +| Keyboard Up | CPC_KEY_CURSOR_UP | +| Keyboard Down | CPC_KEY_CURSOR_DOWN | +| Keyboard Right | CPC_KEY_CURSOR_RIGHT | +| Keyboard Left | CPC_KEY_CURSOR_LEFT | +| Keyboard Insert | CPC_KEY_JOY_FIRE1 | +| Keyboard Home | CPC_KEY_JOY_UP | +| Keyboard End | CPC_KEY_JOY_DOWN | +| Keyboard Page Up | CPC_KEY_JOY_FIRE2 | +| Keyboard Page Down | CPC_KEY_JOY_RIGHT | +| Keyboard F8 | LOAD DSK/TAPE | +| Keyboard F9 | MEM SNAPSHOT LOAD/SAVE | +| Keyboard F10 | MAIN GUI | +| Keyboard F12 | PLAY TAPE | +| Keyboard Caps Lock | CPC_KEY_CAPS_LOCK | +| Keyboard Right Shift | CPC_KEY_SHIFT | +| Keyboard Left Shift | CPC_KEY_SHIFT | +| Keyboard Right Control | CPC_KEY_CONTROL | +| Keyboard Left Control | CPC_KEY_CONTROL | +| Keyboard Right Alt | CPC_KEY_COPY | +| Keyboard Left Alt | CPC_KEY_COPY | +| Keyboard Compose | CPC_KEY_COPY | + +#### Mouse + +| RetroMouse Inputs | Virtual Keyboard GUI Inputs | +|-----------------------------------------------------|-----------------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Mouse Cursor | Mouse Cursor | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | Mouse Left Button | + +## External Links + +- [Official Caprice32 Github Repository](https://github.com/ColinPitrat/caprice32) +- [Libretro Caprice32 Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/cap32_libretro.info) +- [Libretro Caprice32 Github Repository](https://github.com/libretro/libretro-cap32) +- [Report Libretro Caprice32 Core Issues Here](https://github.com/libretro/libretro-cap32/issues) + +### See also + +#### Amstrad - CPC + +- [Amstrad - CPC (CrocoDS)](https://docs.libretro.com/library/crocods/) \ No newline at end of file diff --git a/docs/library/chailove.md b/docs/library/chailove.md new file mode 100644 index 00000000..1cca8ab0 --- /dev/null +++ b/docs/library/chailove.md @@ -0,0 +1,174 @@ +# ChaiLove + +## Background + +[ChaiLove](https://github.com/libretro/libretro-chailove) is a framework for making 2D games with [ChaiScript](http://chaiscript.com/). ChaiLove games can be played with LibRetro/RetroArch through the ChaiLove core. + +#### How to start the ChaiLove core: + +- As an example showcasing loading content with Chailove core, we will load the Floppy Bird game hosted on RetroArch's Content Downloader. + +You can do this by going to RetroArch's main menu screen and selecting 'Online Updater'. From there, select 'Content Downloader'. + +
![](images\Cores\all\download.png)
+ +- Select 'ChaiLove', then select 'Floppy Bird.chailove'. This should download and extract this file to RetroArch's Downloads directory. + +
![](images\Cores\chailove\chailove.png)
+ +- Go back to RetroArch's main menu screen. Select 'Load Content', then 'Downloads'. + +
![](images\Cores\all\load.png)
+ +
![](images\Cores\all\downloads.png)
+ +- Select 'Floppy Bird.chailove'. + +- If you are asked which core to select, choose 'ChaiLove'. + +The content should now start running! + +### Author/License + +The ChaiLove core has been authored by + +- Rob Loach + +The ChaiLove core is licensed under + +- [MIT](https://github.com/libretro/libretro-chailove/blob/master/LICENSE.md) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the ChaiLove core have the following file extensions: + +- .chai +- .chailove + +## Databases + +RetroArch database(s) that are associated with the ChaiLove core: + +- [ChaiLove](https://github.com/libretro/libretro-database/blob/master/rdb/ChaiLove.rdb) + +## Features + +Frontend-level settings or features that the ChaiLove core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The ChaiLove core's internal core name is 'ChaiLove' + +The ChaiLove core saves/loads to/from these directories. + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The ChaiLove core's core provided FPS is 60 +- The ChaiLove core's core provided sample rate is 44100 Hz +- The ChaiLove core's core provided aspect ratio is (Ratio) + +## Core options + +The ChaiLove core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Alpha Blending** [chailove_alphablending] (**enabled**|disabled) + + Enable or disable alpha blending (transparency). + +??? note "Alpha Blending - On" + ![](images\Cores\chailove\alpha_on.png) + +??? note "Alpha Blending - Off" + ![](images\Cores\chailove\alpha_off.png) + +- **High Quality** [chailove_highquality] (**enabled**|disabled) + + Enable or disable extra visual features. + +??? note "High Quality - On" + ![](images\Cores\chailove\quality_on.png) + +??? note "High Quality - Off" + ![](images\Cores\chailove\quality_off.png) + +## Controllers + +The ChaiLove core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 5 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad - Stay on this. +- RetroPad w/Analog - Joypad - There's no reason to switch to this. + +### Controller tables + +#### Joypad + +!!! attention + What the buttons do are game specific. + +| User 1 - 5 Remap descriptors | RetroPad Inputs | +|------------------------------|----------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Y | ![](images/RetroPad/Retro_Y_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| X | ![](images/RetroPad/Retro_X_Round.png) | +| L | ![](images/RetroPad/Retro_L1.png) | +| R | ![](images/RetroPad/Retro_R1.png) | + +## External Links + +- [ChaiLove API Documentation Website](https://robloach.github.io/ChaiLove/) +- [ChaiScript Website](http://chaiscript.com/) +- [Libretro ChaiLove Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/chailove_libretro.info) +- [Official/Libretro ChaiLove Github Repository](https://github.com/libretro/libretro-chailove) +- [ChaiLove Github Wiki](https://github.com/libretro/libretro-chailove/wiki) +- [Report Libretro ChaiLove Core Issues Here](https://github.com/libretro/libretro-chailove/issues) + +### See also + +#### Custom Engine + +- [Lua Engine (Lutro)](https://docs.libretro.com/library/lutro/) \ No newline at end of file diff --git a/docs/library/citra.md b/docs/library/citra.md new file mode 100644 index 00000000..f9583629 --- /dev/null +++ b/docs/library/citra.md @@ -0,0 +1,267 @@ +# Nintendo 3DS (Citra) + +## Contribute to this documentation + +In order to propose improvements to this document, [visit its corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/citra.md). Changes are proposed using "Pull Requests." + +## Background + +Citra is an experimental open-source Nintendo 3DS emulator/debugger written in C++. It is written with portability in mind. + +### Requirements + +This core requires that you use OpenGL as the video driver. Go to Settings -> Driver. If ‘video driver’ is set to ‘vulkan’, switch it back to ‘gl’, and then restart. + +![](images/Cores/citra/gl.png) + +!!! attention + The Citra core requires OpenGL 3.3 or higher in order to work. + +!!! warning + There is currently no ‘working’ macOS version available. This is because this core requires OpenGL core 3.3 context, and RetroArch on macOS currently does not support this. We will have to add support for this to a future version of RetroArch on macOS before this core will start to work on it. + +Also, you need to turn on ‘Enable Shared Hardware Context’ so that fullscreen toggling will work properly. + +First, you need to ensure that ‘Show Advanced Settings’ is turned on. Go to Settings -> User Interface and turn ‘Show Advanced Settings’ on. + +![](images/Cores/citra/advanced.png) + +Now, go back, and go to Settings -> Core. + +![](images/Cores/citra/core.png) + +Once inside the ‘Core’ settings, set ‘Enable Shared Hardware Context’ to ON. + +![](images/Cores/citra/context.png) + +### How to get and install the Citra core: + +1. Start up RetroArch. Inside the main menu, go to 'Online Updater'. + +2. Just to make sure we have the latest info files, select 'Update Core Info FIles'. Wait until this is done. Then, select 'Core Updater'. + +3. Browse through the list and select 'Nintendo 3DS (Citra)'. + +After this has finished downloading, the core should now be ready for use! + +#### How to play (after installation): + +1. Go back to RetroArch's main menu screen. Select 'Load Content'. + +2. Browse to the folder that contains the content you want to run. + +3. Select the content that you want to run. + +4. If you are asked which core to select, choose 'Nintendo 3DS (Citra)'. + +The game should now start running! + +### Authors + +- Citra Emulation Project + +## License + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +- [GPLv2](https://github.com/citra-emu/citra/blob/master/license.txt) + +## Extensions + +Content that can be loaded by the Citra core have the following file extensions: + +- .3ds +- .3dsx +- .elf +- .axf +- .cci +- .cxi +- .app + +## Databases + +RetroArch database(s) that are associated with the Citra core: + +- [Nintendo - Nintendo 3DS](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Nintendo%203DS.rdb) + +## BIOS + +Awaiting description. + +## Features + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | - | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| Softpatching | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Crop Overscan (in RetroArch's Video settings) | ✕ | + +### Directories + +The Citra core's directory name is 'Citra' + +Awaiting description. + +### Core provided aspect ratio + +Awaiting description. + +## Core options + +The Citra core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Enable CPU JIT** (Off/**On**) + +
Enable Citra's 'dynarmic' dynamic recomplier. Can improve performance. Instructions that are not implemented by the recompiler fall back into the interpreter CPU core.
+ +
If disabled, Citra will solely use the Interpreter CPU core.
+ +- **Enable hardware renderer** (Off/**On**) + +
Awaiting description.
+ +- **Enable shader JIT** (Off/**On**) + +
Awaiting description.
+ +- **Resolution scale factor** (**1x (Native)**/2x/3x/4x/5x/6x/7x/8x/9x/10x) + +
Awaiting description.
+ +- **Screen layout positioning** (**Default Top-Bottom Screen**/Single Screen Only/Large Screen, Small Screen) + +
Self explanatory.
+ +
+ +??? note "Screen layout positioning - Default Top-Bottom Screen" + ![](images/Cores/citra/default.png) + +
+ +
+ +??? note "Screen layout positioning - Single Screen Only" + ![](images/Cores/citra/single.png) + +
+ +
+ +??? note "Screen layout positioning - Large Screen, Small Screen)" + ![](images/Cores/citra/large.png) + +
+ +- **Prominent 3DS screen** (**Top**/Bottom) + +
Awaiting description.
+ +- **Right analog function** (**C-Stick and Touchscreen Pointer**/Touchscreen Pointer/C-Stick) + +
Awaiting description.
+ +- **Emulated pointer deadzone (%)** (0 to 35 in increments of 5. **15 is default.**) + +
Awaiting description.
+ +- **Enable frame limiter** (Off/**On**) + +
Awaiting description.
+ +- **Enable audio stretching** (Off/**On**) + +
Awaiting description.
+ +- **Enable virtual SD card** (Off/**On**) + +
Awaiting description.
+ +- **3DS system model** (**Old 3DS**/New 3DS) + +
Awaiting description.
+ +- **3DS system region** (**Auto**/Japan/USA/Europe/Australia/China/Korea/Taiwan) + +
Awaiting description.
+ +- **Enable GDB stub** (**Off**/On) + +
Awaiting description.
+ +## Controllers + +### Device types + +The Citra core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +#### User 1 device types + +- None - Input disabled. +- **RetroPad** - Joypad +- Nintendo 3DS - Joy[ad + +### Controller tables + +#### Joypad and analog device type table + +| User 1 input descriptors | | Nintendo 3DS | +|-------------------------------|----------------------------------------------|--------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | B | +| Y | ![](images/RetroPad/Retro_Y_Round.png) | Y | +| Select | ![](images/RetroPad/Retro_Select.png) | Select | +| Start | ![](images/RetroPad/Retro_Start.png) | Start | +| Up | ![](images/RetroPad/Retro_Dpad_Up.png) | Up | +| Down | ![](images/RetroPad/Retro_Dpad_Down.png) | Down | +| Left | ![](images/RetroPad/Retro_Dpad_Left.png) | Left | +| Right | ![](images/RetroPad/Retro_Dpad_Right.png) | Right | +| A | ![](images/RetroPad/Retro_A_Round.png) | A | +| X | ![](images/RetroPad/Retro_X_Round.png) | X | +| L | ![](images/RetroPad/Retro_L1.png) | L | +| R | ![](images/RetroPad/Retro_R1.png) | R | +| ZL | ![](images/RetroPad/Retro_L2.png) | ZL | +| ZR | ![](images/RetroPad/Retro_R2.png) | ZR | +| Home | ![](images/RetroPad/Retro_L3.png) | Home | +| N/A | ![](images/RetroPad/Retro_R3.png) | [Right analog function](https://docs.libretro.com/library/citra/#core-options) | +| N/A | ![](images/RetroPad/Retro_Left_Stick.png) X | Circle Pad X | +| N/A | ![](images/RetroPad/Retro_Left_Stick.png) Y | Circle Pad Y | +| N/A | ![](images/RetroPad/Retro_Right_Stick.png) X | [Right analog function](https://docs.libretro.com/library/citra/#core-options) X | +| N/A | ![](images/RetroPad/Retro_Right_Stick.png) Y | [Right analog function](https://docs.libretro.com/library/citra/#core-options) Y | + +#### Pointer device type table + +| User 1 input descriptors | | Touchscreen Pointer | +|-------------------------------|-----------------|---------------------| +| N/A | Pointer | Touchscreen Pointer | +| N/A | Pointer Pressed | Touchscreen Pressed | + +## Compatibility + +- [Citra Game Compatibility List](https://citra-emu.org/game/) + +## External Links + +- [Libretro Citra Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/citra_libretro.info) +- [Libretro Citra Github Repository](https://github.com/libretro/citra) +- [Report Libretro Citra Core Issues Here](https://github.com/libretro/citra/issues) +- [Official Citra Website](https://citra-emu.org/) +- [Official Citra Github Repository](https://github.com/citra-emu/citra) diff --git a/docs/library/compatibility/32x.md b/docs/library/compatibility/32x.md new file mode 100644 index 00000000..4d2dd276 --- /dev/null +++ b/docs/library/compatibility/32x.md @@ -0,0 +1,15 @@ +# Sega 32X Core Compatibility + +## PicoDrive + +| Game | Issue | +|----------------------------------------------|---------------------------------------------------------------| +| Brutal Unleashed – Above the Claw | Softlocks after the first fight. | +| FIFA Soccer ’96 | Glitched main menu text. | +| Knuckles’ Chaotix | Glitched graphics on the Player Select screen. | +| NBA Jam Tournament Edition | Framerate issues. | +| NFL Quarterback Club | Some menu graphics are missing. | +| Star Wars Arcade (PAL version) | Glitched opening visuals. Cannot get past Press Start screen. | +| Virtua Racing Deluxe | Blinking line during the SEGA logo screen. | +| World Series Baseball Starring Deion Sanders | Crashes when starting a match. | +| WWF Raw | Various graphics are missing. | \ No newline at end of file diff --git a/docs/library/compatibility/3do.md b/docs/library/compatibility/3do.md new file mode 100644 index 00000000..310cdbea --- /dev/null +++ b/docs/library/compatibility/3do.md @@ -0,0 +1,5 @@ +# 3DO Core Compatibility + +## 4DO + +[4DO Core Compatibility List](http://wiki.fourdo.com/Compatibility_List) \ No newline at end of file diff --git a/docs/library/compatibility/dc.md b/docs/library/compatibility/dc.md new file mode 100644 index 00000000..1e058e28 --- /dev/null +++ b/docs/library/compatibility/dc.md @@ -0,0 +1,25 @@ +# Sega Dreamcast Core Compatibility + +## Reicast + +General Reicast Issues + +- The date and time do not seem to get properly saved, as the system will ask you to set the clock every time you start. +- Once you save to a VMU slot with any game, that VMU becomes inaccessible the next time you load the emulator. +- Polygon sorting issues can make objects appear distorted. +- When using an Xbox 360 Controller, analog triggers don't work properly. Use the bumpers instead. +- Changing games without closing and reloading RetroArch often leads to RetroArch crashing. + +| Game | Issue | +|---------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Cannon Spike (PAL) | Many flickering polygons, most of the play area is invisible. | +| Capcom vs. SNK: Millennium Fight 2000 (PAL) | The "KO" text appears distorted. | +| Crazy Taxi (PAL) | Player taxis do not emit engine sounds. | +| Crazy Taxi (USA) | Player taxis do not emit engine sounds. | | +| Jet Grind Radio (USA) | Shadow volumes do not work right, so player characters do not cast shadows. Roller skate trails aren't transparent and instead fade to solid black. HUD elements flicker during character select in the garage. Police reports during levels do not display correctly. | +| Sonic Adventure (PAL) | Must be set to use "VGA" output in core options, as "TV" mode will cause all subsequent FMV to make RetroArch become unresponsive. | +| Sonic Adventure 2 (USA) | Shadow volumes do not work right, so characters and other objects do not cast shadows. Text during score tally will flicker sometimes (Wild Canyon as Knuckles). | +| Soul Calibur (PAL) | The sky during both the intro and matches will flicker. Text is occasionally garbled and misaligned. | +| Super Runabout: San Francisco (USA) | Crash to desktop with no error message. | +| Virtua Fighter 3TB (USA) | Shadow volumes do not work right, so player characters do not cast shadows. On the character select screen, alpha blending on hair textures does not display. | +| Zombie Revenge (USA) | Shadow volumes do not work right, so player characters do not cast shadows. The laptop in the game's intro cutscene doesn't display correctly. If you pause the game using the start button, RetroArch freezes. | diff --git a/docs/library/compatibility/ds.md b/docs/library/compatibility/ds.md new file mode 100644 index 00000000..a8038b62 --- /dev/null +++ b/docs/library/compatibility/ds.md @@ -0,0 +1,17 @@ +# Nintendo DS Core Compatibility + +## DeSmuME + +| Game | Issue | +|------------------------------------------|-----------------------------------------------------------------------------------------------| +| Alice in Wonderland | Needs JIT Block Size 8 or smaller to get past title screen. | +| Golden Sun: Dark Dawn (Europe) | Runs very slowly. Buggy sound. | +| Hotel Dusk: Room 215 | Graphics glitches. Unintended "scanlines" appear on some screens. | +| Pokémon HeartGold (Europe) (Rev 10) | Graphics glitches . Black pixels pop-ups in the top screen. Top screen goes black. | +| Pokémon SoulSilver (Europe) (Rev 10) | Graphics glitches. Black pixels pop-ups in the top screen. Top screen goes black. | +| Puppy Palace (U) / My Puppy Shop (E) | Crashes in menus. | +| Rune Factory (U) | Random crashes. | +| Rune Factory 2 (U) | Random crashes. | +| Ultimate Mortal Kombat 3 | Runs very slowly. | | +| Yoshi Touch & Go | Runs very slowly. | +| Yu-Gi-Oh! 5D's WORLD CHAMPIONSHIP 2010 (J) | Random crashes. | \ No newline at end of file diff --git a/docs/library/compatibility/gba.md b/docs/library/compatibility/gba.md new file mode 100644 index 00000000..f004896f --- /dev/null +++ b/docs/library/compatibility/gba.md @@ -0,0 +1,60 @@ +# Nintendo Game Boy Advance Core Compatibility + +## gpSP + +| Game | Issue | +|---------------------------------------|--------------------------------| +| Activision Anthology |Freezes when entering a game. | +| Banjo-Kazooie - Grunty's Revenge |Black screen during developer logo. Resets when Banjo leaves his house.| +| Boktai Trilogy |The solar sensor is not emulated. | +| DemiKids - Light/Dark Version |Crashes when entering a battle. | +| Digimon Racing (Europe) |Freezes during the intro. | +| Dragon Ball Z - The Legacy of Goku |Graphics glitches. | +| Final Fantasy VI |Background/tiling order issues. | +| Game Boy Advance Video - Dragon Ball GT - Volume 1 |White screen. | +| Grand Theft Auto Advance |Crashes after first dialog. | +| Harry Potter - Quidditch World Cup |Crashes when going ingame. | +| Koro Koro Puzzle Happy Panechu! |The tilt sensor is not emulated. | +| Mario & Luigi - Superstar Saga |Crashes when entering a battle. | +| Phantasy Star Collection |Phantasy Star 1 flickers. | +| R-Type III - The Third Lightning |Softlocks at Irem startup screen.| +| Rock 'n Roll Racing |Corrupted graphics, not playable.| +| Rockman & Forte |Doesn't continue after GBA BIOS screen.| +| Sims 2, The - Pets |Graphics glitches. Heavy flickering, black objects. | +| Street Racing Syndicate |Freezes at startup screen, doesn't continue.| +| Super Monkey Ball Jr. |Softlocks at startup screen.| +| Super Street Fighter II Turbo/X Revival |Small graphics glitch. Selecting speed 'Turbo 1' and beyond on the character select screen makes the game speed window not fully visible. | +| Tales of Phantasia (USA version) |Softlocks during the introduction sequence (just before the small guy hits the tall guy in the right).| +| WarioWare: Twisted! |The tilt sensor is not emulated.| +| Wolfenstein 3D |Softlocks at id Software startup screen.| +| Yoshi’s Universal Gravitation |The tilt sensor is not emulated.| + +## VBA-M + +| Game | Issue | +|---------------------------------------|--------------------------------| +| Boktai Trilogy | The solar sensor is not emulated| +| Digimon Racing (Europe) |Freezes during the intro. This can be avoided by enabling linking in the standalone VBA-M release | +| Koro Koro Puzzle Happy Panechu! | The tilt sensor is not emulated| +| Phantasy Star Collection | Digital Eclipse logo sound effect is missing. Phantasy Star 1 flickers | +| WarioWare: Twisted! | The tilt sensor is not emulated | +| Yoshi’s Universal Gravitation | The tilt sensor is not emulated | + +## VBA Next + +| Game | Issue | +|---------------------------------------------------|----------------------------------------------------------------------------------------------------| +| Boktai Trilogy | The solar sensor is not emulated. | +| Croket! 2 – Yami no Bank to Banqueen | Heavy slowdown when approaching the snowman in the beginning. | +| Digimon Racing (Europe) | Freezes during the intro. This can be avoided by enabling linking in the standalone VBA-M release. | +| Drome Racers | Only shows a black screen after the THQ logo. | +| Hamtaro: Ham-Ham Games | Locks up if the opening cinematics aren’t skipped. | +| Hot Wheels - Stunt Track Challenge | Resets itself when trying to go in-game. | +| Jurassic Park III: Park Builder | Unreadable glitched text. | +| Koro Koro Puzzle Happy Panechu! | The tilt sensor is not emulated. | +| Moto GP | Black screen, loud screeching noise. | +| Phantasy Star Collection | Digital Eclipse logo sound effect is missing. Phantasy Star 1 flickers. | +| SSX 3 | Graphics glitches. Seems pitch-related. | +| Super Mario Advance 2: Super Mario World (Europe) | The program crashes during the final fight, when Bowser approaches (zoom mode 7) | +| WarioWare: Twisted! | The tilt sensor is not emulated. | +| Yoshi’s Universal Gravitation | The tilt sensor is not emulated. | \ No newline at end of file diff --git a/docs/library/compatibility/gbc.md b/docs/library/compatibility/gbc.md new file mode 100644 index 00000000..59927fd4 --- /dev/null +++ b/docs/library/compatibility/gbc.md @@ -0,0 +1,13 @@ +# Nintendo Game Boy Color Core Compatibility + +## Gambatte + +| Game | Issue | +|---------------------------------------------------|----------------------------------------------------| +| Command Master | Crashes on start. Unemulated MBC7 mapper. | +| Game Boy Camera | Crashes on start. Unemulated Pocket Camera mapper. | +| Game de Hakken!! Tamagotchi - Osutchi to Mesutchi | Crashes on start. Unemulated TAMA5 mapper. | +| Kirby Tilt 'n' Tumble | Crashes on start. Unemulated MBC7 mapper. | +| Net de Get: Mini-Game @ 100 | Crashes on start. Unemulated MBC6 mapper. | +| Pocket Family GB2 | Crashes on start. Unemulated HuC3 mapper. | +| Robopon: Sun/Star/Moon Version | Crashes on start. Unemulated HuC3 mapper. | \ No newline at end of file diff --git a/docs/library/compatibility/jaguar.md b/docs/library/compatibility/jaguar.md new file mode 100644 index 00000000..183ee8d0 --- /dev/null +++ b/docs/library/compatibility/jaguar.md @@ -0,0 +1,17 @@ +# Atari Jaguar Core Compatibility + +## Virtual Jaguar + +A reference compatibility table can be found here [https://icculus.org/virtualjaguar/](https://icculus.org/virtualjaguar/) + +| Game | Issue | +|--------------------|-------------------------------------------------------- | +| Cybermorph | Graphics glitches. | +| Doom | Enable Doom core option hack for proper graphics pitch. | +| Iron Soldier | Hangs after selecting a stage. | +| Iron Soldier 2 | Hangs after selecting a stage. Audio glitches. | +| Kasumi Ninja | Graphics glitches. Missing background layers | +| Ruiner Pinball | Doesn't boot. | +| Super Burnout | Hangs after selecting a track. | +| Towers II | Heavy flickering. | +| Wolfenstein 3D | Doesn't boot. | \ No newline at end of file diff --git a/docs/library/compatibility/lynx.md b/docs/library/compatibility/lynx.md new file mode 100644 index 00000000..6b9a6364 --- /dev/null +++ b/docs/library/compatibility/lynx.md @@ -0,0 +1,16 @@ +# Atari Lynx Core Compatibility + +## Handy + +| Game | Issue | +|------------------|-------------------------------------------------------------------------| +| RoadBlasters | Graphics glitches. Minor flickering and glitches after starting a race. | + +## Beetle Handy + +!!! attention + Beetle Handy is incompatible with modern No-Intro romsets as they require headers to work properly. The regular Handy core does not have this issue. + +| Game | Issue | +|------------------|-------------------------------------------------------------------------| +| RoadBlasters | Graphics glitches. Minor flickering and glitches after starting a race. | \ No newline at end of file diff --git a/docs/library/compatibility/nes.md b/docs/library/compatibility/nes.md new file mode 100644 index 00000000..e5261f9d --- /dev/null +++ b/docs/library/compatibility/nes.md @@ -0,0 +1,37 @@ +# Nintendo NES Core Compatibility + +## Nestopia + +| Game | Issue | +|------------------------|----------------------------------------------------------------- | +| Skull & Crossbones | Graphical glitches and screen shaking when in 2-player mode. | + +## FCEUmm + +| Game | Issue | +|------------------------------|--------------------------------------------------------------| +| Skull & Crossbones | Graphical glitches and screen shaking when in 2-player mode. | + +## bnes + +| Game | Issue | +|------------------------------|------------------------------------------------| +| Crisis Force | Graphical glitches. | +| Huge Insect | No enemies spawn. | +| Lagrange Point | No music. | +| Ms. Pac-Man (Tengen version) | Graphical glitches on the sides of the screen. | +| Skull & Crossbones | Crashes on start. | + +## QuickNES + +| Game | Issue | +|-------------------------------|--------------------------------------------------------------------------| +| Burai Fighter | Softlocks when entering a level. | +| Crisis Force | Crashes on start. | +| Family Circuit '91 | Crashes on start. | +| Gradius II | Crashes on start. | +| Huge Insect | No enemies spawn. | +| Lagrange Point | Crashes on start. | +| Mickey's Safari in Letterland | Graphical glitches on the sides of the screen and on the status bar. | +| Ms. Pac-Man (Tengen version) | Graphical glitches on the sides of the screen. | +| Skull & Crossbones | Crashes on start. | \ No newline at end of file diff --git a/docs/library/compatibility/pcfx.md b/docs/library/compatibility/pcfx.md new file mode 100644 index 00000000..31d4cd75 --- /dev/null +++ b/docs/library/compatibility/pcfx.md @@ -0,0 +1,7 @@ +# NEC PC-FX Core Compatibility + +## Beetle PC-FX + +| Game | Issue | +|---------------------------------------------------------------------|---------------------------------------------------| +| Pia Carrot e Youkoso!! (Japan) [T-En by David Michel + filler v1.0] | Doesn't boot. Confirmed to work on real hardware. | \ No newline at end of file diff --git a/docs/library/compatibility/psx.md b/docs/library/compatibility/psx.md new file mode 100644 index 00000000..9188dfdc --- /dev/null +++ b/docs/library/compatibility/psx.md @@ -0,0 +1,12 @@ +# PlayStation Core Compatibility + +## Beetle PSX + +A list of known emulation bugs can be found here [https://forum.fobby.net/index.php?t=msg&th=1114&start=0&](https://forum.fobby.net/index.php?t=msg&th=1114&start=0&) + +## PCSX ReARMed + +| Game | Issue | +|-----------------|--------------------------------------------------------| +| Jumping Flash 2 | Graphics glitches. Geometry issues. | +| Tobal 2 | Graphics glitch. Garbled Dream Factory intro sequence. | \ No newline at end of file diff --git a/docs/library/compatibility/saturn.md b/docs/library/compatibility/saturn.md new file mode 100644 index 00000000..661e610f --- /dev/null +++ b/docs/library/compatibility/saturn.md @@ -0,0 +1,5 @@ +# Sega Saturn Core Compatibility + +## Yabause + +[Yabause Core Compatibility List](https://wiki.yabause.org/index.php5?title=Compatibility_list) \ No newline at end of file diff --git a/docs/library/compatibility/snes.md b/docs/library/compatibility/snes.md new file mode 100644 index 00000000..7da981d5 --- /dev/null +++ b/docs/library/compatibility/snes.md @@ -0,0 +1,89 @@ +# Nintendo SNES Core Compatibility + +## bsnes Accuracy + +The bsnes Accuracy core fully emulates all SNES games that have ever been officially released. + +Same with bsnes-mercury Accuracy + +## bsnes Balanced + +| Game | Issue | +|--------------------------|--------------------------------------------------------------------------------| +| A.S.P. Air Strike Patrol | Black lines show up during gameplay. The shadow below the aircraft is missing. | + +Same with bsnes-mercury Balanced + +## bsnes Performance + +| Game | Issue | +|--------------------------------------------------|--------------------------------------------------------------------------------| +| A.S.P. Air Strike Patrol | Black lines show up during gameplay. The shadow below the aircraft is missing. | +| Funaki Masakatsu Hybrid Wrestler – Tougi Denshou | Corrupted graphics on the Pancrase logo screen. | +| Mecarobot Golf | The ground "wobbles" during gameplay. | +| Mega Man X2 | Only displays a black screen. | +| Mega Man X3 | Only displays a black screen. | +| Mortal Kombat II | Various glitched graphics. | +| NHL ’94 | Corrupted line on the NHL logo screen. | +| Tetris Attack | Lots of flickering on the VS. CPU mode map screen. | + +Same with bsnes-mercury Performance + +## Snes9x 2005 + +| Game | Issue | +|--------------------------------------------------|--------------------------------------------------------------------------------------| +| A.S.P. Air Strike Patrol | The shadow below the aircraft is missing. Glitched graphics on the briefing screens. | +| Bass Masters Classic - Pro Edition | Only shows a black screen. | +| Funaki Masakatsu Hybrid Wrestler – Tougi Denshou | Corrupted graphics on the Pancrase logo screen. | +| Hayazashi Nidan Morita Shougi 2 | Matches won’t start. | +| Madden NFL 96 | Only shows a black screen. | +| Masters New – Harukanaru Augusta 3 | Black screen after selecting game. | +| Mecarobot Golf | The ground "wobbles" during gameplay. | +| Mechwarrior 3050 | Black screen after the Activision logo. | + +Same with Snes9x 2005 Plus + +## Snes9x 2010 + +| Game | Issue | +|--------------------------------------------------|---------------------------------------------------------------------------------------| +| A.S.P. Air Strike Patrol | The shadow below the aircraft is missing. Glitched graphics on the briefing screens. | +| Bass Masters Classic - Pro Edition | Only shows a black screen. | +| Doom | Colored dots appear during gameplay. | +| F-1 Grand Prix | Glitched HUD display. | +| F1 ROC II – Race of Champions | Crashes when starting a race. | +| Funaki Masakatsu Hybrid Wrestler – Tougi Denshou | Corrupted graphics on the Pancrase logo screen. | +| Hayazashi Nidan Morita Shougi 2 | Matches won’t start. | +| Madden NFL 96 | Only shows a black screen. | +| Masters New – Harukanaru Augusta 3 | Graphical corruption during gameplay. | +| Mecarobot Golf | The ground "wobbles" during gameplay. | +| Mechwarrior 3050 | Black screen after the Activision logo. | +| Secret of Evermore (PAL) | Randomly freezes when the background music changes. | +| Sink or Swim | Sometimes the levels are filled with water instantly. | +| Speedy Gonzales: Los Gatos Bandidos | Freezes when pressing a switch in the last level. | +| Super Bomberman 3 | Freezes after about 20 seconds in the Battle mode menu. | +| Super Bomberman 5 | Title screen flickers if the opening cinematic isn’t skipped. | + +## Snes9x + +| Game | Issue | +|--------------------------------------------------|--------------------------------------------------------------------------------------| +| A.S.P. Air Strike Patrol | The shadow below the aircraft is missing. Glitched graphics on the briefing screens. | +| BS-Zelda MottZilla Patch | Only shows a black screen. | +| Doom | Colored dots appear during gameplay. | +| Funaki Masakatsu Hybrid Wrestler – Tougi Denshou | Corrupted graphics on the Pancrase logo screen. | +| Hayazashi Nidan Morita Shougi 2 | Matches won’t start. | +| Mecarobot Golf | The ground "wobbles" during gameplay. | +| Secret of Evermore (PAL versions) | Randomly freezes when the background music changes. | +| Speedy Gonzales: Los Gatos Bandidos | Freezes when pressing a switch in the last level. | + +## higan Accuracy + +The higan Accuracy core fully emulates all SNES games that have ever been officially released. + +## nSide Balanced + +| Game | Issue | +|--------------------------|--------------------------------------------------------------------------------| +| A.S.P. Air Strike Patrol | Black lines show up during gameplay. The shadow below the aircraft is missing. | \ No newline at end of file diff --git a/docs/library/compatibility/wswan.md b/docs/library/compatibility/wswan.md new file mode 100644 index 00000000..cd1f66d7 --- /dev/null +++ b/docs/library/compatibility/wswan.md @@ -0,0 +1,7 @@ +# Bandai Wonderswan Core Compatibility + +## Beetle Cygne + +| Game | Issue | +|-----------|------------------------------------------------------------------------------| +| Tonpuusou | Title screen announcer voice missing. Softlocks after picking a menu option. | \ No newline at end of file diff --git a/docs/library/craft.md b/docs/library/craft.md new file mode 100644 index 00000000..0dad38ad --- /dev/null +++ b/docs/library/craft.md @@ -0,0 +1,157 @@ +# Minecraft (Craft) + +## Background + +A simple Minecraft clone written in C using modern OpenGL (shaders). + +### Features + +* Simple but nice looking terrain generation using simplex noise. +* Biomes +* Water +* More than 20 types of blocks and more can be added easily. +* Supports plants (grass, flowers, trees, etc.) and transparency (glass). +* Simple clouds in the sky (they don't move). +* Day / night cycles and a textured sky dome. +* More sophisticated sunrise/sunset color blending +* Ambient occlusion for basic shading of blocks. +* World changes persisted in a sqlite3 database. +* Configurable draw distance. The draw distance has a big effect on the framerate, a draw distance of 1 or 2 can make this core playable even on very lightweight computers. +* Configurable field of view. +* Gamepad support (including analog stick support) configurable analog sensitivity and deadzones, preliminary mouse and keyboard support. +* Configurable resolutions, up to 4K. +* A ‘Jumping Flash’ mode that allows you to jump infinitely into the air all while the camera faces downwards. + +### Author(s): + +Snes9x Team|dking|BassAceGold|ShadauxCat|Nebuleon + +## Contribute to this documentation + +In order to propose improvements to this document, [visit it's corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/craft.md). Changes are proposed using "Pull Requests." + +## License + +MIT + +## Extensions + +The Craft core does not feature extension use. Just load and start the core. + +## Features + +| Feature | Supported | +|-------------------|:---------:| +| Saves | ✔ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controllers | ✔ | +| Remapping | ✕ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | + +The Craft core's directory name is 'Craft' + +World data is saved/loaded to and from 'craft.db' in RetroArch's system directory. + +## Core options + +*The Craft core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded.* + +- **Resolution (restart)** (**640x480**/320x200/640x400/960x600/1280x800/1600x1000/1920x1200/2240x1400/2560x1600/2880x1800/3200x2000/3520x2200/3840x2400/7680x4320/15360x8640/16000x9000/320x240/320x480/360x200/360x240/360x400/360x480/400x224/480x272/512x224/512x240/512x384/512x512/640x224/640x240/640x448/720x576/800x480/800x600/960x720/1024x768/1280x720/1366x768/1600x900/1920x1080/2048x2048/4096x4096): Configure the resolution. + +??? note "Resolution - 320x240" + ![320x240](images\Cores\craft\320x240.png) + +??? note "Resolution - 1920x1080" + ![1920x1080](images\Cores\craft\1920x1080.png) + +- **Show info text** (**Off**/On): Show game information in the upper left corner of Craft. + +??? note "Show info text - Off" + ![show_info_text_off](images\Cores\craft\show_info_text_off.png) + +??? note "Show info text - On" + ![show_info_text_off](images\Cores\craft\show_info_text_on.png) + +- **Jumping Flash mode** (**Off**/On): Enabling this allows you to jump infinitely into the air all while the camera faces downwards. + +- **Field of view** (**65**/70/75/80/85/90/95/100/105/110/115/120/125/130/135/140/145/150): Configure the field of view. + +??? note "Field of view - 65" + ![fov_65](images\Cores\craft\fov_65.png) + +??? note "Field of view - 125" + ![fov_125](images\Cores\craft\fov_125.png) + +- **Draw distance** (**10**/11/12/13/14/15/16/17/18/19/20/21/22/23/24/25/26/27/28/29/30/31/32/9/8/7/6/5/4/3/2/1): Configure the draw distance. + +??? note "Draw distance - 10" + ![draw_distance_10](images\Cores\craft\draw_distance_10.png) + +??? note "Draw distance - 32" + ![draw_distance_32](images\Cores\craft\draw_distance_32.png) + +- **Inverted aim** (**Off**/On): Invert up and down crosshair aiming controls for the RetroPad and the RetroMouse. +- **Right analog sensitivity** (**0.0150**/0.0175/0.0200/0.0225/0.0250/0.0275/0.0300/0.0325/0.0350/0.0375/0.0400/0.0425/0.0450/0.0475/0.0500): Modify the RetroPad right analog stick's sensitivity. +- **Analog deadzone size** (**0.010**/0.015/0.020/0.025/0.030/0.035/0.040/0.045/0.050/0.055/0.060/0.065/0.070/0.075/0.080/0.085/0.090/0.095/0.100/0.110/0.115/0.120/0.125/0.130/0.135/0.140/0.145/0.150/0.155/0.160/0.165/0.170/0.175/0.180/0.185/0.190/0.195/0.200): Modify RetroPad analog sticks' deadzone. + +## Controllers + +*The Craft core supports the following controller setting(s), bolded controller settings are the default for the specified user(s):* + +### User 1 - 16 Device Type(s) + +* **RetroPad** - Joypad + +* RetroPad w/Analog - Joypad - **There is no reason to switch to this.** + +### Controllers graph + +| Craft | RetroPad | +|----------------------|---------------------------------------------------------------------| +| Jump | ![RetroPad_B](images/RetroPad/Retro_B_Round.png) | +| Destroy block | ![RetroPad_Y](images/RetroPad/Retro_Y_Round.png) | +| Zoom out | ![RetroPad_Select](images/RetroPad/Retro_Select.png) | +| Move forwards | ![RetroPad_Dpad](images/RetroPad/Retro_Dpad_Up.png) | +| Move backwards | ![RetroPad_Dpad](images/RetroPad/Retro_Dpad_Down.png) | +| Move crosshair left | ![RetroPad_Dpad](images/RetroPad/Retro_Dpad_Left.png) | +| Move crosshair right | ![RetroPad_Dpad](images/RetroPad/Retro_Dpad_Right.png) | +| Next block | ![RetroPad_A](images/RetroPad/Retro_A_Round.png) | +| Place block | ![RetroPad_X](images/RetroPad/Retro_X_Round.png) | +| Move left | ![RetroPad_L1](images/RetroPad/Retro_L1.png) | +| Move right | ![RetroPad_R1](images/RetroPad/Retro_R1.png) | +| Move crosshair up | ![RetroPad_L2](images/RetroPad/Retro_L2_Temp.png) | +| Move crosshair down | ![RetroPad_R2](images/RetroPad/Retro_R2.png) | +| Move | ![RetroPad_Left_Stick](images/RetroPad/Retro_Left_Stick.png) | +| Move crosshair | ![RetroPad_Right_Stick](images/RetroPad/Retro_Right_Stick.png) | + +| RetroKeyboard | Craft | +|--------------------------------------------------------------------------------------------------------|----------------------| +| ![Retro_Keyboard_Arrow_Up](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_Arrow_Up.png) | Move forward | +| ![Retro_Keyboard_Arrow_Down](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_Arrow_Down.png) | Move backwards | +| ![Retro_Keyboard_Arrow_Left](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_Arrow_Left.png) | Move crosshair left | +| ![Retro_Keyboard_Arrow_Right](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_Arrow_Right.png) | Move crosshair right | +| ![Retro_Keyboard_Right_Shift](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_Shift_Alt.png) | Zoom out | + +| RetroMouse | Craft | +|-----------------------------------------------------------------|----------------| +| ![Retro_Mouse](images/RetroMouse/Retro_Mouse.png) | Move crosshair | +| ![Retro_Left](images/RetroMouse/Retro_Left.png) | Destroy block | +| ![Retro_Middle](images/RetroMouse/Retro_Middle.png) | Copy block | +| ![Retro_Right](images/RetroMouse/Retro_Right.png) | Place block | + +## External Links + +* [Libretro Repository](https://github.com/libretro/craft) +* [Report Core Issues Here](https://github.com/libretro/libretro-meta) +* [Official Website](https://www.michaelfogleman.com/projects/craft/) +* [Official Repository](https://github.com/fogleman/Craft) \ No newline at end of file diff --git a/docs/library/crocods.md b/docs/library/crocods.md new file mode 100644 index 00000000..75ecd251 --- /dev/null +++ b/docs/library/crocods.md @@ -0,0 +1,245 @@ +# Amstrad - CPC (CrocoDS) + +## Background + +Based on Win-CPC. CrocoDS was originally an Amstrad CPC emulator created for the Nintendo DS and was ported to libretro some time after. + +### Author/License + +The CrocoDS core has been authored by + +- RedBug + +The CrocoDS core is licensed under + +- [MIT](https://github.com/libretro/libretro-crocods/blob/master/LICENSE) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the CrocoDS core have the following file extensions: + +- .dsk +- .sna +- .[kcr](https://github.com/redbug26/crocods-core/wiki/kcr) + +## Databases + +RetroArch database(s) that are associated with the CrocoDS core: + +- [Amstrad - CPC](https://github.com/libretro/libretro-database/blob/master/rdb/Amstrad%20-%20CPC.rdb) + +## Features + +Frontend-level settings or features that the CrocoDS core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The CrocoDS core's internal core name is 'crocods' + +The CrocoDS core saves/loads to/from these directories. + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The CrocoDS core's core provided FPS is 50 +- The CrocoDS core's core provided sample rate is 44100 Hz +- The CrocoDS core's core provided aspect ratio is 1 + +## Core options + +The CrocoDS core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Color Monitor** [crocods_greenmonitor] (**color**|green) + + Self-explanatory. + +??? note "Color Monitor - color" + ![](images\Cores\crocods\color.png) + +??? note "Color Monitor - green" + ![](images\Cores\crocods\green.png) + +- **Resize** [crocods_resize] (**Auto**|320x200|Overscan) + + Self-explanatory. + +??? note "Resize - 320x200" + ![](images\Cores\crocods\320x200.png) + +??? note "Resize - Overscan" + ![](images\Cores\crocods\overscan.png) + +- **Speed hack** [crocods_hack] (**no**|yes) + + Awaiting description. + +## Controllers + +The CrocoDS core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 2 device types + +- None - Doesn't disable input. There's no reason to switch to this. +- **RetroPad** - Joypad +- RetroKeyboard - Joypad - Keyboard inputs are always active. Has keymapper support. + +### Controller tables + +#### Joypad + +| User 1 Remap descriptors | RetroPad Inputs | CrocoDS core Inputs | +|--------------------------|-------------------------------------------|---------------------| +| | ![](images/RetroPad/Retro_B_Round.png) | JOY_FIRE2 | +| | ![](images/RetroPad/Retro_Y_Round.png) | NIL | +| Pause | ![](images/RetroPad/Retro_Select.png) | SPARE | +| Start | ![](images/RetroPad/Retro_Start.png) | RETURN | +| Up | ![](images/RetroPad/Retro_Dpad_Up.png) | JOY_UP | +| Down | ![](images/RetroPad/Retro_Dpad_Down.png) | JOY_DOWN | +| Left | ![](images/RetroPad/Retro_Dpad_Left.png) | JOY_LEFT | +| Right | ![](images/RetroPad/Retro_Dpad_Right.png) | JOY_RIGHT | +| | ![](images/RetroPad/Retro_A_Round.png) | JOY_FIRE1 | +| | ![](images/RetroPad/Retro_X_Round.png) | NIL | +| | ![](images/RetroPad/Retro_L1.png) | NIL | +| | ![](images/RetroPad/Retro_R1.png) | NIL | + +| User 2 Remap descriptors | RetroPad Inputs | CrocoDS core Inputs | +|--------------------------|-------------------------------------------|---------------------| +| | ![](images/RetroPad/Retro_B_Round.png) | SPARE | +| | ![](images/RetroPad/Retro_Y_Round.png) | NIL | +| | ![](images/RetroPad/Retro_Select.png) | SPARE | +| | ![](images/RetroPad/Retro_Start.png) | RETURN | +| | ![](images/RetroPad/Retro_Dpad_Up.png) | CURSOR_UP | +| | ![](images/RetroPad/Retro_Dpad_Down.png) | CURSOR_DOWN | +| | ![](images/RetroPad/Retro_Dpad_Left.png) | CURSOR_LEFT | +| | ![](images/RetroPad/Retro_Dpad_Right.png) | CURSOR_RIGHT | +| | ![](images/RetroPad/Retro_A_Round.png) | SPARE | +| | ![](images/RetroPad/Retro_X_Round.png) | NIL | +| | ![](images/RetroPad/Retro_L1.png) | NIL | +| | ![](images/RetroPad/Retro_R1.png) | NIL | + +#### Keyboard + +| RetroKeyboard Inputs | CrocoDS core Inputs | +|------------------------------|---------------------| +| Keyboard Backspace | DEL | +| Keyboard Tab | TAB | +| Keyboard Return | RETURN | +| Keyboard Escape | ESC | +| Keyboard Space | SPARE | +| Keyboard Comma , | COMMA | +| Keyboard Minus - | MINUS | +| Keyboard Period . | DOT | +| Keyboard 0 | 0 | +| Keyboard 1 | 1 | +| Keyboard 2 | 2 | +| Keyboard 3 | 3 | +| Keyboard 4 | 4 | +| Keyboard 5 | 5 | +| Keyboard 6 | 6 | +| Keyboard 7 | 7 | +| Keyboard 8 | 8 | +| Keyboard 9 | 9 | +| Keyboard Semicolon ; | COLON | +| Keyboard Equals = | HAT | +| Keyboard Left Bracket [ | AT | +| Keyboard Right Bracket ] | OPEN_SQUARE_BRACKET | +| Keyboard a | A | +| Keyboard b | B | +| Keyboard c | C | +| Keyboard d | D | +| Keyboard e | E | +| Keyboard f | F | +| Keyboard g | G | +| Keyboard h | H | +| Keyboard i | I | +| Keyboard j | J | +| Keyboard k | K | +| Keyboard l | L | +| Keyboard m | M | +| Keyboard n | N | +| Keyboard o | O | +| Keyboard p | P | +| Keyboard q | Q | +| Keyboard r | R | +| Keyboard s | S | +| Keyboard t | T | +| Keyboard u | U | +| Keyboard v | V | +| Keyboard w | W | +| Keyboard x | X | +| Keyboard y | Y | +| Keyboard z | Z | +| Keyboard Delete | JOY_LEFT | +| Keyboard Keypad 0 | F0 | +| Keyboard Keypad 1 | F1 | +| Keyboard Keypad 2 | F2 | +| Keyboard Keypad 3 | F3 | +| Keyboard Keypad 4 | F4 | +| Keyboard Keypad 5 | F5 | +| Keyboard Keypad 6 | F6 | +| Keyboard Keypad 7 | F7 | +| Keyboard Keypad 8 | F8 | +| Keyboard Keypad 9 | F9 | +| Keyboard Keypad Period . | FDOT | +| Keyboard Keypad Enter | SMALL_ENTER | +| Keyboard Up | CURSOR_UP | +| Keyboard Down | CURSOR_DOWN | +| Keyboard Right | CURSOR_RIGHT | +| Keyboard Left | CURSOR_LEFT | +| Keyboard Insert | JOY_FIRE1 | +| Keyboard Home | JOY_UP | +| Keyboard End | JOY_DOWN | +| Keyboard Page Up | JOY_FIRE2 | +| Keyboard Page Down | JOY_RIGHT | +| Keyboard Caps Lock | CAPS_LOCK | +| Keyboard Right Shift | SHIFT | +| Keyboard Left Shift | SHIFT | +| Keyboard Right Control | CONTROL | +| Keyboard Left Control | CONTROL | + +## External Links + +- [Official CrocoDS Github Repository](https://github.com/redbug26/crocods-core) +- [Libretro CrocoDS Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/crocods_libretro.info) +- [Libretro CrocoDS Github Repository](https://github.com/libretro/libretro-crocods) +- [Report Libretro CrocoDS Core Issues Here](https://github.com/libretro/libretro-crocods/issues) + +### See also + +#### Amstrad - CPC + +- [Amstrad - CPC (Caprice32)](https://docs.libretro.com/library/caprice32/) \ No newline at end of file diff --git a/docs/library/desmume.md b/docs/library/desmume.md new file mode 100644 index 00000000..6faff482 --- /dev/null +++ b/docs/library/desmume.md @@ -0,0 +1,362 @@ +# Nintendo - DS (DeSmuME) + +## Background + +Port of Desmume to libretro. + +### Author/License + +The DeSmuME core has been authored by + +- YopYop156 +- Zeromus + +The DeSmuME core is licensed under + +- [GPLv2](https://github.com/TASVideos/desmume/blob/master/license.txt) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the DeSmuME core have the following file extensions: + +- .nds +- .bin + +## Databases + +RetroArch database(s) that are associated with the DeSmuME core: + +- [Nintendo - Nintendo DS](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Nintendo%20DS.rdb) +- [Nintendo - Nintendo DS Decrypted](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Nintendo%20DS%20Decrypted.rdb) +- [Nintendo - Nintendo DS (Download Play)](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Nintendo%20DS%20(Download%20Play).rdb) + +## Features + +Frontend-level settings or features that the DeSmuME core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ (Not Download Play, Link-Cable or Wi-Fi emulation) | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✔ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The DeSmuME core's internal core name is 'DeSmuME' + +The DeSmuME core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.dsv (Cartridge battery save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The DeSmuME core's core provided FPS is 60 +- The DeSmuME core's core provided sample rate is 44100 Hz +- The DeSmuME core's core provided aspect ratio is dependant on the ['Screen layout' core option](https://docs.libretro.com/library/desmume/#core-options). + +### Nickname + +Changing the system nickname isn't currently supported by the DeSmuME core. + +## Core options + +The DeSmuME core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Internal resolution (restart)** [desmume_internal_resolution] (**256x192**|512x384|768x576|1024x768|1280x960|1536x1152|1792x1344|2048x1536|2304x1728|2560x1920) + + Self explanatory. Please note that the DeSmuME core is only software rendered. + +??? note "Internal resolution - 256x192" + ![](images\Cores\desmume\256x192.png) + +??? note "Internal resolution - 2560x1920" + ![](images\Cores\desmume\2560x1920.png) + +- **CPU cores** [desmume_num_cores] (**1**|2|3|4) + + Configure how much CPU cores the DeSmuME core will use. Please note that, in general, DeSmuME benefits more from few fast CPUs than from many slow CPUs. For example, a dual-core 3.9GHz CPU will run DeSmuME much faster than a 12-core 1.6GHz CPU. + +- **CPU mode** [desmume_cpu_mode] (**jit**|interpreter) + + Choose to run CPU emulation through the Interpreter engine or the JIT Dynamic Recomplier engine. + + Interpreter has better compatibility than JIT Dynamic Recompiler. Some games that fail when using JIT Dynamic Recompiler will work fine with Interpreter. The tradeoff here is that Interpreter has much lower performance than JIT Dynamic Recompiler. + + Please note that the default setting for this core option is dependent on your hardware. The JIT Dynamic Recompiler is not available on all hardware (e.g. Android devices). + +- **JIT block size** [desmume_jit_block_size] (0 to 100 in increments of 1. **12 is default**.) + + This core option is only available when the 'CPU mode' core option to set to jit. You may need to tune the block size to prevent some games from breaking. 1 = most accurate, 100 = fastest. + +- **Screen layout** [desmume_screens_layout] (**top/bottom**|bottom/top|left/right|right/left|top only|bottom only|quick switch|hybrid/top|hybrid/bottom) + + Self-explanatory. + +??? note "Screen layout - top/bottom" + ![](images\Cores\desmume\top_bottom.png) + +??? note "Screen layout - bottom/top" + ![](images\Cores\desmume\bottom_top.png) + +??? note "Screen layout - left/right" + ![](images\Cores\desmume\left_right.png) + +??? note "Screen layout - right/left" + ![](images\Cores\desmume\right_left.png) + +??? note "Screen layout - top only" + ![](images\Cores\desmume\top.png) + +??? note "Screen layout - bottom only" + ![](images\Cores\desmume\bottom.png) + +??? note "Screen layout - hybrid/top" + ![](images\Cores\desmume\hybrid_top.png) + +- **Hybrid layout scale (restart)** [desmume_hybrid_layout_scale] (**1**|3) + + Self explanatory. The 'Screen layout' core option must be set to a hybrid setting for this to function properly. + +??? note "Hybrid layout scale - 1" + ![](images\Cores\desmume\scale_1.png) + +??? note "Hybrid layout scale - 3" + ![](images\Cores\desmume\scale_3.png) + +- **Hybrid layout show both screen** [desmume_hybrid_showboth_screens] (**enabled**|disabled) + + Removes the small top screen when the 'Screen layout' core option is set to hybrid/top + + Removes the small bottom screen when the 'Screen layout' core option is set to hybrid/bottom + +- **Hybrid layout cursor always on small screen** [desmume_hybrid_cursor_always_smallscreen] (**enabled**|disabled) + + Self explanatory. + + Disablng this allows you to use the stylus on the big bottom screen when the 'Screen layout' core option is set to hybrid/bottom. + +- **Enable mouse/pointer** [desmume_pointer_mouse] (**enabled**|disabled) + + Enabling this allows you to use mouse inputs for the stylus. + +- **Pointer type** [desmume_pointer_type] (**mouse**/touch) + + Setting this to mouse allows you to use mouse inputs for the stylus + + Setting this to touch allows you to use touch inputs for the stylus (e.g. Touch controls on Android devices + +- **Pointer Colour** [desmume_pointer_colour] (**white**|black|red|blue|yellow") + + Configure the color of the stylus pointer. + +??? note "Pointer Colour - white" + ![](images\Cores\desmume\pointer_white.png) + +??? note "Pointer Colour - black" + ![](images\Cores\desmume\pointer_black.png) + +??? note "Pointer Colour - red" + ![](images\Cores\desmume\pointer_red.png) + +??? note "Pointer Colour - blue" + ![](images\Cores\desmume\pointer_blue.png) + +??? note "Pointer Colour - yellow" + ![](images\Cores\desmume\pointer_yellow.png) + +- **Pointer mode l-analog** [desmume_pointer_device_l] (**none**|emulated|absolute|pressed) + + Awaiting description. + +- **Pointer mode r-analog** [desmume_pointer_device_r] (**none**|emulated|absolute|pressed) + + Awaiting description. + +- **Emulated pointer deadzone percent** [desmume_pointer_device_deadzone] (**15**|20|25|30|35|0|5|10) + + Awaiting description. + +- **Emulated pointer acceleration modifier percent** [desmume_pointer_device_acceleration_mod] (0 to 100 in increments of 1. **0 is default**.) + + Awaiting description. + +- **Emulated stylus pressure modifier percent** [desmume_pointer_stylus_pressure] (0 to 100 in increments of 1. **50 is default**.) + + Configure the emulated pressure on the touchscreen from a stylus pressing on it. + +- *Enable emulated stylus jitter** [desmume_pointer_stylus_jitter] (**disabled**|enabled) + + Emulate the tiny jitter from a human hand when holding a stylus; some games were accidentally dependent on this. + +- **Load Game into Memory (restart)** [desmume_load_to_memory] (**disabled**|enabled) + + Loads the entire game into memory before startup. Will decrease in-game loading times at the cost of increased game startup times. + +- **Enable Advanced Bus-Level Timing** [desmume_advanced_timing] (**enabled**|disabled) + + This will improve or fix some games but it is very performance demanding. Disable this if you want more speed. + +- **Firmware language** [desmume_firmware_language] (**Auto**|English|Japanese|French|German|Italian|Spanish) + + Choose the language of the BIOS. + +- **Frameskip** [desmume_frameskip] (**0**|1|2|3|4|5|6|7|8|9) + + Choose how much frames should be skipped to improve performance at the expense of visual smoothness. + + It is generally safe to choose 1 or 2 if you don't mind a slightly choppier game, in order to get a speedup. + + If screens seem stuck or screen flickering becomes unacceptable, pick a different frame skip value. + +- **Screen Gap** [desmume_screens_gap] (0 to 100 in increments of 1. **0 is default.**) + + Self explanatory. + +??? note "Screen Gap - 0" + ![](images\Cores\desmume\screengap_0.png) + +??? note "Screen Gap - 100" + ![](images\Cores\desmume\screengap_100.png) + +- **Enable Edgemark** [desmume_gfx_edgemark] (**enabled**|disabled) + + Awaiting description. + +- **Enable Line Hack** [desmume_gfx_linehack] (**enabled**|disabled) + + Fixes some graphical bugs involving lines, but causes some other bugs. Not many games use lines. + +- **Enable TXT Hack** [desmume_gfx_txthack] (**disabled**|enabled) + + Fixes text bugs in some games (e.g. Etrian Odyssey). You may need to toggle it off & on by scene. + +- **Force Microphone Enable** [desmume_mic_force_enable] (**disabled**|enabled) + + Self-explanatory. + +- **Microphone Simulation Settings** [desmume_mic_mode] (**internal**|sample|random|physical) + + Configure microphone input settings. + + With the internal setting, DeSmuME will use its internal noise sample for microphone input which works for many games that want you to blow on the mic. + + With the sample setting, you can supply your own microphone sample for microphone input. **This may not work currently in the DeSmuME core**. + + With the random setting, DeSmuME will use random whitenoise for microphone input which will work for games that require blowing but which don't work with the internal noise sample. + + With the physical setting, you can use your default recording device for microphone input. **This may not work currently in the DeSmuME core**. + +## Controllers + +The DeSmuME core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad - Stay on this. +- RetroPad w/Analog - Joypad - There's no reason to switch to this. + +### Controller tables + +#### Joypad + +![](images/Controllers/nds.png) + +| User 1 Remap descriptors | RetroPad Inputs | DeSmuME core Inputs | +|--------------------------|----------------------------------------------|---------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | B | +| Y | ![](images/RetroPad/Retro_Y_Round.png) | Y | +| Select | ![](images/RetroPad/Retro_Select.png) | Select | +| Start | ![](images/RetroPad/Retro_Start.png) | Start | +| Up | ![](images/RetroPad/Retro_Dpad_Up.png) | Up | +| Down | ![](images/RetroPad/Retro_Dpad_Down.png) | Down | +| Left | ![](images/RetroPad/Retro_Dpad_Left.png) | Left | +| Right | ![](images/RetroPad/Retro_Dpad_Right.png) | Right | +| A | ![](images/RetroPad/Retro_A_Round.png) | A | +| X | ![](images/RetroPad/Retro_X_Round.png) | X | +| L | ![](images/RetroPad/Retro_L1.png) | L | +| R | ![](images/RetroPad/Retro_R1.png) | R | +| Lid Close/Open | ![](images/RetroPad/Retro_L2.png) | Lid Close/Open | +| Tap Stylus | ![](images/RetroPad/Retro_R2.png) | Tap Stylus | +| Toggle Microphone | ![](images/RetroPad/Retro_L3.png) | Toggle Microphone | +| Quick Screen Switch | ![](images/RetroPad/Retro_R3.png) | Quick Screen Switch | +| | ![](images/RetroPad/Retro_Left_Stick.png) X | [Pointer mode l-analog](https://docs.libretro.com/library/desmume/#core-options) X | +| | ![](images/RetroPad/Retro_Left_Stick.png) Y | [Pointer mode l-analog](https://docs.libretro.com/library/desmume/#core-options) Y | +| | ![](images/RetroPad/Retro_Right_Stick.png) X | [Pointer mode r-analog](https://docs.libretro.com/library/desmume/#core-options) X | +| | ![](images/RetroPad/Retro_Right_Stick.png) Y | [Pointer mode r-analog](https://docs.libretro.com/library/desmume/#core-options) Y | + +#### Pointer + +| RetroPointer Inputs | DeSmuME core inputs | +|----------------------------------------------------------------------------------------------------------------------|---------------------| +| ![](images/RetroMouse/Retro_Mouse.png) or ![](images/Button_Pack/Gestures/Gesture_Finger_Front.png) Pointer Position | Stylus | +| ![](images/RetroMouse/Retro_Left.png) or ![](images/Button_Pack/Gestures/Gesture_Tap.png) Pointer Pressed | Stylus Press | + +## Compatibility + +| Game | Issue | +|------------------------------------------|-----------------------------------------------------------------------------------------------| +| Alice in Wonderland | Needs JIT Block Size 8 or smaller to get past title screen. | +| Golden Sun: Dark Dawn (Europe) | Runs very slowly. Buggy sound. | +| Hotel Dusk: Room 215 | Graphics glitches. Unintended "scanlines" appear on some screens. | +| Pokémon HeartGold (Europe) (Rev 10) | Graphics glitches . Black pixels pop-ups in the top screen. Top screen goes black. | +| Pokémon SoulSilver (Europe) (Rev 10) | Graphics glitches. Black pixels pop-ups in the top screen. Top screen goes black. | +| Puppy Palace (U) / My Puppy Shop (E) | Crashes in menus. | +| Rune Factory (U) | Random crashes. | +| Rune Factory 2 (U) | Random crashes. | +| Ultimate Mortal Kombat 3 | Runs very slowly. | +| Yoshi Touch & Go | Runs very slowly. | +| Yu-Gi-Oh! 5D's WORLD CHAMPIONSHIP 2010 (J) | Random crashes. | + +## External Links + +- [Official DeSmuME Website](https://desmume.org/) +- [Official DeSmuME Github Repository](https://github.com/TASVideos/desmume) +- [Libretro DeSmuME Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/desmume_libretro.info) +- [Libretro DeSmuME Github Repository](https://github.com/libretro/desmume) +- [Report Libretro DeSmuME Core Issues Here](https://github.com/libretro/desmume/issues) + +### See also + +#### Nintendo - Nintendo DS (Download Play) + +- [Nintendo - DS (melonDS)](https://docs.libretro.com/library/melonds) + +#### Nintendo - Nintendo DS Decrypted + +- [Nintendo - DS (melonDS)](https://docs.libretro.com/library/melonds) + +#### Nintendo - Nintendo DS + +- [Nintendo - DS (melonDS)](https://docs.libretro.com/library/melonds) \ No newline at end of file diff --git a/docs/library/dinothawr.md b/docs/library/dinothawr.md new file mode 100644 index 00000000..c63fe6fa --- /dev/null +++ b/docs/library/dinothawr.md @@ -0,0 +1,146 @@ +# Dinothawr + +## Background + +Dinothawr is a block pushing puzzle game on slippery surfaces. Our hero is a dinosaur whose friends are trapped in ice. Through puzzles it is your task to free the dinos from their ice prison. + +#### How to start the Dinothawr core: + +- To start the Dinothawr core, you need to obtain Dinothawr's data files. You can do this by going to RetroArch's main menu screen and selecting 'Online Updater'. From there, select 'Content Downloader'. + +
![](images\Cores\all\download.png)
+ +- Select 'Dinothawr', then select 'Dinothawr.zip'. This should download and extract this file to RetroArch's Downloads directory. + +
![](images\Cores\dinothawr\dinothawr.png)
+ +- Go back to RetroArch's main menu screen. Select 'Load Content', then 'Downloads'. + +
![](images\Cores\all\load.png)
+ +
![](images\Cores\all\downloads.png)
+ +- Select the 'dinothawr' directory, then select 'dinothawr.game'. + +- If you are asked which core to select, choose 'Dinothawr'. + +The content should now start running! + +### Author/License + +The Dinothawr core has been authored by + +- Themaister (programming, music, some level design) +- Agnes Heyer ((art, level design, some code) + +The Dinothawr core is licensed under + +- [Non-commercial](https://github.com/libretro/Dinothawr/blob/master/LICENSE) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Dinothawr core have the following file extensions: + +- .game + +## Databases + +RetroArch database(s) that are associated with the Dinothawr core: + +- [Dinothawr](https://github.com/libretro/libretro-database/blob/master/rdb/Dinothawr.rdb) + +## Features + +Frontend-level settings or features that the Dinothawr core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Dinothawr core's internal core name is 'Dinothawr' + +The Dinothawr core saves/loads to/from these directories. + +**Frontend's Save directory** + +- dinothawr.srm (Save data) + +### Geometry and timing + +- The Dinothawr core's core provided FPS is (FPS) +- The Dinothawr core's core provided sample rate is (Rate) +- The Dinothawr core's core provided aspect ratio is (Ratio) + +## Customizing / Hacking + +Dinothawr is fairly hackable. dinothawr.game is the game file itself. It is a simple XML file which points to all assets used by the game. Levels are organized in chapters. Levels themselves are created using the [Tiled](http://www.mapeditor.org/) editor. If you want to try making your own levels, make sure you use the "plain XML" format for .tmx files and not the default zlib base64. + +[Dinothawr - Level Design guide (pdf)](http://retinaleclipse.com/dinothawr-guide.pdf) + +## Core options + +The Dinothawr core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Timer as FPS reference** [dino_timer] (**enabled**|disabled) + + Use timer as FPS reference. + +## Controllers + +The Dinothawr core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad - Stay on this. +- RetroPad w/Analog - Joypad - There's no reason to switch to this. + +### Controller tables + +#### Joypad + +![](http://themaister.net/dinothawr/shield.png) + +| User 1 Remap descriptors | RetroPad Inputs | +|--------------------------|----------------------------------------------| +| Push | ![](images/RetroPad/Retro_B_Round.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| Menu | ![](images/RetroPad/Retro_A_Round.png) | +| Reset | ![](images/RetroPad/Retro_X_Round.png) | + +## External Links + +- [Official/Libretro Dinothawr Github Repository](https://github.com/libretro/Dinothawr) +- [Report Libretro Dinothawr Core Issues Here](https://github.com/libretro/Dinothawr/issues) \ No newline at end of file diff --git a/docs/library/dosbox.md b/docs/library/dosbox.md new file mode 100644 index 00000000..66c025c1 --- /dev/null +++ b/docs/library/dosbox.md @@ -0,0 +1,345 @@ +# DOS (DOSBox) + +## Contribute to this documentation + +**DOCUMENTATION IS A WORK IN PROGRESS** + +**In order to propose improvements to this document, [visit its corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/dosbox.md). Changes are proposed using "Pull Requests."** + +**There is a To-Do list for libretro/docs [here](https://docs.libretro.com/docguide/todo/)** + +**You can submit suggestions or issues regarding documentation at the [libretro/docs issue tracker](https://github.com/libretro/docs/issues) or in our [forum thread](https://forums.libretro.com/t/wip-adding-pages-to-documentation-site/10078/).** + +## Background + +DOSBox is a multiplatform DOS-emulator + +### Why use this core? + +Awaiting description. + +### How to get and install the DOSBox core: + +- Start up RetroArch. Inside the main menu, go to 'Online Updater'. + +
![](images\Cores\all\updater.png)
+ +- Just to make sure we have the latest info files, select 'Update Core Info FIles'. Wait until this is done. Then, select 'Core Updater'. + +
![](images\Cores\all\info.png)
+ +- Browse through the list and select 'DOS (DOSBox)'. + +
![](images\Cores\updater\dosbox.png)
+ +After this has finished downloading, the core should now be ready for use! + +#### How to start (after installation): + +- Go back to RetroArch's main menu screen. Select 'Load Content'. + +
![](images\Cores\all\load.png)
+ +- Browse to the folder that contains the content you want to run. + +- Select the content that you want to run. + +- If you are asked which core to select, choose 'DOS (DOSBox)'. + +The content should now start running! + +### Authors + +- DOSBox Team + +## License + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +The DOSBox core is licensed under + +- [GPLv2](https://github.com/libretro/dosbox-libretro/blob/master/COPYING) + +## Extensions + +Content that can be loaded by the DOSBox core have the following file extensions: + +- .exe +- .com +- .bat +- .conf + +## Databases + +RetroArch database(s) that are associated with the DOSBox core: + +- [DOS](https://github.com/libretro/libretro-database/blob/master/rdb/DOS.rdb) + +## Features + +RetroArch-level settings or features that the DOSBox core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✕ | +| Screenshots | ✔ | +| Saves | - | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | + +### Directories + +The DOSBox core's directory name is 'DOSBox' + +### Geometry and timing. + +- The DOSBox core's internal FPS is 60 +- The DOSBox core's internal sample rate is (Rate) +- The DOSBox core's core provided aspect ratio is 4/3 + +### Loading content + +If loading exe/com/bat, RetroArch's System directory will be searched for a 'dosbox.conf' file to load. If one isn't available default values will be used. This mode is equivalent to running a DOSBox binary with the specified file as the command line argument. + +If loading a conf file DOSBox will be loaded with the options in the config file. This mode is useful if you just want to be dumped at a command prompt, but can also be used to load a game by putting commands in the autoexec section. + +### Usage + +DOSBox can load DOS executables or custom config files. To get started you can generate a config file by creating the DOSbox folder in your libretro SYSTEM directory, and then loading any DOS application, exit back to the command interpreter and then run config -wcd, Configuration files allow you far better control than core options so far. Eventually every single useable option will be exposed but in the meantime combining both is the best alternative. + +If you generate a default config it will always be loaded by default, but you can override it by saving your custom settings, preferably in the game folder. You can create a config like this: + +``` +[cpu] +cycles=50000 +[autoexec] +@echo off +mount d c:\games\dos\gamename +d: +gamename +``` + +Then you can store this config in the game folder (or any other directory) and just the config instead of the exe file. Once you change a setting using the config command or via core options, you can always update the config file by using config -wc + +## Core options + +The DOSBox core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Machine type** (**vgaonly**/svga_s3/svga_et3000/svga_et4000/svga_paradise/hercules/cga/tandy/pcjr/ega) + + Select what machine will be emulated. + +- **Gamepad** (**enable**/disable) + + Awaiting description. + +- **CPU cycles x 100000** (**0**/1/2/3/4/5/6/7/8/9) + + CPU cycles are divided in core options to allow fine control of the desired CPU cycles. Setting this too low may cause slow gameplay, setting this too high might cause sound crackling and bad performance. + +- **CPU cycles x 10000** (**0**/1/2/3/4/5/6/7/8/9) + + CPU cycles are divided in core options to allow fine control of the desired CPU cycles. Setting this too low may cause slow gameplay, setting this too high might cause sound crackling and bad performance. + +- **CPU cycles x 1000** (**1**/2/3/4/5/6/7/8/9/0) + + CPU cycles are divided in core options to allow fine control of the desired CPU cycles. Setting this too low may cause slow gameplay, setting this too high might cause sound crackling and bad performance. + +- **CPU cycles x 100** (**0**/1/2/3/4/5/6/7/8/9) + + CPU cycles are divided in core options to allow fine control of the desired CPU cycles. Setting this too low may cause slow gameplay, setting this too high might cause sound crackling and bad performance. + +## Controllers + +### Device types + +The DOSBox core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +#### User 1 - 2 device types + +- None - Input disabled. +- **Gamepad** - Joypad - Optional description. +- Joystick - Joypad +- Keyboard - Keyboard - Has keymapper support + +### Controller tables + +#### Joypad and analog device type table + +| User 1 Remap descriptors for 'Gamepad' device type | RetroPad Inputs | +|----------------------------------------------------|---------------------------------------------| +| Button 2 | ![](images/RetroPad/Retro_B_Round.png) | +| Button 1 | ![](images/RetroPad/Retro_Y_Round.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| Emulated Mouse Right Click | ![](images/RetroPad/Retro_L2.png) | +| Emulated Mouse Left Click | ![](images/RetroPad/Retro_R2.png) | +| Emulated Mouse X Axis | ![](images/RetroPad/Retro_L3.png) | +| Emulated Mouse Y Axis | ![](images/RetroPad/Retro_R3.png) | + +| User 1 Remap descriptors for 'Joystick' device type | RetroPad Inputs | +|-----------------------------------------------------|----------------------------------------------| +| Button 2 | ![](images/RetroPad/Retro_B_Round.png) | +| Button 1 | ![](images/RetroPad/Retro_Y_Round.png) | +| Emulated Mouse Right Click | ![](images/RetroPad/Retro_L2.png) | +| Emulated Mouse Left Control | ![](images/RetroPad/Retro_R2.png) | +| Left Analog X | ![](images/RetroPad/Retro_Left_Stick.png) X | +| Left Analog Y | ![](images/RetroPad/Retro_Left_Stick.png) Y | +| Emulated Mouse X Axis | ![](images/RetroPad/Retro_Right_Stick.png) X | +| Emulated Mouse Y Axis | ![](images/RetroPad/Retro_Right_Stick.png) Y | + +| User 2 Remap descriptors for 'Gamepad' device type | RetroPad Inputs | +|--------------------------------------------------------|----------------------------------------------| +| Button 2 | ![](images/RetroPad/Retro_B_Round.png) | +| Button 1 | ![](images/RetroPad/Retro_Y_Round.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | + +| User 2 Remap descriptors for 'Joystick' device type | RetroPad Inputs | +|-----------------------------------------------------|----------------------------------------------| +| Button 2 | ![](images/RetroPad/Retro_B_Round.png) | +| Button 1 | ![](images/RetroPad/Retro_Y_Round.png) | +| Left Analog X | ![](images/RetroPad/Retro_Left_Stick.png) X | +| LEft Analog Y | ![](images/RetroPad/Retro_Left_Stick.png) Y | + +#### Keyboard device type table + +| RetroKeyboard Inputs | Keyboard | +|-------------------------------|--------------------| +| Keyboard Backspace | Backspace | +| Keyboard Tab | Tab | +| Keyboard Return | Enter | +| Keyboard Pause | Pause | +| Keyboard Escape | Escape | +| Keyboard Space | Space | +| Keyboard ' | ' | +| Keyboard , | , | +| Keyboard . | . | +| Keyboard / | / | +| Keyboard 0 | 0 | +| Keyboard 1 | 1 | +| Keyboard 2 | 2 | +| Keyboard 3 | 3 | +| Keyboard 4 | 4 | +| Keyboard 5 | 5 | +| Keyboard 6 | 6 | +| Keyboard 7 | 7 | +| Keyboard 8 | 8 | +| Keyboard 9 | 9 | +| Keyboard ; | ; | +| Keyboard - | - | +| Keyboard = | = | +| Keyboard [ | [ | +| Keyboard \ | \ | +| Keyboard ] | ] | +| Keyboard ` | ` | +| Keyboard a | a | +| Keyboard b | b | +| Keyboard c | c | +| Keyboard d | d | +| Keyboard e | e | +| Keyboard f | f | +| Keyboard g | g | +| Keyboard h | h | +| Keyboard i | i | +| Keyboard j | j | +| Keyboard k | k | +| Keyboard l | l | +| Keyboard m | m | +| Keyboard n | n | +| Keyboard o | o | +| Keyboard p | p | +| Keyboard q | q | +| Keyboard r | r | +| Keyboard s | s | +| Keyboard t | t | +| Keyboard u | u | +| Keyboard v | v | +| Keyboard w | w | +| Keyboard x | x | +| Keyboard y | y | +| Keyboard z | z | +| Keyboard Delete | Delete | +| Keyboard Numpad 0 | Numpad 0 | +| Keyboard Numpad 1 | Numpad 1 | +| Keyboard Numpad 2 | Numpad 2 | +| Keyboard Numpad 3 | Numpad 3 | +| Keyboard Numpad 4 | Numpad 4 | +| Keyboard Numpad 5 | Numpad 5 | +| Keyboard Numpad 6 | Numpad 6 | +| Keyboard Numpad 7 | Numpad 7 | +| Keyboard Numpad 8 | Numpad 8 | +| Keyboard Numpad 9 | Numpad 9 | +| Keyboard Numpad . | Numpad . | +| Keyboard Numpad / | Numpad / | +| Keyboard Numpad * | Numpad * | +| Keyboard Numpad - | Numpad - | +| Keyboard Numpad + | Numpad + | +| Keyboard Numpad Enter | Numpad Enter | +| Keyboard Up | Up | +| Keyboard Down | Down | +| Keyboard Right | Left | +| Keyboard Left | Right | +| Keyboard Insert | Insert | +| Keyboard Home | Home | +| Keyboard End | End | +| Keyboard Page Up | Page Up | +| Keyboard Page Down | Page Down | +| Keyboard F1 | F1 | +| Keyboard F2 | F2 | +| Keyboard F3 | F3 | +| Keyboard F4 | F4 | +| Keyboard F5 | F5 | +| Keyboard F6 | F6 | +| Keyboard F7 | F7 | +| Keyboard F8 | F8 | +| Keyboard F9 | F9 | +| Keyboard F10 | F10 | +| Keyboard F11 | F11 | +| Keyboard F12 | F12 | +| Keyboard Num Lock | Num Lock | +| Keyboard Caps Lock | Caps Lock | +| Keyboard Scroll Lock | Scroll Lock | +| Keyboard Right Shift | Right Shift | +| Keyboard Left Shift | Left Shift | +| Keyboard Right Control | Right Control | +| Keyboard Left Control | Left Control | +| Keyboard Right Alt | Right Alt | +| Keyboard Left Alt | Left Alt | +| Keyboard Sys Req | Print Screen | + +## Compatibility + +Awaiting description. + +## External Links + +- [Libretro DOSBox Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/dosbox_libretro.info) +- [Libretro DOSBox Github Repository](https://github.com/libretro/dosbox-libretro) +- [Report Libretro DOSBox Core Issues Here](https://github.com/libretro/dosbox-libretro/issues) +- [Official DOSBox Website](https://www.dosbox.com/) +- [Official/Original DOSBox SourceForge Repository](https://sourceforge.net/projects/dosbox/) \ No newline at end of file diff --git a/docs/library/dummy.md b/docs/library/dummy.md new file mode 100644 index 00000000..f7225b82 --- /dev/null +++ b/docs/library/dummy.md @@ -0,0 +1,23 @@ +# Dummy core + +## Background + +'Load Dummy on Core Shutdown' option in RetroArch's Core settings. + +Some cores might have a shutdown feature. If enabled, it will prevent the core from shutting RetroArch down. Instead, it loads a dummy core. + +### Author/License + +The Dummy core has been authored by + +- The RetroArch Team + +The Dummy core is licensed under + +- MIT + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## External Links + +- [Libretro Dummy core Github Repository](https://github.com/libretro/RetroArch/tree/master/cores) \ No newline at end of file diff --git a/docs/library/easyrpg.md b/docs/library/easyrpg.md new file mode 100644 index 00000000..b6c88b5d --- /dev/null +++ b/docs/library/easyrpg.md @@ -0,0 +1,111 @@ +# RPG Maker 2000/2003 (EasyRPG) + +## Background + +EasyRPG Player is a game interpreter to play RPG Maker 2000, 2003 and EasyRPG games. It uses the LCF parser library (liblcf) to read RPG Maker game data. + +EasyRPG Player is part of the EasyRPG Project. More information is available at the project website: [https://easyrpg.org/](https://easyrpg.org/) + +### Author/License + +The EasyRPG core has been authored by + +- EasyRPG team + +The EasyRPG core is licensed under + +- [GPLv3](https://github.com/libretro/easyrpg-libretro/blob/master/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the EasyRPG core have the following file extensions: + +- .ini + +## Databases + +RetroArch database(s) that are associated with the EasyRPG core: + +- [RPG Maker](https://github.com/libretro/libretro-database/blob/master/rdb/RPG%20Maker.rdb) + +## Features + +Frontend-level settings or features that the EasyRPG core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✕ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The EasyRPG core's internal core name is 'EasyRPG' + +The EasyRPG core saves/loads to/from these directories. + +**Loaded content's directory** + +- Save##.lsd (Save files) +- easyrpg_log.txt (EasyRPG log file) + +### Geometry and timing + +- The EasyRPG core's core provided FPS is (FPS) +- The EasyRPG core's core provided sample rate is 44100 Hz +- The EasyRPG core's core provided aspect ratio is (Ratio) + +## Controllers + +The EasyRPG core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. There's no reason to switch to this. +- **RetroPad** - Joypad - Stay on this. +- RetroPad w/Analog - Joypad - Same as RetroPad. There's no reason to switch to this. + +### Controller tables + +#### Joypad + +| RetroPad Inputs | EasyRPG core inputs | +|----------------------------------------------|---------------------| +| ![](images/RetroPad/Retro_B_Round.png) | Cancel | +| ![](images/RetroPad/Retro_Start.png) | Decision | +| ![](images/RetroPad/Retro_Dpad_Up.png) | Up | +| ![](images/RetroPad/Retro_Dpad_Down.png) | Down | +| ![](images/RetroPad/Retro_Dpad_Left.png) | Left | +| ![](images/RetroPad/Retro_Dpad_Right.png) | Right | +| ![](images/RetroPad/Retro_A_Round.png) | Decision | + +## External Links + +- [Official EasyRPG Website](https://easyrpg.org/) +- [Official EasyRPG Github Repository](https://github.com/EasyRPG/Player) +- [Libretro EasyRPG Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/easyrpg_libretro.info) +- [Libretro EasyRPG Github Repository](https://github.com/libretro/easyrpg-libretro) +- [Report Libretro EasyRPG Core Issues Here](https://github.com/libretro/easyrpg-libretro/issues) \ No newline at end of file diff --git a/docs/library/eightyone.md b/docs/library/eightyone.md new file mode 100644 index 00000000..835e01ac --- /dev/null +++ b/docs/library/eightyone.md @@ -0,0 +1,357 @@ +# ZX81 (EightyOne) + +## Contribute to this documentation + +**DOCUMENTATION IS A WORK IN PROGRESS** + +**In order to propose improvements to this document, [visit its corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/eightyone.md). Changes are proposed using "Pull Requests."** + +**There is a To-Do list for libretro/docs [here](https://docs.libretro.com/docguide/todo/)** + +**You can submit suggestions or issues regarding documentation at the [libretro/docs issue tracker](https://github.com/libretro/docs/issues) or in our [forum thread](https://forums.libretro.com/t/wip-adding-pages-to-documentation-site/10078/).** + +## Background + +EightyOne is a port of the EightyOne (a.k.a. THE Sinclair Emulator) to libretro. + +EightyOne emulates a number of ZX80, ZX81, clones, and other computers based on the same hardware: + +- Sinclair ZX80 +- Sinclair ZX81 +- Timex TS1000 +- Timex TS1500 +- Lambda 8300 +- Ringo R470 +- MicroDigital TK85 +- Jupiter ACE + +### How to install the EightyOne core: + +- Start up RetroArch. Inside the main menu, go to 'Online Updater'. + +
![](images\Cores\all\updater.png)
+ +- Just to make sure we have the latest info files, select 'Update Core Info FIles'. Wait until this is done. Then, select 'Core Updater'. + +
![](images\Cores\all\info.png)
+ +- Browse through the list and select 'ZX81 (EightyOne)'. + +
![](images\Cores\updater\eightyone.png)
+ +After this has finished downloading, the core should now be ready for use! + +#### How to start the (Core name) core: + +- Go back to RetroArch's main menu screen. Select 'Load Content'. + +
![](images\Cores\all\load.png)
+ +- Browse to the folder that contains the content you want to run. + +- Select the content that you want to run. + +- If you are asked which core to select, choose 'ZX81 (EightyOne)'. + +The content should now start running! + +### Authors + +- Michael D Wynne + +## License + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +The EightyOne core is licensed under + +- [GPLv3](https://github.com/libretro/81-libretro/blob/master/LICENSE) + +## Extensions + +Content that can be loaded by the EightyOne core have the following file extensions: + +- .p +- .tzx +- .t81 + +## Databases + +RetroArch database(s) that are associated with the EightyOne core: + +- [Sinclair - ZX 81](https://github.com/libretro/libretro-database/blob/master/rdb/Sinclair%20-%20ZX%2081.rdb) + +## Features + +RetroArch-level settings or features that the EightyOne core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✕ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The EightyOne core's directory name is 'EightyOne' + +The EightyOne core saves/loads to/from these directories. + +**RetroArch's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The EightyOne core's core provided FPS is 50 +- The EightyOne core's core provided sample rate is 44100 Hz +- The EightyOne core's core provided aspect ratio is (Ratio) + +### Auto-configuration + +Since configuring the core for each game can be a tedious task, the EightyOne core features auto-configuration. Games that support auto-configuration are listed in the [src/gamedb/gamedb.json file](https://github.com/libretro/81-libretro/blob/master/src/gamedb/gamedb.json), along with some information and the configuration required to play them. + +Currently, there's no way to change the auto-configuration settings short of recompiling the core after making the changes. If you feel the provided auto-configuration could be better or has bugs, please open an [issue](https://github.com/libretro/81-libretro/issues). + +### Colorization + +Colorization works by loading a program prior to loading the game. This program will check if the Chroma 81 expansion is installed, and, if it is, configures the colors of the ZX81 characters, and then loads the original game, which runs unaware that it's playing with colors. + +Since the EightyOne core can't load arbitrary programs from the file system, the colorization program and the game must exist in the same file. + +## Core options + +The EightyOne core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Tape Fast Load** (Off/**On**) + + Instantly loads files if enabled, or disable it to see the moving horizontal lines while the game loads. + +- **8K-16K Contents** (**auto**/ROM shadow/RAM/dK'tronics 4K Graphics ROM + 4K RAM) + + Selects the contents of memory addresses between 8192 and 16383, a shadow copy of the ROM, 8K of RAM, or [dK'tronics 4K ROM plus 4K of RAM](http://www.fruitcake.plus.com/Sinclair/ZX81/Chroma/ChromaInterface_Software_CharacterSetROM.htm). + +- **High Resolution** (**auto**/none/WRX) + + Enables WRX high resolution. + +- **Emulate Chroma 81** (**auto**/Off/On) + + Enable the [Chroma 81](http://www.fruitcake.plus.com/Sinclair/ZX81/Chroma/ChromaInterface.htm) interface (colorization). + +??? note "Emulate Chroma 81 - auto/On" + ![](images/Cores/eightyone/chroma_on.png) + +??? note "Emulate Chroma 81 - Off" + ![](images/Cores/eightyone/chroma_off.png) + +- **Video Presets** (**clean**/tv/noisy) + + Change how the video is emulated (if Chroma 81 is enabled, the video is set to "clean" regardless of this option). + +??? note "Video Presets - clean" + ![](images/Cores/eightyone/clean.png) + +??? note "Video Presets - tv" + ![](images/Cores/eightyone/tv.png) + +??? note "Video Presets - noisy" + ![](images/Cores/eightyone/clean.png) + +- **Sound emulation** (**auto**/none/Zon X-81) + + Enables sound emulation. + +- **Joypad Left mapping** (**auto**/default/new line/shift/space/./0/1/2/3/4/5/6/7/8/9/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) + + Maps this joypad button to a keyboard key, defaults are the cursor keys for the directional pad and '0' to all the other buttons. + +- **Joypad Right mapping** (**auto**/default/new line/shift/space/./0/1/2/3/4/5/6/7/8/9/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) + + Maps this joypad button to a keyboard key, defaults are the cursor keys for the directional pad and '0' to all the other buttons. + +- **Joypad Up mapping** (**auto**/default/new line/shift/space/./0/1/2/3/4/5/6/7/8/9/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) + + Maps this joypad button to a keyboard key, defaults are the cursor keys for the directional pad and '0' to all the other buttons. + +- **Joypad Down mapping** (**auto**/default/new line/shift/space/./0/1/2/3/4/5/6/7/8/9/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) + + Maps this joypad button to a keyboard key, defaults are the cursor keys for the directional pad and '0' to all the other buttons. + +- **Joypad A button mapping** (**auto**/default/new line/shift/space/./0/1/2/3/4/5/6/7/8/9/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) + + Maps this joypad button to a keyboard key, defaults are the cursor keys for the directional pad and '0' to all the other buttons. + +- **Joypad B button mapping** (**auto**/default/new line/shift/space/./0/1/2/3/4/5/6/7/8/9/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) + + Maps this joypad button to a keyboard key, defaults are the cursor keys for the directional pad and '0' to all the other buttons. + +- **Joypad X button mapping** (**auto**/default/new line/shift/space/./0/1/2/3/4/5/6/7/8/9/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) + + Maps this joypad button to a keyboard key, defaults are the cursor keys for the directional pad and '0' to all the other buttons. + +- **Joypad Y button mapping** (**auto**/default/new line/shift/space/./0/1/2/3/4/5/6/7/8/9/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) + + Maps this joypad button to a keyboard key, defaults are the cursor keys for the directional pad and '0' to all the other buttons. + +- **Joypad L button mapping** (**auto**/default/new line/shift/space/./0/1/2/3/4/5/6/7/8/9/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) + + Maps this joypad button to a keyboard key, defaults are the cursor keys for the directional pad and '0' to all the other buttons. + +- **Joypad R button mapping** (**auto**/default/new line/shift/space/./0/1/2/3/4/5/6/7/8/9/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) + + Maps this joypad button to a keyboard key, defaults are the cursor keys for the directional pad and '0' to all the other buttons. + +- **Joypad L2 button mapping** (**auto**/default/new line/shift/space/./0/1/2/3/4/5/6/7/8/9/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) + + Maps this joypad button to a keyboard key, defaults are the cursor keys for the directional pad and '0' to all the other buttons. + +- **Joypad R2 button mapping** (**auto**/default/new line/shift/space/./0/1/2/3/4/5/6/7/8/9/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) + + Maps this joypad button to a keyboard key, defaults are the cursor keys for the directional pad and '0' to all the other buttons. + +- **Transparent Keyboard Overlay** (Off/**On**) + + If the keyboard overlay is transparent or opaque. + +??? note "Transparent Keyboard Overlay - On" + ![](images/Cores/eightyone/trans_on.png) + +??? note "Transparent Keyboard Overlay - Off" + ![](images/Cores/eightyone/trans_off.png) + +- **Time to Release key in ms** (**100**/300/500/1000) + + How many milliseconds to wait before releasing the key pressed using the keyboard overlay. + +## Controllers + +The EightyOne core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Input disabled. +- **RetroPad** - Joypad +- Cursor Joystick - Joypad - Switch to this for joypad inputs. + +### User 2 device types + +- None - Input disabled. +- **RetroPad** - Joypad +- Sinclair Keyboard - Keyboard - Switch to this for keyboard inputs. Switch the User 1 device type to none if the correct keyboard inputs aren't being read. + +### Controller tables + +#### Joypad + +!!! attention + Use the Joypad mapping core options to configure the Cursor Joystick inputs. + +| User 1 Remap descriptors | RetroPad Inputs | Cursor Joystick | +|-------------------------------|----------------------------------------------|--------------------------| +| | ![](images/RetroPad/Retro_B_Round.png) | Joypad B button mapping | +| | ![](images/RetroPad/Retro_Y_Round.png) | Joypad Y button mapping | +| | ![](images/RetroPad/Retro_Select.png) | Keyboard overlay | +| | ![](images/RetroPad/Retro_Dpad_Up.png) | Joypad Up mapping | +| | ![](images/RetroPad/Retro_Dpad_Down.png) | Joypad Down mapping | +| | ![](images/RetroPad/Retro_Dpad_Left.png) | Joypad Left mapping | +| | ![](images/RetroPad/Retro_Dpad_Right.png) | Joypad Right mapping | +| | ![](images/RetroPad/Retro_A_Round.png) | Joypad A button mapping | +| | ![](images/RetroPad/Retro_X_Round.png) | Joypad X button mapping | +| | ![](images/RetroPad/Retro_L1.png) | Joypad L button mapping | +| | ![](images/RetroPad/Retro_R1.png) | Joypad R button mapping | +| | ![](images/RetroPad/Retro_L2.png) | Joypad L2 button mapping | +| | ![](images/RetroPad/Retro_R2.png) | Joypad R2 button mapping | + +#### Keyboard + +| RetroKeyboard Inputs | Sinclair Keyboard | +|------------------------------|--------------------| +| Keyboard Backspace | VK_BACK | +| Keyboard Tab | VK_TAB | +| Keyboard Clear | VK_CLEAR | +| Keyboard Return | VK_RETURN | +| Keyboard Pause | VK_PAUSE | +| Keyboard Escape | VK_ESCAPE | +| Keyboard Space | VK_SPACE | +| Keyboard Comma , | VK_COMMA | +| Keyboard Delete | VK_DELETE | +| Keyboard Keypad 0 | VK_NUMPAD0 | +| Keyboard Keypad 1 | VK_NUMPAD1 | +| Keyboard Keypad 2 | VK_NUMPAD2 | +| Keyboard Keypad 3 | VK_NUMPAD3 | +| Keyboard Keypad 4 | VK_NUMPAD4 | +| Keyboard Keypad 5 | VK_NUMPAD5 | +| Keyboard Keypad 6 | VK_NUMPAD6 | +| Keyboard Keypad 7 | VK_NUMPAD7 | +| Keyboard Keypad 8 | VK_NUMPAD8 | +| Keyboard Keypad 9 | VK_NUMPAD9 | +| Keyboard Keypad Period . | VK_DECIMAL | +| Keyboard Keypad Divide / | VK_DIVIDE | +| Keyboard Keypad Multiply * | VK_MULTIPLY | +| Keyboard Keypad Minus - | VK_SUBTRACT | +| Keyboard Keypad Plus + | VK_ADD | +| Keyboard Up | VK_UP | +| Keyboard Down | VK_DOWN | +| Keyboard Right | VK_RIGHT | +| Keyboard Left | VK_LEFT | +| Keyboard Insert | VK_INSERT | +| Keyboard Home | VK_HOME | +| Keyboard End | VK_END | +| Keyboard Page Up | VK_PRIOR | +| Keyboard Page Down | VK_NEXT | +| Keyboard F1 | VK_F1 | +| Keyboard F2 | VK_F2 | +| Keyboard F3 | VK_F3 | +| Keyboard F4 | VK_F4 | +| Keyboard F5 | VK_F5 | +| Keyboard F6 | VK_F6 | +| Keyboard F7 | VK_F7 | +| Keyboard F8 | VK_F8 | +| Keyboard F9 | VK_F9 | +| Keyboard F10 | VK_F10 | +| Keyboard F11 | VK_F11 | +| Keyboard F12 | VK_F12 | +| Keyboard F13 | VK_F13 | +| Keyboard F14 | VK_F14 | +| Keyboard F15 | VK_F15 | +| Keyboard Num Lock | VK_NUMLOCK | +| Keyboard Caps Lock | VK_CAPITAL | +| Keyboard Scroll Lock | VK_SCROLL | +| Keyboard Right Shift | VK_SHIFT | +| Keyboard Left Shift | VK_SHIFT | +| Keyboard Right Control | VK_CONTROL | +| Keyboard Left Control | VK_CONTROL | +| Keyboard Right Alt | VK_MENU | +| Keyboard Left Alt | VK_MENU | +| Keyboard Print | VK_SNAPSHOT | + +## External Links + +- [Libretro EightyOne Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/81_libretro.info) +- [Libretro EightyOne Github Repository](https://github.com/libretro/81-libretro) +- [Report Libretro EightyOne Core Issues Here](https://github.com/libretro/81-libretro/issues) +- [Official EightyOne Sourceforge Repository]((https://sourceforge.net/projects/eightyone-sinclair-emulator/)) \ No newline at end of file diff --git a/docs/library/emux_chip8.md b/docs/library/emux_chip8.md new file mode 100644 index 00000000..22342dd7 --- /dev/null +++ b/docs/library/emux_chip8.md @@ -0,0 +1,89 @@ +# CHIP-8 (Emux) + +**This core currently doesn't start so this documentation will remain incomplete until it is fixed.** + +## Contribute to this documentation + +In order to propose improvements to this document, [visit it's corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/emux_chip8.md). Changes are proposed using "Pull Requests." + +## Background + +Emux is a cross-platform emulator project with a goal of emulating multiple kinds of machines related to gaming, such as consoles or arcades. Its philosophy is very much inspired by the Linux kernel (hence the name), which brilliantly manages to support multiple machines while keeping drivers entirely platform-independent. Emux is designed in the same way, keeping a code base of CPUs and controllers separate from machines. + +### How to get and install the Emux CHIP-8 core: + +1. Start up RetroArch. Inside the main menu, go to 'Online Updater'. + +2. Just to make sure we have the latest info files, select 'Update Core Info FIles'. Wait until this is done. Then, select 'Core Updater'. + +3. Browse through the list and select 'CHIP-8 (Emux)'. + +After this has finished downloading, the core should now be ready for use! + +### Authors + +- Sebastien Ronsse + +## License + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +- [GPLv2](https://github.com/libretro/emux/blob/master/COPYING) + +## Extensions + +Content that can be loaded by the Emux CHIP-8 core have the following file extensions: + +- .ch8 +- .bin +- .rom + +## Features + +| Feature | Supported | +|-------------------|:---------:| +| Saves | - | +| States | - | +| Rewind | - | +| Netplay | - | +| RetroAchievements | - | +| RetroArch Cheats | - | +| Native Cheats | - | +| Controllers | - | +| Remapping | - | +| Multi-Mouse | - | +| Rumble | - | +| Sensors | - | +| Camera | - | +| Location | - | +| Subsystem | - | +| Softpatching | - | + +### Saves/States + +The Emux CHIP-8 core's directory name is 'emux (chip8)' + +Awaiting description. + +## Core options + +Awaiting description. + +## Controllers + +Awaiting description. + +### Device types + +Awaiting description. + +### Controllers graph + +Awaiting description. + +## External Links + +- [Libretro Emux CHIP-8 Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/emux_chip8_libretro.info) +- [Libretro Emux CHIP-8 Github Repository](https://github.com/libretro/emux) +- [Report Libretro Emux CHIP-8 Core Issues Here](https://github.com/libretro/libretro-meta/issues) +- [Official Emux CHIP-8 Github Repository](https://github.com/sronsse/emux) \ No newline at end of file diff --git a/docs/library/emux_gb.md b/docs/library/emux_gb.md new file mode 100644 index 00000000..a7f9668e --- /dev/null +++ b/docs/library/emux_gb.md @@ -0,0 +1,172 @@ +# Game Boy/Game Boy Color (Emux GB) + +## Contribute to this documentation + +**In order to propose improvements to this document, [visit its corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/emux_gb.md). Changes are proposed using "Pull Requests."** + +**There is a To-Do list for libretro/docs [here](https://docs.libretro.com/docguide/todo/)** + +**You can submit suggestions or issues regarding documentation at the [libretro/docs issue tracker](https://github.com/libretro/docs/issues) or in our [forum thread](https://forums.libretro.com/t/wip-adding-pages-to-documentation-site/10078/).** + +## Background + +Emux is a cross-platform emulator project with a goal of emulating multiple kinds of machines related to gaming, such as consoles or arcades. Its philosophy is very much inspired by the Linux kernel (hence the name), which brilliantly manages to support multiple machines while keeping drivers entirely platform-independent. Emux is designed in the same way, keeping a code base of CPUs and controllers separate from machines. + +### Why use this core? + +Awaiting description. + +### How to get and install the Emux GB core: + +- Start up RetroArch. Inside the main menu, go to 'Online Updater'. + +
![](images\Cores\all\updater.png)
+ +- Just to make sure we have the latest info files, select 'Update Core Info FIles'. Wait until this is done. Then, select 'Core Updater'. + +
![](images\Cores\all\info.png)
+ +- Browse through the list and select 'Game Boy/Game Boy Color (Emux GB)'. + +
![](images\Cores\emux\emux_gb.png)
+ +After this has finished downloading, the core should now be ready for use! + +#### How to start (after installation): + +- Go back to RetroArch's main menu screen. Select 'Load Content'. + +
![](images\Cores\all\load.png)
+ +- Browse to the folder that contains the content you want to run. + +- Select the content that you want to run. + +
![](images\Cores\all\gb.png)
+ +- If you are asked which core to select, choose 'Game Boy/Game Boy Color (Emux GB)'. + +The content should now start running! + +### Authors + +- Sebastien Ronsse + +## See also + +### GB/GBC + +- [Game Boy / Game Boy Color (Gambatte)](https://docs.libretro.com/library/gambatte/) +- [Game Boy / Game Boy Color (SameBoy)](https://docs.libretro.com/library/sameboy/) +- [Game Boy / Game Boy Color (TGB Dual)](https://docs.libretro.com/library/tgb_dual/) +- [Game Boy / Game Boy Color (Gearboy)](https://docs.libretro.com/library/gearboy/) +- [Game Boy Advance (mGBA)](https://docs.libretro.com/library/mgba/) + +## License + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +The Emux GB core is licensed under + +- [GPLv2](https://github.com/libretro/emux/blob/master/COPYING) + +## Extensions + +Content that can be loaded by the Emux GB core have the following file extensions: + +- .gb +- .bin +- .rom + +## Databases + +RetroArch database(s) that are associated with the Emux GB core: + +- [Nintendo - Game Boy](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Game%20Boy.rdb) +- [Nintendo - Game Boy Color](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Game%20Boy%20Color.rdb) + +## BIOS + +Required or optional firmware files go in RetroArch's system directory. + +| Filename | Description | md5sum | +|:-------------:|:------------------------------:|:--------------------------------:| +| dmg_boot.bin | Game Boy Boot ROM - Required | 32fbbd84168d3482956eb3c5051637f5 | + +## Features + +RetroArch-level settings or features that the Emux GB core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✕ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| Softpatching | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | + +### Directories + +The Emux GB core's directory name is 'emux (gb)' + +### Geometry and timing + +- The Emux GB core's internal FPS is (FPS) +- The Emux GB core's internal sample rate is (Rate) +- The Emux GB core's core provided aspect ratio is (Ratio) + +## Controllers + +### Device types + +The Emux GB core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +#### User 1 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad +- RetroPad w/Analog - Joypad - There is no reason to switch to this. + +### Controller tables + +#### Joypad and analog device type table + +| User 1 Input descriptors | RetroPad Inputs | RetroPad | +|-------------------------------|----------------------------------------------|--------------------| +| | ![](images/RetroPad/Retro_B_Round.png) | B | +| | ![](images/RetroPad/Retro_Select.png) | Select | +| | ![](images/RetroPad/Retro_Start.png) | Start | +| | ![](images/RetroPad/Retro_Dpad_Up.png) | D-Pad Up | +| | ![](images/RetroPad/Retro_Dpad_Down.png) | D-Pad Down | +| | ![](images/RetroPad/Retro_Dpad_Left.png) | D-Pad Left | +| | ![](images/RetroPad/Retro_Dpad_Right.png) | D-Pad Right | +| | ![](images/RetroPad/Retro_A_Round.png) | A | + +## Compatibility + +Awaiting description. + +## External Links + +- [Libretro Emux GB Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/emux_gb_libretro.info) +- [Libretro Emux GB Github Repository](https://github.com/libretro/emux) +- [Report Libretro Emux GB Core Issues Here](https://github.com/libretro/libretro-meta/issues) +- [Official Emux GB Github Repository](https://github.com/sronsse/emux) diff --git a/docs/library/emux_nes.md b/docs/library/emux_nes.md new file mode 100644 index 00000000..d668827d --- /dev/null +++ b/docs/library/emux_nes.md @@ -0,0 +1,120 @@ +# Nintendo - NES / Famicom (Emux NES) + +## Background + +Emux is a cross-platform emulator project with a goal of emulating multiple kinds of machines related to gaming, such as consoles or arcades. Its philosophy is very much inspired by the Linux kernel (hence the name), which brilliantly manages to support multiple machines while keeping drivers entirely platform-independent. Emux is designed in the same way, keeping a code base of CPUs and controllers separate from machines. + +### Author/License + +The Emux NES core has been authored by + +- Sebastien Ronsse + +The Emux NES core is licensed under + +- [GPLv2](https://github.com/libretro/emux/blob/master/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Emux NES core have the following file extensions: + +- .nes +- .bin +- .rom + +## Databases + +RetroArch database(s) that are associated with the Emux NES core: + +- [Nintendo - Nintendo Entertainment System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Nintendo%20Entertainment%20System.rdb) + +## Features + +Frontend-level settings or features that the Emux NES core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✕ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Emux NES core's internal core name is 'emux (nes)' + +### Geometry and timing + +- The Emux NES core's core provided FPS is (FPS) +- The Emux NES core's core provided sample rate is (Rate) +- The Emux NES core's core provided aspect ratio is (Ratio) + +## Controllers + +The Emux NES core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 2 device types + +- None - Doesn't disable input. There's no reason to switch to this. +- **RetroPad** - Joypad - Stay on this. +- RetroPad w/Analog - Joypad - Same as RetroPad. There's no reason to switch to this. + +### Controller tables + +#### Joypad + +![](images/Controllers/nes.png) + +| RetroPad Inputs | Emux NES core Inputs | +|----------------------------------------------|----------------------| +| ![](images/RetroPad/Retro_B_Round.png) | B | +| ![](images/RetroPad/Retro_Select.png) | Select | +| ![](images/RetroPad/Retro_Start.png) | Start | +| ![](images/RetroPad/Retro_Dpad_Up.png) | D-Pad Up | +| ![](images/RetroPad/Retro_Dpad_Down.png) | D-Pad Down | +| ![](images/RetroPad/Retro_Dpad_Left.png) | D-Pad Left | +| ![](images/RetroPad/Retro_Dpad_Right.png) | D-Pad Right | +| ![](images/RetroPad/Retro_A_Round.png) | A | + +## Compatibility + +Awaiting description. + +## External Links + +- [Official Emux GB Github Repository](https://github.com/sronsse/emux) +- [Libretro Emux GB Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/emux_gb_libretro.info) +- [Libretro Emux GB Github Repository](https://github.com/libretro/emux) +- [Report Libretro Emux GB Core Issues Here](https://github.com/libretro/libretro-meta/issues) + +### See also + +#### Nintendo - Nintendo Entertainment System + +- [Nintendo - NES / Famicom (bnes)](https://docs.libretro.com/library/bnes/) +- [Nintendo - NES / Famicom (FCEUmm)](https://docs.libretro.com/library/fceumm/) +- [Nintendo - NES / Famicom (Mesen)](https://docs.libretro.com/library/mesen/) +- [Nintendo - NES / Famicom (Nestopia UE)](https://docs.libretro.com/library/nestopia_ue/) +- [Nintendo - NES / Famicom (QuickNES)](https://docs.libretro.com/library/quicknes/) \ No newline at end of file diff --git a/docs/library/emux_sms.md b/docs/library/emux_sms.md new file mode 100644 index 00000000..95e2dd1e --- /dev/null +++ b/docs/library/emux_sms.md @@ -0,0 +1,120 @@ +# Sega - Master System (Emux SMS) + +## Background + +Emux is a cross-platform emulator project with a goal of emulating multiple kinds of machines related to gaming, such as consoles or arcades. Its philosophy is very much inspired by the Linux kernel (hence the name), which brilliantly manages to support multiple machines while keeping drivers entirely platform-independent. Emux is designed in the same way, keeping a code base of CPUs and controllers separate from machines. + +### Author/License + +The Emux SMS core has been authored by + +- Sebastien Ronsse + +The Emux SMS core is licensed under + +- [GPLv2](https://github.com/libretro/emux/blob/master/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Emux SMS core have the following file extensions: + +- .sms +- .bin +- .rom + +## Databases + +RetroArch database(s) that are associated with the Emux SMS core: + +- [Sega - Master System - Mark III](https://github.com/libretro/libretro-database/blob/master/rdb/Sega%20-%20Master%20System%20-%20Mark%20III.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +| Filename | Description | md5sum | +|:--------:|:-----------------------------:|:--------------------------------:| +| bios.sms | Master System BIOS - Required | 840481177270d5642a14ca71ee72844c | + +## Features + +Frontend-level settings or features that the Emux SMS core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✕ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Emux SMS core's internal core name is 'emux (sms)' + +### Geometry and timing + +- The Emux SMS core's core provided FPS is (FPS) +- The Emux SMS core's core provided sample rate is (Rate) +- The Emux SMS core's core provided aspect ratio is (Ratio) + +## Controllers + +The Emux SMS core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't diable input. There's no reason to switch to this. +- **RetroPad** - Joypad - Stay on this. +- RetroPad w/Analog - Joypad - There's no reason to switch to this. + +### Controller tables + +#### Joypad + +![](images/Controllers/sms.png) + +| RetroPad Inputs | Emux SMS core Inputs | +|-------------------------------------------|----------------------| +| ![](images/RetroPad/Retro_B_Round.png) | 1 | +| ![](images/RetroPad/Retro_Start.png) | Pause | +| ![](images/RetroPad/Retro_Dpad_Up.png) | D-Pad Up | +| ![](images/RetroPad/Retro_Dpad_Down.png) | D-Pad Down | +| ![](images/RetroPad/Retro_Dpad_Left.png) | D-Pad Left | +| ![](images/RetroPad/Retro_Dpad_Right.png) | D-Pad Right | +| ![](images/RetroPad/Retro_A_Round.png) | 2 | + +## External Links + +- [Official Emux SMS Github Repository](https://github.com/sronsse/emux) +- [Libretro Emux SMS Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/emux_sms_libretro.info) +- [Libretro Emux SMS Github Repository](https://github.com/libretro/emux) +- [Report Libretro Emux SMS Core Issues Here](https://github.com/libretro/libretro-meta/issues) + +### See also + +#### Sega - Master System - Mark III + +- [Sega - MS/GG/MD/CD (Genesis Plus GX)](https://docs.libretro.com/library/genesis_plus_gx/) +- [Sega - MS/MD/CD/32X (PicoDrive)](https://docs.libretro.com/library/picodrive/) \ No newline at end of file diff --git a/docs/library/fceumm.md b/docs/library/fceumm.md new file mode 100644 index 00000000..69c0258a --- /dev/null +++ b/docs/library/fceumm.md @@ -0,0 +1,375 @@ +# Nintendo - NES / Famicom (FCEUmm) + +## Background + +FCEU "mappers modified" is an unofficial build of FCEU Ultra by CaH4e3, which supports a lot of new mappers including some obscure mappers such as one for unlicensed NES ROM's. + +### Author/License + +The FCEUmm core has been authored by + +- FCEU Team +- CaH4e3 + +The FCEUmm core is licensed under + +- [GPLv2](https://github.com/libretro/libretro-fceumm/blob/master/Copying) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the FCEUmm core have the following file extensions: + +- .fds +- .nes +- .unif +- .unf + +## Databases + +RetroArch database(s) that are associated with the FCEUmm core: + +- [Nintendo - Nintendo Entertainment System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Nintendo%20Entertainment%20System.rdb) +- [Nintendo - Family Computer Disk System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Family%20Computer%20Disk%20System.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +| Filename | Description | md5sum | +|:-------------:|:----------------------------------------------------------------------------------------------------------------------------:|:--------------------------------:| +| disksys.rom | Family Computer Disk System BIOS - Required for Famicom Disk System emulation | ca30b50f880eb660a320674ed365ef7a | + +## Features + +Frontend-level settings or features that the FCEUmm core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✔ | +| RetroArch Cheats | ✔ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✔ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The FCEUmm core's internal core name is 'FCEUmm' + +The FCEUmm core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +**Frontend's System directory** + +- nes.pal (Custom palette) + +### Geometry and timing + +- The FCEUmm core's core provided FPS is 50.0069838766 when playing a PAL/Dendy game and 60.0998265207 when playing a NTSC game. +- The FCEumm core's core provided sample rate is 48000 Hz +- The FCEUmm core's core provided aspect ratio is dependent on the ['Preferred aspect ratio' core option](https://docs.libretro.com/library/fceumm/#core-options). + +### Custom color palettes + +To use custom color palettes in the FCEUmm core, the ['Color Palette' core option](https://docs.libretro.com/library/fceumm/#core-options) must be set to custom and the custom color palette file you want to use must be in RetroArch's system directory. + +Make sure the custom palette file is named 'nes.pal' + +Custom color palettes for the NES can be generated with either of these tools. + +- [Bisqwit's NTSC NES palette generator](http://bisqwit.iki.fi/utils/nespalette.php) +- [Drag's NTSC NES palette generator](http://drag.wootest.net/misc/palgen.html) + +## Core options + +The Nestopia UE core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Region Override** [fceumm_region] (**Auto**|NTSC|PAL|Dendy) + + Choose which region the system is from. + +- **Preferred aspect ratio** [fceumm_aspect] (**8:7 PAR**|4:3) + + Choose the preferred aspect ratio. RetroArch's aspect ratio must be set to Core provided in the Video seetings. + +??? note "Preferred aspect ratio - 8:7 PAR" + ![](images\Cores\fceumm\8by7_PAR.png) + +??? note "Preferred aspect ratio - 4:3" + ![](images\Cores\fceumm\4by3.png) + +- **Color Palette** [fceumm_palette] (**default**|asqrealc|nintendo-vc|rgb|yuv-v3|unsaturated-final|sony-cxa2025as-us|pal|bmf-final2|bmf-final3|smooth-fbx|composite-direct-fbx|pvm-style-d93-fbx|ntsc-hardware-fbx|nes-classic-fbx-fs|nescap|wavebeam|raw|custom) + + Choose which color palette is going to be used. The raw palette can used in combination with the nes-decoder shader to give colors based off on Bisqwit's NES palette generator and applies either an FCC color conversion matrix or specific Sony US matrix. + +!!! attention "Disclaimer" + These 'Color Palette core option screenshots have been taken with the 'Use NTSC Palette' core option set to Off. + +??? note "Color Palette - default" + ![](images\Cores\fceumm\default.png) + +??? note "Color Palette - asqrealc" + ![](images\Cores\fceumm\asqrealc.png) + +??? note "Color Palette - nintendo-vc" + ![](images\Cores\fceumm\nintendo_vc.png) + +??? note "Color Palette - rgb" + ![](images\Cores\fceumm\rgb.png) + +??? note "Color Palette - yuv-v3" + ![](images\Cores\fceumm\yuv_v3.png) + +??? note "Color Palette - unsaturated-final" + ![](images\Cores\fceumm\unsaturated_final.png) + +??? note "Color Palette - sony-cxa2025as-us" + ![](images\Cores\fceumm\sony_cxa2025as_us.png) + +??? note "Color Palette - pal" + ![](images\Cores\fceumm\pal.png) + +??? note "Color Palette - bmf-final2" + ![](images\Cores\fceumm\bmf_final2.png) + +??? note "Color Palette - bmf-final3" + ![](images\Cores\fceumm\bmf_final3.png) + +??? note "Color Palette - smooth-fbx" + ![](images\Cores\fceumm\smooth_fbx.png) + +??? note "Color Palette - composite-direct-fbx" + ![](images\Cores\fceumm\direct_fbx.png) + +??? note "Color Palette - pvm-style-d93-fbx" + ![](images\Cores\fceumm\pvm_style_d93_fbx.png) + +??? note "Color Palette - ntsc-hardware-fbx" + ![](images\Cores\fceumm\ntsc_hardware_fbx.png) + +??? note "Color Palette - nes-classic-fbx-fs" + ![](images\Cores\fceumm\nes_classic_fbx_fs.png) + +??? note "Color Palette - nescap" + ![](images\Cores\fceumm\nescap.png) + +??? note "Color Palette - wavebeam" + ![](images\Cores\fceumm\wavebeam.png) + +??? note "Color Palette - raw" + ![](images\Cores\fceumm\raw.png) + +- **Use NTSC Palette** [fceumm_use_ntsc] (**disabled**|enabled) + + Self-explanatory. + +!!! attention + These 'Use NTSC Palette' core option screenshots have been taken with the 'Color Palette' core option set to default. + +??? note "Use NTSC Palette - Off" + ![](images\Cores\fceumm\ntsc_off.png) + +??? note "Use NTSC Palette - On" + ![](images\Cores\fceumm\ntsc_on.png) + +- **Crop Overscan (Horizontal)** [fceumm_overscan_h] (**disabled**|enabled) + + Crop out (horizontally) the potentially random glitchy video output that would have been hidden by the bezel around the edge of a standard-definition television screen. + +??? note "Crop Overscan (Horiontal) - Off" + ![](images\Cores\fceumm\horiz_off.png) + +??? note "Crop Overscan (Horizontal) - On" + ![](images\Cores\fceumm\horiz_on.png) + +- **Crop Overscan (Vertical)** [fceumm_overscan_v] (**enabled**|disabled) + + Crop out (vertically) the potentially random glitchy video output that would have been hidden by the bezel around the edge of a standard-definition television screen. + +??? note "Crop Overscan (Vertical) - On" + ![](images\Cores\fceumm\vert_on.png) + +??? note "Crop Overscan (Vertical) - Off" + ![](images\Cores\fceumm\vert_off.png) + +- **No Sprite Limit** [fceumm_nospritelimit] (**disabled**|enabled) + + Removes 8-sprites-per-scanline hardware limit. + +- **Sound Volume** [fceumm_sndvolume] (**150**|160|170|180|190|200|210|220|230|240|250|0|10|20|30|40|50|60|70|80|90|100|110|120|130|140) + + Self-explanatory. + +- **Sound Quality** [fceumm_sndquality] (**Low**|High|Very High) + + Enables high/higher sound quality for games using expansion audio (MMC5, VRC6, VRC7, Namco, Sunsoft). Use Low for slower devices. + +- **Swap Duty Cycles** [fceumm_swapduty] (**disabled**|enabled) + + Replicates the sound of some famiclones that have duty cycles swapped for square channels. A quick sound comparison is in Contra's sound effect when shooting with normal bullets. + +- **Turbo Enable** [fceumm_turbo_enable] (**None**|Player 1|Player 2|Both) + + Enable the use of the [Turbo B and Turbo A buttons](https://docs.libretro.com/library/fceumm/index.html#controllers). + +- **Turbo Delay (in frames)** [fceumm_turbo_delay] (**3**|5|10|15|30|60|1|2) + + The number of frames between consecutive buttton presses when the Turbo B or Turbo A buttons are held down. + +- **Zapper Mode** [fceumm_zapper_mode] (**pointer**|mouse) + + Pointer allows the Zapper Device Type to be used for touch-devices, but still can be used with regular mouse. Pointer and Mouse mode movement behaves differently with different input driver so user can choose which movement feels natural to them. + +- **Show Crosshair** [fceumm_show_crosshair] (**enabled**|disabled) + + Show the crosshair for the Zapper device type. + +??? note "Show Crosshair - On" + ![](images\Cores\fceumm\cross_on.png) + +??? note "Show Crosshair - Off" + ![](images\Cores\fceumm\cross_off.png) + +- **Overclocking** [fceumm_overclocking] (**disabled**|2x-Postrender|2x-VBlank) + + Overclocks the NES using PPU method to minimize ingame slowdowns of some games. Contra Force needs VBlank mode (stage 3 slowdowns). Choose which ever minimizes slowdowns without image distortion. + +## Controllers + +The Nestopia UE core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Input disabled. +- **Auto** - Joypad - Based off the loaded game's crc, the core will automatically select a regular controller (NES or Famicom) for User 1. +- [Gamepad](http://nintendo.wikia.com/wiki/Nintendo_Entertainment_System_controller) - Joypad - Manually selects a regular controller (NES or Famicom) for User 1. +- [Zapper](http://nintendo.wikia.com/wiki/NES_Zapper) - Mouse - Manually selects a Zapper light gun (NES or Famicom) for User 1. + +### User 2 device types + +- None - Input disabled. +- **Auto** - Joypad - Based off the loaded game's crc, the core will automatically select a regular controller (NES or Famicom) or a Zapper light gun (NES or Famicom) or a Arkanoid Paddle (NES only) for User 2. +- [Gamepad](http://nintendo.wikia.com/wiki/Nintendo_Entertainment_System_controller) - Joypad - Manually selects a regular controller (NES or Famicom) for User 2. +- [Arkanoid](https://en.wikipedia.org/wiki/Arkanoid_Controller) - Mouse - Manually selects a Arkanoid Paddle (NES only) for User 2. +- [Zapper](http://nintendo.wikia.com/wiki/NES_Zapper) - Mouse - Manually selects a Zapper light gun (NES or Famicom) for User 2. + +### Other controllers + +The FCEUmm core will also auto select the following controllers for the **Famicom** based off the loaded game's crc. + +- [Arkanoid Paddle (Famicom)](https://en.wikipedia.org/wiki/Arkanoid_Controller) - Mouse +- Bandai Hyper Shot Gun (Famicom) - Mouse +- Oeka Kids Tablet (Famicom) - Mouse + +!!! attention + Please note that these Famicom controllers are completely separate from the device types in the controls menu and cannot be manually selected. + +### Multitap support + +The FCEUmm core supports up to 4 players in multitap games for the NES and Famicom, games with multitap usage are detected by their crc. + +### Controller tables + +#### Joypad + +![](images/Controllers/nes.png) + +!!! warning + In order to use the Turbo A and Turbo B buttons, the 'Turbo Enable' core option must be set to On. + +| User 1 Remap descriptors | RetroPad Inputs | +|--------------------------|-------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Turbo B | ![](images/RetroPad/Retro_Y_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| Turbo A | ![](images/RetroPad/Retro_X_Round.png) | +| (FDS) Disk Side Change | ![](images/RetroPad/Retro_L1.png) | +| (FDS) Insert/Eject Disk | ![](images/RetroPad/Retro_R1.png) | +| (VSSystem) Insert Coin | ![](images/RetroPad/Retro_R2.png) | + +| User 2 - 4 Remap descriptors | RetroPad Inputs | +|--------------------------|-------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Turbo B | ![](images/RetroPad/Retro_Y_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| Turbo A | ![](images/RetroPad/Retro_X_Round.png) | + +#### Mouse + +| RetroMouse Inputs | Zapper | Arkanoid | Oeka Kids Tablet | Bandai Hyper Shot Gun | +|-----------------------------------------------------------------------------------------------------|------------------|-------------------|-------------------------|---------------------------------| +| ![](images/RetroMouse/Retro_Mouse.png) or ![](images/Button_Pack/Gestures/Gesture_Finger_Front.png) | Zapper Crosshair | Arkanoid Movement | Oeka Kids Tablet Cursor | Bandai Hyper Shot Gun Crosshair | +| ![](images/RetroMouse/Retro_Left.png) or ![](images/Button_Pack/Gestures/Gesture_Tap.png) | Zapper Trigger | Arkanoid Fire | Oeka Kids Tablet Touch | Bandai Hyper Shot Gun Trigger | + +- When the 'Zapper Mode' core option is set to pointer, the 'Zapper' device type can be controlled with touch inputs. +- When the 'Zapper Mode' core option is set to mouse, the 'Zapper' device type can be controlled with mouse inputs. + +## Compatibility + +| Game | Issue | +|------------------------------|--------------------------------------------------------------| +| Skull & Crossbones | Graphical glitches and screen shaking when in 2-player mode. | + +## External Links + +- [Official FCEUmm Website](http://cah4e3.shedevr.org.ru/fceultra.php) +- [Official FCEUmm Sourceforge Repository](https://sourceforge.net/projects/fceumm/) +- [Libretro FCEUmm Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/fceumm_libretro.info) +- [Libretro FCEUmm Github Repository](https://github.com/libretro/libretro-fceumm) +- [Report Libretro FCEUmm Core Issues Here](https://github.com/libretro/libretro-fceumm/issues) + +### See also + +#### Nintendo - Family Computer Disk System + +- [Nintendo - NES / Famicom (Mesen)](https://docs.libretro.com/library/mesen/) +- [Nintendo - NES / Famicom (Nestopia UE)](https://docs.libretro.com/library/nestopia_ue/) + +#### Nintendo - Nintendo Entertainment System + +- [Nintendo - NES / Famicom (bnes)](https://docs.libretro.com/library/bnes/) +- [Nintendo - NES / Famicom (Emux NES)](https://docs.libretro.com/library/emux_nes/) +- [Nintendo - NES / Famicom (Mesen)](https://docs.libretro.com/library/mesen/) +- [Nintendo - NES / Famicom (Nestopia UE)](https://docs.libretro.com/library/nestopia_ue/) +- [Nintendo - NES / Famicom (QuickNES)](https://docs.libretro.com/library/quicknes/) \ No newline at end of file diff --git a/docs/library/ffmpeg.md b/docs/library/ffmpeg.md new file mode 100644 index 00000000..f84bdcab --- /dev/null +++ b/docs/library/ffmpeg.md @@ -0,0 +1,162 @@ +# FFmpeg + +## Background + +Video/music player implemented in libretro. + +### Author/License + +The FFmpeg core has been authored by + +- Fabrice Bellard +- FFmpeg team + +The FFmpeg core is licensed under + +- [LGPLv2, GPLv2](https://github.com/libretro/FFmpeg/blob/master/LICENSE.md) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the FFmpeg core have the following file extensions: + +- .mkv +- .avi +- .f4v +- .f4f +- .3gp +- .ogm +- .flv +- .mp4 +- .mp3 +- .flac +- .ogg +- .m4a +- .webm +- .3g2 +- .mov +- .wmv +- .mpg +- .mpeg +- .vob +- .asf +- .divx +- .m2p +- .m2ts +- .ps +- .ts +- .mxf +- .wma +- .wav + +## Features + +Frontend-level settings or features that the FFmpeg core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The FFmpeg core's directory name is 'FFmpeg' + +### Geometry and timing + +- The FFmpeg core's core provided FPS is dependant on the loaded media. +- The FFmpeg core's core provided sample rate is dependant on the loaded media. +- The FFmpeg core's core provided aspect ratio is dependant on the loaded media. + +## Core options + +The FFmpeg core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Temporal Interpolation** [ffmpeg_temporal_interp] (**Off**/On) + + 'Fake’ a higher framerate by using motion blur. + +- **FFT Resolution** [ffmpeg_fft_resolution] (**1280x720**/1920x1080/2560x1440/3840x2160/640x360/320x180) + + Modify the resolution of the music visualizer. + +??? note "FFT Resolution - 320x180" + ![320x180](images\Cores\ffmpeg\320x180.png) + +??? note "FFT Resolution - 3840x2160" + ![3840x2160](images\Cores\ffmpeg\3840x2160.png) + +- **FFT Multisample** [ffmpeg_fft_multisample] (**1x**/2x/4x) + + Modify the antialiasing of the music visualizer. + +- **Colorspace** [ffmpeg_color_space] (**auto**/BT.70/BT.601/FCC/SMPTE240M) + + Choose [colorspaces](https://trac.ffmpeg.org/wiki/colorspace) from different broadcast regions/standards. + +## Controllers + +The FFmpeg core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad +- RetroPad w/Analog - Joypad - There's no reason to switch to this. + +### Other controllers + +- Mouse - The FFmpeg core allows Wheel Up and Wheel Down mouse inputs for seeking. This is completely separate from the device types in the Controls menu and cannot be manually selected. + +### Controller tables + +#### Joypad + +| User 1 Remap descriptors | RetroPad Inputs | +|--------------------------|----------------------------------------------| +| Seek +60 seconds | ![](images/RetroPad/Retro_Dpad_Up.png) | +| Seek -60 seconds | ![](images/RetroPad/Retro_Dpad_Down.png) | +| Seek -10 seconds | ![](images/RetroPad/Retro_Dpad_Left.png) | +| Seek +10 seconds | ![](images/RetroPad/Retro_Dpad_Right.png) | +| Cycle Audio Track | ![](images/RetroPad/Retro_L1.png) | +| Cycle Subtitle Track | ![](images/RetroPad/Retro_R1.png) | + +#### Mouse + +| RetroMouse Inputs | FFmpeg Core Inputs | +|-----------------------------------------------------|---------------------------| +| Wheel Up | Seek +60 seconds | +| Wheel Down | Seek -69 seconds | + +## External Links + +- [Official FFmpeg Website](https://www.ffmpeg.org/) +- [Official FFmpeg Repositories](https://www.ffmpeg.org/download.html#repositories) +- [Libretro FFmpeg Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/ffmpeg_libretro.info) +- [Libretro FFmpeg Github Repository](https://github.com/libretro/RetroArch/tree/master/cores/libretro-ffmpeg) +- [Report Libretro FFmpeg Core Issues Here](https://github.com/libretro/RetroArch/issues) \ No newline at end of file diff --git a/docs/library/fmsx.md b/docs/library/fmsx.md new file mode 100644 index 00000000..4955d604 --- /dev/null +++ b/docs/library/fmsx.md @@ -0,0 +1,354 @@ +# MSX (fMSX) + +## Contribute to this documentation + +**In order to propose improvements to this document, [visit its corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/fmsx.md). Changes are proposed using "Pull Requests."** + +**There is a To-Do list for libretro/docs [here](https://docs.libretro.com/docguide/todo/)** + +**You can submit suggestions or issues regarding documentation at the [libretro/docs issue tracker](https://github.com/libretro/docs/issues) or in our [forum thread](https://forums.libretro.com/t/wip-adding-pages-to-documentation-site/10078/).** + +## Background + +fMSX is a program that emulates MSX, MSX2, and MSX2+ 8bit home computers. + +### Why use this core? + +Awaiting description. + +### How to get and install the fMSX core: + +- Start up RetroArch. Inside the main menu, go to 'Online Updater'. + +
![](images\Cores\all\updater.png)
+ +- Just to make sure we have the latest info files, select 'Update Core Info FIles'. Wait until this is done. Then, select 'Core Updater'. + +
![](images\Cores\all\info.png)
+ +- Browse through the list and select 'MSX (fMSX)'. + +
![](images\Cores\updater\fmsx.png)
+ +After this has finished downloading, the core should now be ready for use! + +#### How to start (after installation): + +- Go back to RetroArch's main menu screen. Select 'Load Content'. + +
![](images\Cores\all\load.png)
+ +- Browse to the folder that contains the content you want to run. + +- Select the content that you want to run. + +
![](images\Cores\all\screenshot_name.png)
+ +- If you are asked which core to select, choose 'MSX (fMSX)'. + +The content should now start running! + +### Authors + +- Marat Fayzullin + +## See also + +### MSX + +- [MSX/SVI/ColecoVision/SG-1000 (blueMSX)](https://docs.libretro.com/library/bluemsx/) + +## License + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +The fMSX core is licensed under + +- [Non-commercial](https://github.com/libretro/fmsx-libretro/blob/master/LICENSE) + +## Extensions + +Content that can be loaded by the fMSX core have the following file extensions: + +- .rom +- .mx1 +- .mx2 +- .dsk +- .cas + +## Databases + +RetroArch database(s) that are associated with the fMSX core: + +- [Microsoft - MSX](https://github.com/libretro/libretro-database/blob/master/rdb/Microsoft%20-%20MSX.rdb) +- [Microsoft - MSX2](https://github.com/libretro/libretro-database/blob/master/rdb/Microsoft%20-%20MSX2.rdb) + +## BIOS + +Required or optional firmware files go in RetroArch's system directory. + +| Filename | Description | md5sum | +|:------------:|:-----------------------:|:--------------------------------:| +| MSX.ROM | MSX BIOS - Required | 364a1a579fe5cb8dba54519bcfcdac0d | +| MSX2.ROM | MSX2 BIOS - Required | ec3a01c91f24fbddcbcab0ad301bc9ef | +| MSX2EXT.ROM | MSX2 ExtROM - Required | 2183c2aff17cf4297bdb496de78c2e8a | +| MSX2P.ROM | MSX2+ BIOS - Required | 847cc025ffae665487940ff2639540e5 | +| MSX2PEXT.ROM |MSX2+ ExtROM - Required | 7c8243c71d8f143b2531f01afa6a05dc | + +## Features + +RetroArch-level settings or features that the fMSX core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | - | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✔ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | + +### Directories + +The fMSX core's directory name is 'fMSX' + +The fMSX core saves/loads to/from these directories. + +**RetroArch's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The fMSX core's internal FPS is 60 +- The fMSX core's internal sample rate is 48000 Hz +- The fMSX core's core provided aspect ratio is (Ratio) + +## Core options + +The fMSX core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **MSX Mode** (**MSX2+**/MSX1/MSX2) + + Select MSX model. + +- **MSX Video Mode** (**NTSC**/PAL) + + Awaiting description. + +- **MSX Mapper Type Mode** (**Guess Mapper Type A**/Guess Mapper Type B) + + Awaiting description. + +- **MSX Main Memory** (**Auto**/64KB/128KB/256KB/512KB) + + Awaiting description. + +- **MSX Video Memory** (**Auto**/32KB/64KB/128KB/192KB) + + Awaiting description. + +## Controllers + +### Device types + +The fMSX core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +#### User 1 device types + +- None - Input disabled. +- **Joystick** - Joypad +- Joystick + Emulated Keyboard - Joypad +- Emulated Keyboard - Joypad +- Keyboard - Keyboard - Has Keymapper support + +#### User 2 device types + +- None - Input disabled. +**Joystick** - Joypad + +### Controller tables + +#### Joypad and analog device type table + +| User 1 - 2 Remap descriptors for 'Joystick' device type | RetroPad Inputs | +|---------------------------------------------------------|----------------------------------------------| +| Fire B | ![](images/RetroPad/Retro_B_Round.png) | +| Stick Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| Stick Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| Stick Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| Stick Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| Fire A | ![](images/RetroPad/Retro_A_Round.png) | + +| User 1 Remap descriptors for 'Joystick + Emulated Keyboard' device type | RetroPad Inputs | +|-------------------------------------------------------------------------|-------------------------------------------| +| Fire B | ![](images/RetroPad/Retro_B_Round.png) | +| Spacebar | ![](images/RetroPad/Retro_Y_Round.png) | +| F2 | ![](images/RetroPad/Retro_Select.png) | +| F1 | ![](images/RetroPad/Retro_Start.png) | +| Stick Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| Stick Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| Stick Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| Stick Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| Fire A | ![](images/RetroPad/Retro_A_Round.png) | +| F3 | ![](images/RetroPad/Retro_X_Round.png) | +| F4 | ![](images/RetroPad/Retro_L1.png) | +| F5 | ![](images/RetroPad/Retro_R1.png) | +| Graph | ![](images/RetroPad/Retro_L2.png) | +| Ctrl | ![](images/RetroPad/Retro_R2.png) | +| Enter | ![](images/RetroPad/Retro_L3.png) | +| Escape | ![](images/RetroPad/Retro_R3.png) | + +| User 1 Remap descriptors for 'Emulated Keyboard' device type | RetroPad Inputs | +|--------------------------------------------------------------|-------------------------------------------| +| Enter | ![](images/RetroPad/Retro_B_Round.png) | +| M | ![](images/RetroPad/Retro_Y_Round.png) | +| F4 | ![](images/RetroPad/Retro_Select.png) | +| F1 | ![](images/RetroPad/Retro_Start.png) | +| Arrow Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| Arrow Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| Arrow Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| Arrow Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| Space | ![](images/RetroPad/Retro_A_Round.png) | +| N | ![](images/RetroPad/Retro_X_Round.png) | +| F2 | ![](images/RetroPad/Retro_L1.png) | +| F3 | ![](images/RetroPad/Retro_R1.png) | +| Graph | ![](images/RetroPad/Retro_L2.png) | +| Ctrl | ![](images/RetroPad/Retro_R2.png) | +| F5 | ![](images/RetroPad/Retro_L3.png) | +| Escape | ![](images/RetroPad/Retro_R3.png) | + +#### Keyboard device type table + +| RetroKeyboard Inputs | Keyboard | +|-------------------------------|--------------------| +| Keyboard Backspace | Backspace | +| Keyboard Tab | Tab | +| Keyboard Return | Enter | +| Keyboard Pause | Stop | +| Keyboard Escape | Escape | +| Keyboard Space | Space | +| Keyboard ! | ! | +| Keyboard " | " | +| Keyboard # | # | +| Keyboard $ | $ | +| Keyboard & | & | +| Keyboard ' | ` | +| Keyboard ( | ( | +| Keyboard ) | ) | +| Keyboard * | # | +| Keyboard + | + | +| Keyboard , | , | +| Keyboard . | . | +| Keyboard / | / | +| Keyboard 0 | 0 | +| Keyboard 1 | 1 | +| Keyboard 2 | 2 | +| Keyboard 3 | 3 | +| Keyboard 4 | 4 | +| Keyboard 5 | 5 | +| Keyboard 6 | 6 | +| Keyboard 7 | 7 | +| Keyboard 8 | 8 | +| Keyboard 9 | 9 | +| Keyboard : | : | +| Keyboard ; | ; | +| Keyboard - | - | +| Keyboard = | = | +| Keyboard < | < | +| Keyboard > | > | +| Keyboard ? | ? | +| Keyboard @ | @ | +| Keyboard [ | [ | +| Keyboard \ | \ | +| Keyboard ] | ] | +| Keyboard ^ | ^ | +| Keyboard _ | _ | +| Keyboard ` | - | +| Keyboard a | a | +| Keyboard b | b | +| Keyboard c | c | +| Keyboard d | d | +| Keyboard e | e | +| Keyboard f | f | +| Keyboard g | g | +| Keyboard h | h | +| Keyboard i | i | +| Keyboard j | j | +| Keyboard k | k | +| Keyboard l | l | +| Keyboard m | m | +| Keyboard n | n | +| Keyboard o | o | +| Keyboard p | p | +| Keyboard q | q | +| Keyboard r | r | +| Keyboard s | s | +| Keyboard t | t | +| Keyboard u | u | +| Keyboard v | v | +| Keyboard w | w | +| Keyboard x | x | +| Keyboard y | y | +| Keyboard z | z | +| Keyboard Delete | Delete | +| Keyboard Numpad 0 | Numpad 0 | +| Keyboard Numpad 1 | Numpad 1 | +| Keyboard Numpad 2 | Numpad 2 | +| Keyboard Numpad 3 | Numpad 3 | +| Keyboard Numpad 4 | Numpad 4 | +| Keyboard Numpad 5 | Numpad 5 | +| Keyboard Numpad 6 | Numpad 6 | +| Keyboard Numpad 7 | Numpad 7 | +| Keyboard Numpad 8 | Numpad 8 | +| Keyboard Numpad 9 | Numpad 9 | +| Keyboard Up | Up | +| Keyboard Down | Down | +| Keyboard Right | Right | +| Keyboard Left | Left | +| Keyboard Insert | Insert | +| Keyboard Home | Home | +| Keyboard End | Select | +| Keyboard Page Up | Country | +| Keyboard F1 | F1 | +| Keyboard F2 | F2 | +| Keyboard F3 | F3 | +| Keyboard F4 | F4 | +| Keyboard F5 | F5 | +| Keyboard Caps Lock | Caps Lock | +| Keyboard Scroll Lock | Shift | +| Keyboard Right Shift | Shift | +| Keyboard Right Control | Control | +| Keyboard Left Control | Control | +| Keyboard Left Alt | Graph | + +## Compatibility + +Awaiting description. + +## External Links + +- [Libretro fMSX Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/fmsx_libretro.info) +- [Libretro fMSX Github Repository](https://github.com/libretro/fmsx-libretro) +- [Report Libretro fMSX Core Issues Here](https://github.com/libretro/fmsx-libretro/issues) +- [Official fMSX Website](http://fms.komkon.org/fMSX/) +- [Official fMSX Downloads](https://fms.komkon.org/fMSX/#Downloads) \ No newline at end of file diff --git a/docs/library/freeintv.md b/docs/library/freeintv.md new file mode 100644 index 00000000..c812cbaf --- /dev/null +++ b/docs/library/freeintv.md @@ -0,0 +1,119 @@ +# Mattel - Intellivision (FreeIntv) + +## Background + +FreeIntv is a libretro emulation core for the Mattel Intellivision designed to be compatible with joypads from the SNES era forward even if they originally required a number pad. + +!!! attention + FreeIntv does not currently emulate Entertainment Computer System (ECS) and Intellivoice functionality. Contributions to the source are welcome! + +### Author/License + +The FreeIntv core has been authored by + +- David Richardson + +The FreeIntv core is licensed under + +- [GPLv3](https://github.com/libretro/FreeIntv/blob/master/LICENSE) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the FreeIntv core have the following file extensions: + +- .int +- .rom +- .bin + +## Databases + +RetroArch database(s) that are associated with the FreeIntv core: + +- [Mattel - Intellivision](https://github.com/libretro/libretro-database/blob/master/rdb/Mattel%20-%20Intellivision.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +| Filename | Description | md5sum | +|:----------:|:------------------------:|:--------------------------------:| +| exec.bin | Executive ROM - Required | 62e761035cb657903761800f4437b8af | | +| grom.bin | Graphics ROM - Required | 0cd5946c6473e42e8e4c2137785e427f | | + +## Features + +Frontend-level settings or features that the FreeIntv core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✕ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay (State based) | ✕ | +| Core Options | ✕ | +| RetroAchievements | ✕ | +| Cheats (Cheats menu) | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✕ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The FreeIntv core's directory name is 'FreeIntv' + +### Geometry and timing + +- The FreeIntv core's core provided FPS is 60 +- The FreeIntv core's core provided sample rate is 44100 Hz +- The FreeIntv core's core provided aspect ratio is 11/7 + +## Controller overlays + +Mattel Intellivision games were often meant to be played with game-specific cards overlaid on the numeric keypad. These overlays convey information which can be very useful in gameplay. Images of a limited selection of Intellivision titles are available at: [http://www.intellivisionlives.com/bluesky/games/instructions.shtml](http://www.intellivisionlives.com/bluesky/games/instructions.shtml) + +## Controls + +**Definitions:** + +* **Mini-Keypad** - Allows the user to view and select keys from a small Intellivision pad in the lower corner of the display. +* **Controller Swap** - Some Intellivision games expect the left controller to be player one, others expect the right controller. This isn't a problem if you have two controllers (and don't mind juggling them) but users with only one controller or using a portable setup would be effectively locked out of some games. Controller Swap swaps the two controller interfaces so that the player does not have to physically swap controllers. + +| RetroPad | FreeIntv Function | +| --- | --- | +| D-Pad| 8-way movement | +| Left Analog Stick | 16-way disc | +| A | Left Action Button | +| Y | Top Action Button | +| X | Use the Last Selected Intellivision Keypad Button. In Astrosmash, for example, you can leave "3" selected to enable instant access to hyperspace. | +| L/R | Activate the Mini-Keypad | +| Start | Pause Game | +| Select | Controller Swap | + +## Compatibility + +Awaiting description. + +## External Links + +- [Official FreeIntv Website](http://neocomputer.org/projects/freeintv/) +- [Libretro FreeIntv Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/freeintv_libretro.info) +- [Libretro FreeIntv Github Repository](https://github.com/libretro/FreeIntv) +- [Intellivision RetroPie Wiki page](https://github.com/RetroPie/RetroPie-Setup/wiki/Intellivision) +- [FreeIntv RetroPie Forums Topic](https://retropie.org.uk/forum/topic/15665/libretro-intellivision-emulator) +- [FreeIntv Libretro Forums Topic](https://forums.libretro.com/t/video-demonstration-of-the-new-freeintv-intellivision-core/14389) diff --git a/docs/library/fuse.md b/docs/library/fuse.md new file mode 100644 index 00000000..b755200e --- /dev/null +++ b/docs/library/fuse.md @@ -0,0 +1,350 @@ +# ZX Spectrum (Fuse) + +## Contribute to this documentation + +**In order to propose improvements to this document, [visit its corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/fuse.md). Changes are proposed using "Pull Requests."** + +**There is a To-Do list for libretro/docs [here](https://docs.libretro.com/docguide/todo/)** + +**You can submit suggestions or issues regarding documentation at the [libretro/docs issue tracker](https://github.com/libretro/docs/issues) or in our [forum thread](https://forums.libretro.com/t/wip-adding-pages-to-documentation-site/10078/).** + +## Background + +The Free Unix Spectrum Emulator (Fuse): an emulator of the 1980s home computer and various clones for Unix, Mac OS X and Windows. + +### Why use this core? + +Awaiting description. + +### How to get and install the Fuse core: + +- Start up RetroArch. Inside the main menu, go to 'Online Updater'. + +
![](images\Cores\all\updater.png)
+ +- Just to make sure we have the latest info files, select 'Update Core Info FIles'. Wait until this is done. Then, select 'Core Updater'. + +
![](images\Cores\all\info.png)
+ +- Browse through the list and select 'ZX Spectrum (Fuse)'. + +
![](images\Cores\updater\fuse.png)
+ +After this has finished downloading, the core should now be ready for use! + +#### How to start (after installation): + +- Go back to RetroArch's main menu screen. Select 'Load Content'. + +
![](images\Cores\all\load.png)
+ +- Browse to the folder that contains the content you want to run. + +- Select the content that you want to run. + +- If you are asked which core to select, choose 'ZX Spectrum (Fuse)'. + +The content should now start running! + +### Authors + +- Team Fuse + +## License + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +The Fuse core is licensed under + +- [GPLv3](https://github.com/libretro/fuse-libretro/blob/master/LICENSE) + +## Extensions + +Content that can be loaded by the Fuse core have the following file extensions: + +- .tzx +- .tap +- .z80 +- .rzx +- .scl +- .trd + +## Databases + +RetroArch database(s) that are associated with the Fuse core: + +- [Sinclair - ZX Spectrum +3](https://github.com/libretro/libretro-database/blob/master/rdb/Sinclair%20-%20ZX%20Spectrum%20%2B3.rdb) +- [Sinclair - ZX Spectrum](https://github.com/libretro/libretro-database/blob/master/rdb/Sinclair%20-%20ZX%20Spectrum.rdb) + +## Emulated Machines / BIOS + +Required or optional firmware files go in RetroArch's system directory. + +- Spectrum 48K +- Spectrum 48K (NTSC) +- Spectrum 128K +- Spectrum +2 +- Spectrum +2A +- Spectrum +3 +- Spectrum +3e +- Spectrum SE +- Timex TC2048 +- Timex TC2068 +- Timex TS2068 +- Spectrum 16K + +- Pentagon 128K + +| Filename | Description | md5sum | +|:---------------:|:----------------------------:|:--------------------------------:| +| fuse/128p-0.rom | Pentagon 128K ROM - Required | | +| fuse/128p-1.rom | Pentagon 128K ROM - Required | | +| fuse/trdos.rom | Pentagon 128K ROM - Required | | + +- Pentagon 512K + +| Filename | Description | md5sum | +|:---------------:|:----------------------------:|:--------------------------------:| +| fuse/128p-0.rom | Pentagon 512K ROM - Required | | +| fuse/128p-1.rom | Pentagon 512K ROM - Required | | +| fuse/gluck.rom | Pentagon 512K ROM - Required | | +| fuse/trdos.rom | Pentagon 512K ROM - Required | | + +- Pentagon 1024 + +| Filename | Description | md5sum | +|:---------------:|:----------------------------:|:--------------------------------:| +| fuse/128p-0.rom | Pentagon 1024 ROM - Required | | +| fuse/128p-1.rom | Pentagon 1024 ROM - Required | | +| fuse/gluck.rom | Pentagon 1024 ROM - Required | | +| fuse/trdos.rom | Pentagon 1024 ROM - Required | | + +- Scorpion 256K + +| Filename | Description | md5sum | +|:---------------:|:----------------------------:|:--------------------------------:| +| fuse/256s-0.rom | Scorpion 256K ROM - Required | | +| fuse/256s-1.rom | Scorpion 256K ROM - Required | | +| fuse/256s-2.rom | Scorpion 256K ROM - Required | | +| fuse/256s-3.rom | Scorpion 256K ROM - Required | | + +!!! attention + The BIOS for the last four machines need to be in a directory named 'fuse' in RetroArch's System directory. + +## Features + +RetroArch-level settings or features that the Fuse core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | - | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | + + +### Directories + +The Fuse core's directory name is 'fuse' + +The Fuse core saves/loads to/from these directories. + +**RetroArch's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The Fuse core's internal FPS is (FPS) +- The Fuse core's internal sample rate is 44100 Hz +- The Fuse core's core provided aspect ratio is (Ratio) + +## Core options + +The Fuse core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Model (needs content load)** (**Spectrum 48K**/Spectrum 48K (NTSC)/Spectrum 128K/Spectrum +2/Spectrum +2A/Spectrum +3/Spectrum +3e/Spectrum SE/Timex TC2048/Timex TC2068/Timex TS2068/Spectrum 16K/Pentagon 128K/Pentagon 512K/Pentagon 1024/Scorpion 256K) + + Set the machine to emulate. Note that the this setting will have effect only when a new content is loaded. + +- **Hide Video Border** (**Off**/On) + + Hides the video border, making the game occupy the entire screen area. + +- **Tape Fast Load** (Off/**On**) + + Instantly loads tape files if enabled, or disabled it to see the moving horizontal lines in the video border while the game loads. + +- **Tape Load Sound** (Off/**On**) + + Outputs the tape sound if fast load is disabled. + +- **Speaker Type** (**tv speaker**/beeper/unfiltered) + + Applies an audio filter. + +- **AV Stereo Separation** (**none**/acb/abc) + + The AY sound chip stereo separation. + +- **Transparent Keyboard Overlay** (Off/**On**) + + If the keyboard overlay is transparent or opaque. + +- **Time to Release Key in ms** (**500**/1000/100/300) + + How much time to keep a key pressed before releasing it (used when a key is pressed using the keyboard overlay). + +## Controllers + +### Controllers usage + +There are seven types of joysticks emulated: + +1. Cursor +2. Kempston +3. Sinclair 1 +4. Sinclair 2 +5. Timex 1 +6. Timex 2 +7. Fuller Joystick + +Users can configure their joystick types in the input configuration on the front end. However, fuse-libretro allows for two joysticks at maximum so only users one and two can actually use theirs in the emulation. + +Users 1 and 2 can choose any of the joysticks as their device types, user 3 can only choose the Sinclair Keyboard. + +Buttons A, X and Y are mapped to the joystick's fire button, and button B is mapped to the UP directional button. Buttons L1 and R1 are mapped to RETURN and SPACE, respectively. The SELECT button brings up the embedded, on-screen keyboard which is useful if you only have controllers attached to your box. + +There are some conflicts in the way the input devices interact because of the use of the physical keyboard keys as joystick buttons. For a good gaming experience, set the user device types as follows: + +- For joystick games: Set user 1 to a joystick type. Optionally, set user 2 to another joystick type (local cooperative games). Set user 3 to none. This way, you can use L1 as RETURN, R1 as SPACE, and SELECT to bring the embedded keyboard. +- For keyboard games: Set users 1 and 2 to none, and user 3 to Sinclair Keyboard. You won't have any joystick and the embedded keyboard won't work, but the entire physical keyboard will be available for you to type in those text adventure commands. + +If you set a joystick along with the keyboard, the joystick will work just fine except for the bindings to RETURN and SPACE, and the keyboard won't register the keys assigned to the Cursor joystick, or to the L1 and R1 buttons for all other joystick types. + +### Device types + +The Fuse core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +#### User 1 - 2 device types + +- None - Input disabled. +- **RetroPad** - Joypad +- Cursor Joystick - Joypad +- Kempston Joystick - Joypad +- Sinclair 1 Joystick - Joypad +- Sinclair 2 Joystick - Joypad +- Timex 1 Joystick - Joypad +- Timex 2 Joystick - Joypad +- Fuller Joystick - Joypad + +#### User 3 device types + +- None - Input disabled. +- **RetroPad** - Joypad +- Sinclair Keyboard - Keyboard + +### Controller tables + +#### Joypad and analog device type table + +| User 1 - 7 Remap descriptors | RetroPad Inputs | +|-------------------------------|----------------------------------------------| +| Up | ![](images/RetroPad/Retro_B_Round.png) | +| Fire | ![](images/RetroPad/Retro_Y_Round.png) | +| Keyboard overlay | ![](images/RetroPad/Retro_Select.png) | +| Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| Fire | ![](images/RetroPad/Retro_A_Round.png) | +| Fire | ![](images/RetroPad/Retro_X_Round.png) | +| Enter | ![](images/RetroPad/Retro_L1.png) | +| Space | ![](images/RetroPad/Retro_R1.png) | + +#### Keyboard device type table + +| RetroKeyboard Inputs | Sinclair Keyboard | +|-------------------------------|--------------------| +| Keyboard Backspace | Backspace | +| Keyboard Return | Return | +| Keyboard Space | Space | +| Keyboard 0 | 0 | +| Keyboard 1 | 1 | +| Keyboard 2 | 2 | +| Keyboard 3 | 3 | +| Keyboard 4 | 4 | +| Keyboard 5 | 5 | +| Keyboard 6 | 6 | +| Keyboard 7 | 7 | +| Keyboard 8 | 8 | +| Keyboard 9 | 9 | +| Keyboard a | a | +| Keyboard b | b | +| Keyboard c | c | +| Keyboard d | d | +| Keyboard e | e | +| Keyboard f | f | +| Keyboard g | g | +| Keyboard h | h | +| Keyboard i | i | +| Keyboard j | j | +| Keyboard k | k | +| Keyboard l | l | +| Keyboard m | m | +| Keyboard n | n | +| Keyboard o | o | +| Keyboard p | p | +| Keyboard q | q | +| Keyboard r | r | +| Keyboard s | s | +| Keyboard t | t | +| Keyboard u | u | +| Keyboard v | v | +| Keyboard w | w | +| Keyboard x | x | +| Keyboard y | y | +| Keyboard z | z | +| Keyboard Right Shift | Right Shift | +| Keyboard Left Shift | Left Shift | +| Keyboard Right Control | Right Control | +| Keyboard Left Control | Left Control | +| Keyboard Right Alt | Right Alt | +| Keyboard Left Alt | Left Alt | +| Keyboard Right Meta | Right Meta | +| Keyboard Left Meta | Left Meta | +| Keyboard Right Super | Right Super | +| Keyboard Left Super | Left Super | + +## Compatibility + +Awaiting description. + +## External Links + +- [Libretro Fuse Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/fuse_libretro.info) +- [Libretro Fuse Github Repository](https://github.com/libretro/fuse-libretro) +- [Report Libretro Fuse Core Issues Here](https://github.com/libretro/fuse-libretro/issues) +- [Official Fuse Website](http://fuse-emulator.sourceforge.net/) +- [Official Fuse SourceForge Repository](https://sourceforge.net/projects/fuse-emulator/) \ No newline at end of file diff --git a/docs/library/gambatte.md b/docs/library/gambatte.md new file mode 100644 index 00000000..e490ff69 --- /dev/null +++ b/docs/library/gambatte.md @@ -0,0 +1,285 @@ +# Nintendo - Game Boy / Color (Gambatte) + +## Background + +Gambatte is an accuracy-focused, open-source, cross-platform Game Boy Color emulator written in C++. It is based on hundreds of corner case hardware tests, as well as previous documentation and reverse engineering efforts. + +### Author/License + +The Gambatte core has been authored by + +- Sinamas + +The Gambatte core is licensed under + +- [GPLv2](https://github.com/libretro/gambatte-libretro/blob/master/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Gambatte core have the following file extensions: + +- .gb +- .gbc +- .dmg + +## Databases + +RetroArch database(s) that are associated with the Gambatte core: + +- [Nintendo - Game Boy](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Game%20Boy.rdb) +- [Nintendo - Game Boy Color](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Game%20Boy%20Color.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +!!! attention + The ['Use official bootloader' core option](https://docs.libretro.com/library/gambatte#core-options) must be set to On in order for these BIOS files to be used. + +| Filename | Description | md5sum | +|:------------:|:------------------------------:|:--------------------------------:| +| gb_bios.bin | Game Boy BIOS - Optional | 32fbbd84168d3482956eb3c5051637f5 | +| gbc_bios.bin | Game Boy Color BIOS - Optional | dbfce9db9deaa2567f6a84fde55f9680 | + +## Features + +Frontend-level settings or features that the Gambatte core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ (not link-cable emulation) | +| Core Options | ✔ | +| RetroAchievements | ✔ | +| RetroArch Cheats | ✔ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✔ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Gambatte core's internal core name is 'Gambatte' + +The Gambatte core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +**Frontend's System directory** + +- palettes/Default.pal (Global custom palette) +- palettes/'content-name'.pal (Per-game custom palette) + +### Geometry and timing + +- The Gambatte core's core provided FPS is (FPS) +- The Gambatte core's core provided sample rate is (Rate) +- The Gambatte core's core provided aspect ratio is (Ratio) + +## Custom palettes for Game Boy games + +The 'GB Colorization' core option must be set to custom. + +Create a folder called "palettes" in RetroArch's system directory. Then, you can place custom palette files (.pal) inside the "palettes" folder + +You can define different palettes for specific games by creating a .pal file in the "palettes" folder with 'INTERNALROMNAME.pal' or "rom-name.pal". If no specific palette is found for a ROM then the default palette is used. + +You can also define a palette to be used for all Game Boy games by creating a .pal file in the "palettes" folder named "Default.pal" + +??? note "*Custom palettes can be created from the GUI in standalone Gambatte*" + ![](images\Cores\gambatte\tool.png) + +## Core options + +The Gambatte core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **GB Colorization** [gambatte_gb_colorization] (**disabled**|auto|internal|custom) + + Colorizes Game Boy games. + +??? note "*GB Colorization - Off*" + ![](images\Cores\gambatte\color_off.png) + +??? note "*GB Colorization - auto*" + ![](images\Cores\gambatte\color_auto.png) + +- **Internal Palette** [gambatte_gb_internal_palette] (**GBC - Blue**|GBC - Brown|GBC - Dark Blue|GBC - Dark Brown|GBC - Dark Green|GBC - Grayscale|GBC - Green|GBC - Inverted|GBC - Orange|GBC - Pastel Mix|GBC - Red|GBC - Yellow|Special 1|Special 2|Special 3) + + Select which internal color palette for GB Colorization is going to be used. GB Colorization must be set to internal. + +??? note "*Internal Palette - GBC - Blue*" + ![](images\Cores\gambatte\blue.png) + +??? note "*Internal Palette - GBC - Brown*" + ![](images\Cores\gambatte\brown.png) + +??? note "*Internal Palette - GBC - Dark Blue*" + ![](images\Cores\gambatte\dark_blue.png) + +??? note "*Internal Palette - GBC - Dark Brown*" + ![](images\Cores\gambatte\dark_brown.png) + +??? note "*Internal Palette - GBC - Dark Green*" + ![](images\Cores\gambatte\dark_green.png) + +??? note "*Internal Palette - GBC - Grayscale*" + ![](images\Cores\gambatte\grayscale.png) + +??? note "*Internal Palette - GBC - Green*" + ![](images\Cores\gambatte\green.png) + +??? note "*Internal Palette - GBC - Inverted*" + ![](images\Cores\gambatte\inverted.png) + +??? note "*Internal Palette - GBC - Orange*" + ![](images\Cores\gambatte\orange.png) + +??? note "*Internal Palette - GBC - Pastel Mix*" + ![](images\Cores\gambatte\pastel.png) + +??? note "*Internal Palette - GBC - Red*" + ![](images\Cores\gambatte\red.png) + +??? note "*Internal Palette - GBC - Yellow*" + ![](images\Cores\gambatte\yellow.png) + +??? note "*Internal Palette - GBC - Special 1*" + ![](images\Cores\gambatte\special1.png) + +??? note "*Internal Palette - GBC - Special 2*" + ![](images\Cores\gambatte\special2.png) + +??? note "*Internal Palette - GBC - Special 3*" + ![](images\Cores\gambatte\special3.png) + +- **Color correction** [gambatte_gbc_color_correction] (**enabled**|disabled) + + Darkens Game Boy Color games to match the original hardware output. + +??? note "*Color Correction - On*" + ![](images\Cores\gambatte\correct_on.png) + +??? note "*Color Correction - Off*" + ![](images\Cores\gambatte\correct_off.png) + +- **Emulated hardware (restart)** [gambatte_gb_hwmode] (**Auto**|GB|GBC|GBA) + + Choose which hardware is emulated Game Boy, Game Boy Color, or Game Boy Advance. + +- **Use official bootloader (restart)** [gambatte_gb_bootloader] (**enabled**|disabled) + + Enables support for using official Game Boy and Game Boy Color bootloaders with startup logos. Check the [BIOS section](https://docs.libretro.com/library/gambatte#bios) to see what files are needed. + +??? note "*Game Boy bootloader*" + ![](images\Cores\gambatte\gb_bios.png) + +??? note "*Game Boy Color bootloader*" + ![](images\Cores\gambatte\gbc_bios.png) + +- **GameBoy Link Mode** [gambatte_gb_link_mode] (**Not Connected**|Network Server|Network Client) + + Awaiting description. + +- **Network Link Port** [gambatte_gb_link_network_port] (56400 to 56420 in increments of 1. **56400 is default**.) + + Awaiting description. + +- **Network link server address part 1 (client only)** [gambatte_gb_link_network_server_ip_octet1] (0 to 255 in increments of 1. **0 is default**.) + + Awaiting description. + +- **Network link server address part 2 (client only)** [gambatte_gb_link_network_server_ip_octet2] (0 to 255 in increments of 1. **0 is default**.) + + Awaiting description. + +- **Network link server address part 3 (client only)** [gambatte_gb_link_network_server_ip_octet3] (0 to 255 in increments of 1. **0 is default**.) + + Awaiting description. + +- **Network link server address part 4 (client only)** [gambatte_gb_link_network_server_ip_octet4] (0 to 255 in increments of 1. **0 is default**.) + + Awaiting description. + +## Controllers + +The Gambatte core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 2 device types + +- None - Doesn't disable input. There's no reason to switch to this. +- **RetroPad** - Joypad - Stay on this. +- RetroPad w/Analog - Joypad - Same as RetroPad. There's no reason to switch to this. + +### Controller tables + +#### Joypad + +![](images/Controllers/gb.png) + +| User 1 Remap descriptors | RetroPad Inputs | +|--------------------------|-------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | + +## Compatibility + +| Game | Issue | +|---------------------------------------------------|----------------------------------------------------| +| Command Master | Crashes on start. Unemulated MBC7 mapper. | +| Game Boy Camera | Crashes on start. Unemulated Pocket Camera mapper. | +| Game de Hakken!! Tamagotchi - Osutchi to Mesutchi | Crashes on start. Unemulated TAMA5 mapper. | +| Kirby Tilt 'n' Tumble | Crashes on start. Unemulated MBC7 mapper. | +| Net de Get: Mini-Game @ 100 | Crashes on start. Unemulated MBC6 mapper. | +| Pocket Family GB2 | Crashes on start. Unemulated HuC3 mapper. | +| Robopon: Sun/Star/Moon Version | Crashes on start. Unemulated HuC3 mapper. | + +## External Links + +- [Official Gambatte Github Repository](https://github.com/sinamas/gambatte) +- [Old Standalone Gambatte builds](https://sourceforge.net/projects/gambatte/files/gambatte/) +- [Libretro Gambatte Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/gambatte_libretro.info) +- [Libretro Gambatte Github Repository](https://github.com/libretro/gambatte-libretro) +- [Report Libretro Gambatte Core Issues Here](https://github.com/libretro/gambatte-libretro/issues) + +### See also + +#### Nintendo - Game Boy (+ Color) + +- [Nintendo - Game Boy / Color (Emux GB)](https://docs.libretro.com/library/emux_gb/) +- [Nintendo - Game Boy / Color (Gearboy)](https://docs.libretro.com/library/gearboy/) +- [Nintendo - Game Boy / Color (SameBoy)](https://docs.libretro.com/library/sameboy/) +- [Nintendo - Game Boy / Color (TGB Dual)](https://docs.libretro.com/library/tgb_dual/) +- [Nintendo - Game Boy Advance (mGBA)](https://docs.libretro.com/library/mgba/) +- [Nintendo - SNES / Famicom (higan Accuracy)](https://docs.libretro.com/library/higan_accuracy/) +- [Nintendo - SNES / Famicom (nSide Balanced)](https://docs.libretro.com/library/nside_balanced/) \ No newline at end of file diff --git a/docs/library/game_music_emu.md b/docs/library/game_music_emu.md new file mode 100644 index 00000000..aac6160f --- /dev/null +++ b/docs/library/game_music_emu.md @@ -0,0 +1,102 @@ +# Game Music Emu + +## Background + +Multi-purpose video game console music player. + +### Author/License + +The Game Music Emu core has been authored by + +- Blargg + +The Game Music Emu core is licensed under + +- [GPLv3](https://github.com/libretro/libretro-gme/blob/master/LICENSE) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Game Music Emu core have the following file extensions: + +- .ay +- .gbs +- .gym +- .hes +- .kss +- .nsf +- .nsfe +- .sap +- .spc +- .vgm +- .vgz + +## Features + +Frontend-level settings or features that the Game Music Emu core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✕ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✕ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Game Music Emu core's internal core name is 'Game Music Emulator' + +### Geometry and timing + +- The Game Music Emu core's core provided FPS is 60 +- The Game Music Emu core's core provided sample rate is 44100 Hz +- The Game Music Emu core's core provided aspect ratio is 4/3 + +## Controllers + +The Game Music Emu core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad - Stay on this. +- RetroPad w/Analog - Joypad - There's no reason to switch to this. + +### Controller tables + +#### Joypad + +| RetroPad Inputs | Game Music Emu Inputs | +|----------------------------------------------|---------------------------| +| ![](images/RetroPad/Retro_Start.png) | Pause | +| ![](images/RetroPad/Retro_L1.png) | Previous Track | +| ![](images/RetroPad/Retro_R1.png) | Next Track | + +## External Links + +- [Official Game Music Emu Website](http://blargg.8bitalley.com/libs/audio.html) +- [Official Game Music Emu Github Repository](https://bitbucket.org/mpyne/game-music-emu/wiki/Home) +- [Libretro Game Music Emu Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/gme_libretro.info) +- [Libretro Game Music Emu Github Repository](https://github.com/libretro/libretro-gme) +- [Report Libretro Game Music Emu Core Issues Here](https://github.com/libretro/libretro-gme/issues) \ No newline at end of file diff --git a/docs/library/gearboy.md b/docs/library/gearboy.md new file mode 100644 index 00000000..cb6c7436 --- /dev/null +++ b/docs/library/gearboy.md @@ -0,0 +1,143 @@ +# Nintendo - Game Boy / Color (Gearboy) + +## Background + +Gearboy is a Nintendo Game Boy / GameBoy Color emulator written in C++. + +- Highly accurate CPU emulation, passes cpu_instrs.gb from blargg's tests. +- Accurate instruction and memory timing, passes instr_timing.gb and mem_timing.gb from blargg's tests. +- Memory Bank Controllers (MBC1, MBC2, MBC3 with RTC, MBC5), ROM + RAM and multicart cartridges. +- Accurate LCD controller emulation. Background, window and sprites, with correct timings and priorities including mid-scanline timing. +- Mix frames: Mimics the LCD ghosting effect seen in the original Game Boy. +- Sound emulation using SDL Audio and Gb_Snd_Emu library. +- Game Boy Color support. +- Integrated disassembler. It can dump the full disassembled memory to a text file or access it in real time. +- Saves battery powered RAM cartridges to file. +- Compressed rom support (ZIP deflate). +- Multi platform. Runs on Windows, Linux, Mac OS X, Raspberry Pi and iOS. + +### Author/License + +The Gearboy core has been authored by + +- Ignacio Sanchez + +The Gearboy core is licensed under + +- [GPLv3](https://github.com/libretro/Gearboy/blob/master/LICENSE) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Gearboy core have the following file extensions: + +- .gb +- .dmg +- .gbc +- .cgb +- .sgb + +## Databases + +RetroArch database(s) that are associated with the Gearboy core: + +- [Nintendo - Game Boy](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Game%20Boy.rdb) +- [Nintendo - Game Boy Color](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Game%20Boy%20Color.rdb) + +## Features + +Frontend-level settings or features that the Gearboy core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✕ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) |✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Gearboy core's internal core name is 'Gearboy' + +The Gearboy core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery backup save) + +### Geometry and timing + +- The Gearboy core's core provided FPS is 59.7275005696 +- The Gearboy core's core provided sample rate is 44100 Hz +- The Gearboy core's core provided aspect ratio is 10/9 + +## Controllers + +The Gearboy core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. There's no reason to switch to this. +- **RetroPad** - Joypad - Stay on this. +- Nintendo Gameboy - Same as RetroPad. There's no reason to switch to this. + +### Controller tables + +#### Joypad + +![](images/Controllers/gb.png) + +| User 1 Remap descriptors | RetroPad Inputs | +|--------------------------|-------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | + +## Compatibility + +[Gearboy Accuracy Tests](https://github.com/drhelius/Gearboy#accuracy-tests) + +## External Links + +- [Official Gearboy Github Repository](https://github.com/drhelius/Gearboy) +- [Libretro Gearboy Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/gearboy_libretro.info) +- [Libretro Gearboy Github Repository](https://github.com/libretro/Gearboy) +- [Report Libretro Gearboy Core Issues Here](https://github.com/drhelius/Gearboy/issues) + +### See also + +#### Nintendo - Game Boy (+ Color) + +- [Nintendo - Game Boy / Color (Emux GB)](https://docs.libretro.com/library/emux_gb/) +- [Nintendo - Game Boy / Color (Gambatte)](https://docs.libretro.com/library/gambatte/) +- [Nintendo - Game Boy / Color (SameBoy)](https://docs.libretro.com/library/sameboy/) +- [Nintendo - Game Boy / Color (TGB Dual)](https://docs.libretro.com/library/tgb_dual/) +- [Nintendo - Game Boy Advance (mGBA)](https://docs.libretro.com/library/mgba/) +- [Nintendo - SNES / Famicom (higan Accuracy)](https://docs.libretro.com/library/higan_accuracy/) +- [Nintendo - SNES / Famicom (nSide Balanced)](https://docs.libretro.com/library/nside_balanced/) \ No newline at end of file diff --git a/docs/library/genesis_plus_gx.md b/docs/library/genesis_plus_gx.md new file mode 100644 index 00000000..7d0878bd --- /dev/null +++ b/docs/library/genesis_plus_gx.md @@ -0,0 +1,431 @@ +# Sega - MS/GG/MD/CD (Genesis Plus GX) + +## Background + +Genesis Plus GX is an open-source Sega 8/16 bit emulator focused on accuracy and portability. The source code, originally based on Genesis Plus 1.3 by Charles MacDonald, has been heavily modified & enhanced, with respect to initial goals and design, in order to improve the accuracy of emulation, implementing new features and adding support for extra peripherals, cartridge & systems hardware. + +### Author/License + +The Genesis Plus GX core has been authored by + +- Charles McDonald +- Eke-Eke + +The Genesis Plus GX core is licensed under + +- [Non-commercial](https://github.com/libretro/Genesis-Plus-GX/blob/master/LICENSE.txt) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Genesis Plus GX core have the following file extensions: + +- .mdx +- .md +- .smd +- .gen +- .bin +- .cue +- .iso +- .sms +- .gg +- .sg +- .68k +- .chd + +## Databases + +RetroArch database(s) that are associated with the Genesis Plus GX core: + +- [Sega - Game Gear](https://github.com/libretro/libretro-database/blob/master/rdb/Sega%20-%20Game%20Gear.rdb) +- [Sega - Master System - Mark III](https://github.com/libretro/libretro-database/blob/master/rdb/Sega%20-%20Master%20System%20-%20Mark%20III.rdb) +- [Sega - Mega-CD - Sega CD](https://github.com/libretro/libretro-database/blob/master/rdb/Sega%20-%20Mega-CD%20-%20Sega%20CD.rdb) +- [Sega - Mega Drive - Genesis](https://github.com/libretro/libretro-database/blob/master/rdb/Sega%20-%20Mega%20Drive%20-%20Genesis.rdb) +- [Sega - PICO](https://github.com/libretro/libretro-database/blob/master/rdb/Sega%20-%20PICO.rdb) +- [Sega - SG-1000](https://github.com/libretro/libretro-database/blob/master/rdb/Sega%20-%20SG-1000.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +| Filename | Description | md5sum | +|:-------------:|:-----------------------------------------------:|:--------------------------------:| +| bios_MD.bin | MegaDrive TMSS startup ROM (bootrom) - Optional | 45e298905a08f9cfb38fd504cd6dbc84 | +| bios_CD_E.bin | MegaCD EU BIOS - Required for MegaCD EU games | e66fa1dc5820d254611fdcdba0662372 | +| bios_CD_U.bin | SegaCD US BIOS - Required for SegaCD US games | 854b9150240a198070150e4566ae1290 | +| bios_CD_J.bin | MegaCD JP BIOS - Required for MegaCD JP games | 278a9397d192149e84e820ac621a8edd | +| bios_E.sms | MasterSystem EU BIOS (bootrom) - Optional | - | +| bios_U.sms | MasterSystem US BIOS (bootrom) - Optional | - | +| bios_J.sms | MasterSystem JP BIOS (bootrom) - Optional | - | +| bios.gg | GameGear BIOS (bootrom) - Optional | - | +| sk.bin | Sonic & Knuckles ROM (lock-on) - Optional | 4ea493ea4e9f6c9ebfccbdb15110367e | +| sk2chip.bin | Sonic & Knuckles UPMEM ROM (lock-on) - Optional | b4e76e416b887f4e7413ba76fa735f16 | +| areplay.bin | Action Replay ROM (lock-on) - Optional | - | +| ggenie.bin | Game Genie ROM (lock-on) - Optional | - | + +!!! warning + BIOS files that are labelled (bootrom) and (lock-on) must have their corresponding [core option](https://docs.libretro.com/library/genesis_plus_gx/#core-options) ('System bootrom' core option or 'Cartridge lock-on' core option) configured correctly in order for them to be loaded. + +## Features + +Frontend-level settings or features that the Genesis Plus GX core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✔ | +| RetroArch Cheats | ✔ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | - | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Genesis Plus GX core's internal core name is 'Genesis Plus GX' + +The Genesis Plus GX core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (MS/GG/MD/Pico/SG-1000 Cartridge Backup save) +- cart.brm (Sega/Mega CD RAM CART) +- scd_E.brm (Mega CD EU Backup RAM - When the 'CD System BRAM' core option is set to per bios) +- scd_U.brm (Sega CD US Backup RAM - When the 'CD System BRAM' core option is set to per bios) +- scd_J.brm (Mega CD JP Backup RAM - When the 'CD System BRAM' core option is set to per bios) +- 'content-name'.brm (Sega CD/MegaCD Backup RAM - When the 'CD System BRAM' core option is set to per game) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The Genesis Plus GX core's core provided FPS is dependent on the loaded content. +- The Genesis Plus GX core's core provided sample rate is 44100 Hz. +- The Genesis Plus GX core's core provided aspect ratio is dependent on the 'Core-provided aspect ratio' [core option](https://docs.libretro.com/library/genesis_plus_gx/#core-options). + +### Loading Sega CD games + +When loading Sega CD games, Genesis Plus GX needs a cue-sheet that points to an image file. A cue sheet, or cue file, is a metadata file which describes how the tracks of a CD or DVD are laid out. + +If you have e.g. `foo.bin`, you should create a text file and save it as `foo.cue`. If the Sega CD game is single-track, the cue file contents should look like this: + +``` + FILE "foo.bin" BINARY + TRACK 01 MODE1/2352 + INDEX 01 00:00:00 +``` + +After that, you can load the `foo.cue` file in RetroArch with the Genesis Plus GX core. + +!!! warning "" + Certain Sega CD games are multi-track, so their .cue files might be more complicated. + +Here's a cue file example done with Lunar - Eternal Blue (USA) + +![](images\Cores\genesis_plus_gx\cue.png) + +!!! warning + For Sega-CD games, ISO + WAV, BIN + CUE and ISO + OGG formats are supported; ISO + MP3 is not supported. + +## Core options + +The Genesis Plus GX core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **System hardware** [genesis_plus_gx_system_hw] (**auto**/sg-1000/sg-1000 II/mark-III/master system/master system II/game gear/mega drive / genesis) + + Choose which system is going to be emulated. + +- **System region** [genesis_plus_gx_region_detect] (**auto**/ntsc-u/pal/ntsc-j) + + Choose which region the system is from. + +- **System lockups** [genesis_plus_gx_force_dtack] (**enabled**/disabled) + + Emulate system lockups that occur on real hardware. + +- **System bootrom** [genesis_plus_gx_bios] (**disabled**/enabled) + + Runs bootrom if available and then starts loaded content after the boot sequence. Look above at the [BIOS section](https://docs.libretro.com/library/genesis_plus_gx/#bios) for more information. + +- **CD System BRAM** [genesis_plus_gx_bram] (**per bios**/per game) + + The Sega CD's internal memory cannot hold a lot of saves. Setting this core option to per game allows each game to have its own one brm file, thus negating any lack of available space issues. + +- **68k address error** [genesis_plus_gx_addr_error] (**enabled**/disabled) + + Emulate the [68k](http://segaretro.org/M68000) address error that occurs on real hardware. Set this to disabled when playing rom hacks since most emulators used to develop rom hacks don't emulate the error. + +- **Cartridge lock-on** [genesis_plus_gx_lock_on] (**disabled**/game genie/action replay (pro)/sonic & knuckles) + + Select lock-on cartridge. Look above at the [BIOS section](https://docs.libretro.com/library/genesis_plus_gx/#bios) for more information. + +- **Master System FM (YM2413)** [genesis_plus_gx_ym2413] (**auto**/disabled/enabled) + + Enable the Master System FM chip. (Enhanced sound output support for [SMS compatible games](http://segaretro.org/FM_Sound_Unit_). + +- **Mega Drive / Genesis FM** [genesis_plus_gx_ym2612] (**mame (ym2612)**/mame (asic ym3438)/mame (enhanced ym3438)/nuked (ym2612)/nuked (asic ym3438)/nuked (discrete ym3438)) + + Awaiting description. + +- **Sound output** [genesis_plus_gx_sound_output] (**stereo**/mono) + + Self-explanatory. + +- **Audio filter** [genesis_plus_gx_audio_filter] (**disabled**/low-pass) + + Awaiting description. + +- **Low-pass filter %** [genesis_plus_gx_lowpass_range] (5 to 95 in increments of 5. **60 is default*) + + Awaiting description. + +- **Blargg NTSC filter** [genesis_plus_gx_blargg_ntsc_filter] (**Off**/monochrome/composite/svidio/rgb) + + Self-explanatory. + +??? note "*Blargg NTSC filter - Off*" + ![](images\Cores\genesis_plus_gx\blargg_off.png) + +??? note "*Blargg NTSC filter - monochrome*" + ![](images\Cores\genesis_plus_gx\blargg_monochrome.png) + +??? note "*Blargg NTSC filter - composite*" + ![](images\Cores\genesis_plus_gx\blargg_composite.png) + +??? note "*Blargg NTSC filter - svideo*" + ![](images\Cores\genesis_plus_gx\blargg_svideo.png) + +??? note "*Blargg NTSC filter - rgb*" + ![](images\Cores\genesis_plus_gx\blargg_rgb.png) + +- **LCD Ghosting filter** [genesis_plus_gx_lcd_filter] (**disabled**/enabled) + +??? note "*LCD Ghosting filter - On*" + ![](images\Cores\genesis_plus_gx\ghost.png) + +- **Borders** [genesis_plus_gx_overscan] (**disabled**/top/bottom/left/right/full) + + Self-explanatory. + +- **Game Gear extended screen** [genesis_plus_gx_gg_extra] (**disabled**/enabled) + + Self-explanatory. + +??? note "*Game Gear extended screen - Off*" + ![](images\Cores\genesis_plus_gx\extend_off.png) + +??? note "*Game Gear extended screen - On*" + ![](images\Cores\genesis_plus_gx\extend_on.png) + +- **Core-provided aspect ratio** [genesis_plus_gx_aspect_ratio] (**auto**/NTSC PAR/PAL PAR) + + Choose the Core-provided aspect ratio. RetroArch's aspect ratio must be set to Core provided in the Video settings for this to function properly. + +- **Interlaced mode 2 output** [genesis_plus_gx_render] (**single field**/double field) + + Change how interlaced mode 2 output is handled. Games like Sonic 2's multiplayer mode uses Interlaced Mode 2. + +??? note "*Interlaced mode 2 output - single field*" + ![](images\Cores\genesis_plus_gx\single.png) + +??? note "*Interlaced mode 2 output - double field*" + ![](images\Cores\genesis_plus_gx\double.png) + +- **Show Lightgun crosshair** [genesis_plus_gx_gun_cursor] (**disabled**/enabled) + + Shows lightgun crosshairs for the 'MD Menancer', 'MD Justifiers', and 'MS Light Phaser' Device Types. + +??? note "*Lightgun crosshair*" + ![](images\Cores\genesis_plus_gx\lightgun.png) + +- **Invert Mouse Y-axis** [genesis_plus_gx_invert_mouse] (**disabled**/enabled) + + Inverts the Mouse Y-axis for the 'MD Mouse' Device Type. + +- **CPU speed** [genesis_plus_gx_overclock] (**100%**/125%/150%/175%/200%) + + Overclock the emulated CPU. + +- **Remove per-line sprite limit** [genesis_plus_gx_no_sprite_limit] (**disabled**/enabled) + + Self-explanatory. + +## Controllers + +The Genesis Plus GX core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- Joypad Port Empty - None - No device is connected, input is disabled. +- **Joypad Auto** - Joypad - Depending on the loaded content, the core will automatically emulate a MD Joypad 3 Button controller, or a MD Joypad 6 Button controller or a MS Joypad 2 Button controller. +- [MD Joypad 3 Button](https://segaretro.org/Control_Pad_(Mega_Drive)) - Joypad +- [MD Joypad 6 Button](https://segaretro.org/Six_Button_Control_Pad_(Mega_Drive)) - Joypad +- [MS Joypad 2 Button](https://segaretro.org/Control_Pad_(Master_System)) - Joypad - Also used for Game Gear. +- [MD Joypad 3 Button + 4-WayPlay](https://segaretro.org/4_Way_Play) - Joypad - Enables multitap for 4-WayPlay games. +- [MD Joypad 6 Button + 4-WayPlay](https://segaretro.org/4_Way_Play) - Joypad - Enables multitap for 4-WayPlay games. +- [MD Joypad 3 Button + Teamplayer](https://segaretro.org/Team_Player) - Joypad - Enables multitap for Teamplayer games. +- [MD Joypad 6 Button + Teamplayer](https://segaretro.org/Team_Player) - Joypad - Enables multitap for Teamplayer games. +- MS Joypad 2 Button + Master Tap - Joypad - Enables Furrtek's Master Tap (unofficial mulitap device). +- [MS Light Phaser](https://segaretro.org/Light_Phaser) - Lightgun +- [MS Paddle Control](https://segaretro.org/Paddle_Control) - Analog +- [MS Sports Pad](https://segaretro.org/Sports_Pad) - Analog +- [MS Graphic Board](https://segaretro.org/Sega_Graphic_Board) - Pointer +- [MD XE-1AP](https://segaretro.org/XE-1_AP) - Analog +- [MD Mouse](https://segaretro.org/Sega_Mouse) - Mouse + +### User 2 device types + +- Joypad Port Empty - None - No device is connected, input is disabled. +- **Joypad Auto** - Joypad - Depending on the loaded content, the core will automatically emulate a MD Joypad 3 Button controller, or a MD Joypad 6 Button controller or a MS Joypad 2 Button controller. +- [MD Joypad 3 Button](https://segaretro.org/Control_Pad_(Mega_Drive)) - Joypad +- [MD Joypad 6 Button](https://segaretro.org/Six_Button_Control_Pad_(Mega_Drive)) - Joypad +- [MS Joypad 2 Button](https://segaretro.org/Control_Pad_(Master_System)) - Joypad - Also used for Game Gear. +- [MD Joypad 3 Button + 4-WayPlay](https://segaretro.org/4_Way_Play) - Joypad - Enables multitap for 4-WayPlay games. +- [MD Joypad 6 Button + 4-WayPlay](https://segaretro.org/4_Way_Play) - Joypad - Enables multitap for 4-WayPlay games. +- [MD Joypad 3 Button + Teamplayer](https://segaretro.org/Team_Player) - Joypad - Enables multitap for Teamplayer games. +- [MD Joypad 6 Button + Teamplayer](https://segaretro.org/Team_Player) - Joypad - Enables multitap for Teamplayer games. +- MS Joypad 2 Button + Master Tap - Joypad - Enables Furrtek's Master Tap (unofficial mulitap device). +- [MD Menancer](https://segaretro.org/Menacer) - Lightgun +- [MD Justifiers](https://segaretro.org/The_Justifier) - Lightgun +- [MS Light Phaser](https://segaretro.org/Light_Phaser) - Lightgun +- [MS Paddle Control](https://segaretro.org/Paddle_Control) - Analog +- [MS Sports Pad](https://segaretro.org/Sports_Pad) - Analog +- [MS Graphic Board](https://segaretro.org/Sega_Graphic_Board) - Pointer +- [MD XE-1AP](https://segaretro.org/XE-1_AP) - Analog +- [MD Mouse](https://segaretro.org/Sega_Mouse) - Mouse + +### Other controllers + +- PICO tablet - The Genesis Plus GX core can emulate PICO tablet inputs but this is done automatically, based off the game's crc, and cannot be manually selected as a device type. +- Terebi Oekaki tablet - The Genesis Plus GX core can emulate Terebi Oekaki table inputs but this is done automatically, based off the game's crc, and cannot be manually selected a device type. + +### Multitap support + +Activating multitap support in compatible games can be configured by the 4-WayPlay, Teamplayer, Master Tap device types for the corresponding users. + +### Controller tables + +#### Joypad + +| User 1- 8 Remap descriptors | RetroPad Inputs | MD Joypad 3 Button | MD Joypad 6 Button | MS Joypad 2 Button | MS Paddle Control | MS Sports Pad | MD XE-1AP | +|-----------------------------|----------------------------------------------|--------------------|--------------------|--------------------|-------------------|---------------|---------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | B | B | 1 | 1 | 1 | E2 | +| A | ![](images/RetroPad/Retro_Y_Round.png) | A | A | | | | E1 | +| Mode | ![](images/RetroPad/Retro_Select.png) | | Mode | | | | Select | +| Start | ![](images/RetroPad/Retro_Start.png) | Start | Start | Start | Start | Start | Start | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | D-Pad Up | D-Pad Up | D-Pad Up | | | | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | D-Pad Down | D-Pad Down | D-Pad Down | | | | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | D-Pad Left | D-Pad Left | D-Pad Left | | | | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | D-Pad Right | D-Pad Right | D-Pad Right | | | | +| C | ![](images/RetroPad/Retro_A_Round.png) | C | C | 2 | | 2 | | +| Y | ![](images/RetroPad/Retro_X_Round.png) | | Y | | | | | +| X | ![](images/RetroPad/Retro_L1.png) | | X | | | | C | +| Z | ![](images/RetroPad/Retro_R1.png) | | Z | | | | A | +| | ![](images/RetroPad/Retro_L2.png) | | | | | | D | +| | ![](images/RetroPad/Retro_R2.png) | | | | | | B | +| | ![](images/RetroPad/Retro_L3.png) | | | | | | | +| | ![](images/RetroPad/Retro_R3.png) | | | | | | | +| | ![](images/RetroPad/Retro_Left_Stick.png) X | | | | Paddle | Trackball X | Thumb-stick X | +| | ![](images/RetroPad/Retro_Left_Stick.png) Y | | | | | Trackball Y | Thumb-stick Y | +| | ![](images/RetroPad/Retro_Right_Stick.png) X | | | | | | Slider Y | +| | ![](images/RetroPad/Retro_Right_Stick.png) Y | | | | | | Slider X | + +#### Mouse + +| RetroMouse Inputs | MD Mouse | +|-----------------------------------------------------|-----------------| +| ![](images/RetroMouse/Retro_Mouse.png) Mouse Cursor | MD Mouse Cursor | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | MD Mouse Left | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | MD Mouse Right | +| ![](images/RetroMouse/Retro_Middle.png) Mouse 3 | MD Mouse Start | +| Wheel Down | MD Mouse Center | + +#### Pointer + +| RetroPointer Inputs | MS Graphic Board | +|----------------------------------------------------------------------------------------------------------------------|-------------------------| +| ![](images/RetroMouse/Retro_Mouse.png) or ![](images/Button_Pack/Gestures/Gesture_Finger_Front.png) Pointer Position | MS Graphic Board Stylus | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | MS Graphic Board Pen | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | MS Graphic Board Menu | +| ![](images/RetroMouse/Retro_Middle.png) Mouse 3 | MS Graphic Do | + +#### Lightgun + +| RetroLightgun Inputs | MD Menacer | MD Justifier | MS Light Phaser | +|----------------------------------------------------------------------------------------------------------------------|----------------------|------------------------|---------------------------| +| ![](images/RetroMouse/Retro_Mouse.png) or ![](images/Button_Pack/Gestures/Gesture_Finger_Front.png) Pointer Position | MD Menacer Crosshair | MD Justifier Crosshair | MS Light Phaser Crosshair | +| Gun Trigger | MD Menacer A | MD Justifier A | MS Light Phaser A | +| Gun Aux B | MD Menacer B | MD Justifier B | MS Light Phaser B | +| Gun Start | MD Menacer Start | MD Justifier Start | MS Light Phaser Start | +| Gun Start | MD Menacer C | MD Justifier C | MS Light Phaser C | + +#### Other + +| Inputs | PICO tablet | Terebi Oekaki tablet | +|----------------------------------------------------------------------------------------------------------------------|---------------------------|---------------------------| +| ![](images/RetroMouse/Retro_Mouse.png) or ![](images/Button_Pack/Gestures/Gesture_Finger_Front.png) Pointer Position | PICO tablet Stylus | Terebi Oeka tablet Stylus | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | PICO tablet Pen | Terebi Oeka tablet Pen | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | PICO tablet Red | | +| ![](images/RetroMouse/Retro_Middle.png) Mouse 3 | | Terebo Peka tablet Start | +| Wheel Up | PICO tablet Previous page | | +| Wheel Down | PICO tablet Next page | | +| ![](images/RetroPad/Retro_Dpad_Up.png) | PICO tablet Up (White) | | +| ![](images/RetroPad/Retro_Dpad_Down.png) | PICO tablet Down (Orange) | | +| ![](images/RetroPad/Retro_Dpad_Left.png) | PICO tablet Left (Purple) | | +| ![](images/RetroPad/Retro_Dpad_Right.png) | PICO tablet Right (Green) | | + +## Compatibility + +100% compatibility with Genesis / Mega Drive, Sega/Mega CD, Master System, Game Gear & SG-1000 released software (including all unlicensed or pirate known dumps), also emulating backwards compatibility modes when available. It also has Pico emulation. + +## External Links + +- [Official Genesis Plus GX Github Repository](https://github.com/ekeeke/Genesis-Plus-GX) +- [Libretro Genesis Plus GX Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/genesis_plus_gx_libretro.info) +- [Libretro Genesis Plus GX Github Repository](https://github.com/libretro/Genesis-Plus-GX) +- [Report Libretro Genesis Plus GX Core Issues Here](https://github.com/libretro/Genesis-Plus-GX/issues) + +### See also + +#### Sega - Master System - Mark III + +- [Sega - Master System (Emux SMS)](https://docs.libretro.com/library/emux_sms/) +- [Sega - MS/MD/CD/32X (PicoDrive)](https://docs.libretro.com/library/picodrive/) + +#### Sega - Mega Drive - Genesis + +- [Sega - MS/MD/CD/32X (PicoDrive)](https://docs.libretro.com/library/picodrive/) + +#### Sega - Mega-CD - Sega CD + +- [Sega - MS/MD/CD/32X (PicoDrive)](https://docs.libretro.com/library/picodrive/) + +#### Sega - PICO + +- [Sega - MS/MD/CD/32X (PicoDrive)](https://docs.libretro.com/library/picodrive/) + +#### Sega - SG-1000 + +- [MSX/SVI/ColecoVision/SG-1000 (blueMSX)](https://docs.libretro.com/library/bluemsx/) \ No newline at end of file diff --git a/docs/library/gpsp.md b/docs/library/gpsp.md new file mode 100644 index 00000000..a284059f --- /dev/null +++ b/docs/library/gpsp.md @@ -0,0 +1,173 @@ +# Nintendo - Game Boy Advance (gpSP) + +## Background + +gpSP is a Game Boy Advance emulator based on notaz' fork of gpSP with additional codebase improvements. + +### Author/License + +The gpSP core has been authored by + +- Exophase + +The gpSP core is licensed under + +- [GPLv2](https://github.com/libretro/gpsp/blob/master/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the gpSP core have the following file extensions: + +- .gba +- .bin + +## Databases + +RetroArch database(s) that are associated with the gpSP core: + +- [Nintendo - Game Boy Advance](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Game%20Boy%20Advance.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +| Filename | Description | md5sum | +|:-------------:|:---------------------------------:|:--------------------------------:| +| gba_bios.bin | Game Boy Advance Image - Required | a860e8c0b6d573d191e4ec7db1b1e4f6 | + +## Features + +Frontend-level settings or features that the gpSP core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ (not link-cable emulation) | +| Core Options | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The gpSP core's directory name is 'gpSP' + +The gpSP core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.sav (Cartridge backup save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The gpSP core's core provided FPS is 59.72750057 +- The gpSP core's core provided sample rate is 65536 Hz +- The gpSP core's core provided aspect ratio is 3/2 + +## Controllers + +The gpSP core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad +- RetroPad w/Analog - Joypad - There's no reason to switch to this. + +### Controller tables + +#### Joypad + +![](images/Controllers/gba.png) + +| User 1 Remap descriptors | RetroPad Inputs | +|--------------------------|-------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | + +## Compatibility + +| Game | Issue | +|---------------------------------------|--------------------------------| +| Activision Anthology |Freezes when entering a game. | +| Banjo-Kazooie - Grunty's Revenge |Black screen during developer logo. Resets when Banjo leaves his house.| +| Boktai Trilogy |The solar sensor is not emulated. | +| DemiKids - Light/Dark Version |Crashes when entering a battle. | +| Digimon Racing (Europe) |Freezes during the intro. | +| Dragon Ball Z - The Legacy of Goku |Graphics glitches. | +| Final Fantasy VI |Background/tiling order issues. | +| Game Boy Advance Video - Dragon Ball GT - Volume 1 |White screen. | +| Grand Theft Auto Advance |Crashes after first dialog. | +| Harry Potter - Quidditch World Cup |Crashes when going ingame. | +| Koro Koro Puzzle Happy Panechu! |The tilt sensor is not emulated. | +| Mario & Luigi - Superstar Saga |Crashes when entering a battle. | +| Phantasy Star Collection |Phantasy Star 1 flickers. | +| R-Type III - The Third Lightning |Softlocks at Irem startup screen.| +| Rock 'n Roll Racing |Corrupted graphics, not playable.| +| Rockman & Forte |Doesn't continue after GBA BIOS screen.| +| Sims 2, The - Pets |Graphics glitches. Heavy flickering, black objects. | +| Street Racing Syndicate |Freezes at startup screen, doesn't continue.| +| Super Monkey Ball Jr. |Softlocks at startup screen.| +| Super Street Fighter II Turbo/X Revival |Small graphics glitch. Selecting speed 'Turbo 1' and beyond on the character select screen makes the game speed window not fully visible. | +| Tales of Phantasia (USA version) |Softlocks during the introduction sequence (just before the small guy hits the tall guy in the right).| +| WarioWare: Twisted! |The tilt sensor is not emulated.| +| Wolfenstein 3D |Softlocks at id Software startup screen.| +| Yoshi’s Universal Gravitation |The tilt sensor is not emulated.| + +??? note "(1)" + ![](images/Cores/gpsp/goku.png) + +??? note "(2)" + ![](images/Cores/gpsp/sims.png) + +??? note "(3)" + ![](images/Cores/gpsp/fighter.png) + +## External Links + +- [Official gpSP Website](http://notaz.gp2x.de/other.php) +- [Official gpSP Github Repository](https://github.com/notaz/gpsp) +- [Libretro gpSP Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/gpsp_libretro.info) +- [Libretro gpSP Github Repository](https://github.com/libretro/gpsp) +- [Report Libretro gpSP Core Issues Here](https://github.com/libretro/gpsp/issues) + +### See also + +#### Nintendo - Game Boy Advance + +- [Nintendo - Game Boy Advance (Beetle GBA)](https://docs.libretro.com/library/beetle_gba/) +- [Nintendo - Game Boy Advance (Meteor)](https://docs.libretro.com/library/meteor/) +- [Nintendo - Game Boy Advance (mGBA)](https://docs.libretro.com/library/mgba/) +- [Nintendo - Game Boy Advance (TempGBA)](https://docs.libretro.com/library/tempgba/) +- [Nintendo - Game Boy Advance (VBA-M)](https://docs.libretro.com/library/vba_m/) +- [Nintendo - Game Boy Advance (VBA Next)](https://docs.libretro.com/library/vba_next/) \ No newline at end of file diff --git a/docs/library/gw.md b/docs/library/gw.md new file mode 100644 index 00000000..5a8944f2 --- /dev/null +++ b/docs/library/gw.md @@ -0,0 +1,140 @@ +# Handheld Electronic (GW) + +## Background + +A libretro core for Game & Watch simulators. + +It runs simulators converted from source code for the games available at [MADrigal](http://www.madrigaldesign.it/sim/). + +#### How to start the GW core: + +- As an example showcasing loading content with GW core, we will load the Donkey Kong (Coleco) game hosted on RetroArch's Content Downloader. + +You can do this by going to RetroArch's main menu screen and selecting 'Online Updater'. From there, select 'Content Downloader'. + +
![](images\Cores\all\download.png)
+ +- Select 'Handheld Electronic Game', then select 'Donkey Kong (Coleco)'. This should download and extract this file to RetroArch's Downloads directory. + +
![](images\Cores\gw\donkey.png)
+ +- Go back to RetroArch's main menu screen. Select 'Load Content', then 'Downloads'. + +
![](images\Cores\all\load.png)
+ +
![](images\Cores\all\downloads.png)
+ +- Select 'Donkey Kong (Coleco).mgw'. + +- If you are asked which core to select, choose 'Handheld Electronic (GW)'. + +The content should now start running! + +### Author/License + +The GW core has been authored by + +- Andre Leiradella + +The GW core is licensed under + +- [zlib](https://github.com/libretro/gw-libretro/blob/master/LICENSE) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the GW core have the following file extensions: + +- .mgw + +## Databases + +RetroArch database(s) that are associated with the GW core: + +- [Handheld Electronic Game](https://github.com/libretro/libretro-database/blob/master/rdb/Handheld%20Electronic%20Game.rdb) + +## Features + +Frontend-level settings or features that the GW core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✕ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The GW core's internal core name is 'Game & Watch' + +### Geometry and timing + +- The GW core's core provided FPS is 60 +- The GW core's core provided sample rate is 44100 Hz +- The GW core's core provided aspect ratio is dependent on the loaded content. + +## Controllers + +The GW core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 2 device types + +- None - Doesn't diable input. +- **Controller** - Joypad - Stay on this. + +### Controller tables + +#### Joypad + +!!! attention + What the inputs do are game specific. Without having anything selected, you can use the Start input to see a Controller overlay to see what the game specific inputs are. + +![](images/Cores/gw/overlay.png) + +| User 1 Remap descriptors | RetroPad Inputs | +|--------------------------|-------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Y | ![](images/RetroPad/Retro_Y_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| X | ![](images/RetroPad/Retro_X_Round.png) | +| L1 | ![](images/RetroPad/Retro_L1.png) | +| R1 | ![](images/RetroPad/Retro_R1.png) | +| L2 | ![](images/RetroPad/Retro_L2.png) | +| R2 | ![](images/RetroPad/Retro_R2.png) | +| L3 | ![](images/RetroPad/Retro_L3.png) | +| R3 | ![](images/RetroPad/Retro_R3.png) | + +## External Links + +- [MADrigal Website](http://www.madrigaldesign.it/sim/) +- [Libretro GW Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/gw_libretro.info) +- [Libretro GW Github Repository](https://github.com/libretro/gw-libretro) +- [Report Libretro GW Core Issues Here](https://github.com/libretro/gw-libretro/issues) \ No newline at end of file diff --git a/docs/library/handy.md b/docs/library/handy.md new file mode 100644 index 00000000..25e81547 --- /dev/null +++ b/docs/library/handy.md @@ -0,0 +1,147 @@ +# Atari - Lynx (Handy) + +## Background + +Handy is an Atari Lynx video game system emulator that can be used as a libretro core. Handy was the original name of the Lynx project that was started at Epyx and then finished by Atari. + +### Author/License + +The Handy core has been authored by + +- K. Wilkins + +The Handy core is licensed under + +- [zlib](https://sourceforge.net/projects/handy/) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Handy core have the following file extensions: + +- .lnx + +## Databases + +RetroArch database(s) that are associated with the Handy core: + +- [Atari - Lynx](https://github.com/libretro/libretro-database/blob/master/rdb/Atari%20-%20Lynx.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +| Filename | Description | md5sum | +|:-------------:|:--------------------------:|:--------------------------------:| +| lynxboot.img | Lynx Boot Image - Optional | fcd403db69f54290b51035d82f835e7b | + +## Features + +Frontend-level settings or features that the Handy core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✔ | +| Rewind | ✔ | +| Netplay (State based) | ✔ (not link-cable emulation) | +| Core Options | ✔ | +| RetroAchievements | ✔ | +| Cheats (Cheats menu) | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Handy core's directory name is 'Handy' + +The Handy core saves/loads to/from these directories. + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The Handy core's core provided FPS is 75 +- The Handy core's core provided sample rate is 22050 Hz +- The Handy core's core provided aspect ratio is dependent on the ['Display rotation' core option](https://docs.libretro.com/library/handy/#core-options/). When set to None, the aspect ratio will be 80/51. When set to 90 or 240, the aspect ratio will be 51/80. + +## Core options + +The Handy core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Display rotation** [handy_rot] (**None**/90/240) + + Self-explanatory. Need to restart content. + +## Controllers + +The Handy core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad +- RetroPad w/Analog - Joypad - There's no reason to switch to this. + +### Controller tables + +![](images/Controllers/handy_retropad.png) + +#### Joypad + +| User 1 Remap descriptors | RetroPad Inputs | +|--------------------------|----------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Pause | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| Option 1 | ![](images/RetroPad/Retro_L1.png) | +| Option 2 | ![](images/RetroPad/Retro_R1.png) | + +Supported combinations + +- Option 1 + Pause = Restarts game +- Option 2 + Pause = Flips Screen + +## Compatibility + +| Game | Issue | +|--------------|-------------------------------------------------------------------------| +| RoadBlasters | Graphics glitches. Minor flickering and glitches after starting a race. | + +## External Links + +- [Official Handy Website](http://handy.sourceforge.net/) +- [Official Handy Downloads](http://handy.sourceforge.net/download.htm) +- [Libretro Handy Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/handy_libretro.info) +- [Libretro Handy Github Repository](https://github.com/libretro/libretro-handy) +- [Report Libretro Handy Core Issues Here](https://github.com/libretro/libretro-handy/issues) + +### See also + +#### Atari - Lynx + +- [Atari - Lynx (Beetle Handy)](https://docs.libretro.com/library/beetle_handy/) \ No newline at end of file diff --git a/docs/library/hatari.md b/docs/library/hatari.md new file mode 100644 index 00000000..693882d9 --- /dev/null +++ b/docs/library/hatari.md @@ -0,0 +1,366 @@ +# Atari - ST/STE/TT/Falcon (Hatari) + +## Background + +Hatari is an Atari ST/STE/TT/Falcon system emulator that can be used as a libretro core. Hatari tries to emulate the hardware as close as possible so that it is able to run most of the old Atari games and demos. + +### Author/License + +The Hatari core has been authored by + +- Nicolas Pomarède + +The Hatari core is licensed under + +- [GPLv2](https://github.com/libretro/hatari/blob/master/readme.txt) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Hatari core have the following file extensions: + +- .st +- .msa +- .zip +- .stx +- .dim +- .ipf + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +!!! attention + The plain ST mode only works with TOS 1.00, 1.02, 1.04, or 2.06. STE mode requires any of the TOS versions 1.xx or 2.xx. TOS 3.0x is for TT, and TOS 4.0x is for Falcon. + +| Filename | Description | md5sum | +|:--------:|:-------------------------:|:--------------------------------:| +| tos.img | TOS Boot Image - Required | | + +## Features + +Frontend-level settings or features that the Hatari core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✕ | +| Screenshots | ✕ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Hatari core's internal core name is 'Hatari' + +The Hatari core saves/loads to/from these directories. + +**Frontend's System directory** + +- hatari.cfg (Hatari Config file) + +**User directory** + +- .hatari/ (Unused directory) + +### Geometry and timing + +- The Hatari core's core provided FPS is (FPS) +- The Hatari core's core provided sample rate is (Rate) +- The Hatari core's core provided aspect ratio is (Ratio) + +## Getting Started With Hatari + +!!! attention + This guide was written by [AnicetusCer on the LibRetro Forums](https://forums.libretro.com/t/getting-started-with-hatari-atari-st-ste-tt-falcon-emulation/13237). + +This was written using Lakka 2.1 rc6 x86_64 + +I was excited to find out Lakka has an Atari ST core, but then disappointed that it chucked out some errors when I tried to “just load an .st image”. There really was not much of a guide out there, even to get started, So I picked apart a handful of posts and docs and wrote my own mini guide below. + +### Quick Start + +- Get a copy of US TOS 1.02 , name and put it here; “/storage/system/tos.img” + +- Create a folder for your Atari ST games “/storage/roms/Atari - ST” + +- Create a hatari.cfg file in “/storage/system/hatari.cfg” with the following lines + + +``` +[Floppy] +bAutoInsertDiskB = TRUE +FastFloppy = TRUE +nWriteProtection = 0 +szDiskAFileName = /storage/roms/Atari\ -\ ST//game.st +szDiskBFileName = +szDiskImageDirectory = /storage/roms/Atari\ -\ ST/ +szDiskAZipPath = +szDiskBZipPath = + +[ROM] +szCartridgeImageFileName = +szTosImageFileName = /storage/system/tos.img +``` + +- Changing Floppy disks can be achieved by accessing the Hatari menu and selecting the “Floppy” menu (see long winded explanation below) + +- So far I have found non of my own .st files get scanned into a playlist so I’ll have to build my own, but in the mean time to load a disk, in the Lakka menu go to “Load Content” > select you first game disk > then select to run it with the Hatari Core, it will now try to load the game without complaining it has no TOS. (ST games can have varying Hardware requirements, see “Long Winded Start” on how to change settings, but you should be able to play a lot of games with just the defaults. + +- Note on controllers, A controller can be used as both a mouse and joystick, see “Long Winded Start” for more info. + +### Long Winded Start + +- The TOS image (TOS stands for THE Operating System, cool huh) Consider TOS like a bios image used for other consoles, it needs adding to the the “/storage/system” directory. The one the retroarch Hatari documents mention is the US TOS version 1.02 this was an Atari ST OS and is probably the most compatible version for playing games, if you want to learn more about the different TOS versions and which hardware systems they correspond to (ST, STE, TT & FALCON) here is a good link; [http://www.atarimania.com/atari-st-tt-falcon.html9](http://www.atarimania.com/atari-st-tt-falcon.html9). + +- I found Hatari would kick out this error when loading a game without the config set up “Can not load TOS file J’/usr/bin/TOS” This is because it was looking for the tos.img in the /usr/bin directory of Lakka, this is a read only location so we can not just drop the TOS image there, this is what the config file is needed for. This section tells Hatari to look for TOS in the location specified. + +``` +[ROM] +szCartridgeImageFileName = +szTosImageFileName = /storage/system/tos.img +``` + +- Hatari does not seem to have a default hatari.cfg in place when first loaded (Hence the error above), It expects it to be read from two places by default, /storage/.hatari/hatari.cfg and /storage/system/hatari.cfg, I prefer the latter as it is more visible, once you load your first game you can then access the Hatari menu and save over your first base config in either location with whatever settings you change. + +### Controller and Hatari Menu (And Changing Floppy Disk) + +- The Hatari menu can be accessed using the default controller button “Y” when the core is loaded (IE during a game" (i was using a PlayStation 4 controller and it was the square button for me) + +- Once in the menu I found a real mouse is not usable, however you can press “select” on your controller to switch to mouse mode (there is also another button to display the mouse speed “ms” and another to change it), now you can navigate the menu. + +- The menu can be used to change your system settings, here you can; + - Point to new TOS images + - Change the CPU & the amount of memory (needed sometimes to get some games working, dropping to 512k can help with some earlier games) + - Change floppy disks, “YOU WILL DO THIS A LOT WITH SOME GAMES” When the first game disk is loaded you can then access the Hatari menu, go to the “Floppy” Menu and then browse to a new disk to put into a drive (A or B). It is important that you choose not to reset the system when exiting the Hatari menu if still in a game (this is not selected by default , so you will be fine). + - Add a HDD not really needed (for die hard Atari fans). + - Change Keyboard and Joystick settings. + - Change the screen size (Warning Hatari is strict when it comes to aspect ratios it will always want to use the available resolutions of 1990s Monitors, with a little tweaking you can get it to fill most of your modern screen) + - Change the sound chip settings (don’t touch unless you know what you’re doing) + - There is also a save state option in the memory menu (Save state is not available directly from Lakka for Hatari, but it is inside the emulator :slight_smile: ) + +- Once you have finished setting up your settings you can now save them using the save config button , rather than use the default location of /storage/.hatari/hatari.cfg I would navigate back to your initial basic config file /storage/hatari.cfg as it is more accessible and visible, Note if you like, you can have as many config files as you want, as long as you remember where you put them :blush: , "The Immortal (one of the hardest games ever made), for instance, needs its memory setting back to 512k with a 68000 cpu in st mode 1.02 TOS, so why not create an “immortal.cfg” with the right system settings and floppy already in the drive, then you can load it and it is all just done. + +## Core options + +The Hatari core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Internal resolution** [Hatari_resolution] (**640x480**|832x576|832x588|800x600|960x720|1024x768|1024x1024) + + Set the internal resolution. + +## Controllers + +The Hatari core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. There's no reason to switch to this. +- **RetroPad** - Joypad - Stay on this. +- RetroPad w/Analog - Joypad - Same as RetroPad. There's no reason to switch to this. + +### Other controllers + +- Mouse - The Hatari core can emulate mouse inputs but this is done automatically and cannot be manually selected as a device type. + +### Controller tables + +#### Joypad + +| User 1 Remap descriptors | RetroPad Inputs | +|--------------------------|----------------------------------------------| +| Enter GUI | ![](images/RetroPad/Retro_Y_Round.png) | +| Mouse mode toggle | ![](images/RetroPad/Retro_Select.png) | +| Keyboard overlay | ![](images/RetroPad/Retro_Start.png) | +| Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| Fire | ![](images/RetroPad/Retro_A_Round.png) | +| Joystick number | ![](images/RetroPad/Retro_L1.png) | +| Mouse speed | ![](images/RetroPad/Retro_R1.png) | +| Toggle m/k status | ![](images/RetroPad/Retro_L2.png) | + +#### Keyboard + +| RetroKeyboard Inputs | Hatari core Inputs | +|------------------------------|---------------------------| +| Keyboard Backspace | - | +| Keyboard Tab | - | +| Keyboard Clear | - | +| Keyboard Return | - | +| Keyboard Pause | - | +| Keyboard Escape | - | +| Keyboard Space | - | +| Keyboard Exclaim ! | - | +| Keyboard Double Quote " | - | +| Keyboard Hash # | - | +| Keyboard Dollar $ | - | +| Keyboard Ampersand & | - | +| Keyboard Quote ' | - | +| Keyboard Left Parenthesis ( | - | +| Keyboard Right Parenthesis ) | - | +| Keyboard Asterisk * | - | +| Keyboard Plus + | - | +| Keyboard Comma , | - | +| Keyboard Minus - | - | +| Keyboard Period . | - | +| Keyboard Slash / | - | +| Keyboard 0 | - | +| Keyboard 1 | - | +| Keyboard 2 | - | +| Keyboard 3 | - | +| Keyboard 4 | - | +| Keyboard 5 | - | +| Keyboard 6 | - | +| Keyboard 7 | - | +| Keyboard 8 | - | +| Keyboard 9 | - | +| Keyboard Colon : | - | +| Keyboard Semicolon ; | - | +| Keyboard Less than < | - | +| Keyboard Equals = | - | +| Keyboard Greater than > | - | +| Keyboard Question ? | - | +| Keyboard At @ | - | +| Keyboard Left Bracket [ | - | +| Keyboard Backslash \ | - | +| Keyboard Right Bracket ] | - | +| Keyboard Caret ^ | - | +| Keyboard Underscore _ | - | +| Keyboard Backquote ` | - | +| Keyboard a | - | +| Keyboard b | - | +| Keyboard c | - | +| Keyboard d | - | +| Keyboard e | - | +| Keyboard f | - | +| Keyboard g | - | +| Keyboard h | - | +| Keyboard i | - | +| Keyboard j | - | +| Keyboard k | - | +| Keyboard l | - | +| Keyboard m | - | +| Keyboard n | - | +| Keyboard o | - | +| Keyboard p | - | +| Keyboard q | - | +| Keyboard r | - | +| Keyboard s | - | +| Keyboard t | - | +| Keyboard u | - | +| Keyboard v | - | +| Keyboard w | - | +| Keyboard x | - | +| Keyboard y | - | +| Keyboard z | - | +| Keyboard Delete | - | +| Keyboard Keypad 0 | - | +| Keyboard Keypad 1 | - | +| Keyboard Keypad 2 | - | +| Keyboard Keypad 3 | - | +| Keyboard Keypad 4 | - | +| Keyboard Keypad 5 | - | +| Keyboard Keypad 6 | - | +| Keyboard Keypad 7 | - | +| Keyboard Keypad 8 | - | +| Keyboard Keypad 9 | - | +| Keyboard Keypad Period . | - | +| Keyboard Keypad Divide / | - | +| Keyboard Keypad Multiply * | - | +| Keyboard Keypad Minus - | - | +| Keyboard Keypad Plus + | - | +| Keyboard Keypad Enter | - | +| Keyboard Keypad Equals = | - | +| Keyboard Up | - | +| Keyboard Down | - | +| Keyboard Right | - | +| Keyboard Left | - | +| Keyboard Insert | - | +| Keyboard Home | - | +| Keyboard End | - | +| Keyboard Page Up | - | +| Keyboard Page Down | - | +| Keyboard F1 | - | +| Keyboard F2 | - | +| Keyboard F3 | - | +| Keyboard F4 | - | +| Keyboard F5 | - | +| Keyboard F6 | - | +| Keyboard F7 | - | +| Keyboard F8 | - | +| Keyboard F9 | - | +| Keyboard F10 | - | +| Keyboard F11 | - | +| Keyboard F12 | - | +| Keyboard F13 | - | +| Keyboard F14 | - | +| Keyboard F15 | - | +| Keyboard Num Lock | - | +| Keyboard Caps Lock | - | +| Keyboard Scroll Lock | - | +| Keyboard Right Shift | - | +| Keyboard Left Shift | - | +| Keyboard Right Control | - | +| Keyboard Left Control | - | +| Keyboard Right Alt | - | +| Keyboard Left Alt | - | +| Keyboard Right Meta | - | +| Keyboard Left Meta | - | +| Keyboard Right Super | - | +| Keyboard Left Super | - | +| Keyboard Mode | - | +| Keyboard Compose | - | +| Keyboard Help | - | +| Keyboard Print | - | +| Keyboard Sys Req | - | +| Keyboard Break | - | +| Keyboard Menu | - | +| Keyboard Power | - | +| Keyboard € | - | +| Keyboard Undo | - | +| Keyboard Unmapped | - | +| Keyboard Unknown | - | + +#### Mouse + +| RetroMouse Inputs | Hatari core Inputs | +|-----------------------------------------------------|--------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Mouse Cursor | Mouse Cursor | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | Mouse Left Button | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | Mouse Right Button | + +## Compatibility + +- Hatari compatibility can be found [here](https://hg.tuxfamily.org/mercurialroot/hatari/hatari/raw-file/tip/doc/compatibility.html) + +## External Links + +- [Official Hatari Website](http://hatari.tuxfamily.org/) +- [Official Hatari Downloads](http://hatari.tuxfamily.org/download.html) +- [Libretro Hatari Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/hatari_libretro.info) +- [Libretro Hatari Github Repository](https://github.com/libretro/hatari) +- [Report Libretro Hatari Core Issues Here](https://github.com/libretro/hatari/issues) \ No newline at end of file diff --git a/docs/library/higan_accuracy.md b/docs/library/higan_accuracy.md new file mode 100644 index 00000000..ed5f4dea --- /dev/null +++ b/docs/library/higan_accuracy.md @@ -0,0 +1,341 @@ +# Nintendo - SNES / Famicom (higan Accuracy) + +## Background + +A port of higan v106's Super Famicom emulation core to libretro. This core is the most in sync with upstream higan. + +- Most accurate SNES emulation available. +- Simplified and easily accessible Super Game Boy functionality compared to the other bsnes cores. + +### Author/License + +The higan Accuracy core has been authored by + +- byuu + +The higan Accuracy core is licensed under + +- [GPLv3](https://gitlab.com/higan/higan/blob/master/LICENSE.txt) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the higan Accuracy core have the following file extensions: + +- .sfc +- .smc +- .gb +- .gbc +- .bml +- .rom + +## Databases + +RetroArch database(s) that are associated with the higan Accuracy core: + +- [Nintendo - Super Nintendo Entertainment System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System%20Hacks.rdb) +- [Nintendo - Super Nintendo Entertainment System Hacks](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System%20Hacks.rdb) +- [Nintendo - Game Boy](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Game%20Boy.rdb) +- [Nintendo - Game Boy Color](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Game%20Boy%20Color.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +!!! attention + higan Accuracy uses split ROMS for special chip games. + +!!! attention + Firmware files for SGB emulation need to be in directories called SGB1.sfc and SGB2.sfc in RetroArch's system directory. Look at the [Super GameBoy support section](https://docs.libretro.com/library/higan_accuracy#super-gameboy-support) for more information. + +Notable DSP1/DSP1B Games: + +- Super Mario Kart +- Pilotwings + +Notable DSP2 Games: + +- Dungeon Master + +Notable DSP3 Games: + +- SD Gundam GX + +Notable DSP4 Games: + +- Top Gear 3000 + +Notable Cx4 Games: + +- Mega Man X2 +- Mega Man X3 + +| Filename | Description | md5sum | +|:----------------------:|:--------------------------------------:|:--------------------------------:| +| dsp1.data.rom | DSP1 co-processor firmware - Optional | 3d81b45fa0c2aa8b852dfb1ece7c0971 | +| dsp1.program.rom | DSP1 co-processor firmware - Optional | ae209fbe789fbf11a48aea5ab1197321 | +| dsp1b.data.rom | DSP1B co-processor firmware - Optional | 1e3f568634a7d8284020dddc0ae905bc | +| dsp1b.program.rom | DSP1B co-processor firmware - Optional | d10f446888e097cbf500f3f663cf4f6d | +| dsp2.data.rom | DSP2 co-processor firmware - Optional | e9417e29223b139c3c4b635a2a3b8744 | +| dsp2.program.rom | DSP2 co-processor firmware - Optional | aa6e5922a3ed5ded54f24247c11143c5 | +| dsp3.data.rom | DSP3 co-processor firmware - Optional | 0a81210c0a940b997dd9843281008ee6 | +| dsp3.program.rom | DSP3 co-processor firmware - Optional | d99ca4562818d49cee1f242705bba6f8 | +| dsp4.data.rom | DSP4 co-processor firmware - Optional | ee4990879eb68e3cbca239c5bc20303d | +| dsp4.program.rom | DSP4 co-processor firmware - Optional | a151023b948b90ffc23a5b594bb6fef2 | +| cx4.data.rom | CX4 co-processor firmware - Optional | 037ac4296b6b6a5c47c440188d3c72e3 | +| st010.data.rom | ST010 co-processor firmware - Optional | 254d70762b6f59f99c27c395aba7d07d | +| st010.program.rom | ST010 co-processor firmware - Optional | 1d70019179a59a566a0bb5d3f2845544 | +| st011.data.rom | ST011 co-processor firmware - Optional | 10bd3f4aa949737ab9836512c35bcc29 | +| st011.program.rom | ST011 co-processor firmware - Optional | 95222ebf1c0c2990bcf25db43743f032 | +| st018.data.rom | ST018 co-processor firmware - Optional | 49c898b60d0f15e90d0ba780dd12f366 | +| st018.program.rom | ST018 co-processor firmware - Optional | dda40ccd57390c96e49d30a041f9a9e7 | +| SGB1.sfc/sgb1.boot.rom | Super Game Boy BIOS - Optional | | +| SGB1.sfc/program.rom | Super Game Boy ROM - Optional | | +| SGB2.sfc/sgb2.boot.rom | Super Game Boy 2 BIOS - Optional | | +| SGB2.sfc/program.rom | Super Game Boy 2 ROM - Optional | | + +## Features + +Frontend-level settings or features that the higan Accuracy core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | - | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✔ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | - | +| LEDs | ✕ | + +### Directories + +The higan Accuracy core's internal core name is 'higan (Super Famicom Accuracy)' + +The higan Accuracy core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The higan Accuracy core's core provided FPS is (FPS) +- The higan Accuracy core's core provided sample rate is (Rate) +- The higan Accuracy core's core provided aspect ratio is (Ratio) + +## Super Gameboy Support + +The higan Accuracy core uses a simplified Super Game Boy routine that makes it much easier to access this feature than with the old v094-based cores. + +Instead of using the complex, CLI-based 'subsystem' launch commands, it looks for the necessary files in the system/BIOS directory whenever you feed the core a *.gb/c file. + +To get it working, you'll need one or more Super Game Boy ROMs and the sgb.boot.rom BIOS. + +**Step 1** + +Make 2 subdirectories in RetroArch's system directory, one named SGB1.sfc and the other named SGB2.sfc. + +**Step 2** + +Copy your original Super Game Boy ROM into the SGB1.sfc directory and then rename it to program.rom. Copy your Super Game Boy 2 ROM into the SGB2.sfc directory and then rename it program.rom, as well. + +**Step 3** + +Copy your sgb.boot.rom BIOS into each of your SGB1.sfc and SGB2.sfc directories, and rename them to sgb1.boot.rom and sgb2.boot.rom, respectively. + +The ['Preferred Super GameBoy BIOS' core option](https://docs.libretro.com/library/higan_accuracy#core-options) lets you choose which of the two SGB BIOSes to use. + +**Step 4** + +Load a SGB-supported GB/GBC rom. + +**Done** + +![](images/Cores/higan/sgb.png) + +!!! warning + There may be graphical glitches when Rewind is set to On in RetroArch's settings. + +## MSU-1 + +!!! attention + MSU-1 support in this core is complex. **Use the [Snes9x core](https://docs.libretro.com/library/snes9x#msu-1-support) for simplified and easily accessible MSU-1 support.** + +MSU-1 support can be used by loading a correct .bml file. + +There's documentation for loading MSU-1 games in standalone higan [here](https://higan.readthedocs.io/en/stable/guides/import/#msu-1-games). + +## Core options + +The higan Accuracy core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Internal resolution** [higan_sfc_internal_resolution] (**512x480**|512x448|512x240|512x224|256x240|256x224) + + Self-explanatory. + +??? note "512x480" + ![](images/Cores/higan/512x480.png) + +??? note "512x448" + ![](images/Cores/higan/512x448.png) + +??? note "512x240" + ![](images/Cores/higan/512x240.png) + +??? note "512x224" + ![](images/Cores/higan/512x224.png) + +??? note "256x240" + ![](images/Cores/higan/256x240.png) + +??? note "256x224" + ![](images/Cores/higan/256x224.png) + +- **Color emulation** [higan_sfc_color_emulation] (**OFF**|ON) + + Simulates the way a console’s display device differs from modern computer monitor’s colour reproduction. In particular, it simulates the slightly-different gamma correction used by the Super Famicom. + +??? note "Color emulation - Disabled" + ![](images/Cores/higan/color_off.png) + +??? note "Color emulation - Enabled" + ![](images/Cores/higan/color_on.png) + +- **Blur emulation** [higan_sfc_blur_emulation] (**OFF**|ON) + + Simulates the limited horizontal resolution of standard-definition TVs by blurring together horizontally-adjacent pixels. Games like Jurassic Park for the Super Famicom depend on this to emulate a transparency effect. + +??? note "Blur emulation - Disabled" + ![](images/Cores/higan/blur_off.png) + +??? note "Blur emulation - Enabled" + ![](images/Cores/higan/blur_on.png) + +- **Scanline emulation** [higan_sfc_scanline_emulation] (**OFF**|ON) + + Currently does not function properly. + +- **Preferred Super GameBoy BIOS (restart)** [higan_sfc_sgb_bios] (**SGB1.sfc/**|SGB2.sfc/) + + Choose what Super GameBoy BIOS you want to use. Look at the [Super GameBoy Support section](https://docs.libretro.com/library/higan_accuracy#super-gameboy-support) for more information. + +## Controllers + +The higan Accuracy core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Input disabled. +- [**SNES Joypad**](http://nintendo.wikia.com/wiki/Super_Nintendo_Entertainment_System_controller) - Joypad +- [SNES Mouse](https://en.wikipedia.org/wiki/Super_NES_Mouse) - Mouse + +### User 2 device types + +- None - Input disabled. +- [**SNES Joypad**](http://nintendo.wikia.com/wiki/Super_Nintendo_Entertainment_System_controller) - Joypad +- [SNES Mouse](https://en.wikipedia.org/wiki/Super_NES_Mouse) - Mouse +- [Multitap](http://nintendo.wikia.com/wiki/Super_Multitap) - Joypad - Allows for up to five players to play together in multitap games. +- [SuperScope](https://en.wikipedia.org/wiki/Super_Scope) - Lightgun - Inputs are not hooked up in this core. +- [Justifier](https://en.wikipedia.org/wiki/Konami_Justifier) - Lightgun - Inputs are not hooked up in this core. +- [Justifiers](https://en.wikipedia.org/wiki/Konami_Justifier) - Lightgun - Two Justifiers are plugged in, for two-player Justifier games. Inputs are not hooked up in this core. + +### Multitap support + +Activating multitap support in compatible games can be configured by switching to the [Multitap device type](https://docs.libretro.com/library/higan_accuracy#controllers) for User 2. + +### Controller tables + +#### Joypad + +![](images/Controllers/snes.png) + +| User 1 - 5 Remap descriptors | RetroPad Inputs | +|------------------------------|----------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Y | ![](images/RetroPad/Retro_Y_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| X | ![](images/RetroPad/Retro_X_Round.png) | +| L | ![](images/RetroPad/Retro_L1.png) | +| R | ![](images/RetroPad/Retro_R1.png) | + +#### Mouse + +| RetroMouse Inputs | SNES Mouse | +|-----------------------------------------------------|-------------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Mouse Cursor | SNES Mouse Cursor | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | SNES Mouse Left Button | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | SNES Mouse Right Button | + +## Compatibility + +The higan Accuracy core fully emulates all SNES games that have ever been officially released. + +Incompatible with ROM hacks made to take advantage of emulator quirks, much like real hardware. + +## External Links + +- [Official higan Website](https://byuu.org/) +- [Official higan Upstream Downloads](https://byuu.org/emulation/higan/) +- [Libretro higan Accuracy Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/higan_sfc_libretro.info) +- [Libretro higan Accuracy Gitlab Repository](https://gitlab.com/higan/higan) +- [Report Libretro higan Accuracy Core Issues Here](https://github.com/libretro/libretro-meta/issues) + +### See also + +#### Nintendo - Game Boy (+ Color) + +- [Nintendo - Game Boy / Color (Emux GB)](https://docs.libretro.com/library/emux_gb/) +- [Nintendo - Game Boy / Color (Gambatte)](https://docs.libretro.com/library/gambatte/) +- [Nintendo - Game Boy / Color (Gearboy)](https://docs.libretro.com/library/gearboy/) +- [Nintendo - Game Boy / Color (SameBoy)](https://docs.libretro.com/library/sameboy/) +- [Nintendo - Game Boy / Color (TGB Dual)](https://docs.libretro.com/library/tgb_dual/) +- [Nintendo - Game Boy Advance (mGBA)](https://docs.libretro.com/library/mgba/) +- [Nintendo - SNES / Famicom (nSide Balanced)](https://docs.libretro.com/library/nside_balanced/) + +#### Nintendo - Super Nintendo Entertainment System (+ Hacks) + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (nSide Balanced)](https://docs.libretro.com/library/nside_balanced/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) \ No newline at end of file diff --git a/docs/library/images/Button_Pack/Controller_Disconnected.png b/docs/library/images/Button_Pack/Controller_Disconnected.png new file mode 100644 index 00000000..6c93defc Binary files /dev/null and b/docs/library/images/Button_Pack/Controller_Disconnected.png differ diff --git a/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Cross.png b/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Cross.png new file mode 100644 index 00000000..32610ddc Binary files /dev/null and b/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Cross.png differ diff --git a/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Diagonal.png b/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Diagonal.png new file mode 100644 index 00000000..6343f7df Binary files /dev/null and b/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Diagonal.png differ diff --git a/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Full_Circle.png b/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Full_Circle.png new file mode 100644 index 00000000..b468931c Binary files /dev/null and b/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Full_Circle.png differ diff --git a/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Half_Circle.png b/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Half_Circle.png new file mode 100644 index 00000000..39230440 Binary files /dev/null and b/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Half_Circle.png differ diff --git a/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Horizontal.png b/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Horizontal.png new file mode 100644 index 00000000..7cfd4860 Binary files /dev/null and b/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Horizontal.png differ diff --git a/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Quarter_Circle.png b/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Quarter_Circle.png new file mode 100644 index 00000000..10f8b788 Binary files /dev/null and b/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Quarter_Circle.png differ diff --git a/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Sides.png b/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Sides.png new file mode 100644 index 00000000..7cfd4860 Binary files /dev/null and b/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Sides.png differ diff --git a/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Straight.png b/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Straight.png new file mode 100644 index 00000000..f727cf94 Binary files /dev/null and b/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Straight.png differ diff --git a/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Vertical.png b/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Vertical.png new file mode 100644 index 00000000..f616a991 Binary files /dev/null and b/docs/library/images/Button_Pack/Directional_Arrows/Directional_Arrow_Vertical.png differ diff --git a/docs/library/images/Button_Pack/Gestures/Gesture_Double_Rotate.png b/docs/library/images/Button_Pack/Gestures/Gesture_Double_Rotate.png new file mode 100644 index 00000000..8846b9fa Binary files /dev/null and b/docs/library/images/Button_Pack/Gestures/Gesture_Double_Rotate.png differ diff --git a/docs/library/images/Button_Pack/Gestures/Gesture_Double_Tap.png b/docs/library/images/Button_Pack/Gestures/Gesture_Double_Tap.png new file mode 100644 index 00000000..b31eff77 Binary files /dev/null and b/docs/library/images/Button_Pack/Gestures/Gesture_Double_Tap.png differ diff --git a/docs/library/images/Button_Pack/Gestures/Gesture_Finger_Front.png b/docs/library/images/Button_Pack/Gestures/Gesture_Finger_Front.png new file mode 100644 index 00000000..7196212b Binary files /dev/null and b/docs/library/images/Button_Pack/Gestures/Gesture_Finger_Front.png differ diff --git a/docs/library/images/Button_Pack/Gestures/Gesture_Finger_Side.png b/docs/library/images/Button_Pack/Gestures/Gesture_Finger_Side.png new file mode 100644 index 00000000..bb4b68fa Binary files /dev/null and b/docs/library/images/Button_Pack/Gestures/Gesture_Finger_Side.png differ diff --git a/docs/library/images/Button_Pack/Gestures/Gesture_Full_Circle.png b/docs/library/images/Button_Pack/Gestures/Gesture_Full_Circle.png new file mode 100644 index 00000000..96ed4933 Binary files /dev/null and b/docs/library/images/Button_Pack/Gestures/Gesture_Full_Circle.png differ diff --git a/docs/library/images/Button_Pack/Gestures/Gesture_Half_Circle.png b/docs/library/images/Button_Pack/Gestures/Gesture_Half_Circle.png new file mode 100644 index 00000000..ee5f6c6c Binary files /dev/null and b/docs/library/images/Button_Pack/Gestures/Gesture_Half_Circle.png differ diff --git a/docs/library/images/Button_Pack/Gestures/Gesture_Hold.png b/docs/library/images/Button_Pack/Gestures/Gesture_Hold.png new file mode 100644 index 00000000..642957ec Binary files /dev/null and b/docs/library/images/Button_Pack/Gestures/Gesture_Hold.png differ diff --git a/docs/library/images/Button_Pack/Gestures/Gesture_Quarter_Circle.png b/docs/library/images/Button_Pack/Gestures/Gesture_Quarter_Circle.png new file mode 100644 index 00000000..d0ee2115 Binary files /dev/null and b/docs/library/images/Button_Pack/Gestures/Gesture_Quarter_Circle.png differ diff --git a/docs/library/images/Button_Pack/Gestures/Gesture_Scroll_Down.png b/docs/library/images/Button_Pack/Gestures/Gesture_Scroll_Down.png new file mode 100644 index 00000000..542f9b6c Binary files /dev/null and b/docs/library/images/Button_Pack/Gestures/Gesture_Scroll_Down.png differ diff --git a/docs/library/images/Button_Pack/Gestures/Gesture_Scroll_Left.png b/docs/library/images/Button_Pack/Gestures/Gesture_Scroll_Left.png new file mode 100644 index 00000000..1cc1b515 Binary files /dev/null and b/docs/library/images/Button_Pack/Gestures/Gesture_Scroll_Left.png differ diff --git a/docs/library/images/Button_Pack/Gestures/Gesture_Scroll_Right.png b/docs/library/images/Button_Pack/Gestures/Gesture_Scroll_Right.png new file mode 100644 index 00000000..78ae227a Binary files /dev/null and b/docs/library/images/Button_Pack/Gestures/Gesture_Scroll_Right.png differ diff --git a/docs/library/images/Button_Pack/Gestures/Gesture_Scroll_Up.png b/docs/library/images/Button_Pack/Gestures/Gesture_Scroll_Up.png new file mode 100644 index 00000000..d40c725e Binary files /dev/null and b/docs/library/images/Button_Pack/Gestures/Gesture_Scroll_Up.png differ diff --git a/docs/library/images/Button_Pack/Gestures/Gesture_Swipe_Bottom.png b/docs/library/images/Button_Pack/Gestures/Gesture_Swipe_Bottom.png new file mode 100644 index 00000000..b5d729c1 Binary files /dev/null and b/docs/library/images/Button_Pack/Gestures/Gesture_Swipe_Bottom.png differ diff --git a/docs/library/images/Button_Pack/Gestures/Gesture_Swipe_Bottom_Left.png b/docs/library/images/Button_Pack/Gestures/Gesture_Swipe_Bottom_Left.png new file mode 100644 index 00000000..1cd25dca Binary files /dev/null and b/docs/library/images/Button_Pack/Gestures/Gesture_Swipe_Bottom_Left.png differ diff --git a/docs/library/images/Button_Pack/Gestures/Gesture_Swipe_Bottom_Right.png b/docs/library/images/Button_Pack/Gestures/Gesture_Swipe_Bottom_Right.png new file mode 100644 index 00000000..29206639 Binary files /dev/null and b/docs/library/images/Button_Pack/Gestures/Gesture_Swipe_Bottom_Right.png differ diff --git a/docs/library/images/Button_Pack/Gestures/Gesture_Swipe_Left.png b/docs/library/images/Button_Pack/Gestures/Gesture_Swipe_Left.png new file mode 100644 index 00000000..a645c001 Binary files /dev/null and b/docs/library/images/Button_Pack/Gestures/Gesture_Swipe_Left.png differ diff --git a/docs/library/images/Button_Pack/Gestures/Gesture_Swipe_Right.png b/docs/library/images/Button_Pack/Gestures/Gesture_Swipe_Right.png new file mode 100644 index 00000000..2d73d572 Binary files /dev/null and b/docs/library/images/Button_Pack/Gestures/Gesture_Swipe_Right.png differ diff --git a/docs/library/images/Button_Pack/Gestures/Gesture_Swipe_Top_Left.png b/docs/library/images/Button_Pack/Gestures/Gesture_Swipe_Top_Left.png new file mode 100644 index 00000000..bf16851b Binary files /dev/null and b/docs/library/images/Button_Pack/Gestures/Gesture_Swipe_Top_Left.png differ diff --git a/docs/library/images/Button_Pack/Gestures/Gesture_Swipe_Top_Right.png b/docs/library/images/Button_Pack/Gestures/Gesture_Swipe_Top_Right.png new file mode 100644 index 00000000..83f2cceb Binary files /dev/null and b/docs/library/images/Button_Pack/Gestures/Gesture_Swipe_Top_Right.png differ diff --git a/docs/library/images/Button_Pack/Gestures/Gesture_Swipe_Up.png b/docs/library/images/Button_Pack/Gestures/Gesture_Swipe_Up.png new file mode 100644 index 00000000..5e482bd4 Binary files /dev/null and b/docs/library/images/Button_Pack/Gestures/Gesture_Swipe_Up.png differ diff --git a/docs/library/images/Button_Pack/Gestures/Gesture_Tap.png b/docs/library/images/Button_Pack/Gestures/Gesture_Tap.png new file mode 100644 index 00000000..31a050e4 Binary files /dev/null and b/docs/library/images/Button_Pack/Gestures/Gesture_Tap.png differ diff --git a/docs/library/images/Button_Pack/Gestures/Gesture_Zoom_In.png b/docs/library/images/Button_Pack/Gestures/Gesture_Zoom_In.png new file mode 100644 index 00000000..99b8738a Binary files /dev/null and b/docs/library/images/Button_Pack/Gestures/Gesture_Zoom_In.png differ diff --git a/docs/library/images/Button_Pack/Gestures/Gesture_Zoom_Out.png b/docs/library/images/Button_Pack/Gestures/Gesture_Zoom_Out.png new file mode 100644 index 00000000..40c85d45 Binary files /dev/null and b/docs/library/images/Button_Pack/Gestures/Gesture_Zoom_Out.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Enter.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Enter.png new file mode 100644 index 00000000..08ef6dda Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Enter.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Mouse.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Mouse.png new file mode 100644 index 00000000..774bc629 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Mouse.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Normal.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Normal.png new file mode 100644 index 00000000..9c47c66f Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Normal.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Super_Wide.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Super_Wide.png new file mode 100644 index 00000000..e23994c9 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Super_Wide.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Wide.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Wide.png new file mode 100644 index 00000000..59710629 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_Wide.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_tall.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_tall.png new file mode 100644 index 00000000..183a731a Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_Black_tall.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Enter.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Enter.png new file mode 100644 index 00000000..744d3806 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Enter.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Mouse.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Mouse.png new file mode 100644 index 00000000..7891ea40 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Mouse.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Normal.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Normal.png new file mode 100644 index 00000000..beee975a Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Normal.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Super_Wide.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Super_Wide.png new file mode 100644 index 00000000..183b10c5 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Super_Wide.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Tall.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Tall.png new file mode 100644 index 00000000..ae3cdf5a Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Tall.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Wide.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Wide.png new file mode 100644 index 00000000..416b0560 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Blanks/Blank_White_Wide.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_0.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_0.png new file mode 100644 index 00000000..ab5408ef Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_0.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_1.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_1.png new file mode 100644 index 00000000..d88cfd09 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_1.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_10.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_10.png new file mode 100644 index 00000000..17339fe3 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_10.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_11.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_11.png new file mode 100644 index 00000000..18001d0b Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_11.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_12.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_12.png new file mode 100644 index 00000000..a18bb74d Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_12.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_2.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_2.png new file mode 100644 index 00000000..257a0a8a Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_2.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_3.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_3.png new file mode 100644 index 00000000..37f01a24 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_3.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_4.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_4.png new file mode 100644 index 00000000..f2ec50e8 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_4.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_5.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_5.png new file mode 100644 index 00000000..4996f906 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_5.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_6.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_6.png new file mode 100644 index 00000000..7ebf62d6 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_6.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_7.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_7.png new file mode 100644 index 00000000..bae81b4f Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_7.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_8.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_8.png new file mode 100644 index 00000000..4cbf1590 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_8.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_9.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_9.png new file mode 100644 index 00000000..8da9b01c Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_9.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_A.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_A.png new file mode 100644 index 00000000..ba2b1dd6 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_A.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Alt.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Alt.png new file mode 100644 index 00000000..9c0ceb67 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Alt.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Down.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Down.png new file mode 100644 index 00000000..9edcf582 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Down.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Left.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Left.png new file mode 100644 index 00000000..3425005d Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Left.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Right.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Right.png new file mode 100644 index 00000000..929cb352 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Right.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Up.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Up.png new file mode 100644 index 00000000..025a68d4 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Arrow_Up.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Asterisk.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Asterisk.png new file mode 100644 index 00000000..abcdd9f8 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Asterisk.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_B.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_B.png new file mode 100644 index 00000000..bb6b3bb4 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_B.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Backspace.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Backspace.png new file mode 100644 index 00000000..bd2b56df Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Backspace.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Backspace_Alt.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Backspace_Alt.png new file mode 100644 index 00000000..be1a7588 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Backspace_Alt.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Bracket_Left.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Bracket_Left.png new file mode 100644 index 00000000..8734b861 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Bracket_Left.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Bracket_Right.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Bracket_Right.png new file mode 100644 index 00000000..c56aef45 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Bracket_Right.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_C.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_C.png new file mode 100644 index 00000000..005e4ca4 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_C.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Caps_Lock.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Caps_Lock.png new file mode 100644 index 00000000..de5adb8f Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Caps_Lock.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Command.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Command.png new file mode 100644 index 00000000..22dfd60b Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Command.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Ctrl.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Ctrl.png new file mode 100644 index 00000000..12456bd0 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Ctrl.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_D.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_D.png new file mode 100644 index 00000000..cfd36f29 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_D.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Del.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Del.png new file mode 100644 index 00000000..87bd8307 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Del.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_E.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_E.png new file mode 100644 index 00000000..34b7be11 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_E.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_End.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_End.png new file mode 100644 index 00000000..2d6211cf Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_End.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Enter.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Enter.png new file mode 100644 index 00000000..1f144f58 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Enter.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Enter_Alt.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Enter_Alt.png new file mode 100644 index 00000000..54932935 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Enter_Alt.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Enter_Tall.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Enter_Tall.png new file mode 100644 index 00000000..de3abde2 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Enter_Tall.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Esc.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Esc.png new file mode 100644 index 00000000..c363cdc4 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Esc.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F.png new file mode 100644 index 00000000..0781a72c Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F1.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F1.png new file mode 100644 index 00000000..fc5865ab Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F1.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F10.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F10.png new file mode 100644 index 00000000..17339fe3 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F10.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F11.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F11.png new file mode 100644 index 00000000..18001d0b Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F11.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F12.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F12.png new file mode 100644 index 00000000..a18bb74d Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F12.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F2.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F2.png new file mode 100644 index 00000000..ffceae5b Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F2.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F3.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F3.png new file mode 100644 index 00000000..c49d8408 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F3.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F4.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F4.png new file mode 100644 index 00000000..c09acb24 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F4.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F5.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F5.png new file mode 100644 index 00000000..c304fd07 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F5.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F6.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F6.png new file mode 100644 index 00000000..bc3f31c4 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F6.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F7.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F7.png new file mode 100644 index 00000000..2c28dc0d Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F7.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F8.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F8.png new file mode 100644 index 00000000..6c09529c Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F8.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F9.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F9.png new file mode 100644 index 00000000..0b67e2bb Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_F9.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_G.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_G.png new file mode 100644 index 00000000..79ffcd21 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_G.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_H.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_H.png new file mode 100644 index 00000000..00a4fe45 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_H.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Home.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Home.png new file mode 100644 index 00000000..10ba170a Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Home.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_I.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_I.png new file mode 100644 index 00000000..de8f252c Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_I.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Insert.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Insert.png new file mode 100644 index 00000000..d0ae4d5c Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Insert.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_J.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_J.png new file mode 100644 index 00000000..947b5eb3 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_J.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_K.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_K.png new file mode 100644 index 00000000..2ca24bd0 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_K.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_L.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_L.png new file mode 100644 index 00000000..725c8783 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_L.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_M.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_M.png new file mode 100644 index 00000000..4477153c Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_M.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mark_Left.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mark_Left.png new file mode 100644 index 00000000..a5e48ce3 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mark_Left.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mark_Right.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mark_Right.png new file mode 100644 index 00000000..d418e77c Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mark_Right.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Minus.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Minus.png new file mode 100644 index 00000000..1e6dcf72 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Minus.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mouse_Left.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mouse_Left.png new file mode 100644 index 00000000..1b1eb863 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mouse_Left.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mouse_Middle.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mouse_Middle.png new file mode 100644 index 00000000..0fd0a2ea Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mouse_Middle.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mouse_Right.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mouse_Right.png new file mode 100644 index 00000000..cc24f927 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mouse_Right.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mouse_Simple.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mouse_Simple.png new file mode 100644 index 00000000..774bc629 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Mouse_Simple.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_N.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_N.png new file mode 100644 index 00000000..689e2f61 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_N.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Num_Lock.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Num_Lock.png new file mode 100644 index 00000000..2808f917 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Num_Lock.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_O.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_O.png new file mode 100644 index 00000000..b703ceb0 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_O.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_P.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_P.png new file mode 100644 index 00000000..13e8393e Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_P.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Page_Down.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Page_Down.png new file mode 100644 index 00000000..ace123f5 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Page_Down.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Page_Up.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Page_Up.png new file mode 100644 index 00000000..da15112d Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Page_Up.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Plus.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Plus.png new file mode 100644 index 00000000..ebc10352 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Plus.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Plus_Tall.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Plus_Tall.png new file mode 100644 index 00000000..3049116a Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Plus_Tall.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Print_Screen.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Print_Screen.png new file mode 100644 index 00000000..88ad6173 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Print_Screen.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Q.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Q.png new file mode 100644 index 00000000..fe8add96 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Q.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Question.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Question.png new file mode 100644 index 00000000..d32683c1 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Question.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Quote.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Quote.png new file mode 100644 index 00000000..108d665d Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Quote.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_R.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_R.png new file mode 100644 index 00000000..5ac24610 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_R.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_S.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_S.png new file mode 100644 index 00000000..1fb8919d Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_S.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Semicolon.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Semicolon.png new file mode 100644 index 00000000..800d299f Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Semicolon.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Shift.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Shift.png new file mode 100644 index 00000000..05ba7918 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Shift.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Shift_Alt.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Shift_Alt.png new file mode 100644 index 00000000..e57fb5f6 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Shift_Alt.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Slash.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Slash.png new file mode 100644 index 00000000..38b411bb Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Slash.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Space.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Space.png new file mode 100644 index 00000000..2298b4ff Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Space.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_T.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_T.png new file mode 100644 index 00000000..9ba1250a Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_T.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Tab.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Tab.png new file mode 100644 index 00000000..3fea857e Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Tab.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Tilda.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Tilda.png new file mode 100644 index 00000000..2f8db91a Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Tilda.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_U.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_U.png new file mode 100644 index 00000000..79f91389 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_U.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_V.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_V.png new file mode 100644 index 00000000..c0f0599f Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_V.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_W.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_W.png new file mode 100644 index 00000000..06278eee Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_W.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Win.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Win.png new file mode 100644 index 00000000..58576cb7 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Win.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_X.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_X.png new file mode 100644 index 00000000..95192f02 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_X.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Y.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Y.png new file mode 100644 index 00000000..b94e4555 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Y.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Z.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Z.png new file mode 100644 index 00000000..e9a12999 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Dark/Keyboard_Black_Z.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_0.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_0.png new file mode 100644 index 00000000..243de8d7 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_0.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_1.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_1.png new file mode 100644 index 00000000..2e908716 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_1.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_10.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_10.png new file mode 100644 index 00000000..08e187a9 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_10.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_11.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_11.png new file mode 100644 index 00000000..a0d1945a Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_11.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_12.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_12.png new file mode 100644 index 00000000..19c2344a Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_12.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_2.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_2.png new file mode 100644 index 00000000..775745ba Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_2.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_3.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_3.png new file mode 100644 index 00000000..8dc2794e Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_3.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_4.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_4.png new file mode 100644 index 00000000..d09d43cc Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_4.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_5.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_5.png new file mode 100644 index 00000000..dd283152 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_5.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_6.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_6.png new file mode 100644 index 00000000..a3c29f46 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_6.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_7.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_7.png new file mode 100644 index 00000000..aeacb455 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_7.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_8.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_8.png new file mode 100644 index 00000000..30057810 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_8.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_9.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_9.png new file mode 100644 index 00000000..fb87ddbd Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_9.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_A.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_A.png new file mode 100644 index 00000000..57a1d6f6 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_A.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Alt.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Alt.png new file mode 100644 index 00000000..677fee78 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Alt.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Arrow_Down.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Arrow_Down.png new file mode 100644 index 00000000..3afcebab Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Arrow_Down.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Arrow_Left.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Arrow_Left.png new file mode 100644 index 00000000..6c4beecc Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Arrow_Left.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Arrow_Right.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Arrow_Right.png new file mode 100644 index 00000000..f0f9e764 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Arrow_Right.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Arrow_Up.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Arrow_Up.png new file mode 100644 index 00000000..8f4b0e4d Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Arrow_Up.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Asterisk.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Asterisk.png new file mode 100644 index 00000000..5de5317e Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Asterisk.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_B.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_B.png new file mode 100644 index 00000000..6de48cff Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_B.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Backspace.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Backspace.png new file mode 100644 index 00000000..d6da7ab2 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Backspace.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Backspace_Alt.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Backspace_Alt.png new file mode 100644 index 00000000..e583b607 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Backspace_Alt.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Bracket_Left.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Bracket_Left.png new file mode 100644 index 00000000..1e8fd691 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Bracket_Left.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Bracket_Right.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Bracket_Right.png new file mode 100644 index 00000000..56365f19 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Bracket_Right.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_C.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_C.png new file mode 100644 index 00000000..46a65138 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_C.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Caps_Lock.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Caps_Lock.png new file mode 100644 index 00000000..0b7a975c Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Caps_Lock.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Command.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Command.png new file mode 100644 index 00000000..382a351b Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Command.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Ctrl.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Ctrl.png new file mode 100644 index 00000000..00ba554a Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Ctrl.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_D.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_D.png new file mode 100644 index 00000000..70876b97 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_D.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Del.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Del.png new file mode 100644 index 00000000..6e0f5438 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Del.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_E.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_E.png new file mode 100644 index 00000000..f750f3ac Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_E.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_End.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_End.png new file mode 100644 index 00000000..bd8d6e18 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_End.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Enter.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Enter.png new file mode 100644 index 00000000..5f4c40af Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Enter.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Enter_Alt.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Enter_Alt.png new file mode 100644 index 00000000..7b567410 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Enter_Alt.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Enter_Tall.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Enter_Tall.png new file mode 100644 index 00000000..fd57a440 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Enter_Tall.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Esc.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Esc.png new file mode 100644 index 00000000..d152e31a Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Esc.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F.png new file mode 100644 index 00000000..1504aba8 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F1.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F1.png new file mode 100644 index 00000000..4dae2fb0 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F1.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F10.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F10.png new file mode 100644 index 00000000..08e187a9 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F10.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F11.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F11.png new file mode 100644 index 00000000..a0d1945a Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F11.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F12.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F12.png new file mode 100644 index 00000000..19c2344a Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F12.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F2.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F2.png new file mode 100644 index 00000000..e50bcb89 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F2.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F3.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F3.png new file mode 100644 index 00000000..c9feb577 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F3.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F4.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F4.png new file mode 100644 index 00000000..0b8f4f67 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F4.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F5.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F5.png new file mode 100644 index 00000000..c74317f2 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F5.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F6.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F6.png new file mode 100644 index 00000000..cedfd8f8 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F6.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F7.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F7.png new file mode 100644 index 00000000..6337d82a Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F7.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F8.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F8.png new file mode 100644 index 00000000..71ab4929 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F8.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F9.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F9.png new file mode 100644 index 00000000..90e70716 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_F9.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_G.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_G.png new file mode 100644 index 00000000..f01c2817 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_G.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_H.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_H.png new file mode 100644 index 00000000..37d9c6e0 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_H.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Home.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Home.png new file mode 100644 index 00000000..9044181c Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Home.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_I.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_I.png new file mode 100644 index 00000000..adde0712 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_I.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Insert.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Insert.png new file mode 100644 index 00000000..2682a11f Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Insert.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_J.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_J.png new file mode 100644 index 00000000..7a3a3d7c Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_J.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_K.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_K.png new file mode 100644 index 00000000..92e5b38b Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_K.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_L.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_L.png new file mode 100644 index 00000000..995e284f Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_L.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_M.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_M.png new file mode 100644 index 00000000..f53cf50b Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_M.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mark_Left.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mark_Left.png new file mode 100644 index 00000000..6b7b865e Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mark_Left.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mark_Right.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mark_Right.png new file mode 100644 index 00000000..defc71ef Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mark_Right.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Minus.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Minus.png new file mode 100644 index 00000000..47d3bc1f Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Minus.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mouse_Left.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mouse_Left.png new file mode 100644 index 00000000..22983fa3 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mouse_Left.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mouse_Middle.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mouse_Middle.png new file mode 100644 index 00000000..d3298c1a Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mouse_Middle.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mouse_Right.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mouse_Right.png new file mode 100644 index 00000000..8106df7e Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mouse_Right.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mouse_Simple.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mouse_Simple.png new file mode 100644 index 00000000..7891ea40 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Mouse_Simple.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_N.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_N.png new file mode 100644 index 00000000..b24d7f65 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_N.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Num_Lock.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Num_Lock.png new file mode 100644 index 00000000..98f5f29e Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Num_Lock.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_O.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_O.png new file mode 100644 index 00000000..a59c477f Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_O.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_P.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_P.png new file mode 100644 index 00000000..940e6ce8 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_P.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Page_Down.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Page_Down.png new file mode 100644 index 00000000..d50f14af Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Page_Down.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Page_Up.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Page_Up.png new file mode 100644 index 00000000..5a8ec850 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Page_Up.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Plus.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Plus.png new file mode 100644 index 00000000..29c4fdd9 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Plus.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Plus_Tall.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Plus_Tall.png new file mode 100644 index 00000000..bdfedbed Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Plus_Tall.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Print_Screen.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Print_Screen.png new file mode 100644 index 00000000..10c77985 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Print_Screen.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Q.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Q.png new file mode 100644 index 00000000..38a2fa06 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Q.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Question.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Question.png new file mode 100644 index 00000000..03ddf97f Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Question.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Quote.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Quote.png new file mode 100644 index 00000000..fe432220 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Quote.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_R.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_R.png new file mode 100644 index 00000000..eda35ee8 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_R.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_S.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_S.png new file mode 100644 index 00000000..0ca61d85 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_S.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Semicolon.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Semicolon.png new file mode 100644 index 00000000..fcbd630f Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Semicolon.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Shift.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Shift.png new file mode 100644 index 00000000..21c4f49b Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Shift.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Shift_Alt.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Shift_Alt.png new file mode 100644 index 00000000..1ecfe498 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Shift_Alt.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Slash.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Slash.png new file mode 100644 index 00000000..e30ff0b3 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Slash.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Space.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Space.png new file mode 100644 index 00000000..1a2f0f6f Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Space.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_T.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_T.png new file mode 100644 index 00000000..a9d97677 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_T.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Tab.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Tab.png new file mode 100644 index 00000000..9b0534a2 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Tab.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Tilda.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Tilda.png new file mode 100644 index 00000000..1b9d0570 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Tilda.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_U.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_U.png new file mode 100644 index 00000000..72c0edfc Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_U.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_V.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_V.png new file mode 100644 index 00000000..181f8d7e Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_V.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_W.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_W.png new file mode 100644 index 00000000..7431ef21 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_W.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Win.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Win.png new file mode 100644 index 00000000..70afb485 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Win.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_X.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_X.png new file mode 100644 index 00000000..25b9d33a Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_X.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Y.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Y.png new file mode 100644 index 00000000..4702c2cd Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Y.png differ diff --git a/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Z.png b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Z.png new file mode 100644 index 00000000..f6037a95 Binary files /dev/null and b/docs/library/images/Button_Pack/Keyboard_&_Mouse/Light/Keyboard_White_Z.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Oculus_A.png b/docs/library/images/Button_Pack/Oculus/Oculus_A.png new file mode 100644 index 00000000..0d6afde8 Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Oculus_A.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Oculus_B.png b/docs/library/images/Button_Pack/Oculus/Oculus_B.png new file mode 100644 index 00000000..33a7abd1 Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Oculus_B.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Oculus_Grab_Blank.png b/docs/library/images/Button_Pack/Oculus/Oculus_Grab_Blank.png new file mode 100644 index 00000000..5454dbdb Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Oculus_Grab_Blank.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Oculus_LT.png b/docs/library/images/Button_Pack/Oculus/Oculus_LT.png new file mode 100644 index 00000000..3b40a067 Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Oculus_LT.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Oculus_Left_Grab.png b/docs/library/images/Button_Pack/Oculus/Oculus_Left_Grab.png new file mode 100644 index 00000000..9173e534 Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Oculus_Left_Grab.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Oculus_Left_Stick.png b/docs/library/images/Button_Pack/Oculus/Oculus_Left_Stick.png new file mode 100644 index 00000000..a7f01628 Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Oculus_Left_Stick.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Oculus_RT.png b/docs/library/images/Button_Pack/Oculus/Oculus_RT.png new file mode 100644 index 00000000..4243565c Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Oculus_RT.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Oculus_Right_Grab.png b/docs/library/images/Button_Pack/Oculus/Oculus_Right_Grab.png new file mode 100644 index 00000000..8c7d9a6f Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Oculus_Right_Grab.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Oculus_Right_Stick.png b/docs/library/images/Button_Pack/Oculus/Oculus_Right_Stick.png new file mode 100644 index 00000000..2e7cc9f1 Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Oculus_Right_Stick.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Oculus_Touch_Left.png b/docs/library/images/Button_Pack/Oculus/Oculus_Touch_Left.png new file mode 100644 index 00000000..407f9e4f Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Oculus_Touch_Left.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Oculus_Touch_Right.png b/docs/library/images/Button_Pack/Oculus/Oculus_Touch_Right.png new file mode 100644 index 00000000..285e1ce3 Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Oculus_Touch_Right.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Oculus_Trigger_Blank.png b/docs/library/images/Button_Pack/Oculus/Oculus_Trigger_Blank.png new file mode 100644 index 00000000..408f462e Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Oculus_Trigger_Blank.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Oculus_X.png b/docs/library/images/Button_Pack/Oculus/Oculus_X.png new file mode 100644 index 00000000..c0d07b35 Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Oculus_X.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Oculus_Y.png b/docs/library/images/Button_Pack/Oculus/Oculus_Y.png new file mode 100644 index 00000000..51227c1c Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Oculus_Y.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Remote_Back.png b/docs/library/images/Button_Pack/Oculus/Remote_Back.png new file mode 100644 index 00000000..34e13d92 Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Remote_Back.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Remote_Circle.png b/docs/library/images/Button_Pack/Oculus/Remote_Circle.png new file mode 100644 index 00000000..39547017 Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Remote_Circle.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Remote_Circle_Down.png b/docs/library/images/Button_Pack/Oculus/Remote_Circle_Down.png new file mode 100644 index 00000000..9f545368 Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Remote_Circle_Down.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Remote_Circle_Inner.png b/docs/library/images/Button_Pack/Oculus/Remote_Circle_Inner.png new file mode 100644 index 00000000..06da3822 Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Remote_Circle_Inner.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Remote_Circle_Left.png b/docs/library/images/Button_Pack/Oculus/Remote_Circle_Left.png new file mode 100644 index 00000000..ec4f5b98 Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Remote_Circle_Left.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Remote_Circle_Outter.png b/docs/library/images/Button_Pack/Oculus/Remote_Circle_Outter.png new file mode 100644 index 00000000..87bb50b1 Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Remote_Circle_Outter.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Remote_Circle_Right.png b/docs/library/images/Button_Pack/Oculus/Remote_Circle_Right.png new file mode 100644 index 00000000..2d85ba60 Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Remote_Circle_Right.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Remote_Circle_Scroll_Left.png b/docs/library/images/Button_Pack/Oculus/Remote_Circle_Scroll_Left.png new file mode 100644 index 00000000..aca22c77 Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Remote_Circle_Scroll_Left.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Remote_Circle_Scroll_Right.png b/docs/library/images/Button_Pack/Oculus/Remote_Circle_Scroll_Right.png new file mode 100644 index 00000000..460ffe90 Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Remote_Circle_Scroll_Right.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Remote_Circle_Up.png b/docs/library/images/Button_Pack/Oculus/Remote_Circle_Up.png new file mode 100644 index 00000000..ae464b7e Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Remote_Circle_Up.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Remote_Icon.png b/docs/library/images/Button_Pack/Oculus/Remote_Icon.png new file mode 100644 index 00000000..4e4b9c4d Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Remote_Icon.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Remote_Minus.png b/docs/library/images/Button_Pack/Oculus/Remote_Minus.png new file mode 100644 index 00000000..9d8701a4 Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Remote_Minus.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Remote_Plus.png b/docs/library/images/Button_Pack/Oculus/Remote_Plus.png new file mode 100644 index 00000000..fd5d82f3 Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Remote_Plus.png differ diff --git a/docs/library/images/Button_Pack/Oculus/Remote_System.png b/docs/library/images/Button_Pack/Oculus/Remote_System.png new file mode 100644 index 00000000..8ce8bddd Binary files /dev/null and b/docs/library/images/Button_Pack/Oculus/Remote_System.png differ diff --git a/docs/library/images/Button_Pack/Ouya/Ouya_A.png b/docs/library/images/Button_Pack/Ouya/Ouya_A.png new file mode 100644 index 00000000..5fcbb440 Binary files /dev/null and b/docs/library/images/Button_Pack/Ouya/Ouya_A.png differ diff --git a/docs/library/images/Button_Pack/Ouya/Ouya_Dpad.png b/docs/library/images/Button_Pack/Ouya/Ouya_Dpad.png new file mode 100644 index 00000000..0ced97ae Binary files /dev/null and b/docs/library/images/Button_Pack/Ouya/Ouya_Dpad.png differ diff --git a/docs/library/images/Button_Pack/Ouya/Ouya_Dpad_Down.png b/docs/library/images/Button_Pack/Ouya/Ouya_Dpad_Down.png new file mode 100644 index 00000000..6b295acb Binary files /dev/null and b/docs/library/images/Button_Pack/Ouya/Ouya_Dpad_Down.png differ diff --git a/docs/library/images/Button_Pack/Ouya/Ouya_Dpad_Left.png b/docs/library/images/Button_Pack/Ouya/Ouya_Dpad_Left.png new file mode 100644 index 00000000..533e42a1 Binary files /dev/null and b/docs/library/images/Button_Pack/Ouya/Ouya_Dpad_Left.png differ diff --git a/docs/library/images/Button_Pack/Ouya/Ouya_Dpad_Right.png b/docs/library/images/Button_Pack/Ouya/Ouya_Dpad_Right.png new file mode 100644 index 00000000..1b3d9aed Binary files /dev/null and b/docs/library/images/Button_Pack/Ouya/Ouya_Dpad_Right.png differ diff --git a/docs/library/images/Button_Pack/Ouya/Ouya_Dpad_Up.png b/docs/library/images/Button_Pack/Ouya/Ouya_Dpad_Up.png new file mode 100644 index 00000000..70ea26ea Binary files /dev/null and b/docs/library/images/Button_Pack/Ouya/Ouya_Dpad_Up.png differ diff --git a/docs/library/images/Button_Pack/Ouya/Ouya_L1.png b/docs/library/images/Button_Pack/Ouya/Ouya_L1.png new file mode 100644 index 00000000..2b200730 Binary files /dev/null and b/docs/library/images/Button_Pack/Ouya/Ouya_L1.png differ diff --git a/docs/library/images/Button_Pack/Ouya/Ouya_L2.png b/docs/library/images/Button_Pack/Ouya/Ouya_L2.png new file mode 100644 index 00000000..6234c1e3 Binary files /dev/null and b/docs/library/images/Button_Pack/Ouya/Ouya_L2.png differ diff --git a/docs/library/images/Button_Pack/Ouya/Ouya_Left_Stick.png b/docs/library/images/Button_Pack/Ouya/Ouya_Left_Stick.png new file mode 100644 index 00000000..631dad65 Binary files /dev/null and b/docs/library/images/Button_Pack/Ouya/Ouya_Left_Stick.png differ diff --git a/docs/library/images/Button_Pack/Ouya/Ouya_Menu.png b/docs/library/images/Button_Pack/Ouya/Ouya_Menu.png new file mode 100644 index 00000000..b2eef111 Binary files /dev/null and b/docs/library/images/Button_Pack/Ouya/Ouya_Menu.png differ diff --git a/docs/library/images/Button_Pack/Ouya/Ouya_O.png b/docs/library/images/Button_Pack/Ouya/Ouya_O.png new file mode 100644 index 00000000..e96a62cb Binary files /dev/null and b/docs/library/images/Button_Pack/Ouya/Ouya_O.png differ diff --git a/docs/library/images/Button_Pack/Ouya/Ouya_R1.png b/docs/library/images/Button_Pack/Ouya/Ouya_R1.png new file mode 100644 index 00000000..5e8f9241 Binary files /dev/null and b/docs/library/images/Button_Pack/Ouya/Ouya_R1.png differ diff --git a/docs/library/images/Button_Pack/Ouya/Ouya_R2.png b/docs/library/images/Button_Pack/Ouya/Ouya_R2.png new file mode 100644 index 00000000..55db1c7e Binary files /dev/null and b/docs/library/images/Button_Pack/Ouya/Ouya_R2.png differ diff --git a/docs/library/images/Button_Pack/Ouya/Ouya_Right_Stick.png b/docs/library/images/Button_Pack/Ouya/Ouya_Right_Stick.png new file mode 100644 index 00000000..c46c7489 Binary files /dev/null and b/docs/library/images/Button_Pack/Ouya/Ouya_Right_Stick.png differ diff --git a/docs/library/images/Button_Pack/Ouya/Ouya_Touch.png b/docs/library/images/Button_Pack/Ouya/Ouya_Touch.png new file mode 100644 index 00000000..2df0e465 Binary files /dev/null and b/docs/library/images/Button_Pack/Ouya/Ouya_Touch.png differ diff --git a/docs/library/images/Button_Pack/Ouya/Ouya_U.png b/docs/library/images/Button_Pack/Ouya/Ouya_U.png new file mode 100644 index 00000000..c90ca2d6 Binary files /dev/null and b/docs/library/images/Button_Pack/Ouya/Ouya_U.png differ diff --git a/docs/library/images/Button_Pack/Ouya/Ouya_Y.png b/docs/library/images/Button_Pack/Ouya/Ouya_Y.png new file mode 100644 index 00000000..c0a08e0c Binary files /dev/null and b/docs/library/images/Button_Pack/Ouya/Ouya_Y.png differ diff --git a/docs/library/images/Button_Pack/PS _Move/PSMove_Circle.png b/docs/library/images/Button_Pack/PS _Move/PSMove_Circle.png new file mode 100644 index 00000000..10dd9b03 Binary files /dev/null and b/docs/library/images/Button_Pack/PS _Move/PSMove_Circle.png differ diff --git a/docs/library/images/Button_Pack/PS _Move/PSMove_Controller_Stick.png b/docs/library/images/Button_Pack/PS _Move/PSMove_Controller_Stick.png new file mode 100644 index 00000000..344a65f4 Binary files /dev/null and b/docs/library/images/Button_Pack/PS _Move/PSMove_Controller_Stick.png differ diff --git a/docs/library/images/Button_Pack/PS _Move/PSMove_Controller_Wand.png b/docs/library/images/Button_Pack/PS _Move/PSMove_Controller_Wand.png new file mode 100644 index 00000000..0ed87c32 Binary files /dev/null and b/docs/library/images/Button_Pack/PS _Move/PSMove_Controller_Wand.png differ diff --git a/docs/library/images/Button_Pack/PS _Move/PSMove_Controllers.png b/docs/library/images/Button_Pack/PS _Move/PSMove_Controllers.png new file mode 100644 index 00000000..94c8c672 Binary files /dev/null and b/docs/library/images/Button_Pack/PS _Move/PSMove_Controllers.png differ diff --git a/docs/library/images/Button_Pack/PS _Move/PSMove_Cross.png b/docs/library/images/Button_Pack/PS _Move/PSMove_Cross.png new file mode 100644 index 00000000..73a42a70 Binary files /dev/null and b/docs/library/images/Button_Pack/PS _Move/PSMove_Cross.png differ diff --git a/docs/library/images/Button_Pack/PS _Move/PSMove_LT.png b/docs/library/images/Button_Pack/PS _Move/PSMove_LT.png new file mode 100644 index 00000000..05c0c852 Binary files /dev/null and b/docs/library/images/Button_Pack/PS _Move/PSMove_LT.png differ diff --git a/docs/library/images/Button_Pack/PS _Move/PSMove_Left_Stick.png b/docs/library/images/Button_Pack/PS _Move/PSMove_Left_Stick.png new file mode 100644 index 00000000..61b6330a Binary files /dev/null and b/docs/library/images/Button_Pack/PS _Move/PSMove_Left_Stick.png differ diff --git a/docs/library/images/Button_Pack/PS _Move/PSMove_Move.png b/docs/library/images/Button_Pack/PS _Move/PSMove_Move.png new file mode 100644 index 00000000..25d1f8dc Binary files /dev/null and b/docs/library/images/Button_Pack/PS _Move/PSMove_Move.png differ diff --git a/docs/library/images/Button_Pack/PS _Move/PSMove_RT.png b/docs/library/images/Button_Pack/PS _Move/PSMove_RT.png new file mode 100644 index 00000000..c2a8470d Binary files /dev/null and b/docs/library/images/Button_Pack/PS _Move/PSMove_RT.png differ diff --git a/docs/library/images/Button_Pack/PS _Move/PSMove_Select.png b/docs/library/images/Button_Pack/PS _Move/PSMove_Select.png new file mode 100644 index 00000000..e83731c8 Binary files /dev/null and b/docs/library/images/Button_Pack/PS _Move/PSMove_Select.png differ diff --git a/docs/library/images/Button_Pack/PS _Move/PSMove_Square.png b/docs/library/images/Button_Pack/PS _Move/PSMove_Square.png new file mode 100644 index 00000000..3ad12864 Binary files /dev/null and b/docs/library/images/Button_Pack/PS _Move/PSMove_Square.png differ diff --git a/docs/library/images/Button_Pack/PS _Move/PSMove_Start.png b/docs/library/images/Button_Pack/PS _Move/PSMove_Start.png new file mode 100644 index 00000000..ba0ef226 Binary files /dev/null and b/docs/library/images/Button_Pack/PS _Move/PSMove_Start.png differ diff --git a/docs/library/images/Button_Pack/PS _Move/PSMove_T.png b/docs/library/images/Button_Pack/PS _Move/PSMove_T.png new file mode 100644 index 00000000..a32a9460 Binary files /dev/null and b/docs/library/images/Button_Pack/PS _Move/PSMove_T.png differ diff --git a/docs/library/images/Button_Pack/PS _Move/PSMove_Triangle.png b/docs/library/images/Button_Pack/PS _Move/PSMove_Triangle.png new file mode 100644 index 00000000..9dcdbba8 Binary files /dev/null and b/docs/library/images/Button_Pack/PS _Move/PSMove_Triangle.png differ diff --git a/docs/library/images/Button_Pack/PS _Move/PSMove_Trigger_Blank.png b/docs/library/images/Button_Pack/PS _Move/PSMove_Trigger_Blank.png new file mode 100644 index 00000000..30678a1a Binary files /dev/null and b/docs/library/images/Button_Pack/PS _Move/PSMove_Trigger_Blank.png differ diff --git a/docs/library/images/Button_Pack/PS3/PS3_Circle.png b/docs/library/images/Button_Pack/PS3/PS3_Circle.png new file mode 100644 index 00000000..10dd9b03 Binary files /dev/null and b/docs/library/images/Button_Pack/PS3/PS3_Circle.png differ diff --git a/docs/library/images/Button_Pack/PS3/PS3_Cross.png b/docs/library/images/Button_Pack/PS3/PS3_Cross.png new file mode 100644 index 00000000..73a42a70 Binary files /dev/null and b/docs/library/images/Button_Pack/PS3/PS3_Cross.png differ diff --git a/docs/library/images/Button_Pack/PS3/PS3_Dpad.png b/docs/library/images/Button_Pack/PS3/PS3_Dpad.png new file mode 100644 index 00000000..5a31103d Binary files /dev/null and b/docs/library/images/Button_Pack/PS3/PS3_Dpad.png differ diff --git a/docs/library/images/Button_Pack/PS3/PS3_Dpad_Down.png b/docs/library/images/Button_Pack/PS3/PS3_Dpad_Down.png new file mode 100644 index 00000000..dddcc0d4 Binary files /dev/null and b/docs/library/images/Button_Pack/PS3/PS3_Dpad_Down.png differ diff --git a/docs/library/images/Button_Pack/PS3/PS3_Dpad_Left.png b/docs/library/images/Button_Pack/PS3/PS3_Dpad_Left.png new file mode 100644 index 00000000..78beb635 Binary files /dev/null and b/docs/library/images/Button_Pack/PS3/PS3_Dpad_Left.png differ diff --git a/docs/library/images/Button_Pack/PS3/PS3_Dpad_Right.png b/docs/library/images/Button_Pack/PS3/PS3_Dpad_Right.png new file mode 100644 index 00000000..94a6590b Binary files /dev/null and b/docs/library/images/Button_Pack/PS3/PS3_Dpad_Right.png differ diff --git a/docs/library/images/Button_Pack/PS3/PS3_Dpad_Up.png b/docs/library/images/Button_Pack/PS3/PS3_Dpad_Up.png new file mode 100644 index 00000000..5bc87051 Binary files /dev/null and b/docs/library/images/Button_Pack/PS3/PS3_Dpad_Up.png differ diff --git a/docs/library/images/Button_Pack/PS3/PS3_L1.png b/docs/library/images/Button_Pack/PS3/PS3_L1.png new file mode 100644 index 00000000..8a1d87c5 Binary files /dev/null and b/docs/library/images/Button_Pack/PS3/PS3_L1.png differ diff --git a/docs/library/images/Button_Pack/PS3/PS3_L2.png b/docs/library/images/Button_Pack/PS3/PS3_L2.png new file mode 100644 index 00000000..3b938d19 Binary files /dev/null and b/docs/library/images/Button_Pack/PS3/PS3_L2.png differ diff --git a/docs/library/images/Button_Pack/PS3/PS3_L3.png b/docs/library/images/Button_Pack/PS3/PS3_L3.png new file mode 100644 index 00000000..e4455c09 Binary files /dev/null and b/docs/library/images/Button_Pack/PS3/PS3_L3.png differ diff --git a/docs/library/images/Button_Pack/PS3/PS3_Left_Stick.png b/docs/library/images/Button_Pack/PS3/PS3_Left_Stick.png new file mode 100644 index 00000000..101b99cb Binary files /dev/null and b/docs/library/images/Button_Pack/PS3/PS3_Left_Stick.png differ diff --git a/docs/library/images/Button_Pack/PS3/PS3_R1.png b/docs/library/images/Button_Pack/PS3/PS3_R1.png new file mode 100644 index 00000000..722e405c Binary files /dev/null and b/docs/library/images/Button_Pack/PS3/PS3_R1.png differ diff --git a/docs/library/images/Button_Pack/PS3/PS3_R2.png b/docs/library/images/Button_Pack/PS3/PS3_R2.png new file mode 100644 index 00000000..f05529fe Binary files /dev/null and b/docs/library/images/Button_Pack/PS3/PS3_R2.png differ diff --git a/docs/library/images/Button_Pack/PS3/PS3_R3.png b/docs/library/images/Button_Pack/PS3/PS3_R3.png new file mode 100644 index 00000000..49d21925 Binary files /dev/null and b/docs/library/images/Button_Pack/PS3/PS3_R3.png differ diff --git a/docs/library/images/Button_Pack/PS3/PS3_Right_Stick.png b/docs/library/images/Button_Pack/PS3/PS3_Right_Stick.png new file mode 100644 index 00000000..374f589b Binary files /dev/null and b/docs/library/images/Button_Pack/PS3/PS3_Right_Stick.png differ diff --git a/docs/library/images/Button_Pack/PS3/PS3_Select.png b/docs/library/images/Button_Pack/PS3/PS3_Select.png new file mode 100644 index 00000000..b493aff6 Binary files /dev/null and b/docs/library/images/Button_Pack/PS3/PS3_Select.png differ diff --git a/docs/library/images/Button_Pack/PS3/PS3_Square.png b/docs/library/images/Button_Pack/PS3/PS3_Square.png new file mode 100644 index 00000000..3ad12864 Binary files /dev/null and b/docs/library/images/Button_Pack/PS3/PS3_Square.png differ diff --git a/docs/library/images/Button_Pack/PS3/PS3_Start.png b/docs/library/images/Button_Pack/PS3/PS3_Start.png new file mode 100644 index 00000000..3822fd85 Binary files /dev/null and b/docs/library/images/Button_Pack/PS3/PS3_Start.png differ diff --git a/docs/library/images/Button_Pack/PS3/PS3_Triangle.png b/docs/library/images/Button_Pack/PS3/PS3_Triangle.png new file mode 100644 index 00000000..9dcdbba8 Binary files /dev/null and b/docs/library/images/Button_Pack/PS3/PS3_Triangle.png differ diff --git a/docs/library/images/Button_Pack/PS4/PS4_Circle.png b/docs/library/images/Button_Pack/PS4/PS4_Circle.png new file mode 100644 index 00000000..10dd9b03 Binary files /dev/null and b/docs/library/images/Button_Pack/PS4/PS4_Circle.png differ diff --git a/docs/library/images/Button_Pack/PS4/PS4_Cross.png b/docs/library/images/Button_Pack/PS4/PS4_Cross.png new file mode 100644 index 00000000..73a42a70 Binary files /dev/null and b/docs/library/images/Button_Pack/PS4/PS4_Cross.png differ diff --git a/docs/library/images/Button_Pack/PS4/PS4_Dpad.png b/docs/library/images/Button_Pack/PS4/PS4_Dpad.png new file mode 100644 index 00000000..5a31103d Binary files /dev/null and b/docs/library/images/Button_Pack/PS4/PS4_Dpad.png differ diff --git a/docs/library/images/Button_Pack/PS4/PS4_Dpad_Down.png b/docs/library/images/Button_Pack/PS4/PS4_Dpad_Down.png new file mode 100644 index 00000000..dddcc0d4 Binary files /dev/null and b/docs/library/images/Button_Pack/PS4/PS4_Dpad_Down.png differ diff --git a/docs/library/images/Button_Pack/PS4/PS4_Dpad_Left.png b/docs/library/images/Button_Pack/PS4/PS4_Dpad_Left.png new file mode 100644 index 00000000..78beb635 Binary files /dev/null and b/docs/library/images/Button_Pack/PS4/PS4_Dpad_Left.png differ diff --git a/docs/library/images/Button_Pack/PS4/PS4_Dpad_Right.png b/docs/library/images/Button_Pack/PS4/PS4_Dpad_Right.png new file mode 100644 index 00000000..94a6590b Binary files /dev/null and b/docs/library/images/Button_Pack/PS4/PS4_Dpad_Right.png differ diff --git a/docs/library/images/Button_Pack/PS4/PS4_Dpad_Up.png b/docs/library/images/Button_Pack/PS4/PS4_Dpad_Up.png new file mode 100644 index 00000000..5bc87051 Binary files /dev/null and b/docs/library/images/Button_Pack/PS4/PS4_Dpad_Up.png differ diff --git a/docs/library/images/Button_Pack/PS4/PS4_L1.png b/docs/library/images/Button_Pack/PS4/PS4_L1.png new file mode 100644 index 00000000..6be5fcb9 Binary files /dev/null and b/docs/library/images/Button_Pack/PS4/PS4_L1.png differ diff --git a/docs/library/images/Button_Pack/PS4/PS4_L2.png b/docs/library/images/Button_Pack/PS4/PS4_L2.png new file mode 100644 index 00000000..7abdfeff Binary files /dev/null and b/docs/library/images/Button_Pack/PS4/PS4_L2.png differ diff --git a/docs/library/images/Button_Pack/PS4/PS4_Left_Stick.png b/docs/library/images/Button_Pack/PS4/PS4_Left_Stick.png new file mode 100644 index 00000000..61b6330a Binary files /dev/null and b/docs/library/images/Button_Pack/PS4/PS4_Left_Stick.png differ diff --git a/docs/library/images/Button_Pack/PS4/PS4_Options.png b/docs/library/images/Button_Pack/PS4/PS4_Options.png new file mode 100644 index 00000000..21820ed4 Binary files /dev/null and b/docs/library/images/Button_Pack/PS4/PS4_Options.png differ diff --git a/docs/library/images/Button_Pack/PS4/PS4_R1.png b/docs/library/images/Button_Pack/PS4/PS4_R1.png new file mode 100644 index 00000000..b296a5ed Binary files /dev/null and b/docs/library/images/Button_Pack/PS4/PS4_R1.png differ diff --git a/docs/library/images/Button_Pack/PS4/PS4_R2.png b/docs/library/images/Button_Pack/PS4/PS4_R2.png new file mode 100644 index 00000000..03038199 Binary files /dev/null and b/docs/library/images/Button_Pack/PS4/PS4_R2.png differ diff --git a/docs/library/images/Button_Pack/PS4/PS4_Right_Stick.png b/docs/library/images/Button_Pack/PS4/PS4_Right_Stick.png new file mode 100644 index 00000000..91d66f4e Binary files /dev/null and b/docs/library/images/Button_Pack/PS4/PS4_Right_Stick.png differ diff --git a/docs/library/images/Button_Pack/PS4/PS4_Share.png b/docs/library/images/Button_Pack/PS4/PS4_Share.png new file mode 100644 index 00000000..9a1c4aba Binary files /dev/null and b/docs/library/images/Button_Pack/PS4/PS4_Share.png differ diff --git a/docs/library/images/Button_Pack/PS4/PS4_Square.png b/docs/library/images/Button_Pack/PS4/PS4_Square.png new file mode 100644 index 00000000..3ad12864 Binary files /dev/null and b/docs/library/images/Button_Pack/PS4/PS4_Square.png differ diff --git a/docs/library/images/Button_Pack/PS4/PS4_Touch_Pad.png b/docs/library/images/Button_Pack/PS4/PS4_Touch_Pad.png new file mode 100644 index 00000000..2c8e7303 Binary files /dev/null and b/docs/library/images/Button_Pack/PS4/PS4_Touch_Pad.png differ diff --git a/docs/library/images/Button_Pack/PS4/PS4_Triangle.png b/docs/library/images/Button_Pack/PS4/PS4_Triangle.png new file mode 100644 index 00000000..9dcdbba8 Binary files /dev/null and b/docs/library/images/Button_Pack/PS4/PS4_Triangle.png differ diff --git a/docs/library/images/Button_Pack/PS_Vita/Vita_Bumper_Right.png b/docs/library/images/Button_Pack/PS_Vita/Vita_Bumper_Right.png new file mode 100644 index 00000000..012d0008 Binary files /dev/null and b/docs/library/images/Button_Pack/PS_Vita/Vita_Bumper_Right.png differ diff --git a/docs/library/images/Button_Pack/PS_Vita/Vita_Bumpter_Left.png b/docs/library/images/Button_Pack/PS_Vita/Vita_Bumpter_Left.png new file mode 100644 index 00000000..fb26d2cc Binary files /dev/null and b/docs/library/images/Button_Pack/PS_Vita/Vita_Bumpter_Left.png differ diff --git a/docs/library/images/Button_Pack/PS_Vita/Vita_Circle.png b/docs/library/images/Button_Pack/PS_Vita/Vita_Circle.png new file mode 100644 index 00000000..281fbe1f Binary files /dev/null and b/docs/library/images/Button_Pack/PS_Vita/Vita_Circle.png differ diff --git a/docs/library/images/Button_Pack/PS_Vita/Vita_Cross.png b/docs/library/images/Button_Pack/PS_Vita/Vita_Cross.png new file mode 100644 index 00000000..b7082f22 Binary files /dev/null and b/docs/library/images/Button_Pack/PS_Vita/Vita_Cross.png differ diff --git a/docs/library/images/Button_Pack/PS_Vita/Vita_Dpad.png b/docs/library/images/Button_Pack/PS_Vita/Vita_Dpad.png new file mode 100644 index 00000000..70a8a419 Binary files /dev/null and b/docs/library/images/Button_Pack/PS_Vita/Vita_Dpad.png differ diff --git a/docs/library/images/Button_Pack/PS_Vita/Vita_Dpad_Down.png b/docs/library/images/Button_Pack/PS_Vita/Vita_Dpad_Down.png new file mode 100644 index 00000000..e4f5d2e5 Binary files /dev/null and b/docs/library/images/Button_Pack/PS_Vita/Vita_Dpad_Down.png differ diff --git a/docs/library/images/Button_Pack/PS_Vita/Vita_Dpad_Left.png b/docs/library/images/Button_Pack/PS_Vita/Vita_Dpad_Left.png new file mode 100644 index 00000000..ead8c19c Binary files /dev/null and b/docs/library/images/Button_Pack/PS_Vita/Vita_Dpad_Left.png differ diff --git a/docs/library/images/Button_Pack/PS_Vita/Vita_Dpad_Right.png b/docs/library/images/Button_Pack/PS_Vita/Vita_Dpad_Right.png new file mode 100644 index 00000000..dbd9e938 Binary files /dev/null and b/docs/library/images/Button_Pack/PS_Vita/Vita_Dpad_Right.png differ diff --git a/docs/library/images/Button_Pack/PS_Vita/Vita_Dpad_Up.png b/docs/library/images/Button_Pack/PS_Vita/Vita_Dpad_Up.png new file mode 100644 index 00000000..53a65f4c Binary files /dev/null and b/docs/library/images/Button_Pack/PS_Vita/Vita_Dpad_Up.png differ diff --git a/docs/library/images/Button_Pack/PS_Vita/Vita_Left_Stick.png b/docs/library/images/Button_Pack/PS_Vita/Vita_Left_Stick.png new file mode 100644 index 00000000..4f97f57f Binary files /dev/null and b/docs/library/images/Button_Pack/PS_Vita/Vita_Left_Stick.png differ diff --git a/docs/library/images/Button_Pack/PS_Vita/Vita_Minus.png b/docs/library/images/Button_Pack/PS_Vita/Vita_Minus.png new file mode 100644 index 00000000..b6319bab Binary files /dev/null and b/docs/library/images/Button_Pack/PS_Vita/Vita_Minus.png differ diff --git a/docs/library/images/Button_Pack/PS_Vita/Vita_Plus.png b/docs/library/images/Button_Pack/PS_Vita/Vita_Plus.png new file mode 100644 index 00000000..1a0efd09 Binary files /dev/null and b/docs/library/images/Button_Pack/PS_Vita/Vita_Plus.png differ diff --git a/docs/library/images/Button_Pack/PS_Vita/Vita_Power.png b/docs/library/images/Button_Pack/PS_Vita/Vita_Power.png new file mode 100644 index 00000000..d4ca3efa Binary files /dev/null and b/docs/library/images/Button_Pack/PS_Vita/Vita_Power.png differ diff --git a/docs/library/images/Button_Pack/PS_Vita/Vita_Right_Stick.png b/docs/library/images/Button_Pack/PS_Vita/Vita_Right_Stick.png new file mode 100644 index 00000000..3a99355a Binary files /dev/null and b/docs/library/images/Button_Pack/PS_Vita/Vita_Right_Stick.png differ diff --git a/docs/library/images/Button_Pack/PS_Vita/Vita_Select.png b/docs/library/images/Button_Pack/PS_Vita/Vita_Select.png new file mode 100644 index 00000000..ccb43caa Binary files /dev/null and b/docs/library/images/Button_Pack/PS_Vita/Vita_Select.png differ diff --git a/docs/library/images/Button_Pack/PS_Vita/Vita_Square.png b/docs/library/images/Button_Pack/PS_Vita/Vita_Square.png new file mode 100644 index 00000000..1c834a29 Binary files /dev/null and b/docs/library/images/Button_Pack/PS_Vita/Vita_Square.png differ diff --git a/docs/library/images/Button_Pack/PS_Vita/Vita_Start.png b/docs/library/images/Button_Pack/PS_Vita/Vita_Start.png new file mode 100644 index 00000000..8c6c1a83 Binary files /dev/null and b/docs/library/images/Button_Pack/PS_Vita/Vita_Start.png differ diff --git a/docs/library/images/Button_Pack/PS_Vita/Vita_Touch_Pad.png b/docs/library/images/Button_Pack/PS_Vita/Vita_Touch_Pad.png new file mode 100644 index 00000000..7c3e261b Binary files /dev/null and b/docs/library/images/Button_Pack/PS_Vita/Vita_Touch_Pad.png differ diff --git a/docs/library/images/Button_Pack/PS_Vita/Vita_Triangle.png b/docs/library/images/Button_Pack/PS_Vita/Vita_Triangle.png new file mode 100644 index 00000000..152e25be Binary files /dev/null and b/docs/library/images/Button_Pack/PS_Vita/Vita_Triangle.png differ diff --git a/docs/library/images/Button_Pack/Preview.gif b/docs/library/images/Button_Pack/Preview.gif new file mode 100644 index 00000000..a9ec4c28 Binary files /dev/null and b/docs/library/images/Button_Pack/Preview.gif differ diff --git a/docs/library/images/Button_Pack/Readme.txt b/docs/library/images/Button_Pack/Readme.txt new file mode 100644 index 00000000..5db156a5 --- /dev/null +++ b/docs/library/images/Button_Pack/Readme.txt @@ -0,0 +1,77 @@ +Hey there! + +Hope you make good use of this pack. You can use all these assets in any project you want to (be it commercial or not). +All of the assets are in the public domain under Creative Commons 0 (CC0) + +In this pack you will find over 500 buttons including: + +Xbox 360 controller +Xbox One controller +Play Station 3 controller +Play Station 4 controller +Play Station Move +PS Vita +Vive Controller +Oculus Controllers & Remote +Wii Controller +Wii U Controller +Nintentdo Switch +Steam Controller (Updated to commercial version) +Ouya +Keyboard and mouse buttons (Both in black and white including blanks) +Directional arrows for thumb sticks and movement keys +Touch Screen Gestures + +---------------------------------- + +I am "Nicolae Berbece" (also known as Xelu), I founded "Those Awesome Guys" and made "Move or Die" which is out right now on Steam. +You can contact me at nick@thoseawesomeguys.com + +Feel free to credit me in case you use anything in this pack, but don't worry, I won't mind if you don't. ;) + +Please share this pack with other fellow developers in need of such assets! In the spirit of good old chain mail, if you share this pack with 5 fellow devs, your game's steam review score will rise by 7% and a notable twitch streamer will pick it up for his stream. + +Keep making awesome things!!! + +~Nick + + + + + +Here is a semi-updated list of games using these prompts: +---------------------------- +Mega Man Legacy +Postal 2 +Postal Redux +RWBY +Heat Signature +Turbo Dismount +Fallen Legion +20XX +Obduction +Battle Chef Brigade +Phantom Brigade +Redirection +Defender's Quest +Roundabout +Arena 3D +Super Comboman +Disc Jam +Mayan Death Robots +Sentris +Unbox +Induction +Shadow Warrior 2 +The Flock +Deputy dangle +Tumblestone +Solbrain Knight of Darkness +SSMP +Distance +Idarb +Earthlock +Everspace +Pylon Rogue +The Church in the darkness +Sword n' Board \ No newline at end of file diff --git a/docs/library/images/Button_Pack/SNES/SNES_A.png b/docs/library/images/Button_Pack/SNES/SNES_A.png new file mode 100644 index 00000000..ecabb05c Binary files /dev/null and b/docs/library/images/Button_Pack/SNES/SNES_A.png differ diff --git a/docs/library/images/Button_Pack/SNES/SNES_B.png b/docs/library/images/Button_Pack/SNES/SNES_B.png new file mode 100644 index 00000000..70a15d5a Binary files /dev/null and b/docs/library/images/Button_Pack/SNES/SNES_B.png differ diff --git a/docs/library/images/Button_Pack/SNES/SNES_Dpad.png b/docs/library/images/Button_Pack/SNES/SNES_Dpad.png new file mode 100644 index 00000000..9c04c85d Binary files /dev/null and b/docs/library/images/Button_Pack/SNES/SNES_Dpad.png differ diff --git a/docs/library/images/Button_Pack/SNES/SNES_L.png b/docs/library/images/Button_Pack/SNES/SNES_L.png new file mode 100644 index 00000000..7ae8e459 Binary files /dev/null and b/docs/library/images/Button_Pack/SNES/SNES_L.png differ diff --git a/docs/library/images/Button_Pack/SNES/SNES_R.png b/docs/library/images/Button_Pack/SNES/SNES_R.png new file mode 100644 index 00000000..a71bd579 Binary files /dev/null and b/docs/library/images/Button_Pack/SNES/SNES_R.png differ diff --git a/docs/library/images/Button_Pack/SNES/SNES_Select.png b/docs/library/images/Button_Pack/SNES/SNES_Select.png new file mode 100644 index 00000000..c7a4b470 Binary files /dev/null and b/docs/library/images/Button_Pack/SNES/SNES_Select.png differ diff --git a/docs/library/images/Button_Pack/SNES/SNES_Start.png b/docs/library/images/Button_Pack/SNES/SNES_Start.png new file mode 100644 index 00000000..6304e30a Binary files /dev/null and b/docs/library/images/Button_Pack/SNES/SNES_Start.png differ diff --git a/docs/library/images/Button_Pack/SNES/SNES_X.png b/docs/library/images/Button_Pack/SNES/SNES_X.png new file mode 100644 index 00000000..6e9ddfed Binary files /dev/null and b/docs/library/images/Button_Pack/SNES/SNES_X.png differ diff --git a/docs/library/images/Button_Pack/SNES/SNES_Y.png b/docs/library/images/Button_Pack/SNES/SNES_Y.png new file mode 100644 index 00000000..387940cd Binary files /dev/null and b/docs/library/images/Button_Pack/SNES/SNES_Y.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_A.png b/docs/library/images/Button_Pack/Steam/Steam_A.png new file mode 100644 index 00000000..60c214fd Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_A.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_B.png b/docs/library/images/Button_Pack/Steam/Steam_B.png new file mode 100644 index 00000000..a1ba1a0d Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_B.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_Back.png b/docs/library/images/Button_Pack/Steam/Steam_Back.png new file mode 100644 index 00000000..147eca26 Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_Back.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_Gyro.png b/docs/library/images/Button_Pack/Steam/Steam_Gyro.png new file mode 100644 index 00000000..6e620849 Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_Gyro.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_LB.png b/docs/library/images/Button_Pack/Steam/Steam_LB.png new file mode 100644 index 00000000..867ad60f Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_LB.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_LT.png b/docs/library/images/Button_Pack/Steam/Steam_LT.png new file mode 100644 index 00000000..1890ea27 Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_LT.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_Left_Grip.png b/docs/library/images/Button_Pack/Steam/Steam_Left_Grip.png new file mode 100644 index 00000000..b9417c03 Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_Left_Grip.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_Left_Track.png b/docs/library/images/Button_Pack/Steam/Steam_Left_Track.png new file mode 100644 index 00000000..59f9ae12 Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_Left_Track.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_Left_Track_Center.png b/docs/library/images/Button_Pack/Steam/Steam_Left_Track_Center.png new file mode 100644 index 00000000..37fc0f99 Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_Left_Track_Center.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_Left_Track_Down.png b/docs/library/images/Button_Pack/Steam/Steam_Left_Track_Down.png new file mode 100644 index 00000000..92c62eab Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_Left_Track_Down.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_Left_Track_Left.png b/docs/library/images/Button_Pack/Steam/Steam_Left_Track_Left.png new file mode 100644 index 00000000..23981de2 Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_Left_Track_Left.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_Left_Track_Right.png b/docs/library/images/Button_Pack/Steam/Steam_Left_Track_Right.png new file mode 100644 index 00000000..8b936ff4 Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_Left_Track_Right.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_Left_Track_Up.png b/docs/library/images/Button_Pack/Steam/Steam_Left_Track_Up.png new file mode 100644 index 00000000..419ce70b Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_Left_Track_Up.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_RB.png b/docs/library/images/Button_Pack/Steam/Steam_RB.png new file mode 100644 index 00000000..4304c0f1 Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_RB.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_RT.png b/docs/library/images/Button_Pack/Steam/Steam_RT.png new file mode 100644 index 00000000..ee4d7de4 Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_RT.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_Right_Grip.png b/docs/library/images/Button_Pack/Steam/Steam_Right_Grip.png new file mode 100644 index 00000000..6545b079 Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_Right_Grip.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_Right_Track.png b/docs/library/images/Button_Pack/Steam/Steam_Right_Track.png new file mode 100644 index 00000000..baefb364 Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_Right_Track.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_Right_Track_Center.png b/docs/library/images/Button_Pack/Steam/Steam_Right_Track_Center.png new file mode 100644 index 00000000..b6b9e2fe Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_Right_Track_Center.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_Right_Track_Down.png b/docs/library/images/Button_Pack/Steam/Steam_Right_Track_Down.png new file mode 100644 index 00000000..7ee27fa4 Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_Right_Track_Down.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_Right_Track_Left.png b/docs/library/images/Button_Pack/Steam/Steam_Right_Track_Left.png new file mode 100644 index 00000000..0867facd Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_Right_Track_Left.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_Right_Track_Right.png b/docs/library/images/Button_Pack/Steam/Steam_Right_Track_Right.png new file mode 100644 index 00000000..704e8aec Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_Right_Track_Right.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_Right_Track_Up.png b/docs/library/images/Button_Pack/Steam/Steam_Right_Track_Up.png new file mode 100644 index 00000000..b6fed1ec Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_Right_Track_Up.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_Start.png b/docs/library/images/Button_Pack/Steam/Steam_Start.png new file mode 100644 index 00000000..a088743f Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_Start.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_Stick.png b/docs/library/images/Button_Pack/Steam/Steam_Stick.png new file mode 100644 index 00000000..182e6619 Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_Stick.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_System.png b/docs/library/images/Button_Pack/Steam/Steam_System.png new file mode 100644 index 00000000..52e02bae Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_System.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_Tilt_Pitch.png b/docs/library/images/Button_Pack/Steam/Steam_Tilt_Pitch.png new file mode 100644 index 00000000..3b4b312d Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_Tilt_Pitch.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_Tilt_Roll.png b/docs/library/images/Button_Pack/Steam/Steam_Tilt_Roll.png new file mode 100644 index 00000000..f452d1bd Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_Tilt_Roll.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_Tilt_Yaw.png b/docs/library/images/Button_Pack/Steam/Steam_Tilt_Yaw.png new file mode 100644 index 00000000..7d40a296 Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_Tilt_Yaw.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_X.png b/docs/library/images/Button_Pack/Steam/Steam_X.png new file mode 100644 index 00000000..a8e9df1a Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_X.png differ diff --git a/docs/library/images/Button_Pack/Steam/Steam_Y.png b/docs/library/images/Button_Pack/Steam/Steam_Y.png new file mode 100644 index 00000000..16c2fc75 Binary files /dev/null and b/docs/library/images/Button_Pack/Steam/Steam_Y.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_A.png b/docs/library/images/Button_Pack/Switch/Switch_A.png new file mode 100644 index 00000000..df756ef0 Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_A.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_B.png b/docs/library/images/Button_Pack/Switch/Switch_B.png new file mode 100644 index 00000000..ea7e7438 Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_B.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_Controller_Left.png b/docs/library/images/Button_Pack/Switch/Switch_Controller_Left.png new file mode 100644 index 00000000..f90a2441 Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_Controller_Left.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_Controller_Right.png b/docs/library/images/Button_Pack/Switch/Switch_Controller_Right.png new file mode 100644 index 00000000..873da7ed Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_Controller_Right.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_Controllers.png b/docs/library/images/Button_Pack/Switch/Switch_Controllers.png new file mode 100644 index 00000000..b6ee54d4 Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_Controllers.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_Controllers_Separate.png b/docs/library/images/Button_Pack/Switch/Switch_Controllers_Separate.png new file mode 100644 index 00000000..0c019da2 Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_Controllers_Separate.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_Down.png b/docs/library/images/Button_Pack/Switch/Switch_Down.png new file mode 100644 index 00000000..7b7b2b29 Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_Down.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_Dpad.png b/docs/library/images/Button_Pack/Switch/Switch_Dpad.png new file mode 100644 index 00000000..12f01eb3 Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_Dpad.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_Dpad_Down.png b/docs/library/images/Button_Pack/Switch/Switch_Dpad_Down.png new file mode 100644 index 00000000..37f6d5b1 Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_Dpad_Down.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_Dpad_Left.png b/docs/library/images/Button_Pack/Switch/Switch_Dpad_Left.png new file mode 100644 index 00000000..8efd7a40 Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_Dpad_Left.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_Dpad_Right.png b/docs/library/images/Button_Pack/Switch/Switch_Dpad_Right.png new file mode 100644 index 00000000..8b5411db Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_Dpad_Right.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_Dpad_Up.png b/docs/library/images/Button_Pack/Switch/Switch_Dpad_Up.png new file mode 100644 index 00000000..700a8ba7 Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_Dpad_Up.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_Home.png b/docs/library/images/Button_Pack/Switch/Switch_Home.png new file mode 100644 index 00000000..9b6733c0 Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_Home.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_LB.png b/docs/library/images/Button_Pack/Switch/Switch_LB.png new file mode 100644 index 00000000..fedbbed3 Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_LB.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_LT.png b/docs/library/images/Button_Pack/Switch/Switch_LT.png new file mode 100644 index 00000000..8f7a8f84 Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_LT.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_Left.png b/docs/library/images/Button_Pack/Switch/Switch_Left.png new file mode 100644 index 00000000..fd58439e Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_Left.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_Left_Stick.png b/docs/library/images/Button_Pack/Switch/Switch_Left_Stick.png new file mode 100644 index 00000000..d861ca5b Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_Left_Stick.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_Minus.png b/docs/library/images/Button_Pack/Switch/Switch_Minus.png new file mode 100644 index 00000000..d32608e1 Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_Minus.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_Plus.png b/docs/library/images/Button_Pack/Switch/Switch_Plus.png new file mode 100644 index 00000000..f1b0dc48 Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_Plus.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_RB.png b/docs/library/images/Button_Pack/Switch/Switch_RB.png new file mode 100644 index 00000000..4660c257 Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_RB.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_RT.png b/docs/library/images/Button_Pack/Switch/Switch_RT.png new file mode 100644 index 00000000..3d25a4f4 Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_RT.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_Right.png b/docs/library/images/Button_Pack/Switch/Switch_Right.png new file mode 100644 index 00000000..f524c6c9 Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_Right.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_Right_Stick.png b/docs/library/images/Button_Pack/Switch/Switch_Right_Stick.png new file mode 100644 index 00000000..f2c605b7 Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_Right_Stick.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_Square.png b/docs/library/images/Button_Pack/Switch/Switch_Square.png new file mode 100644 index 00000000..d0fd4324 Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_Square.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_Up.png b/docs/library/images/Button_Pack/Switch/Switch_Up.png new file mode 100644 index 00000000..352f890b Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_Up.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_X.png b/docs/library/images/Button_Pack/Switch/Switch_X.png new file mode 100644 index 00000000..bdf86ba7 Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_X.png differ diff --git a/docs/library/images/Button_Pack/Switch/Switch_Y.png b/docs/library/images/Button_Pack/Switch/Switch_Y.png new file mode 100644 index 00000000..46ac2160 Binary files /dev/null and b/docs/library/images/Button_Pack/Switch/Switch_Y.png differ diff --git a/docs/library/images/Button_Pack/Vector Source.fla b/docs/library/images/Button_Pack/Vector Source.fla new file mode 100644 index 00000000..627fe18e Binary files /dev/null and b/docs/library/images/Button_Pack/Vector Source.fla differ diff --git a/docs/library/images/Button_Pack/Vive/Vive_Controller_Left.png b/docs/library/images/Button_Pack/Vive/Vive_Controller_Left.png new file mode 100644 index 00000000..99d633c1 Binary files /dev/null and b/docs/library/images/Button_Pack/Vive/Vive_Controller_Left.png differ diff --git a/docs/library/images/Button_Pack/Vive/Vive_Controller_Right.png b/docs/library/images/Button_Pack/Vive/Vive_Controller_Right.png new file mode 100644 index 00000000..4486f9f8 Binary files /dev/null and b/docs/library/images/Button_Pack/Vive/Vive_Controller_Right.png differ diff --git a/docs/library/images/Button_Pack/Vive/Vive_Controllers.png b/docs/library/images/Button_Pack/Vive/Vive_Controllers.png new file mode 100644 index 00000000..cd3f2130 Binary files /dev/null and b/docs/library/images/Button_Pack/Vive/Vive_Controllers.png differ diff --git a/docs/library/images/Button_Pack/Vive/Vive_Girp_Left.png b/docs/library/images/Button_Pack/Vive/Vive_Girp_Left.png new file mode 100644 index 00000000..233149e2 Binary files /dev/null and b/docs/library/images/Button_Pack/Vive/Vive_Girp_Left.png differ diff --git a/docs/library/images/Button_Pack/Vive/Vive_Grip_Right.png b/docs/library/images/Button_Pack/Vive/Vive_Grip_Right.png new file mode 100644 index 00000000..b370a7f7 Binary files /dev/null and b/docs/library/images/Button_Pack/Vive/Vive_Grip_Right.png differ diff --git a/docs/library/images/Button_Pack/Vive/Vive_Hand_Left.png b/docs/library/images/Button_Pack/Vive/Vive_Hand_Left.png new file mode 100644 index 00000000..f4031217 Binary files /dev/null and b/docs/library/images/Button_Pack/Vive/Vive_Hand_Left.png differ diff --git a/docs/library/images/Button_Pack/Vive/Vive_Hand_Right.png b/docs/library/images/Button_Pack/Vive/Vive_Hand_Right.png new file mode 100644 index 00000000..5110f2e8 Binary files /dev/null and b/docs/library/images/Button_Pack/Vive/Vive_Hand_Right.png differ diff --git a/docs/library/images/Button_Pack/Vive/Vive_Hold_Left.png b/docs/library/images/Button_Pack/Vive/Vive_Hold_Left.png new file mode 100644 index 00000000..4880e285 Binary files /dev/null and b/docs/library/images/Button_Pack/Vive/Vive_Hold_Left.png differ diff --git a/docs/library/images/Button_Pack/Vive/Vive_Hold_Right.png b/docs/library/images/Button_Pack/Vive/Vive_Hold_Right.png new file mode 100644 index 00000000..609fd501 Binary files /dev/null and b/docs/library/images/Button_Pack/Vive/Vive_Hold_Right.png differ diff --git a/docs/library/images/Button_Pack/Vive/Vive_LT.png b/docs/library/images/Button_Pack/Vive/Vive_LT.png new file mode 100644 index 00000000..51abb05e Binary files /dev/null and b/docs/library/images/Button_Pack/Vive/Vive_LT.png differ diff --git a/docs/library/images/Button_Pack/Vive/Vive_Menu.png b/docs/library/images/Button_Pack/Vive/Vive_Menu.png new file mode 100644 index 00000000..6d04ba98 Binary files /dev/null and b/docs/library/images/Button_Pack/Vive/Vive_Menu.png differ diff --git a/docs/library/images/Button_Pack/Vive/Vive_RT.png b/docs/library/images/Button_Pack/Vive/Vive_RT.png new file mode 100644 index 00000000..88883c2f Binary files /dev/null and b/docs/library/images/Button_Pack/Vive/Vive_RT.png differ diff --git a/docs/library/images/Button_Pack/Vive/Vive_System.png b/docs/library/images/Button_Pack/Vive/Vive_System.png new file mode 100644 index 00000000..7cb73984 Binary files /dev/null and b/docs/library/images/Button_Pack/Vive/Vive_System.png differ diff --git a/docs/library/images/Button_Pack/Vive/Vive_Touch.png b/docs/library/images/Button_Pack/Vive/Vive_Touch.png new file mode 100644 index 00000000..baefb364 Binary files /dev/null and b/docs/library/images/Button_Pack/Vive/Vive_Touch.png differ diff --git a/docs/library/images/Button_Pack/Vive/Vive_Touch_Center.png b/docs/library/images/Button_Pack/Vive/Vive_Touch_Center.png new file mode 100644 index 00000000..b6b9e2fe Binary files /dev/null and b/docs/library/images/Button_Pack/Vive/Vive_Touch_Center.png differ diff --git a/docs/library/images/Button_Pack/Vive/Vive_Touch_Down.png b/docs/library/images/Button_Pack/Vive/Vive_Touch_Down.png new file mode 100644 index 00000000..7ee27fa4 Binary files /dev/null and b/docs/library/images/Button_Pack/Vive/Vive_Touch_Down.png differ diff --git a/docs/library/images/Button_Pack/Vive/Vive_Touch_Left.png b/docs/library/images/Button_Pack/Vive/Vive_Touch_Left.png new file mode 100644 index 00000000..0867facd Binary files /dev/null and b/docs/library/images/Button_Pack/Vive/Vive_Touch_Left.png differ diff --git a/docs/library/images/Button_Pack/Vive/Vive_Touch_Right.png b/docs/library/images/Button_Pack/Vive/Vive_Touch_Right.png new file mode 100644 index 00000000..704e8aec Binary files /dev/null and b/docs/library/images/Button_Pack/Vive/Vive_Touch_Right.png differ diff --git a/docs/library/images/Button_Pack/Vive/Vive_Touch_Scroll_Left.png b/docs/library/images/Button_Pack/Vive/Vive_Touch_Scroll_Left.png new file mode 100644 index 00000000..c761991f Binary files /dev/null and b/docs/library/images/Button_Pack/Vive/Vive_Touch_Scroll_Left.png differ diff --git a/docs/library/images/Button_Pack/Vive/Vive_Touch_Scroll_Right.png b/docs/library/images/Button_Pack/Vive/Vive_Touch_Scroll_Right.png new file mode 100644 index 00000000..256577e4 Binary files /dev/null and b/docs/library/images/Button_Pack/Vive/Vive_Touch_Scroll_Right.png differ diff --git a/docs/library/images/Button_Pack/Vive/Vive_Touch_Up.png b/docs/library/images/Button_Pack/Vive/Vive_Touch_Up.png new file mode 100644 index 00000000..b6fed1ec Binary files /dev/null and b/docs/library/images/Button_Pack/Vive/Vive_Touch_Up.png differ diff --git a/docs/library/images/Button_Pack/Vive/Vive_TriggerBlank.png b/docs/library/images/Button_Pack/Vive/Vive_TriggerBlank.png new file mode 100644 index 00000000..a279f3e8 Binary files /dev/null and b/docs/library/images/Button_Pack/Vive/Vive_TriggerBlank.png differ diff --git a/docs/library/images/Button_Pack/Wii/Wii_1.png b/docs/library/images/Button_Pack/Wii/Wii_1.png new file mode 100644 index 00000000..4b226def Binary files /dev/null and b/docs/library/images/Button_Pack/Wii/Wii_1.png differ diff --git a/docs/library/images/Button_Pack/Wii/Wii_2.png b/docs/library/images/Button_Pack/Wii/Wii_2.png new file mode 100644 index 00000000..4d871971 Binary files /dev/null and b/docs/library/images/Button_Pack/Wii/Wii_2.png differ diff --git a/docs/library/images/Button_Pack/Wii/Wii_A.png b/docs/library/images/Button_Pack/Wii/Wii_A.png new file mode 100644 index 00000000..b2d443f1 Binary files /dev/null and b/docs/library/images/Button_Pack/Wii/Wii_A.png differ diff --git a/docs/library/images/Button_Pack/Wii/Wii_B.png b/docs/library/images/Button_Pack/Wii/Wii_B.png new file mode 100644 index 00000000..86e1c4a8 Binary files /dev/null and b/docs/library/images/Button_Pack/Wii/Wii_B.png differ diff --git a/docs/library/images/Button_Pack/Wii/Wii_C.png b/docs/library/images/Button_Pack/Wii/Wii_C.png new file mode 100644 index 00000000..de16105f Binary files /dev/null and b/docs/library/images/Button_Pack/Wii/Wii_C.png differ diff --git a/docs/library/images/Button_Pack/Wii/Wii_Dpad.png b/docs/library/images/Button_Pack/Wii/Wii_Dpad.png new file mode 100644 index 00000000..8f324b9d Binary files /dev/null and b/docs/library/images/Button_Pack/Wii/Wii_Dpad.png differ diff --git a/docs/library/images/Button_Pack/Wii/Wii_Dpad_Down.png b/docs/library/images/Button_Pack/Wii/Wii_Dpad_Down.png new file mode 100644 index 00000000..f981ebc3 Binary files /dev/null and b/docs/library/images/Button_Pack/Wii/Wii_Dpad_Down.png differ diff --git a/docs/library/images/Button_Pack/Wii/Wii_Dpad_Left.png b/docs/library/images/Button_Pack/Wii/Wii_Dpad_Left.png new file mode 100644 index 00000000..dda953fa Binary files /dev/null and b/docs/library/images/Button_Pack/Wii/Wii_Dpad_Left.png differ diff --git a/docs/library/images/Button_Pack/Wii/Wii_Dpad_Right.png b/docs/library/images/Button_Pack/Wii/Wii_Dpad_Right.png new file mode 100644 index 00000000..7acfc795 Binary files /dev/null and b/docs/library/images/Button_Pack/Wii/Wii_Dpad_Right.png differ diff --git a/docs/library/images/Button_Pack/Wii/Wii_Dpad_Up.png b/docs/library/images/Button_Pack/Wii/Wii_Dpad_Up.png new file mode 100644 index 00000000..27f08b66 Binary files /dev/null and b/docs/library/images/Button_Pack/Wii/Wii_Dpad_Up.png differ diff --git a/docs/library/images/Button_Pack/Wii/Wii_Home.png b/docs/library/images/Button_Pack/Wii/Wii_Home.png new file mode 100644 index 00000000..ff6c3e9a Binary files /dev/null and b/docs/library/images/Button_Pack/Wii/Wii_Home.png differ diff --git a/docs/library/images/Button_Pack/Wii/Wii_Minus.png b/docs/library/images/Button_Pack/Wii/Wii_Minus.png new file mode 100644 index 00000000..eb5dcce2 Binary files /dev/null and b/docs/library/images/Button_Pack/Wii/Wii_Minus.png differ diff --git a/docs/library/images/Button_Pack/Wii/Wii_Plus.png b/docs/library/images/Button_Pack/Wii/Wii_Plus.png new file mode 100644 index 00000000..b7868e47 Binary files /dev/null and b/docs/library/images/Button_Pack/Wii/Wii_Plus.png differ diff --git a/docs/library/images/Button_Pack/Wii/Wii_Power.png b/docs/library/images/Button_Pack/Wii/Wii_Power.png new file mode 100644 index 00000000..98c89c41 Binary files /dev/null and b/docs/library/images/Button_Pack/Wii/Wii_Power.png differ diff --git a/docs/library/images/Button_Pack/Wii/Wii_Stick.png b/docs/library/images/Button_Pack/Wii/Wii_Stick.png new file mode 100644 index 00000000..80405032 Binary files /dev/null and b/docs/library/images/Button_Pack/Wii/Wii_Stick.png differ diff --git a/docs/library/images/Button_Pack/Wii/Wii_Z.png b/docs/library/images/Button_Pack/Wii/Wii_Z.png new file mode 100644 index 00000000..0f8bf55f Binary files /dev/null and b/docs/library/images/Button_Pack/Wii/Wii_Z.png differ diff --git a/docs/library/images/Button_Pack/WiiU/WiiU_1.png b/docs/library/images/Button_Pack/WiiU/WiiU_1.png new file mode 100644 index 00000000..4b226def Binary files /dev/null and b/docs/library/images/Button_Pack/WiiU/WiiU_1.png differ diff --git a/docs/library/images/Button_Pack/WiiU/WiiU_2.png b/docs/library/images/Button_Pack/WiiU/WiiU_2.png new file mode 100644 index 00000000..4d871971 Binary files /dev/null and b/docs/library/images/Button_Pack/WiiU/WiiU_2.png differ diff --git a/docs/library/images/Button_Pack/WiiU/WiiU_A.png b/docs/library/images/Button_Pack/WiiU/WiiU_A.png new file mode 100644 index 00000000..b2d443f1 Binary files /dev/null and b/docs/library/images/Button_Pack/WiiU/WiiU_A.png differ diff --git a/docs/library/images/Button_Pack/WiiU/WiiU_B.png b/docs/library/images/Button_Pack/WiiU/WiiU_B.png new file mode 100644 index 00000000..54449d5d Binary files /dev/null and b/docs/library/images/Button_Pack/WiiU/WiiU_B.png differ diff --git a/docs/library/images/Button_Pack/WiiU/WiiU_Dpad.png b/docs/library/images/Button_Pack/WiiU/WiiU_Dpad.png new file mode 100644 index 00000000..8f324b9d Binary files /dev/null and b/docs/library/images/Button_Pack/WiiU/WiiU_Dpad.png differ diff --git a/docs/library/images/Button_Pack/WiiU/WiiU_Dpad_Down.png b/docs/library/images/Button_Pack/WiiU/WiiU_Dpad_Down.png new file mode 100644 index 00000000..f981ebc3 Binary files /dev/null and b/docs/library/images/Button_Pack/WiiU/WiiU_Dpad_Down.png differ diff --git a/docs/library/images/Button_Pack/WiiU/WiiU_Dpad_Left.png b/docs/library/images/Button_Pack/WiiU/WiiU_Dpad_Left.png new file mode 100644 index 00000000..dda953fa Binary files /dev/null and b/docs/library/images/Button_Pack/WiiU/WiiU_Dpad_Left.png differ diff --git a/docs/library/images/Button_Pack/WiiU/WiiU_Dpad_Right.png b/docs/library/images/Button_Pack/WiiU/WiiU_Dpad_Right.png new file mode 100644 index 00000000..7acfc795 Binary files /dev/null and b/docs/library/images/Button_Pack/WiiU/WiiU_Dpad_Right.png differ diff --git a/docs/library/images/Button_Pack/WiiU/WiiU_Dpad_Up.png b/docs/library/images/Button_Pack/WiiU/WiiU_Dpad_Up.png new file mode 100644 index 00000000..27f08b66 Binary files /dev/null and b/docs/library/images/Button_Pack/WiiU/WiiU_Dpad_Up.png differ diff --git a/docs/library/images/Button_Pack/WiiU/WiiU_Home.png b/docs/library/images/Button_Pack/WiiU/WiiU_Home.png new file mode 100644 index 00000000..ccda3a08 Binary files /dev/null and b/docs/library/images/Button_Pack/WiiU/WiiU_Home.png differ diff --git a/docs/library/images/Button_Pack/WiiU/WiiU_L.png b/docs/library/images/Button_Pack/WiiU/WiiU_L.png new file mode 100644 index 00000000..c7fdc348 Binary files /dev/null and b/docs/library/images/Button_Pack/WiiU/WiiU_L.png differ diff --git a/docs/library/images/Button_Pack/WiiU/WiiU_Left_Stick.png b/docs/library/images/Button_Pack/WiiU/WiiU_Left_Stick.png new file mode 100644 index 00000000..6de9f227 Binary files /dev/null and b/docs/library/images/Button_Pack/WiiU/WiiU_Left_Stick.png differ diff --git a/docs/library/images/Button_Pack/WiiU/WiiU_Look_Down.png b/docs/library/images/Button_Pack/WiiU/WiiU_Look_Down.png new file mode 100644 index 00000000..94ff7eec Binary files /dev/null and b/docs/library/images/Button_Pack/WiiU/WiiU_Look_Down.png differ diff --git a/docs/library/images/Button_Pack/WiiU/WiiU_Look_Up.png b/docs/library/images/Button_Pack/WiiU/WiiU_Look_Up.png new file mode 100644 index 00000000..b44a9226 Binary files /dev/null and b/docs/library/images/Button_Pack/WiiU/WiiU_Look_Up.png differ diff --git a/docs/library/images/Button_Pack/WiiU/WiiU_Minus.png b/docs/library/images/Button_Pack/WiiU/WiiU_Minus.png new file mode 100644 index 00000000..eb5dcce2 Binary files /dev/null and b/docs/library/images/Button_Pack/WiiU/WiiU_Minus.png differ diff --git a/docs/library/images/Button_Pack/WiiU/WiiU_Plus.png b/docs/library/images/Button_Pack/WiiU/WiiU_Plus.png new file mode 100644 index 00000000..b7868e47 Binary files /dev/null and b/docs/library/images/Button_Pack/WiiU/WiiU_Plus.png differ diff --git a/docs/library/images/Button_Pack/WiiU/WiiU_Power.png b/docs/library/images/Button_Pack/WiiU/WiiU_Power.png new file mode 100644 index 00000000..98c89c41 Binary files /dev/null and b/docs/library/images/Button_Pack/WiiU/WiiU_Power.png differ diff --git a/docs/library/images/Button_Pack/WiiU/WiiU_R.png b/docs/library/images/Button_Pack/WiiU/WiiU_R.png new file mode 100644 index 00000000..8aceed04 Binary files /dev/null and b/docs/library/images/Button_Pack/WiiU/WiiU_R.png differ diff --git a/docs/library/images/Button_Pack/WiiU/WiiU_Right_Stick.png b/docs/library/images/Button_Pack/WiiU/WiiU_Right_Stick.png new file mode 100644 index 00000000..ab213f0e Binary files /dev/null and b/docs/library/images/Button_Pack/WiiU/WiiU_Right_Stick.png differ diff --git a/docs/library/images/Button_Pack/WiiU/WiiU_TV.png b/docs/library/images/Button_Pack/WiiU/WiiU_TV.png new file mode 100644 index 00000000..db969eee Binary files /dev/null and b/docs/library/images/Button_Pack/WiiU/WiiU_TV.png differ diff --git a/docs/library/images/Button_Pack/WiiU/WiiU_X.png b/docs/library/images/Button_Pack/WiiU/WiiU_X.png new file mode 100644 index 00000000..d4455aee Binary files /dev/null and b/docs/library/images/Button_Pack/WiiU/WiiU_X.png differ diff --git a/docs/library/images/Button_Pack/WiiU/WiiU_Y.png b/docs/library/images/Button_Pack/WiiU/WiiU_Y.png new file mode 100644 index 00000000..b37c22e6 Binary files /dev/null and b/docs/library/images/Button_Pack/WiiU/WiiU_Y.png differ diff --git a/docs/library/images/Button_Pack/WiiU/WiiU_ZL.png b/docs/library/images/Button_Pack/WiiU/WiiU_ZL.png new file mode 100644 index 00000000..d43da059 Binary files /dev/null and b/docs/library/images/Button_Pack/WiiU/WiiU_ZL.png differ diff --git a/docs/library/images/Button_Pack/WiiU/WiiU_ZR.png b/docs/library/images/Button_Pack/WiiU/WiiU_ZR.png new file mode 100644 index 00000000..aff7ed00 Binary files /dev/null and b/docs/library/images/Button_Pack/WiiU/WiiU_ZR.png differ diff --git a/docs/library/images/Button_Pack/Xbox_360/360_A.png b/docs/library/images/Button_Pack/Xbox_360/360_A.png new file mode 100644 index 00000000..cd716d1a Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_360/360_A.png differ diff --git a/docs/library/images/Button_Pack/Xbox_360/360_B.png b/docs/library/images/Button_Pack/Xbox_360/360_B.png new file mode 100644 index 00000000..73bcb6e0 Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_360/360_B.png differ diff --git a/docs/library/images/Button_Pack/Xbox_360/360_Back.png b/docs/library/images/Button_Pack/Xbox_360/360_Back.png new file mode 100644 index 00000000..ce4c7787 Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_360/360_Back.png differ diff --git a/docs/library/images/Button_Pack/Xbox_360/360_Back_Alt.png b/docs/library/images/Button_Pack/Xbox_360/360_Back_Alt.png new file mode 100644 index 00000000..900705b1 Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_360/360_Back_Alt.png differ diff --git a/docs/library/images/Button_Pack/Xbox_360/360_Dpad.png b/docs/library/images/Button_Pack/Xbox_360/360_Dpad.png new file mode 100644 index 00000000..93e90deb Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_360/360_Dpad.png differ diff --git a/docs/library/images/Button_Pack/Xbox_360/360_Dpad_Down.png b/docs/library/images/Button_Pack/Xbox_360/360_Dpad_Down.png new file mode 100644 index 00000000..944d59bb Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_360/360_Dpad_Down.png differ diff --git a/docs/library/images/Button_Pack/Xbox_360/360_Dpad_Left.png b/docs/library/images/Button_Pack/Xbox_360/360_Dpad_Left.png new file mode 100644 index 00000000..6091cf2d Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_360/360_Dpad_Left.png differ diff --git a/docs/library/images/Button_Pack/Xbox_360/360_Dpad_Right.png b/docs/library/images/Button_Pack/Xbox_360/360_Dpad_Right.png new file mode 100644 index 00000000..d099719f Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_360/360_Dpad_Right.png differ diff --git a/docs/library/images/Button_Pack/Xbox_360/360_Dpad_Up.png b/docs/library/images/Button_Pack/Xbox_360/360_Dpad_Up.png new file mode 100644 index 00000000..8939669d Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_360/360_Dpad_Up.png differ diff --git a/docs/library/images/Button_Pack/Xbox_360/360_LB.png b/docs/library/images/Button_Pack/Xbox_360/360_LB.png new file mode 100644 index 00000000..ec6e30ca Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_360/360_LB.png differ diff --git a/docs/library/images/Button_Pack/Xbox_360/360_LT.png b/docs/library/images/Button_Pack/Xbox_360/360_LT.png new file mode 100644 index 00000000..76706104 Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_360/360_LT.png differ diff --git a/docs/library/images/Button_Pack/Xbox_360/360_Left_Stick.png b/docs/library/images/Button_Pack/Xbox_360/360_Left_Stick.png new file mode 100644 index 00000000..8139be26 Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_360/360_Left_Stick.png differ diff --git a/docs/library/images/Button_Pack/Xbox_360/360_RB.png b/docs/library/images/Button_Pack/Xbox_360/360_RB.png new file mode 100644 index 00000000..f182b6ad Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_360/360_RB.png differ diff --git a/docs/library/images/Button_Pack/Xbox_360/360_RT.png b/docs/library/images/Button_Pack/Xbox_360/360_RT.png new file mode 100644 index 00000000..dc418ff2 Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_360/360_RT.png differ diff --git a/docs/library/images/Button_Pack/Xbox_360/360_Right_Stick.png b/docs/library/images/Button_Pack/Xbox_360/360_Right_Stick.png new file mode 100644 index 00000000..dde08c00 Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_360/360_Right_Stick.png differ diff --git a/docs/library/images/Button_Pack/Xbox_360/360_Start.png b/docs/library/images/Button_Pack/Xbox_360/360_Start.png new file mode 100644 index 00000000..00d7ecbe Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_360/360_Start.png differ diff --git a/docs/library/images/Button_Pack/Xbox_360/360_Start_Alt.png b/docs/library/images/Button_Pack/Xbox_360/360_Start_Alt.png new file mode 100644 index 00000000..7a10fcdb Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_360/360_Start_Alt.png differ diff --git a/docs/library/images/Button_Pack/Xbox_360/360_X.png b/docs/library/images/Button_Pack/Xbox_360/360_X.png new file mode 100644 index 00000000..4b8cec18 Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_360/360_X.png differ diff --git a/docs/library/images/Button_Pack/Xbox_360/360_Y.png b/docs/library/images/Button_Pack/Xbox_360/360_Y.png new file mode 100644 index 00000000..e32b04a3 Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_360/360_Y.png differ diff --git a/docs/library/images/Button_Pack/Xbox_One/XboxOne_A.png b/docs/library/images/Button_Pack/Xbox_One/XboxOne_A.png new file mode 100644 index 00000000..28c3b601 Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_One/XboxOne_A.png differ diff --git a/docs/library/images/Button_Pack/Xbox_One/XboxOne_B.png b/docs/library/images/Button_Pack/Xbox_One/XboxOne_B.png new file mode 100644 index 00000000..2a4d9b6f Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_One/XboxOne_B.png differ diff --git a/docs/library/images/Button_Pack/Xbox_One/XboxOne_Dpad.png b/docs/library/images/Button_Pack/Xbox_One/XboxOne_Dpad.png new file mode 100644 index 00000000..9c04c85d Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_One/XboxOne_Dpad.png differ diff --git a/docs/library/images/Button_Pack/Xbox_One/XboxOne_Dpad_Down.png b/docs/library/images/Button_Pack/Xbox_One/XboxOne_Dpad_Down.png new file mode 100644 index 00000000..530450f9 Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_One/XboxOne_Dpad_Down.png differ diff --git a/docs/library/images/Button_Pack/Xbox_One/XboxOne_Dpad_Left.png b/docs/library/images/Button_Pack/Xbox_One/XboxOne_Dpad_Left.png new file mode 100644 index 00000000..af69c93c Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_One/XboxOne_Dpad_Left.png differ diff --git a/docs/library/images/Button_Pack/Xbox_One/XboxOne_Dpad_Right.png b/docs/library/images/Button_Pack/Xbox_One/XboxOne_Dpad_Right.png new file mode 100644 index 00000000..a72a446b Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_One/XboxOne_Dpad_Right.png differ diff --git a/docs/library/images/Button_Pack/Xbox_One/XboxOne_Dpad_Up.png b/docs/library/images/Button_Pack/Xbox_One/XboxOne_Dpad_Up.png new file mode 100644 index 00000000..6eefbad2 Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_One/XboxOne_Dpad_Up.png differ diff --git a/docs/library/images/Button_Pack/Xbox_One/XboxOne_LB.png b/docs/library/images/Button_Pack/Xbox_One/XboxOne_LB.png new file mode 100644 index 00000000..21ba46b9 Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_One/XboxOne_LB.png differ diff --git a/docs/library/images/Button_Pack/Xbox_One/XboxOne_LT.png b/docs/library/images/Button_Pack/Xbox_One/XboxOne_LT.png new file mode 100644 index 00000000..d754535c Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_One/XboxOne_LT.png differ diff --git a/docs/library/images/Button_Pack/Xbox_One/XboxOne_Left_Stick.png b/docs/library/images/Button_Pack/Xbox_One/XboxOne_Left_Stick.png new file mode 100644 index 00000000..9c5ca5c7 Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_One/XboxOne_Left_Stick.png differ diff --git a/docs/library/images/Button_Pack/Xbox_One/XboxOne_Menu.png b/docs/library/images/Button_Pack/Xbox_One/XboxOne_Menu.png new file mode 100644 index 00000000..2cbfb081 Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_One/XboxOne_Menu.png differ diff --git a/docs/library/images/Button_Pack/Xbox_One/XboxOne_RB.png b/docs/library/images/Button_Pack/Xbox_One/XboxOne_RB.png new file mode 100644 index 00000000..6669568d Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_One/XboxOne_RB.png differ diff --git a/docs/library/images/Button_Pack/Xbox_One/XboxOne_RT.png b/docs/library/images/Button_Pack/Xbox_One/XboxOne_RT.png new file mode 100644 index 00000000..0772813c Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_One/XboxOne_RT.png differ diff --git a/docs/library/images/Button_Pack/Xbox_One/XboxOne_Right_Stick.png b/docs/library/images/Button_Pack/Xbox_One/XboxOne_Right_Stick.png new file mode 100644 index 00000000..3d83a222 Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_One/XboxOne_Right_Stick.png differ diff --git a/docs/library/images/Button_Pack/Xbox_One/XboxOne_Windows.png b/docs/library/images/Button_Pack/Xbox_One/XboxOne_Windows.png new file mode 100644 index 00000000..3756d299 Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_One/XboxOne_Windows.png differ diff --git a/docs/library/images/Button_Pack/Xbox_One/XboxOne_X.png b/docs/library/images/Button_Pack/Xbox_One/XboxOne_X.png new file mode 100644 index 00000000..a0f0ac13 Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_One/XboxOne_X.png differ diff --git a/docs/library/images/Button_Pack/Xbox_One/XboxOne_Y.png b/docs/library/images/Button_Pack/Xbox_One/XboxOne_Y.png new file mode 100644 index 00000000..4e31627e Binary files /dev/null and b/docs/library/images/Button_Pack/Xbox_One/XboxOne_Y.png differ diff --git a/docs/library/images/Controllers/3do.png b/docs/library/images/Controllers/3do.png new file mode 100644 index 00000000..67b351e1 Binary files /dev/null and b/docs/library/images/Controllers/3do.png differ diff --git a/docs/library/images/Controllers/atari_2600.png b/docs/library/images/Controllers/atari_2600.png new file mode 100644 index 00000000..fa8a1183 Binary files /dev/null and b/docs/library/images/Controllers/atari_2600.png differ diff --git a/docs/library/images/Controllers/atari_7800.png b/docs/library/images/Controllers/atari_7800.png new file mode 100644 index 00000000..9ae3ddf3 Binary files /dev/null and b/docs/library/images/Controllers/atari_7800.png differ diff --git a/docs/library/images/Controllers/dc.png b/docs/library/images/Controllers/dc.png new file mode 100644 index 00000000..b3755f44 Binary files /dev/null and b/docs/library/images/Controllers/dc.png differ diff --git a/docs/library/images/Controllers/gb.png b/docs/library/images/Controllers/gb.png new file mode 100644 index 00000000..52d7bd09 Binary files /dev/null and b/docs/library/images/Controllers/gb.png differ diff --git a/docs/library/images/Controllers/gba.png b/docs/library/images/Controllers/gba.png new file mode 100644 index 00000000..b818d190 Binary files /dev/null and b/docs/library/images/Controllers/gba.png differ diff --git a/docs/library/images/Controllers/gg.png b/docs/library/images/Controllers/gg.png new file mode 100644 index 00000000..4eeff87f Binary files /dev/null and b/docs/library/images/Controllers/gg.png differ diff --git a/docs/library/images/Controllers/intellivision.png b/docs/library/images/Controllers/intellivision.png new file mode 100644 index 00000000..1d587c65 Binary files /dev/null and b/docs/library/images/Controllers/intellivision.png differ diff --git a/docs/library/images/Controllers/jaguar.png b/docs/library/images/Controllers/jaguar.png new file mode 100644 index 00000000..4e89dcaa Binary files /dev/null and b/docs/library/images/Controllers/jaguar.png differ diff --git a/docs/library/images/Controllers/lynx.png b/docs/library/images/Controllers/lynx.png new file mode 100644 index 00000000..fc01ec42 Binary files /dev/null and b/docs/library/images/Controllers/lynx.png differ diff --git a/docs/library/images/Controllers/md3.png b/docs/library/images/Controllers/md3.png new file mode 100644 index 00000000..b8f9ed30 Binary files /dev/null and b/docs/library/images/Controllers/md3.png differ diff --git a/docs/library/images/Controllers/md6.png b/docs/library/images/Controllers/md6.png new file mode 100644 index 00000000..b260ef30 Binary files /dev/null and b/docs/library/images/Controllers/md6.png differ diff --git a/docs/library/images/Controllers/mupen64plus.png b/docs/library/images/Controllers/mupen64plus.png new file mode 100644 index 00000000..7029a097 Binary files /dev/null and b/docs/library/images/Controllers/mupen64plus.png differ diff --git a/docs/library/images/Controllers/nds.png b/docs/library/images/Controllers/nds.png new file mode 100644 index 00000000..eaf9b52e Binary files /dev/null and b/docs/library/images/Controllers/nds.png differ diff --git a/docs/library/images/Controllers/nes.png b/docs/library/images/Controllers/nes.png new file mode 100644 index 00000000..edd1b6cf Binary files /dev/null and b/docs/library/images/Controllers/nes.png differ diff --git a/docs/library/images/Controllers/ngp.png b/docs/library/images/Controllers/ngp.png new file mode 100644 index 00000000..0b167da8 Binary files /dev/null and b/docs/library/images/Controllers/ngp.png differ diff --git a/docs/library/images/Controllers/odyssey.png b/docs/library/images/Controllers/odyssey.png new file mode 100644 index 00000000..455775ba Binary files /dev/null and b/docs/library/images/Controllers/odyssey.png differ diff --git a/docs/library/images/Controllers/parallel.png b/docs/library/images/Controllers/parallel.png new file mode 100644 index 00000000..46893d82 Binary files /dev/null and b/docs/library/images/Controllers/parallel.png differ diff --git a/docs/library/images/Controllers/pce.png b/docs/library/images/Controllers/pce.png new file mode 100644 index 00000000..35037982 Binary files /dev/null and b/docs/library/images/Controllers/pce.png differ diff --git a/docs/library/images/Controllers/psp.png b/docs/library/images/Controllers/psp.png new file mode 100644 index 00000000..b105b4d5 Binary files /dev/null and b/docs/library/images/Controllers/psp.png differ diff --git a/docs/library/images/Controllers/psx.png b/docs/library/images/Controllers/psx.png new file mode 100644 index 00000000..c25345d2 Binary files /dev/null and b/docs/library/images/Controllers/psx.png differ diff --git a/docs/library/images/Controllers/saturn.png b/docs/library/images/Controllers/saturn.png new file mode 100644 index 00000000..c28746fb Binary files /dev/null and b/docs/library/images/Controllers/saturn.png differ diff --git a/docs/library/images/Controllers/sg1000.png b/docs/library/images/Controllers/sg1000.png new file mode 100644 index 00000000..5886deb4 Binary files /dev/null and b/docs/library/images/Controllers/sg1000.png differ diff --git a/docs/library/images/Controllers/sms.png b/docs/library/images/Controllers/sms.png new file mode 100644 index 00000000..a1b84b9d Binary files /dev/null and b/docs/library/images/Controllers/sms.png differ diff --git a/docs/library/images/Controllers/snes.png b/docs/library/images/Controllers/snes.png new file mode 100644 index 00000000..50ab213b Binary files /dev/null and b/docs/library/images/Controllers/snes.png differ diff --git a/docs/library/images/Controllers/vb.png b/docs/library/images/Controllers/vb.png new file mode 100644 index 00000000..8da7cf54 Binary files /dev/null and b/docs/library/images/Controllers/vb.png differ diff --git a/docs/library/images/Controllers/vectrex.png b/docs/library/images/Controllers/vectrex.png new file mode 100644 index 00000000..e3c0daa9 Binary files /dev/null and b/docs/library/images/Controllers/vectrex.png differ diff --git a/docs/library/images/Cores/2048/2048.png b/docs/library/images/Cores/2048/2048.png new file mode 100644 index 00000000..f0bdde2f Binary files /dev/null and b/docs/library/images/Cores/2048/2048.png differ diff --git a/docs/library/images/Cores/2048/start.png b/docs/library/images/Cores/2048/start.png new file mode 100644 index 00000000..a9ba7545 Binary files /dev/null and b/docs/library/images/Cores/2048/start.png differ diff --git a/docs/library/images/Cores/4do/high_off.png b/docs/library/images/Cores/4do/high_off.png new file mode 100644 index 00000000..6f4ccf7b Binary files /dev/null and b/docs/library/images/Cores/4do/high_off.png differ diff --git a/docs/library/images/Cores/4do/high_on.png b/docs/library/images/Cores/4do/high_on.png new file mode 100644 index 00000000..4d161f69 Binary files /dev/null and b/docs/library/images/Cores/4do/high_on.png differ diff --git a/docs/library/images/Cores/all/download.png b/docs/library/images/Cores/all/download.png new file mode 100644 index 00000000..e039a80f Binary files /dev/null and b/docs/library/images/Cores/all/download.png differ diff --git a/docs/library/images/Cores/all/downloads.png b/docs/library/images/Cores/all/downloads.png new file mode 100644 index 00000000..3c5db09d Binary files /dev/null and b/docs/library/images/Cores/all/downloads.png differ diff --git a/docs/library/images/Cores/all/gb.png b/docs/library/images/Cores/all/gb.png new file mode 100644 index 00000000..56c251a0 Binary files /dev/null and b/docs/library/images/Cores/all/gb.png differ diff --git a/docs/library/images/Cores/all/info.png b/docs/library/images/Cores/all/info.png new file mode 100644 index 00000000..081489e6 Binary files /dev/null and b/docs/library/images/Cores/all/info.png differ diff --git a/docs/library/images/Cores/all/load.png b/docs/library/images/Cores/all/load.png new file mode 100644 index 00000000..7c6c70d2 Binary files /dev/null and b/docs/library/images/Cores/all/load.png differ diff --git a/docs/library/images/Cores/all/nes.png b/docs/library/images/Cores/all/nes.png new file mode 100644 index 00000000..7ccf996a Binary files /dev/null and b/docs/library/images/Cores/all/nes.png differ diff --git a/docs/library/images/Cores/all/ngp.png b/docs/library/images/Cores/all/ngp.png new file mode 100644 index 00000000..14554bdf Binary files /dev/null and b/docs/library/images/Cores/all/ngp.png differ diff --git a/docs/library/images/Cores/all/psx.png b/docs/library/images/Cores/all/psx.png new file mode 100644 index 00000000..735c2002 Binary files /dev/null and b/docs/library/images/Cores/all/psx.png differ diff --git a/docs/library/images/Cores/all/snes.png b/docs/library/images/Cores/all/snes.png new file mode 100644 index 00000000..e15c1477 Binary files /dev/null and b/docs/library/images/Cores/all/snes.png differ diff --git a/docs/library/images/Cores/all/updater.png b/docs/library/images/Cores/all/updater.png new file mode 100644 index 00000000..8d0758cd Binary files /dev/null and b/docs/library/images/Cores/all/updater.png differ diff --git a/docs/library/images/Cores/beetle_cygne/cygne.png b/docs/library/images/Cores/beetle_cygne/cygne.png new file mode 100644 index 00000000..55859f8c Binary files /dev/null and b/docs/library/images/Cores/beetle_cygne/cygne.png differ diff --git a/docs/library/images/Cores/beetle_neopop/beetle_neopop.png b/docs/library/images/Cores/beetle_neopop/beetle_neopop.png new file mode 100644 index 00000000..e2207a21 Binary files /dev/null and b/docs/library/images/Cores/beetle_neopop/beetle_neopop.png differ diff --git a/docs/library/images/Cores/beetle_pc_fx/beetle_pc_fx.png b/docs/library/images/Cores/beetle_pc_fx/beetle_pc_fx.png new file mode 100644 index 00000000..928a0d40 Binary files /dev/null and b/docs/library/images/Cores/beetle_pc_fx/beetle_pc_fx.png differ diff --git a/docs/library/images/Cores/beetle_psx_hw/3point.png b/docs/library/images/Cores/beetle_psx_hw/3point.png new file mode 100644 index 00000000..c8e3ab9d Binary files /dev/null and b/docs/library/images/Cores/beetle_psx_hw/3point.png differ diff --git a/docs/library/images/Cores/beetle_psx_hw/bilinear.png b/docs/library/images/Cores/beetle_psx_hw/bilinear.png new file mode 100644 index 00000000..987d4229 Binary files /dev/null and b/docs/library/images/Cores/beetle_psx_hw/bilinear.png differ diff --git a/docs/library/images/Cores/beetle_psx_hw/bios.png b/docs/library/images/Cores/beetle_psx_hw/bios.png new file mode 100644 index 00000000..c2185e93 Binary files /dev/null and b/docs/library/images/Cores/beetle_psx_hw/bios.png differ diff --git a/docs/library/images/Cores/beetle_psx_hw/cursor_cross.png b/docs/library/images/Cores/beetle_psx_hw/cursor_cross.png new file mode 100644 index 00000000..568c9f99 Binary files /dev/null and b/docs/library/images/Cores/beetle_psx_hw/cursor_cross.png differ diff --git a/docs/library/images/Cores/beetle_psx_hw/cursor_dot.png b/docs/library/images/Cores/beetle_psx_hw/cursor_dot.png new file mode 100644 index 00000000..23198626 Binary files /dev/null and b/docs/library/images/Cores/beetle_psx_hw/cursor_dot.png differ diff --git a/docs/library/images/Cores/beetle_psx_hw/cursor_off.png b/docs/library/images/Cores/beetle_psx_hw/cursor_off.png new file mode 100644 index 00000000..9fd57306 Binary files /dev/null and b/docs/library/images/Cores/beetle_psx_hw/cursor_off.png differ diff --git a/docs/library/images/Cores/beetle_psx_hw/fps.png b/docs/library/images/Cores/beetle_psx_hw/fps.png new file mode 100644 index 00000000..456bb220 Binary files /dev/null and b/docs/library/images/Cores/beetle_psx_hw/fps.png differ diff --git a/docs/library/images/Cores/beetle_psx_hw/gpu_1.png b/docs/library/images/Cores/beetle_psx_hw/gpu_1.png new file mode 100644 index 00000000..bf49f621 Binary files /dev/null and b/docs/library/images/Cores/beetle_psx_hw/gpu_1.png differ diff --git a/docs/library/images/Cores/beetle_psx_hw/gpu_2.png b/docs/library/images/Cores/beetle_psx_hw/gpu_2.png new file mode 100644 index 00000000..38010cd6 Binary files /dev/null and b/docs/library/images/Cores/beetle_psx_hw/gpu_2.png differ diff --git a/docs/library/images/Cores/beetle_psx_hw/jinc2.png b/docs/library/images/Cores/beetle_psx_hw/jinc2.png new file mode 100644 index 00000000..4a8d45ee Binary files /dev/null and b/docs/library/images/Cores/beetle_psx_hw/jinc2.png differ diff --git a/docs/library/images/Cores/beetle_psx_hw/m3u.png b/docs/library/images/Cores/beetle_psx_hw/m3u.png new file mode 100644 index 00000000..b3a77e95 Binary files /dev/null and b/docs/library/images/Cores/beetle_psx_hw/m3u.png differ diff --git a/docs/library/images/Cores/beetle_psx_hw/nearest.png b/docs/library/images/Cores/beetle_psx_hw/nearest.png new file mode 100644 index 00000000..87c06127 Binary files /dev/null and b/docs/library/images/Cores/beetle_psx_hw/nearest.png differ diff --git a/docs/library/images/Cores/beetle_psx_hw/sabr.png b/docs/library/images/Cores/beetle_psx_hw/sabr.png new file mode 100644 index 00000000..74593514 Binary files /dev/null and b/docs/library/images/Cores/beetle_psx_hw/sabr.png differ diff --git a/docs/library/images/Cores/beetle_psx_hw/scan_off.png b/docs/library/images/Cores/beetle_psx_hw/scan_off.png new file mode 100644 index 00000000..556843eb Binary files /dev/null and b/docs/library/images/Cores/beetle_psx_hw/scan_off.png differ diff --git a/docs/library/images/Cores/beetle_psx_hw/scan_on.png b/docs/library/images/Cores/beetle_psx_hw/scan_on.png new file mode 100644 index 00000000..8dec4214 Binary files /dev/null and b/docs/library/images/Cores/beetle_psx_hw/scan_on.png differ diff --git a/docs/library/images/Cores/beetle_psx_hw/smooth_off.png b/docs/library/images/Cores/beetle_psx_hw/smooth_off.png new file mode 100644 index 00000000..c124f895 Binary files /dev/null and b/docs/library/images/Cores/beetle_psx_hw/smooth_off.png differ diff --git a/docs/library/images/Cores/beetle_psx_hw/smooth_on.png b/docs/library/images/Cores/beetle_psx_hw/smooth_on.png new file mode 100644 index 00000000..cee5346f Binary files /dev/null and b/docs/library/images/Cores/beetle_psx_hw/smooth_on.png differ diff --git a/docs/library/images/Cores/beetle_psx_hw/vram.png b/docs/library/images/Cores/beetle_psx_hw/vram.png new file mode 100644 index 00000000..48323327 Binary files /dev/null and b/docs/library/images/Cores/beetle_psx_hw/vram.png differ diff --git a/docs/library/images/Cores/beetle_psx_hw/wide_off.png b/docs/library/images/Cores/beetle_psx_hw/wide_off.png new file mode 100644 index 00000000..28fd3ead Binary files /dev/null and b/docs/library/images/Cores/beetle_psx_hw/wide_off.png differ diff --git a/docs/library/images/Cores/beetle_psx_hw/wide_on.png b/docs/library/images/Cores/beetle_psx_hw/wide_on.png new file mode 100644 index 00000000..59cd58c7 Binary files /dev/null and b/docs/library/images/Cores/beetle_psx_hw/wide_on.png differ diff --git a/docs/library/images/Cores/beetle_psx_hw/wire.png b/docs/library/images/Cores/beetle_psx_hw/wire.png new file mode 100644 index 00000000..ffb5f35b Binary files /dev/null and b/docs/library/images/Cores/beetle_psx_hw/wire.png differ diff --git a/docs/library/images/Cores/beetle_psx_hw/xbr.png b/docs/library/images/Cores/beetle_psx_hw/xbr.png new file mode 100644 index 00000000..4ac44d8e Binary files /dev/null and b/docs/library/images/Cores/beetle_psx_hw/xbr.png differ diff --git a/docs/library/images/Cores/beetle_saturn/blend_off.png b/docs/library/images/Cores/beetle_saturn/blend_off.png new file mode 100644 index 00000000..fb417d18 Binary files /dev/null and b/docs/library/images/Cores/beetle_saturn/blend_off.png differ diff --git a/docs/library/images/Cores/beetle_saturn/blend_on.png b/docs/library/images/Cores/beetle_saturn/blend_on.png new file mode 100644 index 00000000..98ff83dc Binary files /dev/null and b/docs/library/images/Cores/beetle_saturn/blend_on.png differ diff --git a/docs/library/images/Cores/beetle_saturn/cross.png b/docs/library/images/Cores/beetle_saturn/cross.png new file mode 100644 index 00000000..8f92a2ae Binary files /dev/null and b/docs/library/images/Cores/beetle_saturn/cross.png differ diff --git a/docs/library/images/Cores/beetle_saturn/dot.png b/docs/library/images/Cores/beetle_saturn/dot.png new file mode 100644 index 00000000..0cba56e1 Binary files /dev/null and b/docs/library/images/Cores/beetle_saturn/dot.png differ diff --git a/docs/library/images/Cores/beetle_saturn/off.png b/docs/library/images/Cores/beetle_saturn/off.png new file mode 100644 index 00000000..b8990f34 Binary files /dev/null and b/docs/library/images/Cores/beetle_saturn/off.png differ diff --git a/docs/library/images/Cores/beetle_saturn/saturn.png b/docs/library/images/Cores/beetle_saturn/saturn.png new file mode 100644 index 00000000..227ee787 Binary files /dev/null and b/docs/library/images/Cores/beetle_saturn/saturn.png differ diff --git a/docs/library/images/Cores/beetle_vb/black&red.png b/docs/library/images/Cores/beetle_vb/black&red.png new file mode 100644 index 00000000..66b3874f Binary files /dev/null and b/docs/library/images/Cores/beetle_vb/black&red.png differ diff --git a/docs/library/images/Cores/beetle_vb/black&white.png b/docs/library/images/Cores/beetle_vb/black&white.png new file mode 100644 index 00000000..e8165200 Binary files /dev/null and b/docs/library/images/Cores/beetle_vb/black&white.png differ diff --git a/docs/library/images/Cores/beetle_vb/green&magenta.png b/docs/library/images/Cores/beetle_vb/green&magenta.png new file mode 100644 index 00000000..4dabc9ee Binary files /dev/null and b/docs/library/images/Cores/beetle_vb/green&magenta.png differ diff --git a/docs/library/images/Cores/beetle_vb/off.png b/docs/library/images/Cores/beetle_vb/off.png new file mode 100644 index 00000000..c8007551 Binary files /dev/null and b/docs/library/images/Cores/beetle_vb/off.png differ diff --git a/docs/library/images/Cores/beetle_vb/red&blue.png b/docs/library/images/Cores/beetle_vb/red&blue.png new file mode 100644 index 00000000..969cd672 Binary files /dev/null and b/docs/library/images/Cores/beetle_vb/red&blue.png differ diff --git a/docs/library/images/Cores/beetle_vb/red&cyan.png b/docs/library/images/Cores/beetle_vb/red&cyan.png new file mode 100644 index 00000000..8288200e Binary files /dev/null and b/docs/library/images/Cores/beetle_vb/red&cyan.png differ diff --git a/docs/library/images/Cores/beetle_vb/red&electriccyan.png b/docs/library/images/Cores/beetle_vb/red&electriccyan.png new file mode 100644 index 00000000..9a5bf161 Binary files /dev/null and b/docs/library/images/Cores/beetle_vb/red&electriccyan.png differ diff --git a/docs/library/images/Cores/beetle_vb/red&green.png b/docs/library/images/Cores/beetle_vb/red&green.png new file mode 100644 index 00000000..afd4bb8f Binary files /dev/null and b/docs/library/images/Cores/beetle_vb/red&green.png differ diff --git a/docs/library/images/Cores/beetle_vb/yellow&blue.png b/docs/library/images/Cores/beetle_vb/yellow&blue.png new file mode 100644 index 00000000..c3aa9d3b Binary files /dev/null and b/docs/library/images/Cores/beetle_vb/yellow&blue.png differ diff --git a/docs/library/images/Cores/bluemsx/crop_msx2.png b/docs/library/images/Cores/bluemsx/crop_msx2.png new file mode 100644 index 00000000..af3095bf Binary files /dev/null and b/docs/library/images/Cores/bluemsx/crop_msx2.png differ diff --git a/docs/library/images/Cores/bluemsx/crop_off.png b/docs/library/images/Cores/bluemsx/crop_off.png new file mode 100644 index 00000000..38ddd4a5 Binary files /dev/null and b/docs/library/images/Cores/bluemsx/crop_off.png differ diff --git a/docs/library/images/Cores/bluemsx/crop_on.png b/docs/library/images/Cores/bluemsx/crop_on.png new file mode 100644 index 00000000..ae530fe8 Binary files /dev/null and b/docs/library/images/Cores/bluemsx/crop_on.png differ diff --git a/docs/library/images/Cores/bnes/crisisforce.png b/docs/library/images/Cores/bnes/crisisforce.png new file mode 100644 index 00000000..d0e59157 Binary files /dev/null and b/docs/library/images/Cores/bnes/crisisforce.png differ diff --git a/docs/library/images/Cores/bsnes/gb.png b/docs/library/images/Cores/bsnes/gb.png new file mode 100644 index 00000000..54c42960 Binary files /dev/null and b/docs/library/images/Cores/bsnes/gb.png differ diff --git a/docs/library/images/Cores/bsnes/menu1.png b/docs/library/images/Cores/bsnes/menu1.png new file mode 100644 index 00000000..313d4a27 Binary files /dev/null and b/docs/library/images/Cores/bsnes/menu1.png differ diff --git a/docs/library/images/Cores/bsnes/menu2.png b/docs/library/images/Cores/bsnes/menu2.png new file mode 100644 index 00000000..4f7cb519 Binary files /dev/null and b/docs/library/images/Cores/bsnes/menu2.png differ diff --git a/docs/library/images/Cores/bsnes/sgb.png b/docs/library/images/Cores/bsnes/sgb.png new file mode 100644 index 00000000..b5d49fc3 Binary files /dev/null and b/docs/library/images/Cores/bsnes/sgb.png differ diff --git a/docs/library/images/Cores/bsnes/start.png b/docs/library/images/Cores/bsnes/start.png new file mode 100644 index 00000000..df1d1abb Binary files /dev/null and b/docs/library/images/Cores/bsnes/start.png differ diff --git a/docs/library/images/Cores/caprice32/15.png b/docs/library/images/Cores/caprice32/15.png new file mode 100644 index 00000000..ff56e152 Binary files /dev/null and b/docs/library/images/Cores/caprice32/15.png differ diff --git a/docs/library/images/Cores/caprice32/5.png b/docs/library/images/Cores/caprice32/5.png new file mode 100644 index 00000000..dca4b130 Binary files /dev/null and b/docs/library/images/Cores/caprice32/5.png differ diff --git a/docs/library/images/Cores/caprice32/tube_off.png b/docs/library/images/Cores/caprice32/tube_off.png new file mode 100644 index 00000000..dca4b130 Binary files /dev/null and b/docs/library/images/Cores/caprice32/tube_off.png differ diff --git a/docs/library/images/Cores/caprice32/tube_on.png b/docs/library/images/Cores/caprice32/tube_on.png new file mode 100644 index 00000000..3f2cfc54 Binary files /dev/null and b/docs/library/images/Cores/caprice32/tube_on.png differ diff --git a/docs/library/images/Cores/caprice32/vkbd.png b/docs/library/images/Cores/caprice32/vkbd.png new file mode 100644 index 00000000..6ac3c0d5 Binary files /dev/null and b/docs/library/images/Cores/caprice32/vkbd.png differ diff --git a/docs/library/images/Cores/chailove/alpha_off.png b/docs/library/images/Cores/chailove/alpha_off.png new file mode 100644 index 00000000..0d7032de Binary files /dev/null and b/docs/library/images/Cores/chailove/alpha_off.png differ diff --git a/docs/library/images/Cores/chailove/alpha_on.png b/docs/library/images/Cores/chailove/alpha_on.png new file mode 100644 index 00000000..63cc986d Binary files /dev/null and b/docs/library/images/Cores/chailove/alpha_on.png differ diff --git a/docs/library/images/Cores/chailove/chailove.png b/docs/library/images/Cores/chailove/chailove.png new file mode 100644 index 00000000..6529bcae Binary files /dev/null and b/docs/library/images/Cores/chailove/chailove.png differ diff --git a/docs/library/images/Cores/chailove/quality_off.png b/docs/library/images/Cores/chailove/quality_off.png new file mode 100644 index 00000000..384e9ab7 Binary files /dev/null and b/docs/library/images/Cores/chailove/quality_off.png differ diff --git a/docs/library/images/Cores/chailove/quality_on.png b/docs/library/images/Cores/chailove/quality_on.png new file mode 100644 index 00000000..61e2a6f0 Binary files /dev/null and b/docs/library/images/Cores/chailove/quality_on.png differ diff --git a/docs/library/images/Cores/citra/advanced.png b/docs/library/images/Cores/citra/advanced.png new file mode 100644 index 00000000..cf1af794 Binary files /dev/null and b/docs/library/images/Cores/citra/advanced.png differ diff --git a/docs/library/images/Cores/citra/context.png b/docs/library/images/Cores/citra/context.png new file mode 100644 index 00000000..ca419f69 Binary files /dev/null and b/docs/library/images/Cores/citra/context.png differ diff --git a/docs/library/images/Cores/citra/core.png b/docs/library/images/Cores/citra/core.png new file mode 100644 index 00000000..c6e90f9b Binary files /dev/null and b/docs/library/images/Cores/citra/core.png differ diff --git a/docs/library/images/Cores/citra/default.png b/docs/library/images/Cores/citra/default.png new file mode 100644 index 00000000..f88c835b Binary files /dev/null and b/docs/library/images/Cores/citra/default.png differ diff --git a/docs/library/images/Cores/citra/gl.png b/docs/library/images/Cores/citra/gl.png new file mode 100644 index 00000000..2f2b5122 Binary files /dev/null and b/docs/library/images/Cores/citra/gl.png differ diff --git a/docs/library/images/Cores/citra/large.png b/docs/library/images/Cores/citra/large.png new file mode 100644 index 00000000..2a53faed Binary files /dev/null and b/docs/library/images/Cores/citra/large.png differ diff --git a/docs/library/images/Cores/citra/single.png b/docs/library/images/Cores/citra/single.png new file mode 100644 index 00000000..4eb1c15c Binary files /dev/null and b/docs/library/images/Cores/citra/single.png differ diff --git a/docs/library/images/Cores/craft/1920x1080.png b/docs/library/images/Cores/craft/1920x1080.png new file mode 100644 index 00000000..1e80855e Binary files /dev/null and b/docs/library/images/Cores/craft/1920x1080.png differ diff --git a/docs/library/images/Cores/craft/320x240.png b/docs/library/images/Cores/craft/320x240.png new file mode 100644 index 00000000..51804185 Binary files /dev/null and b/docs/library/images/Cores/craft/320x240.png differ diff --git a/docs/library/images/Cores/craft/draw_distance_10.png b/docs/library/images/Cores/craft/draw_distance_10.png new file mode 100644 index 00000000..f41dac8d Binary files /dev/null and b/docs/library/images/Cores/craft/draw_distance_10.png differ diff --git a/docs/library/images/Cores/craft/draw_distance_32.png b/docs/library/images/Cores/craft/draw_distance_32.png new file mode 100644 index 00000000..73a4106c Binary files /dev/null and b/docs/library/images/Cores/craft/draw_distance_32.png differ diff --git a/docs/library/images/Cores/craft/fov_125.png b/docs/library/images/Cores/craft/fov_125.png new file mode 100644 index 00000000..423bc4f4 Binary files /dev/null and b/docs/library/images/Cores/craft/fov_125.png differ diff --git a/docs/library/images/Cores/craft/fov_65.png b/docs/library/images/Cores/craft/fov_65.png new file mode 100644 index 00000000..1c906687 Binary files /dev/null and b/docs/library/images/Cores/craft/fov_65.png differ diff --git a/docs/library/images/Cores/craft/show_info_text_off.png b/docs/library/images/Cores/craft/show_info_text_off.png new file mode 100644 index 00000000..3aa09b7d Binary files /dev/null and b/docs/library/images/Cores/craft/show_info_text_off.png differ diff --git a/docs/library/images/Cores/craft/show_info_text_on.png b/docs/library/images/Cores/craft/show_info_text_on.png new file mode 100644 index 00000000..93884ff9 Binary files /dev/null and b/docs/library/images/Cores/craft/show_info_text_on.png differ diff --git a/docs/library/images/Cores/crocods/320x200.png b/docs/library/images/Cores/crocods/320x200.png new file mode 100644 index 00000000..cef39372 Binary files /dev/null and b/docs/library/images/Cores/crocods/320x200.png differ diff --git a/docs/library/images/Cores/crocods/color.png b/docs/library/images/Cores/crocods/color.png new file mode 100644 index 00000000..cef39372 Binary files /dev/null and b/docs/library/images/Cores/crocods/color.png differ diff --git a/docs/library/images/Cores/crocods/green.png b/docs/library/images/Cores/crocods/green.png new file mode 100644 index 00000000..df5626f7 Binary files /dev/null and b/docs/library/images/Cores/crocods/green.png differ diff --git a/docs/library/images/Cores/crocods/overscan.png b/docs/library/images/Cores/crocods/overscan.png new file mode 100644 index 00000000..6ed83b02 Binary files /dev/null and b/docs/library/images/Cores/crocods/overscan.png differ diff --git a/docs/library/images/Cores/desmume/2560x1920.png b/docs/library/images/Cores/desmume/2560x1920.png new file mode 100644 index 00000000..093b2b4b Binary files /dev/null and b/docs/library/images/Cores/desmume/2560x1920.png differ diff --git a/docs/library/images/Cores/desmume/256x192.png b/docs/library/images/Cores/desmume/256x192.png new file mode 100644 index 00000000..fa7d9fe4 Binary files /dev/null and b/docs/library/images/Cores/desmume/256x192.png differ diff --git a/docs/library/images/Cores/desmume/bottom.png b/docs/library/images/Cores/desmume/bottom.png new file mode 100644 index 00000000..bbde4605 Binary files /dev/null and b/docs/library/images/Cores/desmume/bottom.png differ diff --git a/docs/library/images/Cores/desmume/bottom_top.png b/docs/library/images/Cores/desmume/bottom_top.png new file mode 100644 index 00000000..769b6b0c Binary files /dev/null and b/docs/library/images/Cores/desmume/bottom_top.png differ diff --git a/docs/library/images/Cores/desmume/hybrid_bottom.png b/docs/library/images/Cores/desmume/hybrid_bottom.png new file mode 100644 index 00000000..f7baf8c9 Binary files /dev/null and b/docs/library/images/Cores/desmume/hybrid_bottom.png differ diff --git a/docs/library/images/Cores/desmume/hybrid_top.png b/docs/library/images/Cores/desmume/hybrid_top.png new file mode 100644 index 00000000..101cada7 Binary files /dev/null and b/docs/library/images/Cores/desmume/hybrid_top.png differ diff --git a/docs/library/images/Cores/desmume/left_right.png b/docs/library/images/Cores/desmume/left_right.png new file mode 100644 index 00000000..cbd1b995 Binary files /dev/null and b/docs/library/images/Cores/desmume/left_right.png differ diff --git a/docs/library/images/Cores/desmume/pointer_black.png b/docs/library/images/Cores/desmume/pointer_black.png new file mode 100644 index 00000000..9f158351 Binary files /dev/null and b/docs/library/images/Cores/desmume/pointer_black.png differ diff --git a/docs/library/images/Cores/desmume/pointer_blue.png b/docs/library/images/Cores/desmume/pointer_blue.png new file mode 100644 index 00000000..f6273ffe Binary files /dev/null and b/docs/library/images/Cores/desmume/pointer_blue.png differ diff --git a/docs/library/images/Cores/desmume/pointer_red.png b/docs/library/images/Cores/desmume/pointer_red.png new file mode 100644 index 00000000..95ef4eba Binary files /dev/null and b/docs/library/images/Cores/desmume/pointer_red.png differ diff --git a/docs/library/images/Cores/desmume/pointer_white.png b/docs/library/images/Cores/desmume/pointer_white.png new file mode 100644 index 00000000..a9ec635c Binary files /dev/null and b/docs/library/images/Cores/desmume/pointer_white.png differ diff --git a/docs/library/images/Cores/desmume/pointer_yellow.png b/docs/library/images/Cores/desmume/pointer_yellow.png new file mode 100644 index 00000000..d611dc9c Binary files /dev/null and b/docs/library/images/Cores/desmume/pointer_yellow.png differ diff --git a/docs/library/images/Cores/desmume/right_left.png b/docs/library/images/Cores/desmume/right_left.png new file mode 100644 index 00000000..a14e9d37 Binary files /dev/null and b/docs/library/images/Cores/desmume/right_left.png differ diff --git a/docs/library/images/Cores/desmume/scale_1.png b/docs/library/images/Cores/desmume/scale_1.png new file mode 100644 index 00000000..6af9cda5 Binary files /dev/null and b/docs/library/images/Cores/desmume/scale_1.png differ diff --git a/docs/library/images/Cores/desmume/scale_3.png b/docs/library/images/Cores/desmume/scale_3.png new file mode 100644 index 00000000..84a09735 Binary files /dev/null and b/docs/library/images/Cores/desmume/scale_3.png differ diff --git a/docs/library/images/Cores/desmume/screengap_0.png b/docs/library/images/Cores/desmume/screengap_0.png new file mode 100644 index 00000000..e24908a6 Binary files /dev/null and b/docs/library/images/Cores/desmume/screengap_0.png differ diff --git a/docs/library/images/Cores/desmume/screengap_100.png b/docs/library/images/Cores/desmume/screengap_100.png new file mode 100644 index 00000000..e05722b0 Binary files /dev/null and b/docs/library/images/Cores/desmume/screengap_100.png differ diff --git a/docs/library/images/Cores/desmume/top.png b/docs/library/images/Cores/desmume/top.png new file mode 100644 index 00000000..4c73c62e Binary files /dev/null and b/docs/library/images/Cores/desmume/top.png differ diff --git a/docs/library/images/Cores/desmume/top_bottom.png b/docs/library/images/Cores/desmume/top_bottom.png new file mode 100644 index 00000000..cb87466e Binary files /dev/null and b/docs/library/images/Cores/desmume/top_bottom.png differ diff --git a/docs/library/images/Cores/dinothawr/dinothawr.png b/docs/library/images/Cores/dinothawr/dinothawr.png new file mode 100644 index 00000000..18940de2 Binary files /dev/null and b/docs/library/images/Cores/dinothawr/dinothawr.png differ diff --git a/docs/library/images/Cores/eightyone/chroma_off.png b/docs/library/images/Cores/eightyone/chroma_off.png new file mode 100644 index 00000000..e674c480 Binary files /dev/null and b/docs/library/images/Cores/eightyone/chroma_off.png differ diff --git a/docs/library/images/Cores/eightyone/chroma_on.png b/docs/library/images/Cores/eightyone/chroma_on.png new file mode 100644 index 00000000..b28ea0d5 Binary files /dev/null and b/docs/library/images/Cores/eightyone/chroma_on.png differ diff --git a/docs/library/images/Cores/eightyone/clean.png b/docs/library/images/Cores/eightyone/clean.png new file mode 100644 index 00000000..d9d34d36 Binary files /dev/null and b/docs/library/images/Cores/eightyone/clean.png differ diff --git a/docs/library/images/Cores/eightyone/noisy.png b/docs/library/images/Cores/eightyone/noisy.png new file mode 100644 index 00000000..a7b64748 Binary files /dev/null and b/docs/library/images/Cores/eightyone/noisy.png differ diff --git a/docs/library/images/Cores/eightyone/trans_off.png b/docs/library/images/Cores/eightyone/trans_off.png new file mode 100644 index 00000000..ac325910 Binary files /dev/null and b/docs/library/images/Cores/eightyone/trans_off.png differ diff --git a/docs/library/images/Cores/eightyone/trans_on.png b/docs/library/images/Cores/eightyone/trans_on.png new file mode 100644 index 00000000..f0ccf5db Binary files /dev/null and b/docs/library/images/Cores/eightyone/trans_on.png differ diff --git a/docs/library/images/Cores/eightyone/tv.png b/docs/library/images/Cores/eightyone/tv.png new file mode 100644 index 00000000..8cab8c4c Binary files /dev/null and b/docs/library/images/Cores/eightyone/tv.png differ diff --git a/docs/library/images/Cores/emux/emux_gb.png b/docs/library/images/Cores/emux/emux_gb.png new file mode 100644 index 00000000..2473089d Binary files /dev/null and b/docs/library/images/Cores/emux/emux_gb.png differ diff --git a/docs/library/images/Cores/emux/emux_nes.png b/docs/library/images/Cores/emux/emux_nes.png new file mode 100644 index 00000000..8d5ee350 Binary files /dev/null and b/docs/library/images/Cores/emux/emux_nes.png differ diff --git a/docs/library/images/Cores/fceumm/4by3.png b/docs/library/images/Cores/fceumm/4by3.png new file mode 100644 index 00000000..ba06985d Binary files /dev/null and b/docs/library/images/Cores/fceumm/4by3.png differ diff --git a/docs/library/images/Cores/fceumm/8by7_PAR.png b/docs/library/images/Cores/fceumm/8by7_PAR.png new file mode 100644 index 00000000..6e51f610 Binary files /dev/null and b/docs/library/images/Cores/fceumm/8by7_PAR.png differ diff --git a/docs/library/images/Cores/fceumm/asqrealc.png b/docs/library/images/Cores/fceumm/asqrealc.png new file mode 100644 index 00000000..e3a43ee2 Binary files /dev/null and b/docs/library/images/Cores/fceumm/asqrealc.png differ diff --git a/docs/library/images/Cores/fceumm/bmf_final2.png b/docs/library/images/Cores/fceumm/bmf_final2.png new file mode 100644 index 00000000..3298ef49 Binary files /dev/null and b/docs/library/images/Cores/fceumm/bmf_final2.png differ diff --git a/docs/library/images/Cores/fceumm/bmf_final3.png b/docs/library/images/Cores/fceumm/bmf_final3.png new file mode 100644 index 00000000..486f6b08 Binary files /dev/null and b/docs/library/images/Cores/fceumm/bmf_final3.png differ diff --git a/docs/library/images/Cores/fceumm/cross_off.png b/docs/library/images/Cores/fceumm/cross_off.png new file mode 100644 index 00000000..f658b4c1 Binary files /dev/null and b/docs/library/images/Cores/fceumm/cross_off.png differ diff --git a/docs/library/images/Cores/fceumm/cross_on.png b/docs/library/images/Cores/fceumm/cross_on.png new file mode 100644 index 00000000..6ff941e8 Binary files /dev/null and b/docs/library/images/Cores/fceumm/cross_on.png differ diff --git a/docs/library/images/Cores/fceumm/default.png b/docs/library/images/Cores/fceumm/default.png new file mode 100644 index 00000000..ad67900c Binary files /dev/null and b/docs/library/images/Cores/fceumm/default.png differ diff --git a/docs/library/images/Cores/fceumm/direct_fbx.png b/docs/library/images/Cores/fceumm/direct_fbx.png new file mode 100644 index 00000000..3e94cda7 Binary files /dev/null and b/docs/library/images/Cores/fceumm/direct_fbx.png differ diff --git a/docs/library/images/Cores/fceumm/horiz_off.png b/docs/library/images/Cores/fceumm/horiz_off.png new file mode 100644 index 00000000..faea32e6 Binary files /dev/null and b/docs/library/images/Cores/fceumm/horiz_off.png differ diff --git a/docs/library/images/Cores/fceumm/horiz_on.png b/docs/library/images/Cores/fceumm/horiz_on.png new file mode 100644 index 00000000..0fd286f1 Binary files /dev/null and b/docs/library/images/Cores/fceumm/horiz_on.png differ diff --git a/docs/library/images/Cores/fceumm/nes_classic_fbx_fs.png b/docs/library/images/Cores/fceumm/nes_classic_fbx_fs.png new file mode 100644 index 00000000..d2042c46 Binary files /dev/null and b/docs/library/images/Cores/fceumm/nes_classic_fbx_fs.png differ diff --git a/docs/library/images/Cores/fceumm/nescap.png b/docs/library/images/Cores/fceumm/nescap.png new file mode 100644 index 00000000..c48082c6 Binary files /dev/null and b/docs/library/images/Cores/fceumm/nescap.png differ diff --git a/docs/library/images/Cores/fceumm/nintendo_vc.png b/docs/library/images/Cores/fceumm/nintendo_vc.png new file mode 100644 index 00000000..b8c7a9f7 Binary files /dev/null and b/docs/library/images/Cores/fceumm/nintendo_vc.png differ diff --git a/docs/library/images/Cores/fceumm/ntsc_hardware_fbx.png b/docs/library/images/Cores/fceumm/ntsc_hardware_fbx.png new file mode 100644 index 00000000..24bcf4c4 Binary files /dev/null and b/docs/library/images/Cores/fceumm/ntsc_hardware_fbx.png differ diff --git a/docs/library/images/Cores/fceumm/ntsc_off.png b/docs/library/images/Cores/fceumm/ntsc_off.png new file mode 100644 index 00000000..220c7ce6 Binary files /dev/null and b/docs/library/images/Cores/fceumm/ntsc_off.png differ diff --git a/docs/library/images/Cores/fceumm/ntsc_on.png b/docs/library/images/Cores/fceumm/ntsc_on.png new file mode 100644 index 00000000..72f42d4b Binary files /dev/null and b/docs/library/images/Cores/fceumm/ntsc_on.png differ diff --git a/docs/library/images/Cores/fceumm/pal.png b/docs/library/images/Cores/fceumm/pal.png new file mode 100644 index 00000000..7fc65266 Binary files /dev/null and b/docs/library/images/Cores/fceumm/pal.png differ diff --git a/docs/library/images/Cores/fceumm/pvm_style_d93_fbx.png b/docs/library/images/Cores/fceumm/pvm_style_d93_fbx.png new file mode 100644 index 00000000..788927aa Binary files /dev/null and b/docs/library/images/Cores/fceumm/pvm_style_d93_fbx.png differ diff --git a/docs/library/images/Cores/fceumm/raw.png b/docs/library/images/Cores/fceumm/raw.png new file mode 100644 index 00000000..0cf36a69 Binary files /dev/null and b/docs/library/images/Cores/fceumm/raw.png differ diff --git a/docs/library/images/Cores/fceumm/rgb.png b/docs/library/images/Cores/fceumm/rgb.png new file mode 100644 index 00000000..f5ac62b7 Binary files /dev/null and b/docs/library/images/Cores/fceumm/rgb.png differ diff --git a/docs/library/images/Cores/fceumm/smooth_fbx.png b/docs/library/images/Cores/fceumm/smooth_fbx.png new file mode 100644 index 00000000..3454784b Binary files /dev/null and b/docs/library/images/Cores/fceumm/smooth_fbx.png differ diff --git a/docs/library/images/Cores/fceumm/sony_cxa2025as_us.png b/docs/library/images/Cores/fceumm/sony_cxa2025as_us.png new file mode 100644 index 00000000..44db7369 Binary files /dev/null and b/docs/library/images/Cores/fceumm/sony_cxa2025as_us.png differ diff --git a/docs/library/images/Cores/fceumm/unsaturated_final.png b/docs/library/images/Cores/fceumm/unsaturated_final.png new file mode 100644 index 00000000..f8cc0753 Binary files /dev/null and b/docs/library/images/Cores/fceumm/unsaturated_final.png differ diff --git a/docs/library/images/Cores/fceumm/vert_off.png b/docs/library/images/Cores/fceumm/vert_off.png new file mode 100644 index 00000000..1ea0ac08 Binary files /dev/null and b/docs/library/images/Cores/fceumm/vert_off.png differ diff --git a/docs/library/images/Cores/fceumm/vert_on.png b/docs/library/images/Cores/fceumm/vert_on.png new file mode 100644 index 00000000..f91b38c0 Binary files /dev/null and b/docs/library/images/Cores/fceumm/vert_on.png differ diff --git a/docs/library/images/Cores/fceumm/wavebeam.png b/docs/library/images/Cores/fceumm/wavebeam.png new file mode 100644 index 00000000..c1bb5964 Binary files /dev/null and b/docs/library/images/Cores/fceumm/wavebeam.png differ diff --git a/docs/library/images/Cores/fceumm/yuv_v3.png b/docs/library/images/Cores/fceumm/yuv_v3.png new file mode 100644 index 00000000..982ed768 Binary files /dev/null and b/docs/library/images/Cores/fceumm/yuv_v3.png differ diff --git a/docs/library/images/Cores/ffmpeg/320x180.png b/docs/library/images/Cores/ffmpeg/320x180.png new file mode 100644 index 00000000..366765e5 Binary files /dev/null and b/docs/library/images/Cores/ffmpeg/320x180.png differ diff --git a/docs/library/images/Cores/ffmpeg/3840x2160.png b/docs/library/images/Cores/ffmpeg/3840x2160.png new file mode 100644 index 00000000..3613947f Binary files /dev/null and b/docs/library/images/Cores/ffmpeg/3840x2160.png differ diff --git a/docs/library/images/Cores/gambatte/blue.png b/docs/library/images/Cores/gambatte/blue.png new file mode 100644 index 00000000..231ef3e3 Binary files /dev/null and b/docs/library/images/Cores/gambatte/blue.png differ diff --git a/docs/library/images/Cores/gambatte/brown.png b/docs/library/images/Cores/gambatte/brown.png new file mode 100644 index 00000000..fe374c5a Binary files /dev/null and b/docs/library/images/Cores/gambatte/brown.png differ diff --git a/docs/library/images/Cores/gambatte/color_auto.png b/docs/library/images/Cores/gambatte/color_auto.png new file mode 100644 index 00000000..a430d3b6 Binary files /dev/null and b/docs/library/images/Cores/gambatte/color_auto.png differ diff --git a/docs/library/images/Cores/gambatte/color_off.png b/docs/library/images/Cores/gambatte/color_off.png new file mode 100644 index 00000000..cfa78f3e Binary files /dev/null and b/docs/library/images/Cores/gambatte/color_off.png differ diff --git a/docs/library/images/Cores/gambatte/correct_off.png b/docs/library/images/Cores/gambatte/correct_off.png new file mode 100644 index 00000000..0d7d3756 Binary files /dev/null and b/docs/library/images/Cores/gambatte/correct_off.png differ diff --git a/docs/library/images/Cores/gambatte/correct_on.png b/docs/library/images/Cores/gambatte/correct_on.png new file mode 100644 index 00000000..5eb09a01 Binary files /dev/null and b/docs/library/images/Cores/gambatte/correct_on.png differ diff --git a/docs/library/images/Cores/gambatte/dark_blue.png b/docs/library/images/Cores/gambatte/dark_blue.png new file mode 100644 index 00000000..57a425a8 Binary files /dev/null and b/docs/library/images/Cores/gambatte/dark_blue.png differ diff --git a/docs/library/images/Cores/gambatte/dark_brown.png b/docs/library/images/Cores/gambatte/dark_brown.png new file mode 100644 index 00000000..4eff0592 Binary files /dev/null and b/docs/library/images/Cores/gambatte/dark_brown.png differ diff --git a/docs/library/images/Cores/gambatte/dark_green.png b/docs/library/images/Cores/gambatte/dark_green.png new file mode 100644 index 00000000..2da6f237 Binary files /dev/null and b/docs/library/images/Cores/gambatte/dark_green.png differ diff --git a/docs/library/images/Cores/gambatte/gambatte.png b/docs/library/images/Cores/gambatte/gambatte.png new file mode 100644 index 00000000..698807ab Binary files /dev/null and b/docs/library/images/Cores/gambatte/gambatte.png differ diff --git a/docs/library/images/Cores/gambatte/gb_bios.png b/docs/library/images/Cores/gambatte/gb_bios.png new file mode 100644 index 00000000..7b3dc6df Binary files /dev/null and b/docs/library/images/Cores/gambatte/gb_bios.png differ diff --git a/docs/library/images/Cores/gambatte/gbc_bios.png b/docs/library/images/Cores/gambatte/gbc_bios.png new file mode 100644 index 00000000..a17f088f Binary files /dev/null and b/docs/library/images/Cores/gambatte/gbc_bios.png differ diff --git a/docs/library/images/Cores/gambatte/grayscale.png b/docs/library/images/Cores/gambatte/grayscale.png new file mode 100644 index 00000000..86469cb5 Binary files /dev/null and b/docs/library/images/Cores/gambatte/grayscale.png differ diff --git a/docs/library/images/Cores/gambatte/green.png b/docs/library/images/Cores/gambatte/green.png new file mode 100644 index 00000000..c0ccf3a2 Binary files /dev/null and b/docs/library/images/Cores/gambatte/green.png differ diff --git a/docs/library/images/Cores/gambatte/inverted.png b/docs/library/images/Cores/gambatte/inverted.png new file mode 100644 index 00000000..f0a01b06 Binary files /dev/null and b/docs/library/images/Cores/gambatte/inverted.png differ diff --git a/docs/library/images/Cores/gambatte/orange.png b/docs/library/images/Cores/gambatte/orange.png new file mode 100644 index 00000000..8eafe765 Binary files /dev/null and b/docs/library/images/Cores/gambatte/orange.png differ diff --git a/docs/library/images/Cores/gambatte/pastel.png b/docs/library/images/Cores/gambatte/pastel.png new file mode 100644 index 00000000..52230c62 Binary files /dev/null and b/docs/library/images/Cores/gambatte/pastel.png differ diff --git a/docs/library/images/Cores/gambatte/red.png b/docs/library/images/Cores/gambatte/red.png new file mode 100644 index 00000000..1b167060 Binary files /dev/null and b/docs/library/images/Cores/gambatte/red.png differ diff --git a/docs/library/images/Cores/gambatte/sheepitup.png b/docs/library/images/Cores/gambatte/sheepitup.png new file mode 100644 index 00000000..8a0f0ea9 Binary files /dev/null and b/docs/library/images/Cores/gambatte/sheepitup.png differ diff --git a/docs/library/images/Cores/gambatte/special1.png b/docs/library/images/Cores/gambatte/special1.png new file mode 100644 index 00000000..5ff1c2fd Binary files /dev/null and b/docs/library/images/Cores/gambatte/special1.png differ diff --git a/docs/library/images/Cores/gambatte/special2.png b/docs/library/images/Cores/gambatte/special2.png new file mode 100644 index 00000000..acdb5ddf Binary files /dev/null and b/docs/library/images/Cores/gambatte/special2.png differ diff --git a/docs/library/images/Cores/gambatte/special3.png b/docs/library/images/Cores/gambatte/special3.png new file mode 100644 index 00000000..74ce7b93 Binary files /dev/null and b/docs/library/images/Cores/gambatte/special3.png differ diff --git a/docs/library/images/Cores/gambatte/tool.png b/docs/library/images/Cores/gambatte/tool.png new file mode 100644 index 00000000..54f9d102 Binary files /dev/null and b/docs/library/images/Cores/gambatte/tool.png differ diff --git a/docs/library/images/Cores/gambatte/yellow.png b/docs/library/images/Cores/gambatte/yellow.png new file mode 100644 index 00000000..e853934b Binary files /dev/null and b/docs/library/images/Cores/gambatte/yellow.png differ diff --git a/docs/library/images/Cores/genesis_plus_gx/blargg_composite.png b/docs/library/images/Cores/genesis_plus_gx/blargg_composite.png new file mode 100644 index 00000000..5b739d4c Binary files /dev/null and b/docs/library/images/Cores/genesis_plus_gx/blargg_composite.png differ diff --git a/docs/library/images/Cores/genesis_plus_gx/blargg_monochrome.png b/docs/library/images/Cores/genesis_plus_gx/blargg_monochrome.png new file mode 100644 index 00000000..2ad43a6d Binary files /dev/null and b/docs/library/images/Cores/genesis_plus_gx/blargg_monochrome.png differ diff --git a/docs/library/images/Cores/genesis_plus_gx/blargg_off.png b/docs/library/images/Cores/genesis_plus_gx/blargg_off.png new file mode 100644 index 00000000..a15b9273 Binary files /dev/null and b/docs/library/images/Cores/genesis_plus_gx/blargg_off.png differ diff --git a/docs/library/images/Cores/genesis_plus_gx/blargg_rgb.png b/docs/library/images/Cores/genesis_plus_gx/blargg_rgb.png new file mode 100644 index 00000000..9a0edc32 Binary files /dev/null and b/docs/library/images/Cores/genesis_plus_gx/blargg_rgb.png differ diff --git a/docs/library/images/Cores/genesis_plus_gx/blargg_svideo.png b/docs/library/images/Cores/genesis_plus_gx/blargg_svideo.png new file mode 100644 index 00000000..e130813c Binary files /dev/null and b/docs/library/images/Cores/genesis_plus_gx/blargg_svideo.png differ diff --git a/docs/library/images/Cores/genesis_plus_gx/cue.png b/docs/library/images/Cores/genesis_plus_gx/cue.png new file mode 100644 index 00000000..3b5f1c23 Binary files /dev/null and b/docs/library/images/Cores/genesis_plus_gx/cue.png differ diff --git a/docs/library/images/Cores/genesis_plus_gx/double.png b/docs/library/images/Cores/genesis_plus_gx/double.png new file mode 100644 index 00000000..91a5f46a Binary files /dev/null and b/docs/library/images/Cores/genesis_plus_gx/double.png differ diff --git a/docs/library/images/Cores/genesis_plus_gx/extend_off.png b/docs/library/images/Cores/genesis_plus_gx/extend_off.png new file mode 100644 index 00000000..ceb72b72 Binary files /dev/null and b/docs/library/images/Cores/genesis_plus_gx/extend_off.png differ diff --git a/docs/library/images/Cores/genesis_plus_gx/extend_on.png b/docs/library/images/Cores/genesis_plus_gx/extend_on.png new file mode 100644 index 00000000..9e4599ad Binary files /dev/null and b/docs/library/images/Cores/genesis_plus_gx/extend_on.png differ diff --git a/docs/library/images/Cores/genesis_plus_gx/ghost.png b/docs/library/images/Cores/genesis_plus_gx/ghost.png new file mode 100644 index 00000000..0940f0a6 Binary files /dev/null and b/docs/library/images/Cores/genesis_plus_gx/ghost.png differ diff --git a/docs/library/images/Cores/genesis_plus_gx/lightgun.png b/docs/library/images/Cores/genesis_plus_gx/lightgun.png new file mode 100644 index 00000000..5f5fa6e1 Binary files /dev/null and b/docs/library/images/Cores/genesis_plus_gx/lightgun.png differ diff --git a/docs/library/images/Cores/genesis_plus_gx/single.png b/docs/library/images/Cores/genesis_plus_gx/single.png new file mode 100644 index 00000000..c42f6f42 Binary files /dev/null and b/docs/library/images/Cores/genesis_plus_gx/single.png differ diff --git a/docs/library/images/Cores/gpsp/fighter.png b/docs/library/images/Cores/gpsp/fighter.png new file mode 100644 index 00000000..fa5f1bce Binary files /dev/null and b/docs/library/images/Cores/gpsp/fighter.png differ diff --git a/docs/library/images/Cores/gpsp/goku.png b/docs/library/images/Cores/gpsp/goku.png new file mode 100644 index 00000000..bf1c4344 Binary files /dev/null and b/docs/library/images/Cores/gpsp/goku.png differ diff --git a/docs/library/images/Cores/gpsp/sims.png b/docs/library/images/Cores/gpsp/sims.png new file mode 100644 index 00000000..1163c0de Binary files /dev/null and b/docs/library/images/Cores/gpsp/sims.png differ diff --git a/docs/library/images/Cores/gw/donkey.png b/docs/library/images/Cores/gw/donkey.png new file mode 100644 index 00000000..8462c95c Binary files /dev/null and b/docs/library/images/Cores/gw/donkey.png differ diff --git a/docs/library/images/Cores/gw/overlay.png b/docs/library/images/Cores/gw/overlay.png new file mode 100644 index 00000000..a33c2cf4 Binary files /dev/null and b/docs/library/images/Cores/gw/overlay.png differ diff --git a/docs/library/images/Cores/higan/256x224.png b/docs/library/images/Cores/higan/256x224.png new file mode 100644 index 00000000..9a06606c Binary files /dev/null and b/docs/library/images/Cores/higan/256x224.png differ diff --git a/docs/library/images/Cores/higan/256x240.png b/docs/library/images/Cores/higan/256x240.png new file mode 100644 index 00000000..d6407592 Binary files /dev/null and b/docs/library/images/Cores/higan/256x240.png differ diff --git a/docs/library/images/Cores/higan/512x224.png b/docs/library/images/Cores/higan/512x224.png new file mode 100644 index 00000000..3adfe1ad Binary files /dev/null and b/docs/library/images/Cores/higan/512x224.png differ diff --git a/docs/library/images/Cores/higan/512x240.png b/docs/library/images/Cores/higan/512x240.png new file mode 100644 index 00000000..000aefa2 Binary files /dev/null and b/docs/library/images/Cores/higan/512x240.png differ diff --git a/docs/library/images/Cores/higan/512x448.png b/docs/library/images/Cores/higan/512x448.png new file mode 100644 index 00000000..48e397d8 Binary files /dev/null and b/docs/library/images/Cores/higan/512x448.png differ diff --git a/docs/library/images/Cores/higan/512x480.png b/docs/library/images/Cores/higan/512x480.png new file mode 100644 index 00000000..3a073fea Binary files /dev/null and b/docs/library/images/Cores/higan/512x480.png differ diff --git a/docs/library/images/Cores/higan/blur_off.png b/docs/library/images/Cores/higan/blur_off.png new file mode 100644 index 00000000..48537a1a Binary files /dev/null and b/docs/library/images/Cores/higan/blur_off.png differ diff --git a/docs/library/images/Cores/higan/blur_on.png b/docs/library/images/Cores/higan/blur_on.png new file mode 100644 index 00000000..de5c1cb5 Binary files /dev/null and b/docs/library/images/Cores/higan/blur_on.png differ diff --git a/docs/library/images/Cores/higan/bsnes_accuracy.png b/docs/library/images/Cores/higan/bsnes_accuracy.png new file mode 100644 index 00000000..30076c34 Binary files /dev/null and b/docs/library/images/Cores/higan/bsnes_accuracy.png differ diff --git a/docs/library/images/Cores/higan/bsnes_balanced.png b/docs/library/images/Cores/higan/bsnes_balanced.png new file mode 100644 index 00000000..98f78dff Binary files /dev/null and b/docs/library/images/Cores/higan/bsnes_balanced.png differ diff --git a/docs/library/images/Cores/higan/bsnes_cplusplus98.png b/docs/library/images/Cores/higan/bsnes_cplusplus98.png new file mode 100644 index 00000000..e3db7134 Binary files /dev/null and b/docs/library/images/Cores/higan/bsnes_cplusplus98.png differ diff --git a/docs/library/images/Cores/higan/bsnes_mercury_accuracy.png b/docs/library/images/Cores/higan/bsnes_mercury_accuracy.png new file mode 100644 index 00000000..bb262f4f Binary files /dev/null and b/docs/library/images/Cores/higan/bsnes_mercury_accuracy.png differ diff --git a/docs/library/images/Cores/higan/bsnes_mercury_balanced.png b/docs/library/images/Cores/higan/bsnes_mercury_balanced.png new file mode 100644 index 00000000..d774fb27 Binary files /dev/null and b/docs/library/images/Cores/higan/bsnes_mercury_balanced.png differ diff --git a/docs/library/images/Cores/higan/bsnes_mercury_performance.png b/docs/library/images/Cores/higan/bsnes_mercury_performance.png new file mode 100644 index 00000000..1d066c76 Binary files /dev/null and b/docs/library/images/Cores/higan/bsnes_mercury_performance.png differ diff --git a/docs/library/images/Cores/higan/bsnes_performance.png b/docs/library/images/Cores/higan/bsnes_performance.png new file mode 100644 index 00000000..a1e533ef Binary files /dev/null and b/docs/library/images/Cores/higan/bsnes_performance.png differ diff --git a/docs/library/images/Cores/higan/color_off.png b/docs/library/images/Cores/higan/color_off.png new file mode 100644 index 00000000..e5811ea4 Binary files /dev/null and b/docs/library/images/Cores/higan/color_off.png differ diff --git a/docs/library/images/Cores/higan/color_on.png b/docs/library/images/Cores/higan/color_on.png new file mode 100644 index 00000000..e00f75f8 Binary files /dev/null and b/docs/library/images/Cores/higan/color_on.png differ diff --git a/docs/library/images/Cores/higan/gamma_off.png b/docs/library/images/Cores/higan/gamma_off.png new file mode 100644 index 00000000..545f4744 Binary files /dev/null and b/docs/library/images/Cores/higan/gamma_off.png differ diff --git a/docs/library/images/Cores/higan/gamma_on.png b/docs/library/images/Cores/higan/gamma_on.png new file mode 100644 index 00000000..b6c7feb2 Binary files /dev/null and b/docs/library/images/Cores/higan/gamma_on.png differ diff --git a/docs/library/images/Cores/higan/higan_accuracy.png b/docs/library/images/Cores/higan/higan_accuracy.png new file mode 100644 index 00000000..0e4b3e01 Binary files /dev/null and b/docs/library/images/Cores/higan/higan_accuracy.png differ diff --git a/docs/library/images/Cores/higan/nside_balanced.png b/docs/library/images/Cores/higan/nside_balanced.png new file mode 100644 index 00000000..8dea262f Binary files /dev/null and b/docs/library/images/Cores/higan/nside_balanced.png differ diff --git a/docs/library/images/Cores/higan/sgb.png b/docs/library/images/Cores/higan/sgb.png new file mode 100644 index 00000000..c90cb74f Binary files /dev/null and b/docs/library/images/Cores/higan/sgb.png differ diff --git a/docs/library/images/Cores/lutro/lutro.png b/docs/library/images/Cores/lutro/lutro.png new file mode 100644 index 00000000..83a397a7 Binary files /dev/null and b/docs/library/images/Cores/lutro/lutro.png differ diff --git a/docs/library/images/Cores/mesen/hdpack.png b/docs/library/images/Cores/mesen/hdpack.png new file mode 100644 index 00000000..723e85f2 Binary files /dev/null and b/docs/library/images/Cores/mesen/hdpack.png differ diff --git a/docs/library/images/Cores/mgba/bios.png b/docs/library/images/Cores/mgba/bios.png new file mode 100644 index 00000000..d5cb2e38 Binary files /dev/null and b/docs/library/images/Cores/mgba/bios.png differ diff --git a/docs/library/images/Cores/mr_boom/draw.gif b/docs/library/images/Cores/mr_boom/draw.gif new file mode 100644 index 00000000..702a5f82 Binary files /dev/null and b/docs/library/images/Cores/mr_boom/draw.gif differ diff --git a/docs/library/images/Cores/mr_boom/monsters_off.png b/docs/library/images/Cores/mr_boom/monsters_off.png new file mode 100644 index 00000000..f95c7512 Binary files /dev/null and b/docs/library/images/Cores/mr_boom/monsters_off.png differ diff --git a/docs/library/images/Cores/mr_boom/monsters_on.png b/docs/library/images/Cores/mr_boom/monsters_on.png new file mode 100644 index 00000000..937d1b27 Binary files /dev/null and b/docs/library/images/Cores/mr_boom/monsters_on.png differ diff --git a/docs/library/images/Cores/mr_boom/victory.png b/docs/library/images/Cores/mr_boom/victory.png new file mode 100644 index 00000000..9dc20247 Binary files /dev/null and b/docs/library/images/Cores/mr_boom/victory.png differ diff --git a/docs/library/images/Cores/nestopia_ue/alternative.png b/docs/library/images/Cores/nestopia_ue/alternative.png new file mode 100644 index 00000000..a315809c Binary files /dev/null and b/docs/library/images/Cores/nestopia_ue/alternative.png differ diff --git a/docs/library/images/Cores/nestopia_ue/blargg_composite.png b/docs/library/images/Cores/nestopia_ue/blargg_composite.png new file mode 100644 index 00000000..ccc3f198 Binary files /dev/null and b/docs/library/images/Cores/nestopia_ue/blargg_composite.png differ diff --git a/docs/library/images/Cores/nestopia_ue/blargg_monochrome.png b/docs/library/images/Cores/nestopia_ue/blargg_monochrome.png new file mode 100644 index 00000000..0fe3eed2 Binary files /dev/null and b/docs/library/images/Cores/nestopia_ue/blargg_monochrome.png differ diff --git a/docs/library/images/Cores/nestopia_ue/blargg_off.png b/docs/library/images/Cores/nestopia_ue/blargg_off.png new file mode 100644 index 00000000..8f434d30 Binary files /dev/null and b/docs/library/images/Cores/nestopia_ue/blargg_off.png differ diff --git a/docs/library/images/Cores/nestopia_ue/blargg_rgb.png b/docs/library/images/Cores/nestopia_ue/blargg_rgb.png new file mode 100644 index 00000000..17f5b4e2 Binary files /dev/null and b/docs/library/images/Cores/nestopia_ue/blargg_rgb.png differ diff --git a/docs/library/images/Cores/nestopia_ue/blargg_svideo.png b/docs/library/images/Cores/nestopia_ue/blargg_svideo.png new file mode 100644 index 00000000..ad4c3e99 Binary files /dev/null and b/docs/library/images/Cores/nestopia_ue/blargg_svideo.png differ diff --git a/docs/library/images/Cores/nestopia_ue/canonical.png b/docs/library/images/Cores/nestopia_ue/canonical.png new file mode 100644 index 00000000..203d765b Binary files /dev/null and b/docs/library/images/Cores/nestopia_ue/canonical.png differ diff --git a/docs/library/images/Cores/nestopia_ue/composite_direct_fbx.png b/docs/library/images/Cores/nestopia_ue/composite_direct_fbx.png new file mode 100644 index 00000000..a0456572 Binary files /dev/null and b/docs/library/images/Cores/nestopia_ue/composite_direct_fbx.png differ diff --git a/docs/library/images/Cores/nestopia_ue/consumer.png b/docs/library/images/Cores/nestopia_ue/consumer.png new file mode 100644 index 00000000..897e48d8 Binary files /dev/null and b/docs/library/images/Cores/nestopia_ue/consumer.png differ diff --git a/docs/library/images/Cores/nestopia_ue/cxa2025as.png b/docs/library/images/Cores/nestopia_ue/cxa2025as.png new file mode 100644 index 00000000..044a6495 Binary files /dev/null and b/docs/library/images/Cores/nestopia_ue/cxa2025as.png differ diff --git a/docs/library/images/Cores/nestopia_ue/horiz_off.png b/docs/library/images/Cores/nestopia_ue/horiz_off.png new file mode 100644 index 00000000..eae532da Binary files /dev/null and b/docs/library/images/Cores/nestopia_ue/horiz_off.png differ diff --git a/docs/library/images/Cores/nestopia_ue/horiz_on.png b/docs/library/images/Cores/nestopia_ue/horiz_on.png new file mode 100644 index 00000000..14c08f98 Binary files /dev/null and b/docs/library/images/Cores/nestopia_ue/horiz_on.png differ diff --git a/docs/library/images/Cores/nestopia_ue/nes_classic_fbx_fs.png b/docs/library/images/Cores/nestopia_ue/nes_classic_fbx_fs.png new file mode 100644 index 00000000..540624f1 Binary files /dev/null and b/docs/library/images/Cores/nestopia_ue/nes_classic_fbx_fs.png differ diff --git a/docs/library/images/Cores/nestopia_ue/ntsc_hardware_fbx.png b/docs/library/images/Cores/nestopia_ue/ntsc_hardware_fbx.png new file mode 100644 index 00000000..c8c05311 Binary files /dev/null and b/docs/library/images/Cores/nestopia_ue/ntsc_hardware_fbx.png differ diff --git a/docs/library/images/Cores/nestopia_ue/pal.png b/docs/library/images/Cores/nestopia_ue/pal.png new file mode 100644 index 00000000..9fa6065f Binary files /dev/null and b/docs/library/images/Cores/nestopia_ue/pal.png differ diff --git a/docs/library/images/Cores/nestopia_ue/pvm_style_d93_fbx.png b/docs/library/images/Cores/nestopia_ue/pvm_style_d93_fbx.png new file mode 100644 index 00000000..5ca92440 Binary files /dev/null and b/docs/library/images/Cores/nestopia_ue/pvm_style_d93_fbx.png differ diff --git a/docs/library/images/Cores/nestopia_ue/ratio_4by3.png b/docs/library/images/Cores/nestopia_ue/ratio_4by3.png new file mode 100644 index 00000000..759dd7f5 Binary files /dev/null and b/docs/library/images/Cores/nestopia_ue/ratio_4by3.png differ diff --git a/docs/library/images/Cores/nestopia_ue/ratio_ntsc.png b/docs/library/images/Cores/nestopia_ue/ratio_ntsc.png new file mode 100644 index 00000000..7210c4f2 Binary files /dev/null and b/docs/library/images/Cores/nestopia_ue/ratio_ntsc.png differ diff --git a/docs/library/images/Cores/nestopia_ue/ratio_pal.png b/docs/library/images/Cores/nestopia_ue/ratio_pal.png new file mode 100644 index 00000000..2a74de53 Binary files /dev/null and b/docs/library/images/Cores/nestopia_ue/ratio_pal.png differ diff --git a/docs/library/images/Cores/nestopia_ue/raw.png b/docs/library/images/Cores/nestopia_ue/raw.png new file mode 100644 index 00000000..5077e8fd Binary files /dev/null and b/docs/library/images/Cores/nestopia_ue/raw.png differ diff --git a/docs/library/images/Cores/nestopia_ue/rgb.png b/docs/library/images/Cores/nestopia_ue/rgb.png new file mode 100644 index 00000000..82670503 Binary files /dev/null and b/docs/library/images/Cores/nestopia_ue/rgb.png differ diff --git a/docs/library/images/Cores/nestopia_ue/skull.png b/docs/library/images/Cores/nestopia_ue/skull.png new file mode 100644 index 00000000..ef3be6c2 Binary files /dev/null and b/docs/library/images/Cores/nestopia_ue/skull.png differ diff --git a/docs/library/images/Cores/nestopia_ue/vert_off.png b/docs/library/images/Cores/nestopia_ue/vert_off.png new file mode 100644 index 00000000..6f64598f Binary files /dev/null and b/docs/library/images/Cores/nestopia_ue/vert_off.png differ diff --git a/docs/library/images/Cores/nestopia_ue/vert_on.png b/docs/library/images/Cores/nestopia_ue/vert_on.png new file mode 100644 index 00000000..e1993e7d Binary files /dev/null and b/docs/library/images/Cores/nestopia_ue/vert_on.png differ diff --git a/docs/library/images/Cores/nxengine/doukutsu.png b/docs/library/images/Cores/nxengine/doukutsu.png new file mode 100644 index 00000000..58cb63e8 Binary files /dev/null and b/docs/library/images/Cores/nxengine/doukutsu.png differ diff --git a/docs/library/images/Cores/nxengine/down_story.png b/docs/library/images/Cores/nxengine/down_story.png new file mode 100644 index 00000000..09c4df2f Binary files /dev/null and b/docs/library/images/Cores/nxengine/down_story.png differ diff --git a/docs/library/images/Cores/nxengine/nxengine.png b/docs/library/images/Cores/nxengine/nxengine.png new file mode 100644 index 00000000..c3110ae5 Binary files /dev/null and b/docs/library/images/Cores/nxengine/nxengine.png differ diff --git a/docs/library/images/Cores/openlara/1920x1080.png b/docs/library/images/Cores/openlara/1920x1080.png new file mode 100644 index 00000000..4c2f50ff Binary files /dev/null and b/docs/library/images/Cores/openlara/1920x1080.png differ diff --git a/docs/library/images/Cores/openlara/320x240.png b/docs/library/images/Cores/openlara/320x240.png new file mode 100644 index 00000000..97a83fae Binary files /dev/null and b/docs/library/images/Cores/openlara/320x240.png differ diff --git a/docs/library/images/Cores/openlara/advanced.png b/docs/library/images/Cores/openlara/advanced.png new file mode 100644 index 00000000..cf1af794 Binary files /dev/null and b/docs/library/images/Cores/openlara/advanced.png differ diff --git a/docs/library/images/Cores/openlara/bilinear.png b/docs/library/images/Cores/openlara/bilinear.png new file mode 100644 index 00000000..1cda319d Binary files /dev/null and b/docs/library/images/Cores/openlara/bilinear.png differ diff --git a/docs/library/images/Cores/openlara/context.png b/docs/library/images/Cores/openlara/context.png new file mode 100644 index 00000000..ca419f69 Binary files /dev/null and b/docs/library/images/Cores/openlara/context.png differ diff --git a/docs/library/images/Cores/openlara/gl.png b/docs/library/images/Cores/openlara/gl.png new file mode 100644 index 00000000..2f2b5122 Binary files /dev/null and b/docs/library/images/Cores/openlara/gl.png differ diff --git a/docs/library/images/Cores/openlara/nearest.png b/docs/library/images/Cores/openlara/nearest.png new file mode 100644 index 00000000..aa5e0816 Binary files /dev/null and b/docs/library/images/Cores/openlara/nearest.png differ diff --git a/docs/library/images/Cores/openlara/settings.png b/docs/library/images/Cores/openlara/settings.png new file mode 100644 index 00000000..c6e90f9b Binary files /dev/null and b/docs/library/images/Cores/openlara/settings.png differ diff --git a/docs/library/images/Cores/openlara/texture.png b/docs/library/images/Cores/openlara/texture.png new file mode 100644 index 00000000..4b4cd980 Binary files /dev/null and b/docs/library/images/Cores/openlara/texture.png differ diff --git a/docs/library/images/Cores/openlara/water_off.png b/docs/library/images/Cores/openlara/water_off.png new file mode 100644 index 00000000..1830036d Binary files /dev/null and b/docs/library/images/Cores/openlara/water_off.png differ diff --git a/docs/library/images/Cores/openlara/water_on.png b/docs/library/images/Cores/openlara/water_on.png new file mode 100644 index 00000000..4068febf Binary files /dev/null and b/docs/library/images/Cores/openlara/water_on.png differ diff --git a/docs/library/images/Cores/pcsx_rearmed/dither_off.png b/docs/library/images/Cores/pcsx_rearmed/dither_off.png new file mode 100644 index 00000000..65f379f7 Binary files /dev/null and b/docs/library/images/Cores/pcsx_rearmed/dither_off.png differ diff --git a/docs/library/images/Cores/pcsx_rearmed/dither_on.png b/docs/library/images/Cores/pcsx_rearmed/dither_on.png new file mode 100644 index 00000000..ef01cfc7 Binary files /dev/null and b/docs/library/images/Cores/pcsx_rearmed/dither_on.png differ diff --git a/docs/library/images/Cores/pcsx_rearmed/pcsx_rearmed.png b/docs/library/images/Cores/pcsx_rearmed/pcsx_rearmed.png new file mode 100644 index 00000000..5ec4ce10 Binary files /dev/null and b/docs/library/images/Cores/pcsx_rearmed/pcsx_rearmed.png differ diff --git a/docs/library/images/Cores/picodrive/4by3.png b/docs/library/images/Cores/picodrive/4by3.png new file mode 100644 index 00000000..2e380380 Binary files /dev/null and b/docs/library/images/Cores/picodrive/4by3.png differ diff --git a/docs/library/images/Cores/picodrive/crt.png b/docs/library/images/Cores/picodrive/crt.png new file mode 100644 index 00000000..ea44a7c2 Binary files /dev/null and b/docs/library/images/Cores/picodrive/crt.png differ diff --git a/docs/library/images/Cores/picodrive/overscan_off.png b/docs/library/images/Cores/picodrive/overscan_off.png new file mode 100644 index 00000000..180b6cad Binary files /dev/null and b/docs/library/images/Cores/picodrive/overscan_off.png differ diff --git a/docs/library/images/Cores/picodrive/overscan_on.png b/docs/library/images/Cores/picodrive/overscan_on.png new file mode 100644 index 00000000..bd837580 Binary files /dev/null and b/docs/library/images/Cores/picodrive/overscan_on.png differ diff --git a/docs/library/images/Cores/picodrive/par.png b/docs/library/images/Cores/picodrive/par.png new file mode 100644 index 00000000..fbb10cbc Binary files /dev/null and b/docs/library/images/Cores/picodrive/par.png differ diff --git a/docs/library/images/Cores/pokemini/galactix.png b/docs/library/images/Cores/pokemini/galactix.png new file mode 100644 index 00000000..cdd75913 Binary files /dev/null and b/docs/library/images/Cores/pokemini/galactix.png differ diff --git a/docs/library/images/Cores/pokemini/pokemini.png b/docs/library/images/Cores/pokemini/pokemini.png new file mode 100644 index 00000000..2742b74c Binary files /dev/null and b/docs/library/images/Cores/pokemini/pokemini.png differ diff --git a/docs/library/images/Cores/ppsspp/directory.png b/docs/library/images/Cores/ppsspp/directory.png new file mode 100644 index 00000000..fd822265 Binary files /dev/null and b/docs/library/images/Cores/ppsspp/directory.png differ diff --git a/docs/library/images/Cores/ppsspp/download.png b/docs/library/images/Cores/ppsspp/download.png new file mode 100644 index 00000000..ba0508fc Binary files /dev/null and b/docs/library/images/Cores/ppsspp/download.png differ diff --git a/docs/library/images/Cores/ppsspp/ppsspp.png b/docs/library/images/Cores/ppsspp/ppsspp.png new file mode 100644 index 00000000..85349322 Binary files /dev/null and b/docs/library/images/Cores/ppsspp/ppsspp.png differ diff --git a/docs/library/images/Cores/ppsspp/ppsspp_assets.png b/docs/library/images/Cores/ppsspp/ppsspp_assets.png new file mode 100644 index 00000000..a4c37945 Binary files /dev/null and b/docs/library/images/Cores/ppsspp/ppsspp_assets.png differ diff --git a/docs/library/images/Cores/prboom/internal_resolution_1920x1200.png b/docs/library/images/Cores/prboom/internal_resolution_1920x1200.png new file mode 100644 index 00000000..841c489b Binary files /dev/null and b/docs/library/images/Cores/prboom/internal_resolution_1920x1200.png differ diff --git a/docs/library/images/Cores/prboom/internal_resolution_320x200.png b/docs/library/images/Cores/prboom/internal_resolution_320x200.png new file mode 100644 index 00000000..9fb93228 Binary files /dev/null and b/docs/library/images/Cores/prboom/internal_resolution_320x200.png differ diff --git a/docs/library/images/Cores/px68k/keyboard.jpg b/docs/library/images/Cores/px68k/keyboard.jpg new file mode 100644 index 00000000..72c7a7f9 Binary files /dev/null and b/docs/library/images/Cores/px68k/keyboard.jpg differ diff --git a/docs/library/images/Cores/quicknes/mickey.png b/docs/library/images/Cores/quicknes/mickey.png new file mode 100644 index 00000000..fa5b8e31 Binary files /dev/null and b/docs/library/images/Cores/quicknes/mickey.png differ diff --git a/docs/library/images/Cores/reicast/1920x1440.png b/docs/library/images/Cores/reicast/1920x1440.png new file mode 100644 index 00000000..60af27d2 Binary files /dev/null and b/docs/library/images/Cores/reicast/1920x1440.png differ diff --git a/docs/library/images/Cores/reicast/640x480.png b/docs/library/images/Cores/reicast/640x480.png new file mode 100644 index 00000000..4d592dd6 Binary files /dev/null and b/docs/library/images/Cores/reicast/640x480.png differ diff --git a/docs/library/images/Cores/sameboy/color_brightness.png b/docs/library/images/Cores/sameboy/color_brightness.png new file mode 100644 index 00000000..e9662c5a Binary files /dev/null and b/docs/library/images/Cores/sameboy/color_brightness.png differ diff --git a/docs/library/images/Cores/sameboy/color_curves.png b/docs/library/images/Cores/sameboy/color_curves.png new file mode 100644 index 00000000..7ffea951 Binary files /dev/null and b/docs/library/images/Cores/sameboy/color_curves.png differ diff --git a/docs/library/images/Cores/sameboy/color_hardware.png b/docs/library/images/Cores/sameboy/color_hardware.png new file mode 100644 index 00000000..e9662c5a Binary files /dev/null and b/docs/library/images/Cores/sameboy/color_hardware.png differ diff --git a/docs/library/images/Cores/sameboy/color_off.png b/docs/library/images/Cores/sameboy/color_off.png new file mode 100644 index 00000000..3f374de2 Binary files /dev/null and b/docs/library/images/Cores/sameboy/color_off.png differ diff --git a/docs/library/images/Cores/sameboy/gb1.png b/docs/library/images/Cores/sameboy/gb1.png new file mode 100644 index 00000000..2984edec Binary files /dev/null and b/docs/library/images/Cores/sameboy/gb1.png differ diff --git a/docs/library/images/Cores/sameboy/gb2.png b/docs/library/images/Cores/sameboy/gb2.png new file mode 100644 index 00000000..afaecd0b Binary files /dev/null and b/docs/library/images/Cores/sameboy/gb2.png differ diff --git a/docs/library/images/Cores/sameboy/menu1.png b/docs/library/images/Cores/sameboy/menu1.png new file mode 100644 index 00000000..d76a0a5e Binary files /dev/null and b/docs/library/images/Cores/sameboy/menu1.png differ diff --git a/docs/library/images/Cores/sameboy/menu2.png b/docs/library/images/Cores/sameboy/menu2.png new file mode 100644 index 00000000..40f0f99b Binary files /dev/null and b/docs/library/images/Cores/sameboy/menu2.png differ diff --git a/docs/library/images/Cores/sameboy/sameboy.png b/docs/library/images/Cores/sameboy/sameboy.png new file mode 100644 index 00000000..93f6550c Binary files /dev/null and b/docs/library/images/Cores/sameboy/sameboy.png differ diff --git a/docs/library/images/Cores/snes9x/4by3.png b/docs/library/images/Cores/snes9x/4by3.png new file mode 100644 index 00000000..d6ac78d6 Binary files /dev/null and b/docs/library/images/Cores/snes9x/4by3.png differ diff --git a/docs/library/images/Cores/snes9x/crop_off.png b/docs/library/images/Cores/snes9x/crop_off.png new file mode 100644 index 00000000..3d407db6 Binary files /dev/null and b/docs/library/images/Cores/snes9x/crop_off.png differ diff --git a/docs/library/images/Cores/snes9x/crop_on.png b/docs/library/images/Cores/snes9x/crop_on.png new file mode 100644 index 00000000..ccdbbf6d Binary files /dev/null and b/docs/library/images/Cores/snes9x/crop_on.png differ diff --git a/docs/library/images/Cores/snes9x/msu.png b/docs/library/images/Cores/snes9x/msu.png new file mode 100644 index 00000000..aa99fb0b Binary files /dev/null and b/docs/library/images/Cores/snes9x/msu.png differ diff --git a/docs/library/images/Cores/snes9x/ntsc.png b/docs/library/images/Cores/snes9x/ntsc.png new file mode 100644 index 00000000..03384283 Binary files /dev/null and b/docs/library/images/Cores/snes9x/ntsc.png differ diff --git a/docs/library/images/Cores/snes9x/pal.png b/docs/library/images/Cores/snes9x/pal.png new file mode 100644 index 00000000..d80240bd Binary files /dev/null and b/docs/library/images/Cores/snes9x/pal.png differ diff --git a/docs/library/images/Cores/snes9x/snes9x.png b/docs/library/images/Cores/snes9x/snes9x.png new file mode 100644 index 00000000..5b8f82d9 Binary files /dev/null and b/docs/library/images/Cores/snes9x/snes9x.png differ diff --git a/docs/library/images/Cores/snes9x/snes9x_2002.png b/docs/library/images/Cores/snes9x/snes9x_2002.png new file mode 100644 index 00000000..9c9774bf Binary files /dev/null and b/docs/library/images/Cores/snes9x/snes9x_2002.png differ diff --git a/docs/library/images/Cores/snes9x/snes9x_2005.png b/docs/library/images/Cores/snes9x/snes9x_2005.png new file mode 100644 index 00000000..dc842ed5 Binary files /dev/null and b/docs/library/images/Cores/snes9x/snes9x_2005.png differ diff --git a/docs/library/images/Cores/snes9x/snes9x_2005_plus.png b/docs/library/images/Cores/snes9x/snes9x_2005_plus.png new file mode 100644 index 00000000..76319bb7 Binary files /dev/null and b/docs/library/images/Cores/snes9x/snes9x_2005_plus.png differ diff --git a/docs/library/images/Cores/snes9x/snes9x_2010.png b/docs/library/images/Cores/snes9x/snes9x_2010.png new file mode 100644 index 00000000..25cce6f7 Binary files /dev/null and b/docs/library/images/Cores/snes9x/snes9x_2010.png differ diff --git a/docs/library/images/Cores/tgb_dual/horiz.png b/docs/library/images/Cores/tgb_dual/horiz.png new file mode 100644 index 00000000..66118f28 Binary files /dev/null and b/docs/library/images/Cores/tgb_dual/horiz.png differ diff --git a/docs/library/images/Cores/tgb_dual/link.png b/docs/library/images/Cores/tgb_dual/link.png new file mode 100644 index 00000000..66118f28 Binary files /dev/null and b/docs/library/images/Cores/tgb_dual/link.png differ diff --git a/docs/library/images/Cores/tgb_dual/sheepitup.png b/docs/library/images/Cores/tgb_dual/sheepitup.png new file mode 100644 index 00000000..8a0f0ea9 Binary files /dev/null and b/docs/library/images/Cores/tgb_dual/sheepitup.png differ diff --git a/docs/library/images/Cores/tgb_dual/tgb_dual.png b/docs/library/images/Cores/tgb_dual/tgb_dual.png new file mode 100644 index 00000000..4369bf1a Binary files /dev/null and b/docs/library/images/Cores/tgb_dual/tgb_dual.png differ diff --git a/docs/library/images/Cores/tgb_dual/vert.png b/docs/library/images/Cores/tgb_dual/vert.png new file mode 100644 index 00000000..eed63c03 Binary files /dev/null and b/docs/library/images/Cores/tgb_dual/vert.png differ diff --git a/docs/library/images/Cores/tyrquake/1920x1080.png b/docs/library/images/Cores/tyrquake/1920x1080.png new file mode 100644 index 00000000..92b2db6c Binary files /dev/null and b/docs/library/images/Cores/tyrquake/1920x1080.png differ diff --git a/docs/library/images/Cores/tyrquake/320x240.png b/docs/library/images/Cores/tyrquake/320x240.png new file mode 100644 index 00000000..aa1f7593 Binary files /dev/null and b/docs/library/images/Cores/tyrquake/320x240.png differ diff --git a/docs/library/images/Cores/vba_next/bios.png b/docs/library/images/Cores/vba_next/bios.png new file mode 100644 index 00000000..d5cb2e38 Binary files /dev/null and b/docs/library/images/Cores/vba_next/bios.png differ diff --git a/docs/library/images/Cores/vba_next/ssx.png b/docs/library/images/Cores/vba_next/ssx.png new file mode 100644 index 00000000..bd2253e5 Binary files /dev/null and b/docs/library/images/Cores/vba_next/ssx.png differ diff --git a/docs/library/images/Cores/vecx/res_multiplier_1.png b/docs/library/images/Cores/vecx/res_multiplier_1.png new file mode 100644 index 00000000..ea8fda85 Binary files /dev/null and b/docs/library/images/Cores/vecx/res_multiplier_1.png differ diff --git a/docs/library/images/Cores/vecx/res_multiplier_4.png b/docs/library/images/Cores/vecx/res_multiplier_4.png new file mode 100644 index 00000000..b4c88245 Binary files /dev/null and b/docs/library/images/Cores/vecx/res_multiplier_4.png differ diff --git a/docs/library/images/Cores/virtual_jaguar/bios.png b/docs/library/images/Cores/virtual_jaguar/bios.png new file mode 100644 index 00000000..2730ed94 Binary files /dev/null and b/docs/library/images/Cores/virtual_jaguar/bios.png differ diff --git a/docs/library/images/Cores/virtual_jaguar/cyber.png b/docs/library/images/Cores/virtual_jaguar/cyber.png new file mode 100644 index 00000000..d6b5bed9 Binary files /dev/null and b/docs/library/images/Cores/virtual_jaguar/cyber.png differ diff --git a/docs/library/images/Cores/virtual_jaguar/doom_off.png b/docs/library/images/Cores/virtual_jaguar/doom_off.png new file mode 100644 index 00000000..12d56a99 Binary files /dev/null and b/docs/library/images/Cores/virtual_jaguar/doom_off.png differ diff --git a/docs/library/images/Cores/virtual_jaguar/doom_on.png b/docs/library/images/Cores/virtual_jaguar/doom_on.png new file mode 100644 index 00000000..b89b7b29 Binary files /dev/null and b/docs/library/images/Cores/virtual_jaguar/doom_on.png differ diff --git a/docs/library/images/Cores/virtual_jaguar/ninja.png b/docs/library/images/Cores/virtual_jaguar/ninja.png new file mode 100644 index 00000000..6d293ccb Binary files /dev/null and b/docs/library/images/Cores/virtual_jaguar/ninja.png differ diff --git a/docs/library/images/Cores/xrick/xrick.png b/docs/library/images/Cores/xrick/xrick.png new file mode 100644 index 00000000..1e3599c4 Binary files /dev/null and b/docs/library/images/Cores/xrick/xrick.png differ diff --git a/docs/library/images/RetroMouse/Retro_Left+Middle.png b/docs/library/images/RetroMouse/Retro_Left+Middle.png new file mode 100644 index 00000000..ee489794 Binary files /dev/null and b/docs/library/images/RetroMouse/Retro_Left+Middle.png differ diff --git a/docs/library/images/RetroMouse/Retro_Left.png b/docs/library/images/RetroMouse/Retro_Left.png new file mode 100644 index 00000000..6552f9ca Binary files /dev/null and b/docs/library/images/RetroMouse/Retro_Left.png differ diff --git a/docs/library/images/RetroMouse/Retro_Middle.png b/docs/library/images/RetroMouse/Retro_Middle.png new file mode 100644 index 00000000..f4d45f74 Binary files /dev/null and b/docs/library/images/RetroMouse/Retro_Middle.png differ diff --git a/docs/library/images/RetroMouse/Retro_Mouse.png b/docs/library/images/RetroMouse/Retro_Mouse.png new file mode 100644 index 00000000..aed68817 Binary files /dev/null and b/docs/library/images/RetroMouse/Retro_Mouse.png differ diff --git a/docs/library/images/RetroMouse/Retro_Right+Middle.png b/docs/library/images/RetroMouse/Retro_Right+Middle.png new file mode 100644 index 00000000..bd24ada3 Binary files /dev/null and b/docs/library/images/RetroMouse/Retro_Right+Middle.png differ diff --git a/docs/library/images/RetroMouse/Retro_Right.png b/docs/library/images/RetroMouse/Retro_Right.png new file mode 100644 index 00000000..9480c9f7 Binary files /dev/null and b/docs/library/images/RetroMouse/Retro_Right.png differ diff --git a/docs/library/images/RetroPad/Retro_A_Round.png b/docs/library/images/RetroPad/Retro_A_Round.png new file mode 100644 index 00000000..1b50797e Binary files /dev/null and b/docs/library/images/RetroPad/Retro_A_Round.png differ diff --git a/docs/library/images/RetroPad/Retro_B_Round.png b/docs/library/images/RetroPad/Retro_B_Round.png new file mode 100644 index 00000000..bed44d32 Binary files /dev/null and b/docs/library/images/RetroPad/Retro_B_Round.png differ diff --git a/docs/library/images/RetroPad/Retro_Dpad.png b/docs/library/images/RetroPad/Retro_Dpad.png new file mode 100644 index 00000000..70a8a419 Binary files /dev/null and b/docs/library/images/RetroPad/Retro_Dpad.png differ diff --git a/docs/library/images/RetroPad/Retro_Dpad_Down.png b/docs/library/images/RetroPad/Retro_Dpad_Down.png new file mode 100644 index 00000000..e4f5d2e5 Binary files /dev/null and b/docs/library/images/RetroPad/Retro_Dpad_Down.png differ diff --git a/docs/library/images/RetroPad/Retro_Dpad_Left.png b/docs/library/images/RetroPad/Retro_Dpad_Left.png new file mode 100644 index 00000000..ead8c19c Binary files /dev/null and b/docs/library/images/RetroPad/Retro_Dpad_Left.png differ diff --git a/docs/library/images/RetroPad/Retro_Dpad_Right.png b/docs/library/images/RetroPad/Retro_Dpad_Right.png new file mode 100644 index 00000000..dbd9e938 Binary files /dev/null and b/docs/library/images/RetroPad/Retro_Dpad_Right.png differ diff --git a/docs/library/images/RetroPad/Retro_Dpad_Up.png b/docs/library/images/RetroPad/Retro_Dpad_Up.png new file mode 100644 index 00000000..53a65f4c Binary files /dev/null and b/docs/library/images/RetroPad/Retro_Dpad_Up.png differ diff --git a/docs/library/images/RetroPad/Retro_L1.png b/docs/library/images/RetroPad/Retro_L1.png new file mode 100644 index 00000000..8a1d87c5 Binary files /dev/null and b/docs/library/images/RetroPad/Retro_L1.png differ diff --git a/docs/library/images/RetroPad/Retro_L2.png b/docs/library/images/RetroPad/Retro_L2.png new file mode 100644 index 00000000..f5ae9d84 Binary files /dev/null and b/docs/library/images/RetroPad/Retro_L2.png differ diff --git a/docs/library/images/RetroPad/Retro_L2_Temp.png b/docs/library/images/RetroPad/Retro_L2_Temp.png new file mode 100644 index 00000000..25a5a959 Binary files /dev/null and b/docs/library/images/RetroPad/Retro_L2_Temp.png differ diff --git a/docs/library/images/RetroPad/Retro_L3.png b/docs/library/images/RetroPad/Retro_L3.png new file mode 100644 index 00000000..c7d6ba37 Binary files /dev/null and b/docs/library/images/RetroPad/Retro_L3.png differ diff --git a/docs/library/images/RetroPad/Retro_Left_Stick.png b/docs/library/images/RetroPad/Retro_Left_Stick.png new file mode 100644 index 00000000..a7349d42 Binary files /dev/null and b/docs/library/images/RetroPad/Retro_Left_Stick.png differ diff --git a/docs/library/images/RetroPad/Retro_R1.png b/docs/library/images/RetroPad/Retro_R1.png new file mode 100644 index 00000000..722e405c Binary files /dev/null and b/docs/library/images/RetroPad/Retro_R1.png differ diff --git a/docs/library/images/RetroPad/Retro_R2.png b/docs/library/images/RetroPad/Retro_R2.png new file mode 100644 index 00000000..65270f37 Binary files /dev/null and b/docs/library/images/RetroPad/Retro_R2.png differ diff --git a/docs/library/images/RetroPad/Retro_R3.png b/docs/library/images/RetroPad/Retro_R3.png new file mode 100644 index 00000000..7a2a4c35 Binary files /dev/null and b/docs/library/images/RetroPad/Retro_R3.png differ diff --git a/docs/library/images/RetroPad/Retro_Right_Stick.png b/docs/library/images/RetroPad/Retro_Right_Stick.png new file mode 100644 index 00000000..88cd0000 Binary files /dev/null and b/docs/library/images/RetroPad/Retro_Right_Stick.png differ diff --git a/docs/library/images/RetroPad/Retro_Select.png b/docs/library/images/RetroPad/Retro_Select.png new file mode 100644 index 00000000..b493aff6 Binary files /dev/null and b/docs/library/images/RetroPad/Retro_Select.png differ diff --git a/docs/library/images/RetroPad/Retro_Start.png b/docs/library/images/RetroPad/Retro_Start.png new file mode 100644 index 00000000..1c8cb97d Binary files /dev/null and b/docs/library/images/RetroPad/Retro_Start.png differ diff --git a/docs/library/images/RetroPad/Retro_X_Round.png b/docs/library/images/RetroPad/Retro_X_Round.png new file mode 100644 index 00000000..a9d35ff6 Binary files /dev/null and b/docs/library/images/RetroPad/Retro_X_Round.png differ diff --git a/docs/library/images/RetroPad/Retro_Y_Round.png b/docs/library/images/RetroPad/Retro_Y_Round.png new file mode 100644 index 00000000..9ef2022a Binary files /dev/null and b/docs/library/images/RetroPad/Retro_Y_Round.png differ diff --git a/docs/library/imageviewer.md b/docs/library/imageviewer.md new file mode 100644 index 00000000..755498ca --- /dev/null +++ b/docs/library/imageviewer.md @@ -0,0 +1,111 @@ +# Imageviewer + +## Background + +View images + +### Author/License + +The Imageviewer core has been authored by + +- The RetroArch Team + +The Imageviewer core is licensed under + +- [MIT](https://github.com/libretro/RetroArch/blob/master/cores/libretro-imageviewer/LICENSE) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Imageviewer core have the following file extensions: + +- .jpg +- .jpeg +- .png +- .bmp +- .psd +- .tga +- .gif +- .hdr +- .pic +- .ppm +- .pgm + +## Features + +Frontend-level settings or features that the Imageviewer core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✕ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✕ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Imageviewer core's internal core name is 'image display' + +### Geometry and timing + +- The Imageviewer core's core provided FPS is 60 +- The Imageviewer core's core provided sample rate is 44100 Hz +- The Imageviewer core's core provided aspect ratio is dependent on the loaded content. + +## Controllers + +The Imageviewer core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. There's no reason to switch to this. +- **RetroPad** - Joypad - Stay on this. +- RetroPad w/Analog - Joypad - There's no reason to switch to this. + +### Controller tables + +#### Joypad + +| RetroPad Inputs | Imageviewer core Inputs | +|-------------------------------------------|------------------------------------------------------------| +| ![](images/RetroPad/Retro_Y_Round.png) | Automatic slideshow - Go to the next image every 2 seconds | +| ![](images/RetroPad/Retro_Dpad_Up.png) | Go forward 5 images | +| ![](images/RetroPad/Retro_Dpad_Down.png) | Go backward 5 images | +| ![](images/RetroPad/Retro_Dpad_Left.png) | Go backward 1 image | +| ![](images/RetroPad/Retro_Dpad_Right.png) | Go forward 1 image | + +## External Links + +- [Libretro Imageviewer Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/imageviewer_libretro.info) +- [Libretro Imageviewer Github Repository](https://github.com/libretro/RetroArch/tree/master/cores/libretro-imageviewer) +- [Report Libretro Imageviewer Core Issues Here](https://github.com/libretro/RetroArch/issues) + +### See also + +#### Media + +- [FFmpeg](https://docs.libretro.com/library/ffmpeg/) +- [Game Music Emu](https://docs.libretro.com/library/game_music_emu/) +- [mpv](https://docs.libretro.com/library/mpv/) +- [PocketCDG](https://docs.libretro.com/library/pocketcdg/) \ No newline at end of file diff --git a/docs/library/lutro.md b/docs/library/lutro.md new file mode 100644 index 00000000..49316110 --- /dev/null +++ b/docs/library/lutro.md @@ -0,0 +1,148 @@ +# Lua Engine (Lutro) + +## Background + +Lutro is an experimental lua game framework that follows the [LÖVE API](https://love2d.org/wiki/Main_Page). Lutro games can be played with LibRetro/RetroArch through the Lutro core. + +#### How to start the Lutro core: + +- As an example showcasing loading content with the Lutro core, we will load the Pong game hosted on RetroArch's Content Downloader. + +You can do this by going to RetroArch's main menu screen and selecting 'Online Updater'. From there, select 'Content Downloader'. + +
![](images\Cores\all\download.png)
+ +- Select 'Lutro', then select 'Pong.lutro'. This should download and extract this file to RetroArch's Downloads directory. + +
![](images\Cores\lutro\lutro.png)
+ +- Go back to RetroArch's main menu screen. Select 'Load Content', then 'Downloads'. + +
![](images\Cores\all\load.png)
+ +
![](images\Cores\all\downloads.png)
+ +- Select 'Pong.lutro'. + +- If you are asked which core to select, choose 'Lua Engine (Lutro)'. + +The content should now start running! + +### Author/License + +The Lutro core has been authored by + +- Higor Euripedes +- Jean-Andre Santoni + +The Lutro core is licensed under + +- [MIT](https://github.com/libretro/libretro-lutro/blob/master/LICENSE) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Lutro core have the following file extensions: + +- .lutro +- .lua + +## Databases + +RetroArch database(s) that are associated with the Lutro core: + +- [Lutro](https://github.com/libretro/libretro-database/blob/master/rdb/Lutro.rdb) + +## Features + +Frontend-level settings or features that the Lutro core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✕ | +| Screenshots | ✕ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Lutro core's internal core name is 'lutro' + +### Geometry and timing + +- The Lutro core's core provided FPS is 60 +- The Lutro core's core provided sample rate is 44100 Hz +- The LUtro core's core provided aspect ratio is (Ratio) + +## Controllers + +The Lutro core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. There's no reason to switch to this. +- **RetroPad** - Joypad - Stay on this. +- RetroPad w/Analog - Joypad - Same as RetroPad. There's no reaosn to switch to this. + +### Controller tables + +#### Joypad + +!!! attention + What the inputs do are game specific. + +| User 1 Remap descriptors | RetroPad Inputs | Lutro core Inputs | +|--------------------------|----------------------------------------------|-------------------| +| | ![](images/RetroPad/Retro_B_Round.png) | B | +| | ![](images/RetroPad/Retro_Y_Round.png) | Y | +| | ![](images/RetroPad/Retro_Select.png) | Select | +| | ![](images/RetroPad/Retro_Start.png) | Start | +| Up | ![](images/RetroPad/Retro_Dpad_Up.png) | Up | +| Down | ![](images/RetroPad/Retro_Dpad_Down.png) | Down | +| Left | ![](images/RetroPad/Retro_Dpad_Left.png) | Left | +| Right | ![](images/RetroPad/Retro_Dpad_Right.png) | Right | +| | ![](images/RetroPad/Retro_A_Round.png) | A | +| | ![](images/RetroPad/Retro_X_Round.png) | X | +| | ![](images/RetroPad/Retro_L1.png) | L1 | +| | ![](images/RetroPad/Retro_R1.png) | R1 | +| | ![](images/RetroPad/Retro_L2.png) | L2 | +| | ![](images/RetroPad/Retro_R2.png) | R2 | +| | ![](images/RetroPad/Retro_L3.png) | L3 | +| | ![](images/RetroPad/Retro_R3.png) | R3 | + +## External Links + +- [Lua Website](https://www.lua.org/) +- [LÖVE API Website](https://love2d.org/) +- [Libretro Lutro Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/lutro_libretro.info) +- [Libretro Lutro Github Repository](https://github.com/libretro/libretro-lutro) +- [LUTRO LÖVE API Comparison](https://github.com/libretro/lutro-status) +- [Lutro Github Wiki](https://github.com/libretro/libretro-lutro/wiki) +- [Report Libretro Lutro Core Issues Here](https://github.com/libretro/libretro-lutro/issues) + +### See also + +#### Custom Engine + +- [ChaiLove](https://docs.libretro.com/library/chailove/) \ No newline at end of file diff --git a/docs/library/mame_2003.md b/docs/library/mame_2003.md new file mode 100644 index 00000000..d313d568 --- /dev/null +++ b/docs/library/mame_2003.md @@ -0,0 +1,181 @@ +# MAME 2003 + +## Background + +MAME 2003 is an arcade system emulator that can be used as a libretro core. MAME 2003 is based on MAME 0.78 with backported patches for performance and compatibility improvements. This core is a popular choice for the Raspberry Pi family and other low-powered hardware because it supports most 2D-era arcade games and a broad set of features without requiring as much processor and memory resources as later MAME cores. + +Author(s): MAMEdev + +## Contribute to this documentation + +In order to propose improvements to this document, [visit it's corresponding source page on github](https://github.com/libretro/docs/blob/master/docs/library/mame2003.md). Changes are proposed using "Pull Requests." + +## See also + +MAME 2000, MAME 2010, MAME 2014, MAME 2016, and MAME. + +## License + +BSD-3-Clause & GNU GPLv2 + +## Extensions + +zip + +## BIOS + +The MAME 2003 core does not feature BIOS use. + +## Features + +| Feature | Supported | +|-------------------|:---------:| +| Saves | ✔ | +| States | game-dependent | +| Rewind | ✔ | +| Netplay | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✔ | +| Controllers | ✔ | +| Multi-Mouse | ✔ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | + +### Core options + +- **Frameskip** (**0**-5): Skips frame to make slow emulation look faster than it is while compromising playability. (Not advised) +- **DCS Speedhack** (**On**/Off): Speedhack for the Midway sound hardware used in Mortal Kombat 2, 3 and others. Improves performance in these games. +- **Skip Disclaimer** (**On**/Off): Skips the 'nag-screen'. +- **Skip Warnings** (On/**Off**): Skips the warning screen shown before games with incomplete emulation. +- **Samples** (**On**/Off): Requires valid sample zips. | - | +- **Sample Rate** (11025-**48000**): Lowering may improve performance on weaker devices. +- **Cheats** (On/**Off**): Requires a valid cheat.dat file. +- **Share 2 player dial controls across one X/Y device** (On/**Off**): Some dial/spinner hardware are actually one device with one axis for each player. This supports that setup, by breaking down the normal mouse x/y into two seperate inputs. +- **Mouse Device** (**mouse**/pointer/disabled): Switch between mouse (e.g. hardware mouse, trackball, etc), pointer (touchpad, touchscreen, lightgun, etc), or disabled. +- **TATE Mode** (On/**Off**): Enable if rotating display for vertically oriented games (Pac-Man, Galaga, etc). Requires `video_allow_rotate = "false"` setting in RetroArch.cfg or core override file. + +----------- + +## Directories + +* Some MAME games require data from an internal hard drive, CD-ROM, laserdisk, or other media in order to be emulated -- those forms of media are packaged as CHD files. CHD files should be copied to subfolders within the folder where the MAME ROM zips have been installed. e.g.: +``` +/libretro content dir/blitz/blitz.chd +``` +* Some games require an additional zip file with recorded sounds or music in order for audio to work correctly. Audio 'sample' files should be placed in subdirectories within `/libretro system dir/mame2003/` e.g.: +``` +/libretro system dir/mame2003/samples/ +``` +* High score, cheat, and history metadata files should be moved from github's [`/libretro/mame2003-libretro/tree/master/metadata`](https://github.com/libretro/mame2003-libretro/tree/master/metadata) and placed within `/libretro system dir/mame2003/` e.g.: +``` +/libretro system dir/mame2003/hiscore.dat +/libretro system dir/mame2003/cheat.dat +/libretro system dir/mame2003/history.dat +``` +* User-generated content is placed in sub-directories within `/libretro savefile dir/mame2003/` e.g.: +``` +/libretro savefile dir/mame2003/diff/ +/libretro savefile dir/mame2003/nvram/ +/libretro savefile dir/mame2003/hi/ +/libretro savefile dir/mame2003/cfg/ +/libretro savefile dir/mame2003/inp/ +/libretro savefile dir/mame2003/memcard/ +/libretro savefile dir/mame2003/snap/ +``` + +### MAME UI menu + +To access the MAME internal menu, press the 'TAB' key or RetroPad R2. If you rebind MAME global inputs ('Input (general)'), it will update a file in ``` /libretro savefile dir/mame2003/cfg/ ``` **default.cfg**. + +These files are not human-readable, but can be safely deleted if you get into a mess and wish to return to the default input configuration. + +## Controllers + +The core supports one controller setting(s): + +* RetroPad + +| MAME 2003 | [RetroPad](RetroPad) | +|--------------------------------------|----------------------------------------------------------------| +| Button 1/Right Stick Down/UI Cancel | ![RetroPad_B](images/RetroPad/Retro_B_Round.png) | +| Button 2/Right Stick Left | ![RetroPad_Y](images/RetroPad/Retro_Y_Round.png) | +| Coin in | ![RetroPad_Select](images/RetroPad/Retro_Select.png) | +| Start | ![RetroPad_Start](images/RetroPad/Retro_Start.png) | +| Left Joystick | ![RetroPad_Dpad](images/RetroPad/Retro_Dpad.png) | +| Button 4/Right Stick Right/UI Select | ![RetroPad_A](images/RetroPad/Retro_A_Round.png) | +| Button 3/Right Stick Up | ![RetroPad_X](images/RetroPad/Retro_X_Round.png) | +| Button 5 | ![RetroPad_L1](images/RetroPad/Retro_L1.png) | +| Button 6 | ![RetroPad_R1](images/RetroPad/Retro_R1.png) | +| Button 7 | ![RetroPad_L2](images/RetroPad/Retro_L2_Temp.png) | +| Button 8/TAB Menu | ![RetroPad_R2](images/RetroPad/Retro_R2.png) | +| Button 9 | ![RetroPad_L3](images/RetroPad/Retro_L3.png) | +| Button 10 | ![RetroPad_R3](images/RetroPad/Retro_R3.png) | +| Left Joystick | ![RetroPad_Left_Stick](images/RetroPad/Retro_Left_Stick.png) | +| | ![RetroPad_Right_Stick](images/RetroPad/Retro_Right_Stick.png) | + +## MAME 2003 Features + +### Service menu + +MAME 2003 can ability to access games' internal service menus to set permanent game options. This allows you to, for example, configure a game to be 'free play' (no need to insert coins). To access the MAME service, press the 'F2' key. After changing options in the service mode, the game's internal memory will be stored to an .nv file in: ``` /libretro savefile dir/mame2003/nvram/ ``` + +### Dip-switches + +Similarly to the [Service menu](#service-menu), many arcade games had hardware switches for arcade owners to modify certain parameters. These can be adjust by pressing the 'TAB' key to access the MAME menu, and select the '**Dip Switches**' option. Here you can turn them on/off. + +### High scores + +MAME 2003 will attempt to keep a permanent record of any high scores you set, but some games will not save these by default. The supplementary file called `hiscore.dat` is required for these ROMs to save scores. This file can be [downloaded from the MAME 2003 'metadata' repository](https://github.com/libretro/mame2003-libretro/tree/master/metadata). Place 'hiscore.dat' in: ``` libretro system dir/mame2003/ ``` When high scores are saved, they are kept in: ``` libretro system dir/mame2003/hi/ ``` The `hiscore.dat` file can be downloaded from the MAME 2003 'metadata' repository. [Save and transfer `hiscore.dat`](https://raw.githubusercontent.com/libretro/mame2003-libretro/master/metadata/) + +### Save states + +MAME 2003 supports save states through the usual Retroarch hotkeys. However, save state support has to be implemented per-driver, so they won't work with all games. + +### Cheats + +MAME 2003 supports the MAME cheat engine, allowing you to use the 'TAB' menu to enable various in-game cheats. To active these, there is a supplementary file that you need to transfer to your Pi, called `cheat.dat`. This file can be [downloaded from the MAME 2003 'metadata' repository](https://github.com/libretro/mame2003-libretro/tree/master/metadata). Place `cheat.dat` in: ``` libretro system dir/mame2003/ ``` Additionally, the 'enabled cheats' core option needs to be turned on. This option is is called: ``` mame2003-cheats = "enabled" ``` To active these, there is a supplementary file that you need to transfer to your Pi, called cheat.dat. This cheat file can be downloaded from https://github.com/libretro/mame2003-libretro/tree/master/metadata. + +----------- + +## Mouse/Trackball/Analog Controller support + +MAME 2003 has support for multiple mice or touch devices in games that support trackballs, etc. + +MAME 2003 also supports one or two spinners/dials via the "Share 2 player dial controls across one X/Y device" core option. +By default, mice/trackballs and analog sticks (the left one, for controllers with 2) are supported in games that would have them, or equivalents. For example, Centipede supports the mouse/trackball, and Afterburner supports the stick. Lightgun games are supported by either. The left and right mouse buttons can be bound to fire/etc using the MAME menu. + +### Pointer/Trackpad/Touchscreen support + +Absolute pointer devices are supported, but need to be turned on via a setting in the retroarch-core-options.cfg file. + +mame2003-mouse_device = "pointer" + +### 2 player dial/spinner devices + +2 player spinner/dial devices can be represented as 1 device with 2 axes. mame2003 can be configured to share this device across both players: Player 1 = X axis, Player 2 = Y axis. This can be enabled via a setting in the retroarch-core-options.cfg file, found in: + +mame2003-dialsharexy = "enabled" +NOTE: This will disable Mouse support. + +## Dual stick games + +The right analog stick can now be used a second joystick. This is enabled by default, via a setting in the retroarch-core-options.cfg file, found in: + +mame2003-rstick_to_btns = "enabled" + +## Compatibility + +**The MAME 2003 core accepts MAME 0.78 ROMsets.** Each version of an arcade emulator must be used with ROMs that have the same exact version number. For example, MAME 0.37b5 ROMsets are required by the MAME 2000 emulator, but MAME 0.37b5 sets will not work correctly with the MAME 2003 or MAME 2010 emulator cores. Those cores require MAME 0.78 and MAME 0.139 ROM sets, respectively. + +File-not-found errors are the result of a ROMset that is wrong or incomplete, including if you're trying to run a "Split" clone .zip without the parent .zip present. Non-Merged MAME0.78 ROMsets do not require parent .zips to be present. + +## External Links + +* [Libretro Repository](https://github.com/libretro/mame2003-libretro) +* [Report Core Issues Here](https://github.com/libretro/libretro-meta/issues) +* [RetroPie MAME 2003 documentation](https://github.com/RetroPie/RetroPie-Setup/wiki/lr-mame2003) +* [Official Website](http://mamedev.org/) diff --git a/docs/library/melonds.md b/docs/library/melonds.md new file mode 100644 index 00000000..022aac51 --- /dev/null +++ b/docs/library/melonds.md @@ -0,0 +1,147 @@ +# Nintendo DS (melonDS) + +## Contribute to this documentation + +In order to propose improvements to this document, [visit its corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/melonds.md). Changes are proposed using "Pull Requests." + +## Background + +An up-and-coming Nintendo DS emulator by StapleButter, ported to libretro. + +### Why use this core? + +Awaiting description. + +### How to get and install the melonDS core: + +1. Start up RetroArch. Inside the main menu, go to 'Online Updater'. + +2. Just to make sure we have the latest info files, select 'Update Core Info FIles'. Wait until this is done. Then, select 'Core Updater'. + +3. Browse through the list and select 'Nintendo DS (melonDS)'. + +After this has finished downloading, the core should now be ready for use! + +#### How to play (after installation): + +1. Go back to RetroArch's main menu screen. Select 'Load Content'. + +2. Browse to the folder that contains the content you want to run. + +3. Select the content that you want to run. + +4. If you are asked which core to select, choose 'Nintendo DS (melonDS)'. + +The game should now start running! + +### Authors + +- StapleButter + +## See also + +- [Nintendo DS (DeSmuME)](https://docs.libretro.com/library/desmume/) - Shared platforms. + +## License + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +- [GPLv3](https://github.com/libretro/melonDS/blob/master/LICENSE) + +## Extensions + +Content that can be loaded by the melonDS core have the following file extensions: + +- .nds + +## Databases + +RetroArch database(s) that are associated with the melonDS core: + +- [Nintendo - Nintendo DS](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Nintendo%20DS.rdb) +- [Nintendo - Nintendo DS Decrypted](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Nintendo%20DS%20Decrypted.rdb) +- [Nintendo - Nintendo DS (Download Play)](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Nintendo%20DS%20(Download%20Play).rdb) + +## BIOS + +Required or optional firmware files go in RetroArch's system directory. + +| Filename | Description | md5sum | +|:-------------:|:-----------------------:|:--------------------------------:| +| firmware.bin | NDS Firmware - Required | e45033d9b0fa6b0de071292bba7c9d13 | +| bios7.bin | ARM7 BIOS - Required | df692a80a5b1bc90728bc3dfc76cd948 | +| bios9.bin | ARM9 BIOS - Required | a392174eb3e572fed6447e956bde4b25 | + +## Features + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✕ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| Softpatching | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Crop Overscan (in RetroArch's Video settings) | ✕ | + +### Saves/States + +The melonDS core's directory name is 'melonDS' + +### Core provided aspect ratio + +Awaiting description. + +## Controllers + +### Device types + +The melonDS core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +#### User 1 device types + +- None +- **RetroPad** - Joypad +- Nintendo DS - Joypad + +### Controller tables + +#### Joypad and analog device type table + +| User 1 input descriptors | | Nintendo DS | +|-------------------------------|----------------------------------------------|--------------------| +| N/A | ![](images/RetroPad/Retro_B_Round.png) | B | +| N/A | ![](images/RetroPad/Retro_Y_Round.png) | Y | +| N/A | ![](images/RetroPad/Retro_Select.png) | Select | +| N/A | ![](images/RetroPad/Retro_Start.png) | Start | +| Up | ![](images/RetroPad/Retro_Dpad_Up.png) | Up | +| Down | ![](images/RetroPad/Retro_Dpad_Down.png) | Down | +| Left | ![](images/RetroPad/Retro_Dpad_Left.png) | Left | +| Right | ![](images/RetroPad/Retro_Dpad_Right.png) | Right | +| N/A | ![](images/RetroPad/Retro_A_Round.png) | A | +| N/A | ![](images/RetroPad/Retro_X_Round.png) | X | +| N/A | ![](images/RetroPad/Retro_L1.png) | L | +| N/A | ![](images/RetroPad/Retro_R1.png) | R | + +## External Links + +- [Libretro melonDS Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/melonds_libretro.info) +- [Libretro melonDS Github Repository](https://github.com/libretro/melonds) +- [Report Libretro melonDS Core Issues Here](https://github.com/libretro/melonds/issues) +- [Official melonDS Website](http://melonds.kuribo64.net/) +- [Official melonDS Github Repository](https://github.com/StapleButter/melonDS) diff --git a/docs/library/mesen.md b/docs/library/mesen.md new file mode 100644 index 00000000..fddd464c --- /dev/null +++ b/docs/library/mesen.md @@ -0,0 +1,461 @@ +# NES / Famicom (Mesen) + +## Contribute to this documentation + +**DOCUMENTATION IS A WORK IN PROGRESS** + +**In order to propose improvements to this document, [visit its corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/mesen.md). Changes are proposed using "Pull Requests."** + +**There is a To-Do list for libretro/docs [here](https://docs.libretro.com/meta/todo/)** + +**You can submit suggestions or issues regarding documentation at the [libretro/docs issue tracker](https://github.com/libretro/docs/issues) or in our [forum thread](https://forums.libretro.com/t/wip-adding-pages-to-documentation-site/10078/).** + +## Background + +Mesen is a cross-platform NES/Famicom emulator for Windows & Linux built in C++ and C#. + +### How to install the Mesen core: + +- Start up RetroArch. Inside the main menu, go to 'Online Updater'. + +
![](images\Cores\all\updater.png)
+ +- Just to make sure we have the latest info files, select 'Update Core Info FIles'. Wait until this is done. Then, select 'Core Updater'. + +
![](images\Cores\all\info.png)
+ +- Browse through the list and select 'NES / Famicom (Mesen)'. + +
![](images\Cores\updater\mesen.png)
+ +After this has finished downloading, the core should now be ready for use! + +#### How to start the (Core name) core: + +- Go back to RetroArch's main menu screen. Select 'Load Content'. + +
![](images\Cores\all\load.png)
+ +- Browse to the folder that contains the content you want to run. + +- Select the content that you want to run. + +- If you are asked which core to select, choose 'NES / Famicom (Mesen)'. + +The content should now start running! + +### Authors + +- M. Bibaud (aka Sour) + +## See also + +### NES/Famicom + +- [NES / Famicom (bnes)](https://docs.libretro.com/library/bnes/) +- [NES / Famicom (Emux NES)](https://docs.libretro.com/library/emux_nes/) +- [NES / Famicom (FCEUmm)](https://docs.libretro.com/library/fceumm/) +- [NES / Famicom (Mesen)](https://docs.libretro.com/library/mesen/) +- [NES / Famicom (Nestopia UE)](https://docs.libretro.com/library/nestopia_ue/) +- [NES / Famicom (QuickNES)](https://docs.libretro.com/library/quicknes/) + +## License + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +The Mesen core is licensed under + +- [GPLv3](https://github.com/SourMesen/Mesen/blob/master/README.md) + +## Extensions + +Content that can be loaded by the Mesen core have the following file extensions: + +- .nes +- .fds +- .unf +- .unif + +## Databases + +RetroArch database(s) that are associated with the Mesen core: + +- [Nintendo - Nintendo Entertainment System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Nintendo%20Entertainment%20System.rdb) +- [Nintendo - Family Computer Disk System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Family%20Computer%20Disk%20System.rdb) + +## BIOS + +Required or optional firmware files go in RetroArch's system directory. + +| Filename | Description | md5sum | +|:-----------:|:-------------------------------------------------------------------------------------:|:--------------------------------:| +| disksys.rom | Family Computer Disk System BIOS - Required for Family Computer Disk System emulation | ca30b50f880eb660a320674ed365ef7a | + +## Features + +RetroArch-level settings or features that the Mesen core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✔ | +| RetroArch Cheats | ✔ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Mesen core's directory name is 'Mesen' + +The Mesen core saves/loads to/from these directories. + +**RetroArch's Home directory** + +- retroarch-core-options.cfg (Core-options) + +**RetroArch's Config directory** + +- Mesen.cfg (Core Overrides) +- 'content-name'.cfg (Game Overrides) +- 'content-name'.opt (Game-options) + +**RetroArch's Input Remapping directory** + +- Mesen.rmp (Core Remap) +- 'content-name'.rmp (Game Remap) + +**RetroArch's Video Shader directory** + +- Mesen.'shader-preset-extension' (Core Shader Preset) +- 'content-name'.'shader-preset-extension' (Game Shader Preset) + +**RetroArch's Save directory** + +- 'content-name'.sav (Cartridge battery save) + +**RetroArch's State directory** + +- 'content-name'.state# (State) + +**RetroArch's System directory** + +``` + +MesenPalette.pal (Custom Palette file) +HdPacks/'content-name'/ + - HD pack files +``` + +### Geometry and timing + +- The Mesen core's core provided FPS is 60 for NTSC games and 50 for PAL games. +- The Mesen core's core provided sample rate is 48000 Hz +- The Mesen core's core provided aspect ratio is dependent on the ['Aspect Ratio' core option](https://docs.libretro.com/library/mesen/#core-options). + +### Custom Palettes + +To use custom color palettes in the Mesen core, the ['Palette' core option](https://docs.libretro.com/library/mesen/#core-options) must be set to Custom and the custom color palette file you want to use must be in RetroArch's system directory. + +Make sure the custom palette file is named 'MesenPalette.pal' + +Custom color palettes for the NES can be generated with either of these tools. + +- [Bisqwit's NTSC NES palette generator](http://bisqwit.iki.fi/utils/nespalette.php) +- [Drag's NTSC NES palette generator](http://drag.wootest.net/misc/palgen.html) + +### HD packs + +!!! warning + To use HD packs, first make sure to turn on the [Enable HD Packs core option](https://docs.libretro.com/library/mesen/#core-options.) + +- First, create a folder named 'HdPacks' in RetroArch's System directory. + +- Next, create a folder inside the HdPacks directory that has the same name as the content you're going to load. + +- So, if the content you're loading is Mega Man (USA).nes, the folder should be named 'Mega Man (USA)'. + +- Finally, extract the HD pack content files to the Mega Man (USA) folder. + +Here's an example of a working HD pack setup done with [Mega Man 1 (NES) - 30th Anniversary 16-bit Graphic Pack](https://www.romhacking.net/forum/index.php?topic=25426.0). Pay attention to the file path. + +![](images/Cores/mesen/hdpack.png) + +!!! attention + There is more HD pack documentation at the [official Mesen documentation](https://www.mesen.ca/docs/hdpacks/#using-hd-packs). + +## Core options + +The Mesen core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +!!! attention + These core option descriptions have been sourced from the [official Mesen documentation](https://www.mesen.ca/docs/). Please go there for more information. + +- **NTSC filter** [mesen_ntsc_filter] (**Disabled**/Composite (Blargg)/S-Video (Blargg)/RGB (Blargg)/Monochrome (Blargg)/Bisqwit 2x/Bisqwit 4x/Bisqwit 8x) + + Selects a filter to apply to the picture. + + Blargg filters are fast. + + Bisqwit filters are slower. + +- **Palette** [mesen_palette] (**Default**/Composite Direct (by FirebrandX)/Nes Classic/Nestopia (RGB)/Original Hardware (by FirebrandX)/PVM Style (by FirebrandX)/Sony CXA2025AS/Unsaturated v6 (by FirebrandX)/YUV v3 (by FirebrandX)/Custom) + + Mesen comes with a number of built-in palette options - you can select them from here. + +- **Overclock** [mesen_overclock] (**None**/Low/Medium/High/Very High) + + Use this to overclock or underclock the CPU. + +!!! warning + Overclocking can cause issues in some games. + +- **Overclock Type** [mesen_overclock_type] (**Before NMI (Recommended)**/After NMI) + + Before NMI: Increases the number of scanlines in the PPU, before the NMI signal is triggered at the end of the visible frame. This effectively gives more time for games to perform calculations, which can reduce slowdowns in games. **This is the preferred option for overclocking.** + + After NMI: Increases the number of scanlines in the PPU, after the NMI signal is triggered at the end of the visible frame. This effectively gives more time for games to perform calculations, which can reduce slowdowns in games. **This option is less compatible and should only be used if the before NMI variation does not work as expected.** + +- **Region** [mesen_region] (**Auto**/NTSC/PAL/Dendy) + + When set to Auto, the emulator will try to detect the game’s region (NTSC or PAL) - however, this is not always possible. When there is nothing to suggest a game is for the PAL region (Australia & Europe), the NTSC region (North America & Japan) will be used by default. Dendy is used to mimic a number of different NES clones, in particular, the Dendy, which was a popular clone in Russia. + +- **Vertical Overscan** [mesen_overscan_vertical] (**None**/8px/16px) + + This overscan setting allow you to cut out pixels vertically on any edge of the screen. On a CRT TV, a few pixels on each side of the screen was usually invisible to the player. Because of this, games often have glitches or incorrect palette colors on the edges of the screen – this is normal and caused by the game itself. Setting a value of 8 or so on each side of the overscan configuration will usually hide most glitches. + +- **Horizontal Overscan** [mesen_overscan_horizontal] (**None**/8px/16px) + + This overscan setting allow you to cut out pixels horizontally on any edge of the screen. On a CRT TV, a few pixels on each side of the screen was usually invisible to the player. Because of this, games often have glitches or incorrect palette colors on the edges of the screen – this is normal and caused by the game itself. Setting a value of 8 or so on each side of the overscan configuration will usually hide most glitches. + +- **Aspect Ratio** [mesen_aspect_ratio] (**Auto**/No Stretching/NTSC/PAL/4:3/16:9) + + The NES’ internal aspect ratio is almost square (Default (No Stretching)), but it used to be displayed on CRT TVs that had a rectangular picture. To simulate a CRT TV, you can use the Auto option - it will switch between NTSC and PAL aspect ratios depending on the game you are playing. Using anything other than the Default (No Stretching) option may cause pixels to have irregular sizes. You can reduce this effect by using a combination of video filters and the bilinear filtering option. + +- **Controller Turbo Speed** [mesen_controllerturbospeed] (**Fast**/Very Fast/Disabled/Slow/Normal) + + Configure the controller's turbo buttons' speed. + +- **Enable HD Packs** [mesen_hdpacks] (Off/**On**) + + Enables the use of [HD packs](https://www.mesen.ca/docs/hdpacks/). [Look at the HD packs section for more information](https://docs.libretro.com/library/mesen/#hd-packs). + +- **Remove sprite limit** [mesen_nospritelimit] (Off/**On**) + + The NES can normally only draw up to 8 sprites per line – this limitation is indirectly responsible for some of the flickering seen in games at times. When this option is enabled, the limit is disabled, allowing up to 64 sprites to be drawn on the same line. + +- **Enable fake stereo effect** [mesen_fake_stereo] (**Off**/On) + + Self-explanatory. + +- **Reduce popping on Triangle channel** [mesen_mute_triangle_ultrasonic] (Off/**On**) + + This option mutes the triangle channel under certain conditions, which prevents it from causing popping sounds. + +- **Reduce popping on DMC channel** [mesen_reduce_dmc_popping] (Off/**On**) + + Similar to the previous option, but for the DMC channel – this option prevents games from changing the output of the DMC channel too abruptly, which often causes popping sounds. + +- **Swap Square channel duty cycles** [mesen_swap_duty_cycle] (**Off**/On) + + This option is to mimic some older NES clones that had incorrect sound output for both of the square channels. It greatly alters the sound in some games, and shouldn’t be enabled unless you want this behavior. + +- **Disable Noise channel mode flag** [mesen_disable_noise_mode_flag] (**Off**/On) + + Very early Famicom models did not implement this feature, so this option is available to mimic early Famicom consoles. It changes the sound output of the noise channel in some games, and shouldn’t be enabled unless you want this behavior. + +- **Screen Rotation** [mesen_screenrotation] (**None**/90 degrees/180 degrees/270 degrees) + + Rotates the display by the specified angle. This is useful to play games (generally homebrew games) designed for a vertical display. + +- **Default power-on state for RAM** [mesen_ramstate] (**All 0s (Default)**/All 1s/Random Values) + + On a console, the RAM’s state at power on is undetermined and relatively random. This option lets you select Mesen’s behavior when initializing RAM - set all bits to 0, set all bits to 1, or randomize the value of each bit. + +- **FDS: Automatically insert disks** [mesen_fdsautoinsertdisk] (**Off**/On) + + By default, the FDS boots with no disk inserted in the drive. This option makes it so the player does not need to manually insert disk 1, side A manually. + +- **FDS: Fast forward while loading** [mesen_fdsfastforwardload] (**Off**/On) + + FDS games contain a large number of load screens due to their data being stored on floppy drives. Mesen needs to emulate this floppy drive’s speed to ensure accurate emulation. This option makes it so Mesen runs the emulation as fast as it can when a game is loading data from the disk, which greatly reduces the time spent on loading screens. + +## Controllers + +The Mesen core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 2 device types + +- None - Input disabled. +- **Auto** - Joypad - Automatically selects an input device according to the data in the game database. +- [Standard Controller](https://wiki.nesdev.com/w/index.php/Standard_controller) - Joypad - Manually selects a standard game controller. +- [Zapper](https://wiki.nesdev.com/w/index.php/Zapper) - Pointer - Manually selects a Zapper light gun. +- [Power Pad](https://wiki.nesdev.com/w/index.php/Power_Pad) - Joypad - Manually selects a Power Pad peripheral. +- [Arkanoid](https://wiki.nesdev.com/w/index.php/Arkanoid_controller) - Mouse - Manually selects an Arkanoid controller. +- [SNES Controller](http://nintendo.wikia.com/wiki/Super_Nintendo_Entertainment_System_controller) - Joypad - Manually selects a SNES Controller. +- [SNES Mouse](https://wiki.nesdev.com/w/index.php/Mouse) - Mouse - Manually selects a SNES Mouse. + +### User 3 device types + +- None - Input disabled. +- **Auto** - Joypad - Automatically selects an input device according to the data in the game database. +- [Standard Controller](https://wiki.nesdev.com/w/index.php/Standard_controller) - Joypad - Manually selects a standard game controller. + +### User 4 device types + +- None - Input disabled. +- **Auto** - Joypad - Automatically selects an input device according to the data in the game database. +- [Standard Controller](https://wiki.nesdev.com/w/index.php/Standard_controller) - Joypad - Manually selects a standard game controller. + +### User 5 device types + +- None - Input disabled. +- **Auto** - Joypad - Automatically selects an input device according to the data in the game database. +- [Arkanoid](https://wiki.nesdev.com/w/index.php/Arkanoid_controller) - Mouse - Manually selects an Arkanoid controller. +- [Ascii Turbo Fire](https://en.wikipedia.org/wiki/Turbo_File_(ASCII)) - None - Manually selects an Ascii Turbo Fire device. +- Bandai Hypershot - Pointer - Manually selects a Bandai Hypershot light gun. +- Battle Box - None - Manually selects a Battle Box device. +- [Exciting Boxing](https://wiki.nesdev.com/w/index.php/Exciting_Boxing_Punching_Bag) - Joypad - Manually selects an Exciting Boxing punching bag. +- [Family Trainer](https://wiki.nesdev.com/w/index.php/Power_Pad) - Joypad - Manually selects a Family Trainer peripheral. +- [Four Player Adapter](https://wiki.nesdev.com/w/index.php/Four_Score) - None - Manually selects a Four Player Adapter device. +- [Hori Track](https://wiki.nesdev.com/w/index.php/Mouse#Hori_Track) - Mouse - Manually selects a Hori Track trackball. +- [Konami Hypershot](https://wiki.nesdev.com/w/index.php/Konami_Hyper_Shot) - Joypad - Manually selects a Konami Hypershot controller. +- [Pachinko](https://wiki.nesdev.com/w/index.php/Coconuts_Pachinko) - Joypad - Manually selects a Pachinko controller. +- [Partytap](https://wiki.nesdev.com/w/index.php/Partytap) - Joypad - Manually selects Partytap controllers. + +### Other controllers + +- [Oeka Kids Tablet](https://wiki.nesdev.com/w/index.php/Oeka_Kids_tablet) - Pointer - The Mesen core will automatically select the Oeka Kids Tablet input device according to the data in the game database. It cannot be manually selected as a device type in RetroArch's controls menu. + +### Multitap support + +Multitap support can be activated in the Mesen core by switching User 5's device type to Four Player Adapter. + +### Controller tables + +#### Joypad + +| User Remap descriptors for 'Standard Controller' | RetroPad Inputs | +|--------------------------------------------------|----------------------------------------------| +| A | ![](images/RetroPad/Retro_B_Round.png) | +| B | ![](images/RetroPad/Retro_Y_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| Turbo A | ![](images/RetroPad/Retro_A_Round.png) | +| Turbo B | ![](images/RetroPad/Retro_X_Round.png) | +| (FDS) Insert Next Disk | ![](images/RetroPad/Retro_L1.png) | +| (FDS) Switch Disk Side | ![](images/RetroPad/Retro_R1.png) | +| (VS) Insert Coin 1 | ![](images/RetroPad/Retro_L2.png) | +| (VS) Insert Coin 2 | ![](images/RetroPad/Retro_R2.png) | +| (Famicom) Microphone | ![](images/RetroPad/Retro_L3.png) | + +!!! attention + The (FDS) Insert Next Disk and (FDS) Switch Disk Side inputs will NOT do anything while the ['FDS: Automatically insert disks' core option](https://docs.libretro.com/library/mesen/#core-options) is enabled. + +| User Remap descriptors for 'SNES Controller' device type | RetroPad Inputs | +|----------------------------------------------------------|----------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Y | ![](images/RetroPad/Retro_Y_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| X | ![](images/RetroPad/Retro_X_Round.png) | +| L | ![](images/RetroPad/Retro_L1.png) | +| R | ![](images/RetroPad/Retro_R1.png) | + +| User Remap descriptors for 'Power Pad' and 'Family Trainer' device types | RetroPad Inputs | +|----------------------------------------------------------------------------|----------------------------------------------| +| Powerpad B1 | ![](images/RetroPad/Retro_B_Round.png) | +| Powerpad B3 | ![](images/RetroPad/Retro_Y_Round.png) | +| Powerpad B11 | ![](images/RetroPad/Retro_Select.png) | +| Powerpad B12 | ![](images/RetroPad/Retro_Start.png) | +| Powerpad B9 | ![](images/RetroPad/Retro_Dpad_Up.png) | +| Powerpad B10 | ![](images/RetroPad/Retro_Dpad_Down.png) | +| Powerpad B7 | ![](images/RetroPad/Retro_Dpad_Left.png) | +| Powerpad B8 | ![](images/RetroPad/Retro_Dpad_Right.png) | +| Powerpad B2 | ![](images/RetroPad/Retro_A_Round.png) | +| Powerpad B4 | ![](images/RetroPad/Retro_X_Round.png) | +| Powerpad B5 | ![](images/RetroPad/Retro_L1.png) | +| Powerpad B6 | ![](images/RetroPad/Retro_R1.png) | + +| User Remap descriptors for 'Exciting Boxing' device type | RetroPad Inputs | +|------------------------------------------------------------|----------------------------------------------| +| Left Hook | ![](images/RetroPad/Retro_B_Round.png) | +| Left Jab | ![](images/RetroPad/Retro_Y_Round.png) | +| Move Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| Move Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| Right Hook | ![](images/RetroPad/Retro_A_Round.png) | +| Right Jab | ![](images/RetroPad/Retro_X_Round.png) | +| Body | ![](images/RetroPad/Retro_L1.png) | +| Straight | ![](images/RetroPad/Retro_R1.png) | + +| User Remap descriptors for 'Pachinko' device type | RetroPad Inputs | +|-----------------------------------------------------|----------------------------------------------| +| Release Trigger | ![](images/RetroPad/Retro_L1.png) | +| Press Trigger | ![](images/RetroPad/Retro_R1.png) | + +| User Remap descriptors for 'Partytap' device type | RetroPad Inputs | +|-----------------------------------------------------|----------------------------------------------| +| Partytap P1 | ![](images/RetroPad/Retro_B_Round.png) | +| Partytap P3 | ![](images/RetroPad/Retro_Y_Round.png) | +| Partytap P2 | ![](images/RetroPad/Retro_A_Round.png) | +| Partytap P4 | ![](images/RetroPad/Retro_X_Round.png) | +| Partytap P5 | ![](images/RetroPad/Retro_L1.png) | +| Partytap P6 | ![](images/RetroPad/Retro_R1.png) | + +#### Mouse + +| RetroMouse Inputs | Arkanoid Inputs | Hori Track Inputs | SNES Mouse Inputs | +|-----------------------------------------------------|-----------------|-------------------|-------------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Mouse Cursor | Arkanoid Move | - | SNES Mouse Cursor | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | Arkanoid Fire | - | SNES Mouse Left Button | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | | - | SNES Mouse Right Button | + +#### Pointer + +| RetroPointer Inputs | Zapper Inputs | Oeka Kids Tablet Inputs | Bandai Hypershot Inputs | +|----------------------------------------------------------------------------------------------------------------------|------------------|-------------------------|----------------------------| +| ![](images/RetroMouse/Retro_Mouse.png) or ![](images/Button_Pack/Gestures/Gesture_Finger_Front.png) Pointer Position | Zapper Crosshair | Oeka Kids Tablet Stylus | Bandai Hypershot Crosshair | +| ![](images/RetroMouse/Retro_Left.png) or ![](images/Button_Pack/Gestures/Gesture_Tap.png) Pointer Pressed | Zapper Trigger | Oeka Kids Tablet Tap | Bandai Hypershot Trigger | + +## Compatibility + +[Mesen Compatibility List](https://www.mesen.ca/#Compatibility) + +## External Links + +- [Libretro Mesen Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/mesen_libretro.info) +- [Official Mesen Github Repository](https://github.com/SourMesen/Mesen) +- [Report Libretro Mesen Core Issues Here](https://github.com/SourMesen/Mesen/issues) +- [Official Mesen Website](https://www.mesen.ca/) +- [Official Mesen Documentation](https://www.mesen.ca/docs/) +- [Official Mesen Downloads](https://www.mesen.ca/#Downloads) +- [Official Mesen Changelog](https://www.mesen.ca/#Changelog) \ No newline at end of file diff --git a/docs/library/meteor.md b/docs/library/meteor.md new file mode 100644 index 00000000..f5190b50 --- /dev/null +++ b/docs/library/meteor.md @@ -0,0 +1,131 @@ +# Nintendo - Game Boy Advance (Meteor) + +## Background + +Meteor is a Nintendo Gameboy Advance emulator. + +### Author/License + +The Meteor core has been authored by + +- Philippe Daouadi + +The Meteor core is licensed under + +- [GPLv3](https://github.com/libretro/meteor-libretro/blob/master/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Meteor core have the following file extensions: + +- .gba + +## Databases + +RetroArch database(s) that are associated with the Meteor core: + +- [Nintendo - Game Boy Advance](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Game%20Boy%20Advance.rdb) + +## Features + +Frontend-level settings or features that the Meteor core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ (not link-cable emulation) | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✔ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Meteor core's internal core name is 'Meteor GBA' + +The Meteor core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The Meteor core's core provided FPS is 59.7275005696 +- The Meteor core's core provided sample rate is 44100 Hz +- The Meteor core's core provided aspect ratio is 3/2 + +## Controllers + +The Meteor core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. There's no reason to switch to this. +- **RetroPad** - Joypad - Stay on this. +- RetroPad w/Analog - Joypad - Same as RetroPad. There's no reason to switch to this. + +### Controller tables + +#### Joypad + +![](images/Controllers/gba.png) + +| User 1 Remap descriptors | RetroPad Inputs | +|--------------------------|-------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| L | ![](images/RetroPad/Retro_L1.png) | +| R | ![](images/RetroPad/Retro_R1.png) | + +## Compatibility + +Awaiting description. + +## External Links + +- [Official Meteor Github Repository](https://github.com/blastrock/meteor) +- [Libretro Meteor Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/meteor_libretro.info) +- [Libretro Meteor Github Repository](https://github.com/libretro/meteor-libretro) +- [Report Libretro Meteor Core Issues Here](https://github.com/libretro/meteor-libretro/issues) + +### See also + +#### Nintendo - Game Boy Advance + +- [Nintendo - Game Boy Advance (Beetle GBA)](https://docs.libretro.com/library/beetle_gba/) +- [Nintendo - Game Boy Advance (gpSP)](https://docs.libretro.com/library/gpsp/) +- [Nintendo - Game Boy Advance (mGBA)](https://docs.libretro.com/library/mgba/) +- [Nintendo - Game Boy Advance (TempGBA)](https://docs.libretro.com/library/tempgba/) +- [Nintendo - Game Boy Advance (VBA-M)](https://docs.libretro.com/library/vba_m/) +- [Nintendo - Game Boy Advance (VBA Next)](https://docs.libretro.com/library/vba_next/) \ No newline at end of file diff --git a/docs/library/mgba.md b/docs/library/mgba.md new file mode 100644 index 00000000..c3e7d9cd --- /dev/null +++ b/docs/library/mgba.md @@ -0,0 +1,203 @@ +# Game Boy Advance (mGBA) + +## Background + +mGBA is an emulator for running Game Boy Advance games. It aims to be faster and more accurate than many existing Game Boy Advance emulators, as well as adding features that other emulators lack. It also supports Game Boy and Game Boy Color games. + +### Author/License + +The mGBA core has been authored by + +- endrift + +The mGBA core is licensed under + +- [MPLv2.0](https://github.com/libretro/mgba/blob/master/LICENSE) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the mGBA core have the following file extensions: + +- .gb +- .gbc +- .gba + +## Databases + +RetroArch database(s) that are associated with the mGBA core: + +- [Nintendo - Game Boy](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Game%20Boy.rdb) +- [Nintendo - Game Boy Color](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Game%20Boy%20Color.rdb) +- [Nintendo - Game Boy Advance](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Game%20Boy%20Advance.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +| Filename | Description | md5sum | +|:-------------:|:-------------------------------:|:--------------------------------:| +| gba_bios.bin |Game Boy Advance BIOS - Optional | a860e8c0b6d573d191e4ec7db1b1e4f6 | + +!!! warning + In order for the Game Boy Advance BIOS to be used, the 'Use BIOS file if found' core option must be set to On. + +## Features + +Frontend-level settings or features that the mGBA core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay (State based) | ✔ (not link-cable emulation) | +| Core Options | ✔ | +| RetroAchievements | ✔ (GBA only) | +| Cheats (Cheats menu) | ✔ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✔ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✔ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The mGBA core's directory name is 'mGBA' + +The mGBA core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) + +**Frontend's State directory** + +- 'cotent-name'.state# (State) + +### Geometry and timing + +- The mGBA core's core provided FPS is (FPS) +- The mGBA core's core provided sample rate is 32768 Hz +- The mGBA core's core provided aspect ratio is (Ratio) + +## Core options + +The mGBA core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Solar sensor level** [mgba_solar_sensor_level] (0 to 10 in increments of 1. **0 is default.**) + + Can be used for games that employed the use of a solar sensor on their cartridges. + +- **Allow opposing directional input** [mgba_allow_opposing_directions] (**Off**/On) + + Self-explanatory. + +- **Use BIOS file if found** [mgba_use_bios] (Off/**On**) + + Uses a Game Boy Advance BIOS present in RetroArch's system directory. Look at the [BIOS section](https://docs.libretro.com/library/mgba/#bios) for more information. + +- **Skip BIOS intro** [mgba_skip_bios] (**Off**/On) + + Skips the BIOS intro when a Game Boy Advance BIOS present in RetroArch's system directory is used. The 'Use BIOS file if found' core option must be set to On for proper operation. + +??? note "Skip BIOS intro - Off" + ![](images\Cores\mgba\bios.png) + +- **Idle loop removal** [mgba_idle_optimization] (**Remove Known**/Detect and Remove/Don't Remove) + + Awaiting description. + +- **Frameskip** [mgba_frameskip] (0 to 10 in increments of 1. **0 is default**) + + Choose how much frames should be skipped to improve performance at the expense of visual smoothness. + +## Controllers + +The mGBA core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad +- RetroPad w/Analog - Joypad - There's no reason to switch to this. + +### Rumble support + +Rumble only works in the mGBA core when + +- The content being ran has rumble support. (e.g. Cartridges with a Rumble Pak) +- The frontend being used has rumble support. +- The joypad device being used has rumble support. + +### Controller tables + +#### Joypad + +![](images/Controllers/mgba_retropad.png) + +| User 1 Remap descriptors | RetroPad Inputs | +|--------------------------|----------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Turbo B | ![](images/RetroPad/Retro_Y_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| Turbo A | ![](images/RetroPad/Retro_X_Round.png) | +| L | ![](images/RetroPad/Retro_L1.png) | +| R | ![](images/RetroPad/Retro_R1.png) | +| Turbo L | ![](images/RetroPad/Retro_L2.png) | +| Turbo R | ![](images/RetroPad/Retro_R2.png) | +| Darken Solar Sensor | ![](images/RetroPad/Retro_L3.png) | +| Brighten Solar Sensor | ![](images/RetroPad/Retro_R3.png) | + +## Compatibility + +Please file game bugs on the issue tracker [here](https://github.com/mgba-emu/mgba/issues) + +## External Links + +- [Official mGBA Website](https://mgba.io/) +- [Official mGBA Github Repository](https://github.com/mgba-emu/mgba) +- [Libretro mGBA Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/mgba_libretro.info) +- [Libretro mGBA Github Repository](https://github.com/libretro/mgba) +- [Report Libretro mGBA Core Issues Here](https://github.com/mgba-emu/mgba/issues) + +### See also + +#### GBA + +- [Game Boy Advance (Beetle GBA)](https://docs.libretro.com/library/beetle_gba/) +- [Game Boy Advance (gpSP)](https://docs.libretro.com/library/gpsp/) +- [Game Boy Advance (Meteor)](https://docs.libretro.com/library/meteor/) +- [Game Boy Advance (VBA Next)](https://docs.libretro.com/library/vba_next/) +- [Game Boy Advance (VBA-M)](https://docs.libretro.com/library/vba_m/) + +#### GB/GBC + +- [Game Boy / Game Boy Color (Emux GB)](https://docs.libretro.com/library/emux_gb/) +- [Game Boy / Game Boy Color (Gambatte)](https://docs.libretro.com/library/gambatte/) +- [Game Boy / Game Boy Color (SameBoy)](https://docs.libretro.com/library/sameboy/) +- [Game Boy / Game Boy Color (TGB Dual)](https://docs.libretro.com/library/tgb_dual/) +- [Game Boy / Game Boy Color (Gearboy)](https://docs.libretro.com/library/gearboy/) +- [SNES / Super Famicom (higan Accuracy)](https://docs.libretro.com/library/higan_accuracy/) +- [SNES / Super Famicom (nSide Balanced)](https://docs.libretro.com/library/nside_balanced/) \ No newline at end of file diff --git a/docs/library/mr_boom.md b/docs/library/mr_boom.md new file mode 100644 index 00000000..57cb8418 --- /dev/null +++ b/docs/library/mr_boom.md @@ -0,0 +1,94 @@ +# Mr.Boom (Bomberman) + +## Background + +Mr.Boom is an up to 8 player Bomberman clone for LibRetro/RetroArch. + +The goal of the game is to bomb away your enemies and other players. + +### Author(s): + +Remdy Software + +## Contribute to this documentation + +In order to propose improvements to this document, [visit it's corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/mr_boom.md). Changes are proposed using "Pull Requests." + +## License + +MIT + +## Extensions + +The Mr.Boom core does not feature extension use. Just load and start the core. + +## Features + +| Feature | Supported | +|-------------------|:---------:| +| Saves | ✕ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controllers | ✔ | +| Remapping | ✕ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | + +The Mr.Boom core's directory name is 'Mr.Boom' + +Save states are saved/loaded to and from where state files are stored. + +## Core options + +*The Mr.Boom core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded.* + +- **Team mode** (**Selfie**/Color/Sex): Team mode color. + +- **Monsters** (Off/**On**): Awaiting description. Enable or disable monsters. + +??? note "Monsters - On" + ![monsters_on](images\Cores\mr_boom\monsters_on.png) + +??? note "Monsters - Off" + ![monsters_off](images\Cores\mr_boom\monsters_off.png) + +- **Drop bomb autofire** (**Off**/On): Enables Drop bomb autofire mode. Holding down the Drop bomb button will repeatedly use the Drop bomb action. (Potentially useful when used in conjunction with certain powerups) + +## Controllers + +*The Mr.Boom core supports the following controller setting(s), bolded controller settings are the default for the specified user(s):* + +### User 1 - 16 Device Type(s) + +* **RetroPad** - Joypad with analog + +* RetroPad w/Analog - **There is no reason to switch to this.** + +### Controllers graph + +| Mr.Boom | RetroPad | +|--------------------------------------------------------------------|----------------------------------------------------------------| +| Drop Bomb/Join game | ![RetroPad_B](images/RetroPad/Retro_B_Round.png) | +| Add a bomberman bot (while in the join game screen) | ![RetroPad_Select](images/RetroPad/Retro_Select.png) | +| Start game | ![RetroPad_Start](images/RetroPad/Retro_Start.png) | +| Up/Push bomb | ![RetroPad_Dpad](images/RetroPad/Retro_Dpad_Up.png) | +| Down/Push bomb | ![RetroPad_Dpad](images/RetroPad/Retro_Dpad_Down.png) | +| Left/Push bomb | ![RetroPad_Dpad](images/RetroPad/Retro_Dpad_Left.png) | +| Right/Push bomb | ![RetroPad_Dpad](images/RetroPad/Retro_Dpad_Right.png) | +| Detonate bomb (when you have the Remote control powerup)/Join game | ![RetroPad_A](images/RetroPad/Retro_A_Round.png) | +| Jump (while riding a Kangaroo)/Join game | ![RetroPad_X](images/RetroPad/Retro_X_Round.png) | + +## External Links + +* [Libretro Repository](https://github.com/libretro/mrboom-libretro) +* [Report Core Issues Here](https://github.com/libretro/libretro-meta) +* [Official Website](http://mrboom.mumblecore.org/) +* [Upstream Repository](https://github.com/Javanaise/mrboom-libretro) \ No newline at end of file diff --git a/docs/library/mupen64plus.md b/docs/library/mupen64plus.md new file mode 100644 index 00000000..121874aa --- /dev/null +++ b/docs/library/mupen64plus.md @@ -0,0 +1,394 @@ +# Nintendo 64 (Mupen64Plus) + +## Contribute to this documentation + +**DOCUMENTATION IS A WORK IN PROGRESS** + +**In order to propose improvements to this document, [visit its corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/mupen64plus.md). Changes are proposed using "Pull Requests."** + +**There is a To-Do list for libretro/docs [here](https://docs.libretro.com/docguide/todo/)** + +**You can submit suggestions or issues regarding documentation at the [libretro/docs issue tracker](https://github.com/libretro/docs/issues) or in our [forum thread](https://forums.libretro.com/t/wip-adding-pages-to-documentation-site/10078/).** + +## Background + +Mupen64Plus for libretro is the port of Mupen64Plus, a Nintendo 64 emulator. Mupen64Plus for libretro uses GLideN64 as graphic plugin. +The original Mupen64Plus can use one of the several available graphic plugins (Rice, Glide64, ect.). +By choosing one graphics plugin (GLideN64), it will be possible to keep the code in line with upstream, and maintaining the code will be much simpler. + +For Android there are two versions of Mupen64Plus. One is designed to work with GLES 2.0 and another one with GLES 3.0. + +How is this different from Parallel-N64? + +Parallel-N64 implements multiple Graphics plugins amongst them the new Parallel plugin. There are also code modifications that make it different from the standalone Mupen64Plus. +The graphic plugin GLideN64 is not available in Parallel-N64. + +### Why use this core? + +Awaiting description. + +### How to get and install the Mupen64Plus core: + +- Start up RetroArch. Inside the main menu, go to 'Online Updater'. + +
![](images\Cores\all\updater.png)
+ +- Just to make sure we have the latest info files, select 'Update Core Info FIles'. Wait until this is done. Then, select 'Core Updater'. + +
![](images\Cores\all\info.png)
+ +- Browse through the list and select 'Nintendo 64 (Mupen64Plus)'. + +
![](images\Cores\updater\mupen64plus.png)
+ +After this has finished downloading, the core should now be ready for use! + +#### How to start (after installation): +- Go back to RetroArch's main menu screen. Select 'Load Content'. + +
![](images\Cores\all\load.png)
+ +- Browse to the folder that contains the content you want to run. + +- Select the content that you want to run. + +- If you are asked which core to select, choose 'Nintendo 64 (Mupen64Plus)'. + +The content should now start running! + +### Authors + +- Hacktarux +- Mupen64Plus Team + + +## See also + +### N64 + +- [Nintendo 64 (ParaLLEl N64)](https://docs.libretro.com/library/parallel/) + +## License + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +The Mupen64Plus core is licensed under + +- [GPLv3](https://github.com/libretro/mupen64plus-libretro/blob/master/LICENSE) + +## Extensions + +Content that can be loaded by the Mupen64Plus core have the following file extensions: + +- .n64 +- .v64 +- .z64 +- .bin +- .u1 +- .ndd + +## Databases + +RetroArch database(s) that are associated with the Mupen64Plus core: + +- [Nintendo - Nintendo 64](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Nintendo%2064.rdb) +- [Nintendo - Nintendo 64DD](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Nintendo%2064DD.rdb) + +## Features + +RetroArch-level settings or features that the Mupen64Plus core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✔ | +| RetroArch Cheats | ✔ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✔ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | + +### Directories + +The Mupen64Plus core's directory name is 'Mupen64Plus OpenGL' + +The Mupen64Plus core saves/loads to/from these directories. + +**RetroArch's Save directory** + +- 'content-name'.srm (Cartridge backup save) + +**RetroArch's State directory** + +- 'content-name'.state# (State) + +**RetroArch's System directory** + +``` +- Mupen64plus/ + - mupen64plus.ini + - shaders/ +``` + +### Geometry and timing + +- The Mupen64Plus core's internal FPS is (FPS) +- The Mupen64Plus core's internal sample rate is 44100 Hz +- The Mupen64Plus core's core provided aspect ratio is (Ratio) + +### Hi res Textures + +The High resolution textures have to be put in the cache directory. + +## Core options + +The Mupen64Plus core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + + - **CPU Core** (**dynamic_recompiler**/cached_interpreter/pure_interpreter) + + Choose which kind of CPU emulation is going to be used. Dynamic recompiler is the fastest mode. + + **Dynamic recompilier is not available on all platforms.** + +- **RSP Mode** (**HLE**/LLE) + + How the RSP is emulated, High Level Emulation or Low Level Emulation. + Low level emulation should be more precise but it requires more computational power. + + **LLE mode is not available on all platforms** + +- **4:3 Resolution** (**320x240**/640x480/960x720/1280x960/1600x1200/1920x1440/2240x1680/2560x1920/2880x2160/3200x2400/3520x2640/3840x2880) + + Select the internal rendering resolution for 4:3 Aspect Ratio mode. The 'Aspect Ratio' core option must be set to 4:3 for this to have an effect. + Higher values require more computational power. + +- **16:9 Resolution** (**640x360**/960x540/1280x720/1920x1080/2560x1440/3840x2160/7680x4320) + + Select the internal rendering resolution for 16:9 Aspect Ratio mode. The 'Aspect Ratio' core option must be set to 16:9 or 16:9 adjusted for this to have an effect. + Higher values require more computational power. + +- **Aspect Ratio** (**4:3**/16:9/16:9 adjusted) + + This setting adjusts the aspect ratio of the video output. All N64 games support 4:3. Some games support 16:9 within game settings. + +- **Bilinear filtering mode** (**standard**/3point) + + Bilinear filtering: Textures will use standard PC-style bilinear filtering. + 3 point: Textures will be filtered more like the N64. The result is less smooth but more accurate. + +- **MSAA level** (0/2/4/8/16) + + Enable/Disable MultiSampling Anti-aliasing (0=off, 2,4,8,16=quality). + + **This core option is not available on all platforms.** + +- **Framebuffer Emulation** (**True**/False) + + Enable the framebuffer emulation. + Frame buffer emulation is a set of techniques used to emulate manipulations with color and depth buffer areas on the real console. + Unchecking this option disables many effects including cropping, aspect ratio, N64 resolution factor and more. Do not uncheck this option unless you have performance issues. + +- **Color buffer to RDRAM** (**Async**/Sync/Off) + + Used with the framebuffer emulation. + Frame buffer copy is used for some effects (e.g. TV monitor effect where TV shows part of the displayed picture). + In some games GLideN64 cannot detect when the game uses the frame buffer. + With these options, you can have GLideN64 copy each frame of your video cards frame buffer to N64 memory. + Off: Disable copying buffers from video card. + Synchronous: Effects are detected for all games, but it can be slow. Use for games where Asynchronous does not work. + Asynchronous: Effects are detected for most games (best choice). + + The default setting is dependent on your platform. + +- **Depth buffer to RDRAM** (**Software**/FromMem/Off) + + Used with the framebuffer emulation. + The depth buffer is used to emulate some effects (e.g. coronas). + Off: Depth buffer is disabled. + FromMem: Your video card’s depth buffer is copied to N64 memory each frame, which can be slow on some games. + Software: Generally faster than copying from VRAM, but the result can be imperfect. + +- **Hardware per-pixel lighting** (**False**/True) + + In N64 games lighting is calculated per vertex. + This option enables hardware per-pixel lighting calculation known as Phong shading, which provides smoother and more realistic lighting. + Per-vertex lighting is instead calculated via software. HLE only. + +- **Continuous texrect coords** (**Off**/Auto/Force) + + In some games the coordinates for parts of 2D elements are not aligned: there is a half-pixel split between adjacent elements. + When rendering at the N64’s original resolution it is not visible, but when the image is scaled up it results in black lines. + This option attempts to connect these 2D elements. + +- **Native res. 2D texrects** (**False**/True) + When checked, 2D elements are rendered at the N64s resolution before copying them to output. + This usually eliminates display issues with 2D elements, but it can be slow. + This option uses heuristics to detect adjacent 2D elements that does not work for every game. + +- **Less accurate blending mode** (**True**/False) + + Do not use shaders to emulate N64 blending modes. Works faster on slow GPU. It can cause glitches. + The default setting is dependent on your platform. + +- **GPU shader depth write** (**False/True) + + Enable writing of fragment depth. Some mobile GPUs do not support it, thus it made optional. + The default seeting is dependent on your platform. + +- **Cache GPU Shaders** (**True**/False) + + When the option is enabled, plugin saves all new created shaders in a file. + When user starts that game again, plugin loads all previously compiled shaders from that file and further gameplay goes smooth. + +- **Crop Mode** (**Auto**/Off) + + Its purpose is to remove black borders, which many N64 games add around image. In auto mode plugins tries to detect empty space and remove it. + It works only if frame buffer emulation is enabled, as all other post-processing filters. + +- **Texture filter** (**None**/Smooth filtering 1/Smooth filtering 2/Smooth filtering 3/Smooth filtering 4/Sharp filtering 1/Sharp filtering 2) + + This filter smooths or sharpens textures. There are four smoothing filters and two sharpening filters. The higher the number, the stronger the effect. + Performance may be affected depending on the game and/or your device. + +- **Texture Enhancement** (**None**/As Is/X2/X2SAI/HQ2X/HQ2XS/LQ2X/LQ2XS/HQ4X/2xBRZ/3xBRZ/4xBRZ/5xBRZ/6xBRZ) + + Filter applied to textures. Depending on which filter, they may cause performance problems. + When AS IS is selected, textures are saved to the cache as-is; this improves performance in games that load many textures; + unset Filer background textures for the best performance. + +- **Filter background textures** (**True**/False) + + This option skips texture enhancements for long, narrow textures that are usually used for backgrounds. This may save texture memory and improve performance. + Set true unless Enhancement mode is set to AS IS. + +- **Use High-Res textures** (**False**/True) + + Enable the High resolution Textures. + The High resolution textures have to be put in the cache directory. + +- **Use High-Res Full Alpha Channel** (**False**/True) + + When this option is selected, GlideN64 will check how the texture’s alpha channel was designed and will select the most appropriate format. + This gives texture pack designers freedom to use semi-transparent textures. + Clear this option for older or poorly designed texture packs. + Recommended for newer texture packs. + +- **Analog Deadzone (percent)** (**15**/20/25/30/0/5/10) + + The minimum absolute value of SDL analog Joystick axis to move the N64 controller axis value + +- **Analog Sensitivity (percent)** (**100**/95/90/85/80/105/110) + + The sensitivity of the analog Joystick. + +- **Right C Button** (**C1**/C2/C3/C4) + + Awaiting description. + +- **Left C Button** (**C2/**C3/C4/C1) + + Awaiting description. + +- **Down C Button** (**C3**/C4/C1/C2) + + Awaiting description. + +- **Up C Button** (**C4**/C1/C2/C3) + + Awaiting description, + +- **Player 1 Pak** (**memory**/rumble/none) + + Choose what Pak has been inserted in the player 1 controller. + +- **Player 2 Pak** (**none/memory/rumble) + + Choose what Pak has been inserted in the player 2 controller. + +- **Player 3 Pak** (**none**/memory/rumble) + + Choose what Pak has been inserted in the player 3 controller. + +- **Player 4 Pak** (**none**/memory/rumble) + + Choose what Pak has been inserted in the player 4 controller. + +- **Count Per Op** (0/1/2/3) + + Force the number of cycle per emulated instructions. + +## Controllers + +### Device types + +The Mupen64Plus core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +#### User 1 - 4 device types + +- None - Input disabled. +- **Controller** - Joypad + +### Rumble support + +Rumble only works in the Mupen64Plus core when + +- The content being ran has rumble support. +- The joypad input driver being used has rumble support. (e.g. Xinput) +- The joypad device being used has rumble support. +- The 'Player # Pak' core options are set to rumble for the respective players. + +[List of Nintendo 64 games with Rumble Pak support](http://nintendo.wikia.com/wiki/List_of_Nintendo_64_games_with_Rumble_Pak_support) + +### Controller tables + +#### Joypad and analog device type table + +| User 1 - 4 Remap descriptors | RetroPad Inputs | +|-------------------------------|----------------------------------------------| +| A Button (C3) | ![](images/RetroPad/Retro_B_Round.png) | +| B Button (C2) | ![](images/RetroPad/Retro_Y_Round.png) | +| START Button | ![](images/RetroPad/Retro_Start.png) | +| Up (digital) | ![](images/RetroPad/Retro_Dpad_Up.png) | +| Down (digital) | ![](images/RetroPad/Retro_Dpad_Down.png) | +| Left (digital) | ![](images/RetroPad/Retro_Dpad_Left.png) | +| Right (digital) | ![](images/RetroPad/Retro_Dpad_Right.png) | +| (C1) | ![](images/RetroPad/Retro_A_Round.png) | +| (C4) | ![](images/RetroPad/Retro_X_Round.png) | +| L-Trigger | ![](images/RetroPad/Retro_L1.png) | +| R-Trigger | ![](images/RetroPad/Retro_R1.png) | +| Z-Trigger | ![](images/RetroPad/Retro_L2.png) | +| C Buttons Mode | ![](images/RetroPad/Retro_R2.png) | +| Control Stick X | ![](images/RetroPad/Retro_Left_Stick.png) X | +| Control Stick Y | ![](images/RetroPad/Retro_Left_Stick.png) Y | +| C Buttons X | ![](images/RetroPad/Retro_Right_Stick.png) X | +| C Buttons Y | ![](images/RetroPad/Retro_Right_Stick.png) Y | + +## Compatibility + +Awaiting description. + +## External Links + +- [Libretro Mupen64Plus Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/mupen64plus_libretro.info) +- [Libretro Mupen64Plus Github Repository](https://github.com/libretro/mupen64plus-libretro) +- [Report Libretro Mupen64Plus Core Issues Here](https://github.com/libretro/mupen64plus-libretro/issues) +- [Official Mupen64Plus Website](http://www.mupen64plus.org/) +- [Official Mupen64Plus Github Organization](https://github.com/mupen64plus) diff --git a/docs/library/neko_project_ii.md b/docs/library/neko_project_ii.md new file mode 100644 index 00000000..61054a77 --- /dev/null +++ b/docs/library/neko_project_ii.md @@ -0,0 +1,356 @@ +# NEC - PC-98 (Neko Project II) + +## Background + +Awaiting description. + +### Author/License + +The Neko Project II core has been authored by + +- Neko Project II Team + +## Extensions + +Content that can be loaded by the Neko Project II core have the following file extensions: + +- .d98 +- .zip +- .98d +- .fdi +- .fdd +- .2hd +- .tfd +- .d88 +- .88d +- .hdm +- .xdf +- .dup +- .cmd| +- .hdi +- .thd +- .nhd +- .hdd + +## BIOS + +Awaiting description. + +## Features + +Frontend-level settings or features that the Neko Project II core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✕ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Neko Project II core's directory name is 'Neko Project II' + +The Neko Project II core saves/loads to/from these directories. + +-**Frontend's Home directory** + +- np2.cfg (Neko Project II Config file) + +### Geometry and timing + +- The Neko Project II core's core provided FPS is 60 +- The Neko Project II core's core provided sample rate is 44100 Hz +- The Neko Project II core's core provided aspect ratio is 16/10 + +## Core options + +The Neko Project II core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **"PC Model (Restart)** [np2_model] (**VX**/EPSON/VM) + + Awaiting description. + +- **CPU Base Clock (Restart)** [np2_clk_base] (**2.4576 MHz**/1.9968 MHz) + + Awaiting description. + +- **CPU Clock Multiplier (Restart)** [np2_clk_mult] (1 to 32 in increments of 1. **4 is default**.) + + Awaiting description. + +- **RAM Size (Restart)** [np2_ExMemory] (**2**/3/4/5/6/7/8/9/10/11/12/13/14/15/16/24/32/48/64/1) + + Awaiting description. + +- **Skipline Revisions** [np2_skipline] (**Full 255 lines**/ON/OFF) + + Awaiting description. + +- **Sound Board (Restart)** [np2_SNDboard] (**PC9801-86**/PC9801-26K + 86/PC9801-86 + Chibi-Oto/PC9801-118/Speak Board/Spark Board/Sound Orchestra/Sound Orchestra-V/AMD-98/None/PC9801-14/PC9801-26K) + + Awaiting description. + +- **JastSound** [np2_jast_snd] (**OFF**/ON) + + Awaiting description. + +- **Volume FM** [np2_volume_F] (0 to 128 in increments of 4. **64 is default.**) + + Awaiting description. + +- **Volume SSG** [np2_volume_S] (0 to 128 in increments of 4. **64 is default.**) + + Awaiting description. + +- **Volume ADPCM** [np2_volume_A] (0 to 128 in increments of 4. **64 is default.**) + + Awaiting description. + +- **Volume PCM** [np2_volume_P] (0 to 128 in increments of 4. **64 is default.**) + + Awaiting description. + +- **Volume RHYTHM** [np2_volume_R (0 to 128 in increments of 4. **64 is default.**) + + Awaiting description. + +- **Floppy Seek Sound (Restart)** [np2_Seek_Snd] (**OFF**/ON) + + Awaiting description. + +- **Volume Floppy Seek (Restart)** [np2_Seek_Vol] (0 to 128 in increments of 4. **80 is default.**) + + Awaiting description. + +- **Volume Beep** [np2_BEEP_vol] (**3**/0/1/2) + + Awaiting description. + +- **Gui Controller** [np2_GUI_controller] (**MOUSE**/JOY0) + + Awaiting description. + +- **Gui Joy0 PAS** [np2_GUIJOY_PAS] (**3**/4/5/1/2) + + Awaiting description. + +## Controllers + +The Neko Project II core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad +- RetroPad w/Analog - Joypad - There's no reason to switch to this. + +### Controller tables + +#### Joypad + +| RetroPad Inputs | (Device name) Inputs | +|----------------------------------------------|---------------------------| +| ![](images/RetroPad/Retro_B_Round.png) | - | +| ![](images/RetroPad/Retro_Y_Round.png) | - | +| ![](images/RetroPad/Retro_Select.png) | - | +| ![](images/RetroPad/Retro_Start.png) | - | +| ![](images/RetroPad/Retro_Dpad_Up.png) | - | +| ![](images/RetroPad/Retro_Dpad_Down.png) | - | +| ![](images/RetroPad/Retro_Dpad_Left.png) | - | +| ![](images/RetroPad/Retro_Dpad_Right.png) | - | +| ![](images/RetroPad/Retro_A_Round.png) | - | +| ![](images/RetroPad/Retro_X_Round.png) | - | +| ![](images/RetroPad/Retro_L1.png) | - | +| ![](images/RetroPad/Retro_R1.png) | - | +| ![](images/RetroPad/Retro_L2.png) | - | +| ![](images/RetroPad/Retro_R2.png) | - | +| ![](images/RetroPad/Retro_L3.png) | - | +| ![](images/RetroPad/Retro_R3.png) | - | +| ![](images/RetroPad/Retro_Left_Stick.png) X | - | +| ![](images/RetroPad/Retro_Left_Stick.png) Y | - | +| ![](images/RetroPad/Retro_Right_Stick.png) X | - | +| ![](images/RetroPad/Retro_Right_Stick.png) Y | - | + +#### Keyboard + +| RetroKeyboard Inputs | (Device name) Inputs | +|------------------------------|---------------------------| +| Keyboard Backspace | - | +| Keyboard Tab | - | +| Keyboard Clear | - | +| Keyboard Return | - | +| Keyboard Pause | - | +| Keyboard Escape | - | +| Keyboard Space | - | +| Keyboard Exclaim ! | - | +| Keyboard Double Quote " | - | +| Keyboard Hash # | - | +| Keyboard Dollar $ | - | +| Keyboard Ampersand & | - | +| Keyboard Quote ' | - | +| Keyboard Left Parenthesis ( | - | +| Keyboard Right Parenthesis ) | - | +| Keyboard Asterisk * | - | +| Keyboard Plus + | - | +| Keyboard Comma , | - | +| Keyboard Minus - | - | +| Keyboard Period . | - | +| Keyboard Slash / | - | +| Keyboard 0 | - | +| Keyboard 1 | - | +| Keyboard 2 | - | +| Keyboard 3 | - | +| Keyboard 4 | - | +| Keyboard 5 | - | +| Keyboard 6 | - | +| Keyboard 7 | - | +| Keyboard 8 | - | +| Keyboard 9 | - | +| Keyboard Colon : | - | +| Keyboard Semicolon ; | - | +| Keyboard Less than < | - | +| Keyboard Equals = | - | +| Keyboard Greater than > | - | +| Keyboard Question ? | - | +| Keyboard At @ | - | +| Keyboard Left Bracket [ | - | +| Keyboard Backslash \ | - | +| Keyboard Right Bracket ] | - | +| Keyboard Caret ^ | - | +| Keyboard Underscore _ | - | +| Keyboard Backquote ` | - | +| Keyboard a | - | +| Keyboard b | - | +| Keyboard c | - | +| Keyboard d | - | +| Keyboard e | - | +| Keyboard f | - | +| Keyboard g | - | +| Keyboard h | - | +| Keyboard i | - | +| Keyboard j | - | +| Keyboard k | - | +| Keyboard l | - | +| Keyboard m | - | +| Keyboard n | - | +| Keyboard o | - | +| Keyboard p | - | +| Keyboard q | - | +| Keyboard r | - | +| Keyboard s | - | +| Keyboard t | - | +| Keyboard u | - | +| Keyboard v | - | +| Keyboard w | - | +| Keyboard x | - | +| Keyboard y | - | +| Keyboard z | - | +| Keyboard Delete | - | +| Keyboard Keypad 0 | - | +| Keyboard Keypad 1 | - | +| Keyboard Keypad 2 | - | +| Keyboard Keypad 3 | - | +| Keyboard Keypad 4 | - | +| Keyboard Keypad 5 | - | +| Keyboard Keypad 6 | - | +| Keyboard Keypad 7 | - | +| Keyboard Keypad 8 | - | +| Keyboard Keypad 9 | - | +| Keyboard Keypad Period . | - | +| Keyboard Keypad Divide / | - | +| Keyboard Keypad Multiply * | - | +| Keyboard Keypad Minus - | - | +| Keyboard Keypad Plus + | - | +| Keyboard Keypad Enter | - | +| Keyboard Keypad Equals = | - | +| Keyboard Up | - | +| Keyboard Down | - | +| Keyboard Right | - | +| Keyboard Left | - | +| Keyboard Insert | - | +| Keyboard Home | - | +| Keyboard End | - | +| Keyboard Page Up | - | +| Keyboard Page Down | - | +| Keyboard F1 | - | +| Keyboard F2 | - | +| Keyboard F3 | - | +| Keyboard F4 | - | +| Keyboard F5 | - | +| Keyboard F6 | - | +| Keyboard F7 | - | +| Keyboard F8 | - | +| Keyboard F9 | - | +| Keyboard F10 | - | +| Keyboard F11 | - | +| Keyboard F12 | - | +| Keyboard F13 | - | +| Keyboard F14 | - | +| Keyboard F15 | - | +| Keyboard Num Lock | - | +| Keyboard Caps Lock | - | +| Keyboard Scroll Lock | - | +| Keyboard Right Shift | - | +| Keyboard Left Shift | - | +| Keyboard Right Control | - | +| Keyboard Left Control | - | +| Keyboard Right Alt | - | +| Keyboard Left Alt | - | +| Keyboard Right Meta | - | +| Keyboard Left Meta | - | +| Keyboard Right Super | - | +| Keyboard Left Super | - | +| Keyboard Mode | - | +| Keyboard Compose | - | +| Keyboard Help | - | +| Keyboard Print | - | +| Keyboard Sys Req | - | +| Keyboard Break | - | +| Keyboard Menu | - | +| Keyboard Power | - | +| Keyboard € | - | +| Keyboard Undo | - | +| Keyboard Unmapped | - | +| Keyboard Unknown | - | + +#### Mouse + +| RetroMouse Inputs | Neko Project II Mouse Inputs | +|-----------------------------------------------------|------------------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Mouse Cursor | Mouse Cursor | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | Mouse Left Button | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | Mouse Right Button | + +## Compatibility + +Awaiting description. + +## External Links + +- [Original Neko Project II Website](http://www.yui.ne.jp/np2/) +- [Libretro Neko Project II Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/nekop2_libretro.info) +- [Libretro Neko Project II Github Repository](https://github.com/libretro/libretro-meowPC98) +- [Report Libretro Neko Project II Core Issues Here](https://github.com/libretro/libretro-meowPC98/issues) \ No newline at end of file diff --git a/docs/library/neko_project_ii_kai.md b/docs/library/neko_project_ii_kai.md new file mode 100644 index 00000000..88ae7495 --- /dev/null +++ b/docs/library/neko_project_ii_kai.md @@ -0,0 +1,412 @@ +# NEC - PC-98 (Neko Project II Kai) + +## Background + +Awaiting description. + +### Author/License + +The Neko Project II Kai core has been authored by + +- Neko Project II Team +- Tomohiro Yoshidomi + +The Neko Project II Kai core is licensed under + +- [MIT](https://github.com/AZO234/NP2kai/blob/master/LICENSE) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Neko Project II Kai core have the following file extensions: + +- .d98 +- .zip +- .98d +- .fdi +- .fdd +- .2hd +- .tfd +- .d88 +- .88d +- .hdm +- .xdf +- .dup +- .cmd +- .hdi +- .thd +- .nhd +- .hdd +- .hdn + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +!!! attention + These firmware files need to be in a directory named 'np2' in the frontend's system directory. + +| Filename | Description | md5sum | +|:----------------:|:---------------------------------:|:-------:| +| np2/font.bmp | Needed to display text - Required | | +| np2/FONT.ROM | Alt font file - Required | | +| np2/bios.rom | - Required | | +| np2/itf.rom | - Required | | +| np2/sound.rom | - Required | | +| np2/bios9821.rom | - Optional | | +| np2/d8000.rom | - Optional | | +| np2/2608_bd.wav | YM2608 RYTHM sample - Optional | | +| np2/2608_sd.wav | YM2608 RYTHM sample - Optional | | +| np2/2608_top.wav | YM2608 RYTHM sample - Optional | | +| np2/2608_hh.wav | YM2608 RYTHM sample - Optional | | +| np2/2608_tom.wav | YM2608 RYTHM sample - Optional | | +| np2/2608_rim.wav | YM2608 RYTHM sample - Optional | | + +## Features + +Frontend-level settings or features that the Neko Project II Kai core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✕ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✔ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Neko Project II Kai core's directory name is 'Neko Project II kai' + +The Neko Project II Kai core saves/loads to/from these directories. + +-**Frontend's Home directory** + +- ######.bmp (???) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +**Frontend's System directory** + +- np2/np2.cfg (Neko Project II Config file) + +### Geometry and timing + +- The Neko Project II Kai core's core provided FPS is 56.4 +- The Neko Project II Kai core's core provided sample rate is 44100 Hz +- The Neko Project II Kai core's core provided aspect ratio is 8/5 + +## Usage + +NP2 menu can FDD/HDD swap. + +Mouse is cuptured (hidden/show toggle) by F11 key. + +NP2 menu is opened when F12 key + +Keep 'end' key down when booting for machine options. + +How to set GDC 2.5MHz/5MHz? + +1. Press End key(assigned Help key) + reset +2. Select 'ディップスイッチ2'(DIP switch 2) + +How to use CD drive with MS-DOS 6.2? + +Write follow to CONFIG.SYS. + +``` + LASTDRIVE=Z + DEVICE=A:¥DOS¥NECCDD.SYS /D:CD_101 +``` + +And write follow to AUTOEXEC.BAT. + +``` + A:¥DOS¥MSCDEX.EXE /D:CD_101 /L:Q +``` + +Then, you'll can use CD drive as Q drive. + +## Core options + +The Neko Project II Kai core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **PC Model (Restart)** [np2kai_model] (**PC-9801VX**/PC-286/PC-9801VM) + + Awaiting description. + +- **CPU Base Clock (Restart)** [np2kai_clk_base] (**2.4576 MHz**/1.9968 MHz) + + Awaiting description. + +- **CPU Clock Multiplier (Restart)** [np2kai_clk_mult] (**4**/5/6/8/10/12/16/20/24/30/36/40/42/1/2) + + Awaiting description. + +- **RAM Size (Restart)* [np2kai_ExMemory] (**3**/7/11/13/16/32/64/120/230/1) + + Awaiting description. + +- **GDC** [np2kai_gdc] (**uPD7220**/uPD72020) + + Awaiting description. + +- **Skipline Revisions** [np2kai_skipline] (**Full 255 lines**/ON/OFF) + + Awaiting description. + +- **Real Palettes** [np2kai_realpal] (**OFF**/ON) + + Awaiting description. + +- **LCD** [np2kai_lcd ] (**OFF**/ON) + + Awaiting description. + +- **Sound Board (Restart)** [np2kai_SNDboard] (**PC9801-86**/PC9801-26K + 86/PC9801-86 + Chibi-oto/PC9801-118/PC9801-86 + Mate-X PCM(B460)/Mate-X PCM(B460)/Chibi-oto/Speak Board/Spark Board/Sound Orchestra/Sound Orchestra-V/Sound Blaster 16/AMD-98/Otomi-chanx2/Otomi-chanx2 + 86/None/PC9801-14/PC9801-26K) + + 26K: for old games. 86: for newer games. + +- **JastSound** [np2kai_jast_snd] (**OFF**/ON) + + Awaiting description. + +- **Sound Generator** [np2kai_usefmgen] (**fmgen**/Default) + + Awaiting description. + +- **Volume FM** [np2kai_volume_F] (0 to 128 in increments of 4. **64 is default**.) + + Awaiting description. + +- **Volume SSG** [np2kai_volume_S] (0 to 128 in increments of 4. **64 is default**.) + + Awaiting description. + +- **Volume ADPCM** [np2kai_volume_A] (0 to 128 in increments of 4. **64 is default**.) + + Awaiting description. + +- **Volume PCM** [np2kai_volume_P] (0 to 128 in increments of 4. **64 is default**.) + + Awaiting description. + +- **Volume RHYTHM** [np2kai_volume_R] (0 to 128 in increments of 4. **64 is default**.) + + Awaiting description. + +- **Volume CD-DA** [np2kai_volume_C] (0 to 255 in increments of 8. **128 is default**.) + + Awaiting description. + +- **Floppy Seek Sound** [np2kai_Seek_Snd] (**OFF**/ON) + + Awaiting description. + +- **Volume Floppy Seek** [np2kai_Seek_Vol] (0 to 128 in increments of 4. **80 is default**.) + + Awaiting description. + +- **Volume Beep** [np2kai_BEEP_vol] (**3**/0/1/2) + + Awaiting description. + +- **Joypad to Mouse Mapping** [np2kai_joy2mouse] (**OFF**/ON) + + Awaiting description. + +- **Joypad to Keyboard Mapping** [np2kai_joy2key] (**OFF**/Arrows/Keypad) + + Awaiting description. + +## Controllers + +The Neko Project II Kai core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad +- RetroPad w/Analog - Joypad - There's no reason to switch to this. + +### Controller tables + +#### Joypad + +!!! attention + The Joy2Key and Joy2Mouse modes can be activated with the 'Joypad to Mouse Mapping' and 'Joypad to Keyboard Mapping' core options. + +| RetroPad Inputs | Joy2Key (Arrows) | Joy2Key (Keypad) | Joy2Mouse | +|----------------------------------------------|------------------|----------------------------|----------------------| +| ![](images/RetroPad/Retro_B_Round.png) | Z key | Z key | Mouse left button | +| ![](images/RetroPad/Retro_Y_Round.png) | Left control key | Left control key | | +| ![](images/RetroPad/Retro_Select.png) | Escape key | Escape key | | +| ![](images/RetroPad/Retro_Start.png) | Return key | Return key | | +| ![](images/RetroPad/Retro_Dpad_Up.png) | Up arrow key | Keypad Up arrow key (8) | Move mouse up | +| ![](images/RetroPad/Retro_Dpad_Down.png) | Down arrow key | Keypad down arrow key (2) | Move mouse down | +| ![](images/RetroPad/Retro_Dpad_Left.png) | Left arrow key | Keypad left arrow key (4) | Move mouse left | +| ![](images/RetroPad/Retro_Dpad_Right.png) | Right arrow key | Keypad right arrow key (6) | Move mouse right | +| ![](images/RetroPad/Retro_A_Round.png) | X key | X key | Mouse right button | +| ![](images/RetroPad/Retro_X_Round.png) | Space key | Space key | | +| ![](images/RetroPad/Retro_L1.png) | Backspace key | Backspace key | Increase mouse speed | +| ![](images/RetroPad/Retro_R1.png) | Right shift key | Right shift key | | +| ![](images/RetroPad/Retro_L2.png) | NP2 menu key | NP2 menu key | NP2 menu key | + +#### Keyboard + +| RetroKeyboard Inputs | NP2 Keyboard Inputs | +|------------------------------|------------------------------------| +| Keyboard Backspace | NKEY_BACKSPACE | +| Keyboard Tab | NKEY_TAB | +| Keyboard Return | NKEY_RETURN | +| Keyboard Pause | NKEY_STOP | +| Keyboard Escape | NKEY_ESC | +| Keyboard Space | NKEY_SPACE | +| Keyboard Quote ' | NKEY_COLON | +| Keyboard Comma , | NKEY_COMMA | +| Keyboard Minus - | NKEY_MINUS | +| Keyboard Period . | NKEY_DOT | +| Keyboard Slash / | NKEY_SLASH | +| Keyboard 0 | NKEY_0 | +| Keyboard 1 | NKEY_1 | +| Keyboard 2 | NKEY_2 | +| Keyboard 3 | NKEY_3 | +| Keyboard 4 | NKEY_4 | +| Keyboard 5 | NKEY_5 | +| Keyboard 6 | NKEY_6 | +| Keyboard 7 | NKEY_7 | +| Keyboard 8 | NKEY_8 | +| Keyboard 9 | NKEY_9 | +| Keyboard Colon : | NKEY_COLON | +| Keyboard Semicolon ; | NKEY_SEMICOLON | +| Keyboard Equals = | NKEY_CIRCUMFLEX | +| Keyboard At @ | NKEY_ATMARK | +| Keyboard Left Bracket [ | NKEY_LEFTSBRACKET | +| Keyboard Backslash \ | NKEY_YEN | +| Keyboard Right Bracket ] | NKEY_RIGHTSBRACKET | +| Keyboard Caret ^ | NKEY_CIRCUMFLEX | +| Keyboard Underscore _ | NKEY_UNDERSCORE | +| Keyboard Backquote ` | NKEY_ATMARK | +| Keyboard a | NKEY_A | +| Keyboard b | NKEY_B | +| Keyboard c | NKEY_C | +| Keyboard d | NKEY_D | +| Keyboard e | NKEY_E | +| Keyboard f | NKEY_F | +| Keyboard g | NKEY_G | +| Keyboard h | NKEY_H | +| Keyboard i | NKEY_I | +| Keyboard j | NKEY_J | +| Keyboard k | NKEY_K | +| Keyboard l | NKEY_L | +| Keyboard m | NKEY_M | +| Keyboard n | NKEY_N | +| Keyboard o | NKEY_O | +| Keyboard p | NKEY_P | +| Keyboard q | NKEY_Q | +| Keyboard r | NKEY_R | +| Keyboard s | NKEY_S | +| Keyboard t | NKEY_T | +| Keyboard u | NKEY_U | +| Keyboard v | NKEY_V | +| Keyboard w | NKEY_W | +| Keyboard x | NKEY_X | +| Keyboard y | NKEY_Q | +| Keyboard z | NKEY_Z | +| Keyboard Delete | NKEY_DEL | +| Keyboard Keypad 0 | NKEY_KP_0 | +| Keyboard Keypad 1 | NKEY_KP_1 | +| Keyboard Keypad 2 | NKEY_KP_2 | +| Keyboard Keypad 3 | NKEY_KP_2 | +| Keyboard Keypad 4 | NKEY_KP_4 | +| Keyboard Keypad 5 | NKEY_KP_5 | +| Keyboard Keypad 6 | NKEY_KP_6 | +| Keyboard Keypad 7 | NKEY_KP_7 | +| Keyboard Keypad 8 | NKEY_KP_8 | +| Keyboard Keypad 9 | NKEY_KP_9 | +| Keyboard Keypad Period . | NKEY_KP_DOT | +| Keyboard Keypad Divide / | NKEY_KP_SLASH | +| Keyboard Keypad Multiply * | NKEY_KP_ASTERISK | +| Keyboard Keypad Minus - | NKEY_KP_MINUS | +| Keyboard Keypad Plus + | NKEY_KP_PLUS | +| Keyboard Keypad Enter | NKEY_RETURN | +| Keyboard Keypad Equals = | NKEY_KP_EQUAL | +| Keyboard Up | NKEY_UP | +| Keyboard Down | NKEY_DOWN | +| Keyboard Right | NKEY_RIGHT | +| Keyboard Left | NKEY_LEFT | +| Keyboard Insert | NKEY_INS | +| Keyboard Home | NKEY_HOMECLR | +| Keyboard End | NKEY_HELP | +| Keyboard Page Up | NKEY_ROLLUP | +| Keyboard Page Down | NKEY_ROLLDOWN | +| Keyboard F1 | NKEY_F1 | +| Keyboard F2 | NKEY_F2 | +| Keyboard F3 | NKEY_F3 | +| Keyboard F4 | NKEY_F4 | +| Keyboard F5 | NKEY_F5 | +| Keyboard F6 | NKEY_F6 | +| Keyboard F7 | NKEY_F7 | +| Keyboard F8 | NKEY_F8 | +| Keyboard F9 | NKEY_F9 | +| Keyboard F10 | NKEY_F10 | +| Keyboard F11 | Mouse capture (hidden/show toggle) | +| Keyboard F12 | NP2 menu key | +| Keyboard Caps Lock | NKEY_CAPS | +| Keyboard Right Shift | NKEY_SHIFT | +| Keyboard Left Shift | NKEY_SHIFT | +| Keyboard Right Control | NKEY_CTRL | +| Keyboard Left Control | NKEY_CTRL | +| Keyboard Right Alt | NKEY_KANA | +| Keyboard Left Alt | NKEY_KANA | +| Keyboard Print | NKEY_COPY | + +Supported combinations + +- If you use 104 western keyboard, to input underscore(_), press Shift+right Ctrl. + +#### Mouse + +| RetroMouse Inputs | NP2 Mouse Inputs | +|-----------------------------------------------------|--------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Mouse Cursor | Mouse Cursor | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | Mouse Left Button | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | Mouse Right Button | +| ![](images/RetroMouse/Retro_Middle.png) Mouse 3 | NP2 menu key | + +## Compatibility + +Awaiting description. + +## External Links + +- [Official Neko Project II Kai Website](http://domisan.sakura.ne.jp/article/np2kai/np2kai.html) +- [Original Neko Project II Website](http://www.yui.ne.jp/np2/) +- [Libretro Neko Project II Kai Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/np2kai_libretro.info) +- [Libretro Neko Project II Kai Repository](https://github.com/AZO234/NP2kai) +- [Report Libretro Neko Project II Kai Core Issues Here](https://github.com/AZO234/NP2kai/issues) \ No newline at end of file diff --git a/docs/library/nestopia_ue.md b/docs/library/nestopia_ue.md new file mode 100644 index 00000000..1c09d45b --- /dev/null +++ b/docs/library/nestopia_ue.md @@ -0,0 +1,360 @@ +# Nintendo - NES / Famicom (Nestopia UE) + +## Background + +Nestopia is a portable and cycle-accurate NES/Famicom emulator written in C++. Nestopia UE (Undead Edition) is a fork of the original source code, with enhancements from members of the emulation community. This includes support for new platforms, and bug fixes in the emulator core. + +### Author/License + +The Nestopia UE core has been authored by + +- Martin Freij +- R. Belmont +- R. Danbrook + +The Nestopia UE core is licensed under + +- [GPLv2](https://github.com/libretro/nestopia/blob/master/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Nestopia UE core have the following file extensions: + +- .nes +- .fds +- .unf +- .unif + +## Databases + +RetroArch database(s) that are associated with the Nestopia UE core: + +- [Nintendo - Nintendo Entertainment System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Nintendo%20Entertainment%20System.rdb) +- [Nintendo - Family Computer Disk System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Family%20Computer%20Disk%20System.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +!!! warning + Nestopia UE requires the NstDatabase.xml for general proper emulation. Make sure it's in RetroArch's system directory. + +| Filename | Description | md5sum | +|:---------------:|:-----------------------------------------------------------------------------:|:--------------------------------:| +| [NstDatabase.xml](https://docs.libretro.com/library/nestopia_ue/index.html#nstdatabasexml) | Nestopia UE Database file - Required | +| disksys.rom | Family Computer Disk System BIOS - Required for Famicom Disk System emulation | ca30b50f880eb660a320674ed365ef7a | + +## Features + +Frontend-level settings or features that the Nestopia UE core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✔ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✔ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Nestopia UE core's internal core name is 'Nestopia' + +The Nestopia UE core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +**Frontend's System directory** + +- custom.pal (Custom palette file) + +### Geometry and timing + +- The Nestopia UE core's core provided FPS is (FPS) +- The Nestopia UE core's core provided sample rate is 44100 Hz +- The Nestopia UE core's core provided aspect ratio is dependent on the ['Preferred aspect ratio' core option](https://docs.libretro.com/library/nestopia_ue/#core-options). + +### NstDatabase.xml + +**It is HIGHLY RECOMMENDED you have NstDatabase.xml in RetroArch's system directory, you can get it from [https://github.com/0ldsk00l/nestopia](https://github.com/0ldsk00l/nestopia)** + +The Nestopia UE core relies on the NstDatabase.xml database file for + +- Games that support a custom mapper +- Games that support multitap accessories +- Games that support the Zapper +- ROM Hacks +- Famicom Disk System games +- General proper emulation of games + +**Many games will have issues if NstDatabase.xml is not present in RetroArch's system directory.** + +### Custom color palettes + +To use custom color palettes in the Nestopia UE core, the custom color palette file you want to use must be in RetroArch's system directory. + +Make sure the custom palette file is named 'custom.pal' + +Also, the 'Palette' core option must be set to custom. + +Custom color palettes for the NES can be generated with either of these tools. + +- [Bisqwit's NTSC NES palette generator](http://bisqwit.iki.fi/utils/nespalette.php) +- [Drag's NTSC NES palette generator](http://drag.wootest.net/misc/palgen.html) + +## Core options + +The Nestopia UE core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Blargg NTSC filter** [nestopia_blargg_ntsc_filter] (**disabled**|composite|svideo|rgb|monochrome) + + Enable Blargg NTSC filters. + +!!! attention "Disclaimer" + These 'Blargg NTSC filter' core option screenshots have been taken with the 'Palette' core option set to cxa2025as. + +??? note "Blargg NTSC filter - Off" + ![](images/Cores/nestopia_ue/blargg_off.png) + +??? note "Blargg NTSC filter - composite" + ![](images/Cores/nestopia_ue/blargg_composite.png) + +??? note "Blargg NTSC filter - svideo" + ![](images/Cores/nestopia_ue/blargg_svideo.png) + +??? note "Blargg NTSC filter - rgb" + ![](images/Cores/nestopia_ue/blargg_rgb.png) + +??? note "Blargg NTSC filter - monochrome" + ![](images/Cores/nestopia_ue/blargg_monochrome.png) + +- **Palette** [nestopia_palette] (**cxa2025as**|consumer|canonical|alternative|rgb|pal|composite-direct-fbx|pvm-style-d93-fbx|ntsc-hardware-fbx|nes-classic-fbx-fs|raw|custom) + + Choose which color palette is going to be used. + +!!! attention "Disclaimer" + These 'Palette' core option screenshots have been taken with the 'Blargg NTSC filter' core option set to Off. + +??? note "Palette - cxa2025as" + ![](images/Cores/nestopia_ue/cxa2025as.png) + +??? note "Palette - consumer" + ![](images/Cores/nestopia_ue/consumer.png) + +??? note "Palette - canonical" + ![](images/Cores/nestopia_ue/canonical.png) + +??? note "Palette - alternative" + ![](images/Cores/nestopia_ue/alternative.png) + +??? note "Palette - rgb" + ![](images/Cores/nestopia_ue/rgb.png) + +??? note "Palette - pal" + ![](images/Cores/nestopia_ue/pal.png) + +??? note "Palette - composite-direct-fbx" + ![](images/Cores/nestopia_ue/composite_direct_fbx.png) + +??? note "Palette - pvm-style-d93-fbx" + ![](images/Cores/nestopia_ue/pvm_style_d93_fbx.png) + +??? note "Palette - ntsc-hardware-fbx" + ![](images/Cores/nestopia_ue/ntsc_hardware_fbx.png) + +??? note "Palette - nes-classic-fbx-fs" + ![](images/Cores/nestopia_ue/nes_classic_fbx_fs.png) + +??? note "Palette - raw" + ![](images/Cores/nestopia_ue/raw.png) + +- **Remove 8-sprites-per-scanline hardware limit** [nestopia_nospritelimit] (**disabled**|enabled) + + Self-explanatory. + +- **CPU Speed (Overclock)** [nestopia_overclock] (**1x**|2x) + + Overclock the emulated CPU. + +- **4 Player Adapter** [nestopia_select_adapter] (**auto**|ntsc|famicom) + + Manually select a 4 Player Adapter if needed. Some games will not recognize the adapter correctly through the NstDatabase.xml database, this option should help fix that. + +- **Automatically insert first FDS disk on reset** [nestopia_fds_auto_insert] (**enabled**|disabled) + + Self-explanatory. + +- **Mask Overscan (Vertical)** [nestopia_overscan_v] (**enabled**|disabled) + + Mask out (vertically) the potentially random glitchy video output that would have been hidden by the bezel around the edge of a standard-definition television screen. + +??? note "Mask Overscan (Vertical) - On" + ![](images/Cores/nestopia_ue/vert_on.png) + +??? note "Mask Overscan (Vertical) - Off" + ![](images/Cores/nestopia_ue/vert_off.png) + +- **Mask Overscan (Horizontal)** [nestopia_overscan_h] (**disabled**|enabled) + + Mask out (horizontally) the potentially random glitchy video output that would have been hidden by the bezel around the edge of a standard-definition television screen. + +??? note "Mask Overscan (Horizontal) - Off" + ![](images/Cores/nestopia_ue/horiz_off.png) + +??? note "Mask Overscan (Horizontal) - On" + ![](images/Cores/nestopia_ue/horiz_on.png) + +- **Preferred aspect ratio** [nestopia_aspect] (**auto**|ntsc|pal|4:3) + + Choose the preferred aspect ratio. RetroArch's aspect ratio must be set to Core provided in the Video seetings. 'auto' will use the [NstDatabase.xml](https://docs.libretro.com/library/nestopia_ue/index.html#nstdatabasexml) database file for aspect ratio autodetection. If there is no database present it will default to NTSC for 'auto'. + +??? note "Preferred aspect ratio - ntsc" + ![](images/Cores/nestopia_ue/ratio_ntsc.png) + +??? note "Preferred aspect ratio - pal" + ![](images/Cores/nestopia_ue/ratio_pal.png) + +??? note "Preferred aspect ratio - 4:3" + ![](images/Cores/nestopia_ue/ratio_4by3.png) + +- **Game Genie Sound Distortion** [nestopia_genie_distortion] (**disabled**|enabled) + + Awaiting description. + +- **Favored System** [nestopia_favored_system] (**auto**|ntsc|pal|famicom|dendy) + + Choose which region the system is from. 'auto' will use the [NstDatabase.xml](https://docs.libretro.com/library/nestopia_ue/index.html#nstdatabasexml) database file for region autodetection. If there is no database present it will default to NTSC for 'auto'. + +- **RAM Power-on State** [nestopia_ram_power_state] (**0x00**|0xFF|random) + + Awaiting description. + +- **Turbo Pulse Speed** [nestopia_turbo_pulse] (**2**|3|4|5|6|7|8|9) + + Set the turbo pulse speed for the Turbo B and Turbo A buttons. + +## Controllers + +The Nestopia UE core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 4 device types + +- None - Doesn't disable input. There's no reason to switch to this. +- **RetroPad** - Joypad - Stay on this. +- RetroPad w/Analog - Joypad - Same as RetroPad. There's no reason to switch to this. + +### Other controllers + +- Zapper - Lightgun - The Nestopia UE core can emulate Zapper inputs but this is done automatically based off of the NstDatabase.xml Database file and cannot be manually selected a device type. + +### Multitap support + +The Nestopia UE core uses the NstDatabase.xml database file to detect which games have multitap support. + +### Controller tables + +#### Joypad + +![](images/Controller/nes.png) + +| User 1 Remap descriptors | RetroPad Inputs | +|--------------------------|-------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Turbo B | ![](images/RetroPad/Retro_Y_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| Turbo A | ![](images/RetroPad/Retro_X_Round.png) | +| (FDS) Disk Side Change | ![](images/RetroPad/Retro_L1.png) | +| (FDS) Eject Disk | ![](images/RetroPad/Retro_R1.png) | +| (VSSystem) Coin 1 | ![](images/RetroPad/Retro_L2.png) | +| (VSSystem) Coin 2 | ![](images/RetroPad/Retro_R2.png) | +| (Famicom) Microphone | ![](images/RetroPad/Retro_L3.png) | + +| User 2 - 4 Remap descriptors | RetroPad Inputs | +|------------------------------|-------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Turbo B | ![](images/RetroPad/Retro_Y_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| Turbo A | ![](images/RetroPad/Retro_X_Round.png) | +| (FDS) Disk Side Change | ![](images/RetroPad/Retro_L1.png) | +| (FDS) Eject Disk | ![](images/RetroPad/Retro_R1.png) | + +#### Lightgun + +| RetroLightgun Inputs | Zapper | +|------------------------------------------------------|------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Gun Crosshair | Zapper Crosshair | +| Gun Trigger | Zapper Trigger | +| Gun Aux B | Zapper Light On | + +## Compatibility + +| Game | Issue | +|------------------------|----------------------------------------------------------------- | +| Skull & Crossbones | Graphical glitches and screen shaking when in 2-player mode. (1) | + +??? note "(1)" + ![](images/Cores/nestopia_ue/skull.png) + +## External Links + +- [Official Nestopia UE Website](http://0ldsk00l.ca/nestopia/) +- [Official Nestopia UE Github Repository](https://github.com/0ldsk00l/nestopia) +- [Libretro Nestopia UE Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/nestopia_libretro.info) +- [Libretro Nestopia UE Github Repository](https://github.com/libretro/nestopia) +- [Report Libretro Nestopia UE Core Issues Here](https://github.com/libretro/nestopia/issues) + +### See also + +#### Nintendo - Family Computer Disk System + +- [Nintendo - NES / Famicom (FCEUmm)](https://docs.libretro.com/library/fceumm/) +- [Nintendo - NES / Famicom (Mesen)](https://docs.libretro.com/library/mesen/) + +#### Nintendo - Nintendo Entertainment System + +- [Nintendo - NES / Famicom (bnes)](https://docs.libretro.com/library/bnes/) +- [Nintendo - NES / Famicom (Emux NES)](https://docs.libretro.com/library/emux_nes/) +- [Nintendo - NES / Famicom (FCEUmm)](https://docs.libretro.com/library/fceumm/) +- [Nintendo - NES / Famicom (Mesen)](https://docs.libretro.com/library/mesen/) +- [Nintendo - NES / Famicom (QuickNES)](https://docs.libretro.com/library/quicknes/) \ No newline at end of file diff --git a/docs/library/nside_balanced.md b/docs/library/nside_balanced.md new file mode 100644 index 00000000..aea2b24f --- /dev/null +++ b/docs/library/nside_balanced.md @@ -0,0 +1,340 @@ +# Nintendo - SNES / Famicom (nSide Balanced) + +## Background + +A fork of higan v106 that reimplements the Balanced profile. + +### Author/License + +The nSide Balanced core has been authored by + +- hex-usr + +The nSide Balanced core is licensed under + +- [GPLv3](https://github.com/hex-usr/nSide/blob/master/gpl-3.0.txt) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the nSide Balanced core have the following file extensions: + +- .sfc +- .smc +- .gb +- .gbc +- .bml +- .rom + +## Databases + +RetroArch database(s) that are associated with the nSide Balanced core: + +- [Nintendo - Super Nintendo Entertainment System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System%20Hacks.rdb) +- [Nintendo - Super Nintendo Entertainment System Hacks](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System%20Hacks.rdb) +- [Nintendo - Game Boy](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Game%20Boy.rdb) +- [Nintendo - Game Boy Color](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Game%20Boy%20Color.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +!!! attention + nSide Balanced uses split ROMS for special chip games. + +!!! attention + Firmware files for SGB emulation need to be in directories called SGB1.sfc and SGB2.sfc in RetroArch's system directory. Look at the [Super GameBoy support section](https://docs.libretro.com/library/nside_balanced#super-gameboy-support) for more information. + +Notable DSP1/DSP1B Games: + +- Super Mario Kart +- Pilotwings + +Notable DSP2 Games: + +- Dungeon Master + +Notable DSP3 Games: + +- SD Gundam GX + +Notable DSP4 Games: + +- Top Gear 3000 + +Notable Cx4 Games: + +- Mega Man X2 +- Mega Man X3 + +| Filename | Description | md5sum | +|:----------------------:|:--------------------------------------:|:--------------------------------:| +| dsp1.data.rom | DSP1 co-processor firmware - Optional | 3d81b45fa0c2aa8b852dfb1ece7c0971 | +| dsp1.program.rom | DSP1 co-processor firmware - Optional | ae209fbe789fbf11a48aea5ab1197321 | +| dsp1b.data.rom | DSP1B co-processor firmware - Optional | 1e3f568634a7d8284020dddc0ae905bc | +| dsp1b.program.rom | DSP1B co-processor firmware - Optional | d10f446888e097cbf500f3f663cf4f6d | +| dsp2.data.rom | DSP2 co-processor firmware - Optional | e9417e29223b139c3c4b635a2a3b8744 | +| dsp2.program.rom | DSP2 co-processor firmware - Optional | aa6e5922a3ed5ded54f24247c11143c5 | +| dsp3.data.rom | DSP3 co-processor firmware - Optional | 0a81210c0a940b997dd9843281008ee6 | +| dsp3.program.rom | DSP3 co-processor firmware - Optional | d99ca4562818d49cee1f242705bba6f8 | +| dsp4.data.rom | DSP4 co-processor firmware - Optional | ee4990879eb68e3cbca239c5bc20303d | +| dsp4.program.rom | DSP4 co-processor firmware - Optional | a151023b948b90ffc23a5b594bb6fef2 | +| cx4.data.rom | CX4 co-processor firmware - Optional | 037ac4296b6b6a5c47c440188d3c72e3 | +| st010.data.rom | ST010 co-processor firmware - Optional | 254d70762b6f59f99c27c395aba7d07d | +| st010.program.rom | ST010 co-processor firmware - Optional | 1d70019179a59a566a0bb5d3f2845544 | +| st011.data.rom | ST011 co-processor firmware - Optional | 10bd3f4aa949737ab9836512c35bcc29 | +| st011.program.rom | ST011 co-processor firmware - Optional | 95222ebf1c0c2990bcf25db43743f032 | +| st018.data.rom | ST018 co-processor firmware - Optional | 49c898b60d0f15e90d0ba780dd12f366 | +| st018.program.rom | ST018 co-processor firmware - Optional | dda40ccd57390c96e49d30a041f9a9e7 | +| SGB1.sfc/sgb1.boot.rom | Super Game Boy BIOS - Optional | | +| SGB1.sfc/program.rom | Super Game Boy ROM - Optional | | +| SGB2.sfc/sgb2.boot.rom | Super Game Boy 2 BIOS - Optional | | +| SGB2.sfc/program.rom | Super Game Boy 2 ROM - Optional | | + +## Features + +Frontend-level settings or features that the nSide Balanced core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | - | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✔ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The nSide Balanced core's internal core name is 'higan (Super Famicom Balanced)' + +The nSide Balanced core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The nSide Balanced core's core provided FPS is (FPS) +- The nSide Balanced core's core provided sample rate is (Rate) +- The nSide Balanced core's core provided aspect ratio is (Ratio) + +## Super Gameboy Support + +The nSide Balanced core uses a simplified Super Game Boy routine that makes it much easier to access this feature than with the old v094-based cores. + +Instead of using the complex, CLI-based 'subsystem' launch commands, it looks for the necessary files in the system/BIOS directory whenever you feed the core a *.gb/c file. + +To get it working, you'll need one or more Super Game Boy ROMs and the sgb.boot.rom BIOS. + +**Step 1** + +Make 2 subdirectories in RetroArch's system directory, one named SGB1.sfc and the other named SGB2.sfc. + +**Step 2** + +Copy your original Super Game Boy ROM into the SGB1.sfc directory and then rename it to program.rom. Copy your Super Game Boy 2 ROM into the SGB2.sfc directory and then rename it program.rom, as well. + +**Step 3** + +Copy your sgb.boot.rom BIOS into each of your SGB1.sfc and SGB2.sfc directories, and rename them to sgb1.boot.rom and sgb2.boot.rom, respectively. + +The ['Preferred Super GameBoy BIOS' core option](https://docs.libretro.com/library/nside_balanced#core-options) lets you choose which of the two SGB BIOSes to use. + +**Step 4** + +Load a SGB-supported GB/GBC rom. + +**Done** + +![](images/Cores/higan/sgb.png) + +!!! warning + There may be graphical glitches when Rewind is set to On in RetroArch's settings. + +## MSU-1 + +!!! attention + MSU-1 support in this core is complex. **Use the [Snes9x core](https://docs.libretro.com/library/snes9x#msu-1-support) for simplified and easily accessible MSU-1 support.** + +MSU-1 support can be used by loading a correct .bml file. + +There's documentation for loading MSU-1 games in standalone higan [here](https://higan.readthedocs.io/en/stable/guides/import/#msu-1-games). + +## Core options + +The nSide Balanced core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Internal resolution** [higan_sfc_internal_resolution] (**512x480**|512x448|512x240|512x224|256x240|256x224) + + Self-explanatory. + +??? note "512x480" + ![](images/Cores/higan/512x480.png) + +??? note "512x448" + ![](images/Cores/higan/512x448.png) + +??? note "512x240" + ![](images/Cores/higan/512x240.png) + +??? note "512x224" + ![](images/Cores/higan/512x224.png) + +??? note "256x240" + ![](images/Cores/higan/256x240.png) + +??? note "256x224" + ![](images/Cores/higan/256x224.png) + +- **Color emulation** [higan_sfc_color_emulation] (**OFF**|ON) + + Simulates the way a console’s display device differs from modern computer monitor’s colour reproduction. In particular, it simulates the slightly-different gamma correction used by the Super Famicom. + +??? note "Color emulation - Disabled" + ![](images/Cores/higan/color_off.png) + +??? note "Color emulation - Enabled" + ![](images/Cores/higan/color_on.png) + +- **Blur emulation** [higan_sfc_blur_emulation] (**OFF**|ON) + + Simulates the limited horizontal resolution of standard-definition TVs by blurring together horizontally-adjacent pixels. Games like Jurassic Park for the Super Famicom depend on this to emulate a transparency effect. + +??? note "Blur emulation - Disabled" + ![](images/Cores/higan/blur_off.png) + +??? note "Blur emulation - Enabled" + ![](images/Cores/higan/blur_on.png) + +- **Scanline emulation** [higan_sfc_scanline_emulation] (**OFF**|ON) + + Currently does not function properly. + +- **Preferred Super GameBoy BIOS (restart)** [higan_sfc_sgb_bios] (**SGB1.sfc/**|SGB2.sfc/) + + Choose what Super GameBoy BIOS you want to use. Look at the [Super GameBoy Support section](https://docs.libretro.com/library/nside_balanced#super-gameboy-support) for more information. + +## Controllers + +The nSide Balanced core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Input disabled. +- [**SNES Joypad**](http://nintendo.wikia.com/wiki/Super_Nintendo_Entertainment_System_controller) - Joypad +- [SNES Mouse](https://en.wikipedia.org/wiki/Super_NES_Mouse) - Mouse + +### User 2 device types + +- None - Input disabled. +- [**SNES Joypad**](http://nintendo.wikia.com/wiki/Super_Nintendo_Entertainment_System_controller) - Joypad +- [SNES Mouse](https://en.wikipedia.org/wiki/Super_NES_Mouse) - Mouse +- [Multitap](http://nintendo.wikia.com/wiki/Super_Multitap) - Joypad - Allows for up to five players to play together in multitap games. +- [SuperScope](https://en.wikipedia.org/wiki/Super_Scope) - Lightgun - Inputs are not hooked up in this core. +- [Justifier](https://en.wikipedia.org/wiki/Konami_Justifier) - Lightgun - Inputs are not hooked up in this core. +- [Justifiers](https://en.wikipedia.org/wiki/Konami_Justifier) - Lightgun - Two Justifiers are plugged in, for two-player Justifier games. Inputs are not hooked up in this core. + +### Multitap support + +Activating multitap support in compatible games can be configured by switching to the [Multitap device type](https://docs.libretro.com/library/nside_balanced#controllers) for User 2. + +### Controller tables + +#### Joypad + +![](images/Controllers/snes.png) + +| User 1 - 5 Remap descriptors | RetroPad Inputs | +|------------------------------|----------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Y | ![](images/RetroPad/Retro_Y_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| X | ![](images/RetroPad/Retro_X_Round.png) | +| L | ![](images/RetroPad/Retro_L1.png) | +| R | ![](images/RetroPad/Retro_R1.png) | + +#### Mouse + +| RetroMouse Inputs | SNES Mouse | +|-----------------------------------------------------|-------------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Mouse Cursor | SNES Mouse Cursor | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | SNES Mouse Left Button | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | SNES Mouse Right Button | + +## Compatibility + +| Game | Issue | +|--------------------------|--------------------------------------------------------------------------------| +| A.S.P. Air Strike Patrol | Black lines show up during gameplay. The shadow below the aircraft is missing. | + +Incompatible with ROM hacks made to take advantage of emulator quirks, much like real hardware. + +## External Links + +- [Official higan Website](https://byuu.org/) +- [Official higan Upstream Downloads](https://byuu.org/emulation/higan/) +- [Libretro nSide Balanced Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/higan_sfc_balanced_libretro.info) +- [Libretro nSide Balanced Github Repository](https://github.com/hex-usr/nSide) +- [Report Libretro nSide Balanced Core Issues Here](https://github.com/libretro/libretro-meta/issues) + +### See also + +#### Nintendo - Game Boy (+ Color) + +- [Nintendo - Game Boy / Color (Emux GB)](https://docs.libretro.com/library/emux_gb/) +- [Nintendo - Game Boy / Color (Gambatte)](https://docs.libretro.com/library/gambatte/) +- [Nintendo - Game Boy / Color (Gearboy)](https://docs.libretro.com/library/gearboy/) +- [Nintendo - Game Boy / Color (SameBoy)](https://docs.libretro.com/library/sameboy/) +- [Nintendo - Game Boy / Color (TGB Dual)](https://docs.libretro.com/library/tgb_dual/) +- [Nintendo - Game Boy Advance (mGBA)](https://docs.libretro.com/library/mgba/) +- [Nintendo - SNES / Famicom (higan Accuracy)](https://docs.libretro.com/library/higan_accuracy/) + +#### Nintendo - Super Nintendo Entertainment System (+ Hacks) + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (higan Accuracy)](https://docs.libretro.com/library/higan_accuracy/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) \ No newline at end of file diff --git a/docs/library/nxengine.md b/docs/library/nxengine.md new file mode 100644 index 00000000..dab9d6db --- /dev/null +++ b/docs/library/nxengine.md @@ -0,0 +1,134 @@ +# Cave Story (NXEngine) + +## Background + +NXEngine is a open source reproduction of the [Cave Story game engine](https://en.wikipedia.org/wiki/Cave_Story). + +#### How to start the NXEngine core: + +- To start the NXEngine core, you need to obtain NXEngine's data files. You can do this by going to RetroArch's main menu screen and selecting 'Online Updater'. From there, select 'Content Downloader'. + +
![](images\Cores\all\download.png)
+ +- Select 'NXEngine'', then select 'Cave Story (En).zip'. This should download and extract this file to RetroArch's Downloads directory. + +
![](images\Cores\nxengine\down_story.png)
+ +- Go back to RetroArch's main menu screen. Select 'Load Content', then 'Downloads'. + +
![](images\Cores\all\load.png)
+ +
![](images\Cores\all\downloads.png)
+ +- Select the 'Cave Story (en)' directory, then select 'Doukutsu.exe'. + +- If you are asked which core to select, choose 'Cave Story (NXEngine)'. + +The content should now start running! + +### Author/License + +The NXEngine core has been authored by + +- Caitlin Shaw + +The NXEngine core is licensed under + +- [GPLv3](https://github.com/gameblabla/nxengine-nspire/blob/master/LICENSE) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the NXEngine core have the following file extensions: + +- .exe + +## Databases + +RetroArch database(s) that are associated with the NXEngine core: + +- [Cave Story](https://github.com/libretro/libretro-database/blob/master/rdb/Cave%20Story.rdb) + +## Features + +Frontend-level settings or features that the NXEngine core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The NXEngine core's directory name is 'NXEngine' + +The NXEngine core saves/loads to/from these directories. + +**Frontend's Save directory** + +- profile#.dat (Save data profile) + +### Geometry and timing + +- The NXEngine core's core provided FPS is 60 +- The NXEngine core's core provided FPS is 22050 Hz +- The NXEngine core's core provided aspect ratio is 4/3 + +## Controllers + +The NXEngine core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input +- **RetroPad** - Joypad +- RetroPad w/Analog - Joypad - There is no reason to switch to this. + +### Controller tables + +#### Joypad + +| User 1 Remap descriptors | RetroPad Inputs | +|--------------------------|-------------------------------------------| +| Jump | ![](images/RetroPad/Retro_B_Round.png) | +| Settings | ![](images/RetroPad/Retro_Select.png) | +| Inventory | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| Fire | ![](images/RetroPad/Retro_A_Round.png) | +| Show/Hide Map | ![](images/RetroPad/Retro_X_Round.png) | +| Previous Weapon | ![](images/RetroPad/Retro_L1.png) | +| Next Weapon | ![](images/RetroPad/Retro_R1.png) | + +## External Links + +- [Official NXEngine Website](http://nxengine.sourceforge.net/) +- [Official NXEngine Github Repository](https://github.com/EXL/NXEngine) +- [Libretro NXEngine Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/nxengine_libretro.info) +- [Libretro NXEngine Github Repository](https://github.com/libretro/nxengine-libretro) +- [Report Libretro NXEngine Core Issues Here](https://github.com/libretro/nxengine-libretro/issues) \ No newline at end of file diff --git a/docs/library/o2em.md b/docs/library/o2em.md new file mode 100644 index 00000000..c81a605a --- /dev/null +++ b/docs/library/o2em.md @@ -0,0 +1,225 @@ +# Odyssey2 / Videopac+ (O2EM) + +## Contribute to this documentation + +**DOCUMENTATION IS A WORK IN PROGRESS** + +**In order to propose improvements to this document, [visit its corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/o2em.md). Changes are proposed using "Pull Requests."** + +**There is a To-Do list for libretro/docs [here](https://docs.libretro.com/docguide/todo/)** + +**You can submit suggestions or issues regarding documentation at the [libretro/docs issue tracker](https://github.com/libretro/docs/issues) or in our [forum thread](https://forums.libretro.com/t/wip-adding-pages-to-documentation-site/10078/).** + +## Background + +O2EM is an open source multi-platform Odyssey2 / Videopac+ emulator. The Odyssey2 (Videopac/Jopac in Europe) was a video game console created in the late 70s. + +### Why use this core? + +Awaiting description. + +### How to get and install the O2EM core: + +- Start up RetroArch. Inside the main menu, go to 'Online Updater'. + +
![](images\Cores\all\updater.png)
+ +- Just to make sure we have the latest info files, select 'Update Core Info FIles'. Wait until this is done. Then, select 'Core Updater'. + +
![](images\Cores\all\info.png)
+ +- Browse through the list and select 'Odyssey2 / Videopac+ (O2EM)'. + +
![](images\Cores\updater\o2em.png)
+ +After this has finished downloading, the core should now be ready for use! + +#### How to start (after installation): + +- Go back to RetroArch's main menu screen. Select 'Load Content'. + +
![](images\Cores\all\load.png)
+ +- Browse to the folder that contains the content you want to run. + +- Select the content that you want to run. + +
![](images\Cores\all\screenshot_name.png)
+ +- If you are asked which core to select, choose 'Odyssey2 / Videopac+ (O2EM)'. + +The content should now start running! + +### Authors + +- Daniel Boris|Andre de la Rocha +- Arlindo M. de Oliveira + +## License + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +The O2EM core is licensed under + +- [Artistic License](https://sourceforge.net/projects/o2em/) + +## Extensions + +Content that can be loaded by the O2EM core have the following file extensions: + +- .bin + +## Databases + +RetroArch database(s) that are associated with the O2EM core: + +- [Magnavox - Odyssey2](https://github.com/libretro/libretro-database/blob/master/rdb/Magnavox%20-%20Odyssey2.rdb) +- [Phillips - Videopac+](https://github.com/libretro/libretro-database/blob/master/rdb/Philips%20-%20Videopac%2B.rdb) + +## BIOS + +Required or optional firmware files go in RetroArch's system directory. + +| Filename | Description | md5sum | +|:----------:|:------------------------------------------------:|:--------------------------------:| +| o2rom.bin | Odyssey2 BIOS - G7000 model - Required | 562d5ebf9e030a40d6fabfc2f33139fd | +| c52.bin | Videopac+ French BIOS - G7000 model - Required | f1071cdb0b6b10dde94d3bc8a6146387 | +| g7400.bin | Videopac+ European BIOS - G7400 model - Required | c500ff71236068e0dc0d0603d265ae76 | +| jopac.bin | Videopac+ French BIOS - G7400 model - Required | 279008e4a0db2dc5f1c048853b033828 | + +## Features + +RetroArch-level settings or features that the O2EM core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | + +### Directories + +The O2EM core's directory name is 'O2EM' + +### Geometry and timing + +- The O2EM core's internal FPS is 60 for NTSC games and 50 for PAL games. +- The O2EM core's internal sample rate is 44100 Hz +- The O2EM core's core provided aspect ratio is 4/3 + +## Controllers + +### Device types + +The O2EM core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +#### User 1 - 2 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad - Optional description. +- RetroPad w/Analog - Joypad - There's no reason to switch to this. + +#### Other controllers + +The O2EM core accepts keyboard inputs as well. Look at the Keyboard section below for more information. + +### Controller tables + +#### Joypad and analog device type table + +| User 1 Remap descriptors | RetroPad Inputs | +|-------------------------------|----------------------------------------------| +| Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| Fire | ![](images/RetroPad/Retro_A_Round.png) | + +| User 2 Remap descriptors | RetroPad Inputs | +|-------------------------------|----------------------------------------------| +| Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| Action | ![](images/RetroPad/Retro_A_Round.png) | + +#### Keyboard device type table + +| RetroKeyboard Inputs | Keyboard | +|-------------------------------|--------------------| +| Keyboard Return | Enter | +| Keyboard Space | Space | +| Keyboard . | . | +| Keyboard / | / | +| Keyboard 0 | 0 | +| Keyboard 1 | 1 | +| Keyboard 2 | 2 | +| Keyboard 3 | 3 | +| Keyboard 4 | 4 | +| Keyboard 5 | 5 | +| Keyboard 6 | 6 | +| Keyboard 7 | 7 | +| Keyboard 8 | 8 | +| Keyboard 9 | 9 | +| Keyboard - | - | +| Keyboard = | = | +| Keyboard ? | ? | +| Keyboard a | a | +| Keyboard b | b | +| Keyboard c | c | +| Keyboard d | d | +| Keyboard e | e | +| Keyboard f | f | +| Keyboard g | g | +| Keyboard h | h | +| Keyboard i | i | +| Keyboard j | j | +| Keyboard k | k | +| Keyboard l | l | +| Keyboard m | m | +| Keyboard n | n | +| Keyboard o | o | +| Keyboard p | p | +| Keyboard q | q | +| Keyboard r | r | +| Keyboard s | s | +| Keyboard t | t | +| Keyboard u | u | +| Keyboard v | v | +| Keyboard w | w | +| Keyboard x | x | +| Keyboard y | y | +| Keyboard z | z | +| Keyboard End | Clear | + +## Compatibility + +Awaiting description. + +## External Links + +- [Libretro O2EM Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/o2em_libretro.info) +- [Libretro O2EM Github Repository](https://github.com/libretro/libretro-o2em) +- [Report Libretro O2EM Core Issues Here](https://github.com/libretro/libretro-o2em/issues) +- [Official O2EM Website](http://o2em.sourceforge.net/) +- [Official O2EM SourceForge Repository](https://sourceforge.net/projects/o2em/) \ No newline at end of file diff --git a/docs/library/openlara.md b/docs/library/openlara.md new file mode 100644 index 00000000..8d187a75 --- /dev/null +++ b/docs/library/openlara.md @@ -0,0 +1,216 @@ +# Tomb Raider (OpenLara) + +## Background + +A new work-in-progress Tomb Raider game engine ported to libretro. + +The nice thing about OpenLara is that, while staying true to the original look and feel of the original, it also adds some graphical enhancements to it that manages to make the boxy old-school Tomb Raider games look a bit less archaic. Some examples include : + +- Self-shadowing on Lara, enemies, etc. +- New water effects which replaces the simple vertex manipulation of the water surface on the PSX. The Saturn version actually was the only version that tried to do something a bit more sophisticated with the water. If you dislike these very nice graphical enhancements, I inserted a core option so you can turn these off (‘Enable water effects’ in Quick Menu -> options). +- Shading effects – after Lara gets out of the water, her skin has a slightly wet shading effect. +- A first-person mode that is more convincing and fun than what you’d expect. It behaves a bit like Mirror’s Edge in that the camera bobs up and down, and you can see Lara’s hands move in front of you. If you try to do a somersault – the camera will rotate along with it as well. What makes the firstperson mode a bit more convincing is the new self-shadowing effects that have been added. + +### Requirements + +This core requires that you use OpenGL as the video driver. Go to Settings -> Driver. If ‘video driver’ is set to ‘vulkan’, switch it back to ‘gl’, and then restart. + +![](images/Cores/openlara/gl.png) + +!!! attention + There is currently no ‘working’ macOS version available due to the OpenGL requirement. + +Also, the OpenLara core requires that you turn on ‘Enable Shared Hardware Context’, otherwise you will only see a single texture being displayed onscreen instead of the game screen. + +![](images/Cores/openlara/texture.png) + +1. First, you need to ensure that ‘Show Advanced Settings’ is turned on. Go to Settings -> User Interface and turn ‘Show Advanced Settings’ on. + +![](images/Cores/openlara/advanced.png) + +2. Now, go back, and go to Settings -> Core. + +![](images/Cores/openlara/settings.png) + +3. Once inside the ‘Core’ settings, set ‘Enable Shared Hardware Context’ to ON. + +![](images/Cores/openlara/context.png) + +#### How to start the OpenLara core: + +Right now, OpenLara is more of a tech demo. You have to load separate levels into the program in order to play them. + +Be aware that certain gameplay elements are simply not implemented as of yet, such as health bars, taking damage, etc. You can ‘complete’ the stage technically but you also cannot die or continue to the next level. + +We hope that it will book major progress so that one day we can replay the old Tomb Raider games entirely with these enhanced graphics and enhanced framerates. To this end, we intend to support the project. + +**For demonstration purposes, we provide you with the Tomb Raider 1 demo levels so that you can test it out. It is also possible to use levels from the PC/PSX version and load this into the game engine core, so try that out at your own discretion.** + +- To try the demo level, you need to obtain its data files. You can do this by going to RetroArch's main menu screen and selecting 'Online Updater'. From there, select 'Content Downloader'. + +
![](images\Cores\all\download.png)
+ +- Select 'Tomb Raider', then select 'tombraider1-demo.zip'. This should download and extract this file to RetroArch's Downloads directory. + +
![](images\Cores\folder\screenshot_name.png)
+ +- Go back to RetroArch's main menu screen. Select 'Load Content', then 'Downloads'. + +
![](images\Cores\all\load.png)
+ +
![](images\Cores\all\downloads.png)
+ +- Select the 'Tomb Raider' directory, then select 'LEVEL2.PSX'. + +- If you are asked which core to select, choose 'Tomb Raider (OpenLara)'. + +The content should now start running! + +### Author/License + +The OpenLara core has been authored by + +- XProger + +The OpenLara core is licensed under + +- [2-clause BSD](https://github.com/XProger/OpenLara/blob/master/LICENSE) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the OpenLara core have the following file extensions: + +- .psx + +## Databases + +RetroArch database(s) that are associated with the OpenLara core: + +- [Tomb Raider](https://github.com/libretro/libretro-database/blob/master/rdb/Tomb%20Raider.rdb) + +## Features + +Frontend-level settings or features that the OpenLara core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✕ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The OpenLara core's internal core name is 'OpenLara' + +The OpenLara core saves/loads to/from these directories. + +**Frontend's System directory** + +- openlara-'character-string'.xsh (???) + +### Geometry and timing + +- The OpenLara core's core provided FPS is dependent on the ['Framerate' core option](https://docs.libretro.com/library/openlara/#core-options). +- The OpenLara core's core provided sample rate is 44100 Hz +- The OpenLara core's core provided aspect ratio is 4/3 + +## Core options + +The OpenLara core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Framerate (restart)** [openlara_framerate] (**60fps**|90fps|120fps|144fps|30fps) + + Self-explanatory. + +- **Internal resolution (restart)** [openlara_resolution] (**320x240**|360x480|480x272|512x384|512x512|640x240|640x448|640x480|720x576|800x600|960x720|1024x768|1024x1024|1280x720|1280x960|1600x1200|1920x1080|1920x1440|1920x1600|2048x2048|2560x1440|3840x2160|7680x4320|15360x8640|16000x9000) + + Self-explanatory. + +??? note "Internal resolution - 320x240" + ![](images/Cores/openlara/320x240.png) + +??? note "Internal resolution - 1920x1080" + ![](images/Cores/openlara/1920x1080.png) + +- **Texture filtering (restart)** [openlara_texture_filtering] (**Bilinear filtering**|Nearest) + + Self-explanatory. + +??? note "Texture filtering - Bilinear" + ![](images/Cores/openlara/bilinear.png) + +??? note "Texture filtering - Nearest" + ![](images/Cores/openlara/nearest.png) + +- **Water effects (restart)** [openlara_water_effects] (**enabled**|disabled) + + Self-explanatory. + +??? note "Water effects - On" + ![](images/Cores/openlara/water_on.png) + +??? note "Water effects - Off" + ![](images/Cores/openlara/water_off.png) + +## Controllers + +The OpenLara core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. There's no reason to switch to this. +- **RetroPad** - Joypad - Stay on this. +- RetroPad w/Analog - Joypad - Same as RetroPad. There's no reason to switch to this. + +### Controller tables + +#### Joypad + +| User 1 Remap descriptors | RetroPad Inputs | +|--------------------------|----------------------------------------------| +| Action (Shoot/grab) | ![](images/RetroPad/Retro_B_Round.png) | +| Jump | ![](images/RetroPad/Retro_Y_Round.png) | +| View toggle | ![](images/RetroPad/Retro_Select.png) | +| Inventory | ![](images/RetroPad/Retro_Start.png) | +| Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| Roll | ![](images/RetroPad/Retro_A_Round.png) | +| Draw weapon | ![](images/RetroPad/Retro_X_Round.png) | +| Walk (when holding) | ![](images/RetroPad/Retro_R1.png) | +| Sidestep left | ![](images/RetroPad/Retro_L2.png) | +| Sidestep right | ![](images/RetroPad/Retro_R2.png) | + +## External Links + +- [Official OpenLara Github Repository](https://github.com/XProger/OpenLara) +- [OpenLara WebGL build with demo level](http://xproger.info/projects/OpenLara/) +- [Libretro OpenLara Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/openlara_libretro.info) +- [Libretro OpenLara Github Repository](https://github.com/libretro/OpenLara) +- [Report Libretro OpenLara Core Issues Here](https://github.com/libretro/libretro-meta/issues) \ No newline at end of file diff --git a/docs/library/pcsx_rearmed.md b/docs/library/pcsx_rearmed.md new file mode 100644 index 00000000..71f3d845 --- /dev/null +++ b/docs/library/pcsx_rearmed.md @@ -0,0 +1,502 @@ +# PlayStation (PCSX ReARMed) + +## Contribute to this documentation + +**In order to propose improvements to this document, [visit its corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/pcsx_rearmed.md). Changes are proposed using "Pull Requests."** + +**There is a To-Do list for libretro/docs [here](https://docs.libretro.com/docguide/todo/)** + +**You can submit suggestions or issues regarding documentation at the [libretro/docs issue tracker](https://github.com/libretro/docs/issues) or in our [forum thread](https://forums.libretro.com/t/wip-adding-pages-to-documentation-site/10078/).** + +## Background + +PCSX ReARMed is a fork of PCSX Reloaded. It differs from the latter in that it has special optimizations for systems that have an ARM architecture-based CPU. It also has a dedicated graphics plugin, 'Exophase NEON GPU'. It is a surprisingly accurate graphics rasterizer that also has the ability of rendering internally in high resolution at playable framerates on ARM hardware. + +### Why use this core? + +Awaiting description. + +### How to get and install the PCSX ReARMed core: + +- Start up RetroArch. Inside the main menu, go to 'Online Updater'. + +
![](images\Cores\all\updater.png)
+ +- Just to make sure we have the latest info files, select 'Update Core Info FIles'. Wait until this is done. Then, select 'Core Updater'. + +
![](images\Cores\all\info.png)
+ +- Browse through the list and select 'PlayStation (PCSX ReARMed)'. + +
![](images\Cores\pcsx_rearmed\pcsx_rearmed.png)
+ +After this has finished downloading, the core should now be ready for use! + +#### How to start (after installation): + +- Go back to RetroArch's main menu screen. Select 'Load Content'. + +
![](images\Cores\all\load.png)
+ +- Browse to the folder that contains the content you want to run. + +- Select the content that you want to run. + +
![](images\Cores\all\psx.png)
+ +- If you are asked which core to select, choose 'PlayStation (PCSX ReARMed)'. + +The content should now start running! + +### Authors + +- PCSX Team +- notaz +- Exophase + +## See also + +### PSX + +- [PlayStation (Beetle PSX HW)](https://docs.libretro.com/library/beetle_psx_hw/) +- [PlayStation (Beetle PSX)](https://docs.libretro.com/library/beetle_psx/) + +## License + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +The PCSX ReARMed core is licensed under + +- [GPLv2](https://github.com/libretro/pcsx_rearmed/blob/master/COPYING) + +## Extensions + +Content that can be loaded by the PCSX ReARMed core have the following file extensions: + +- .bin +- .cue +- .img +- .mdf +- .pbp +- .toc +- .cbn +- .m3u + +## Databases + +RetroArch database(s) that are associated with the PCSX ReARMed core: + +- [Sony - PlayStation](https://github.com/libretro/libretro-database/blob/master/rdb/Sony%20-%20PlayStation.rdb) + +## BIOS + +Required or optional firmware files go in RetroArch's system directory. + +| Filename | Description | md5sum | +|:-------------:|:----------------------:|:--------------------------------:| +| scph5500.bin | PS1 JP BIOS - Optional | 8dd7d5296a650fac7319bce665a6a53c | +| scph5501.bin | PS1 US BIOS - Optional | 490f666e1afb15b7362b406ed1cea246 | +| scph5502.bin | PS1 EU BIOS - Optional | 32736f17079d0b2b7024407c39bd3050 | + +!!! attention + In case the PCSX ReARMed can find no BIOS files named like this in RetroArch's system directory, it will default to a High-Level Emulation BIOS. This decreases the level of compatibility of the emulator, so it is recommended that you always supply valid BIOS images inside the system directory. + +## Features + +RetroArch-level settings or features that the PCSX ReARMed core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✔ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✔ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| Softpatching | ✕ | +| Disk Control | ✔ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | + +### Directories + +The PCSX ReARMed core's directory name is 'PCSX-ReARMed' + +The PCSX ReARMed core saves/loads to/from these directories. + +**RetroArch's Save directory** + +- 'content-name'.srm (Memory card slot 0) + +**RetroArch's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The PCSX ReARMed core's internal FPS is 60 for everything expect for PAL games. PAL games are 50 fps. +- The PCSX ReARMed core's internal sample rate is 44100 Hz +- The PCSX ReARMed core's core provided aspect ratio is 4/3 + +### Loading content + +PCSX ReARMed needs a cue-sheet that points to an image file. A cue sheet, or cue file, is a metadata file which describes how the tracks of a CD or DVD are laid out. + +If you have e.g. `foo.bin`, you should create a text file and save it as `foo.cue`. Most PS1 games are single-track, so the cue file contents should look like this: + +`foobin.cue` +``` + FILE "foo.bin" BINARY + TRACK 01 MODE1/2352 + INDEX 01 00:00:00 +``` + +After that, you can load the `foo.cue` file in RetroArch with the PCSX ReARMed core. + +!!! attention + Certain PS1 games are multi-track, so their .cue files might be more complicated. + +#### Playing PAL copy protected games + +PAL copy protected games need a SBI Subchannel file next to the bin/cue files in order to get past the copy protection. + +- Ape Escape (Europe).bin +- Ape Escape (Europe).cue +- **Ape Escape (Europe).sbi** + +#### Multiple-disk games + +If foo is a multiple-disk game, you should have .cue files for each one, e.g. `foo (Disc 1).cue`, `foo (Disc 2).cue`, `foo (Disc 3).cue`. + +To take advantage of PCSX ReARMed's Disk Control feature for disk swapping, an index file (a m3u file) should be made. + +Create a text file and save it as `foo.m3u`. Then enter your game's .cue files on it. The m3u file contents should look something like this: + +`foo.m3u` +``` +foo (Disc 1).cue +foo (Disc 2).cue +foo (Disc 3).cue +``` + +After that, you can load the `foo.m3u` file in RetroArch with the PCSX ReARMed core. + +Here's another m3u example done with Valkryie Profile + +![](images\Cores\beetle_psx_hw\m3u.png) + +!!! attention + Adding multi-track games to a RetroArch playlist is recommended. (Manually add an entry a playlist that points to `foo.m3u`) + +#### Game compression + +Alternatively to using cue sheets with .bin files, you can convert your games to .pbp (Playstation Portable update file) to reduce file sizes and neaten up your game folder. A recommended .pbp convert tool is PSX2PSP. + +If converting a multiple-disk game, all disks should be added to the same .pbp file, rather than making a .m3u file for them. + +Most conversion tools will want a single .bin file for each disk. If your game uses multiple .bin files (tracks) per disk, you will have to mount the cue sheet to a virtual drive and re-burn the images onto a single track before conversion. + +!!! attention + RetroArch does not currently have .pbp database due to variability in users' conversion methods. All .pbp games will have to be added to playlists manually. + +### Saves + +For game savedata storage, the PSX console used memory cards. The PSX console had two slots for memory cards. + +The PCSX ReARMed core only has support for the first memory card slot. + +In this doc, the first memory card slot will be referred to as 'Memcard slot 0'. + +For memory card functionality and usage, the PCSX ReARMed core will the Libretro savedata format. + +
+ +| Libretro savedata format | +|----------------------------| +| gamename.srm | + +
+ +**By default**, the filename of the Memcard savedata will match the loaded cue or m3u or pbp filename, like this: + +- Loaded content: Breath of Fire III (USA).cue + +- **Memcard slot 0: Breath of Fire III (USA).srm** + +or + +- Loaded content: Final Fantasy VII (USA).m3u + +- **Memcard slot 0: Final Fantasy VII (USA).srm** + +or + +- Loaded content: Wild Arms 2 (USA).pbp + +- **Memcard slot 0: `Wild Arms 2 (USA).srm** + +!!! attention + To import your old memory cards from other emulators, you need to rename them to the Libretro savedata format. + +!!! warning + Keep in mind that save states also include the state of the memory card; carelessly loading an old save state will **OVEWRITE** the memory card, potentially resulting in lost saved games. **You can set the 'Don't overwrite SaveRAM on loading savestate' option in RetroArch's Saving settings to On to prevent this.** + +## Core options + +The PCSX ReARMed core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Frameskip** (**0**/1/2/3) + +
Choose how much frames should be skipped to improve performance at the expense of visual smoothness.
+ +- **Region** (**Auto**/NTSC/PAL) + +
Choose what region the system is from.
+ +- **Pad 1 Type** (**default**/none/standard/analog/negcon) + +
Choose the Pad Type for User 1.
+ +
With the none setting, input is disabled.
+ +
With the standard setting, a standard [PlayStation Controller](https://en.wikipedia.org/wiki/PlayStation_Controller) is emulated.
+ +
With the analog setting, a [Dual Analog Controller](https://en.wikipedia.org/wiki/Dual_Analog_Controller) is emulated
+ +
With the negcon setting, a [neGcon Controller](https://en.wikipedia.org/wiki/NeGcon) is emulated.
+ +
Check the [Controllers section](https://docs.libretro.com/library/pcsx_rearmed/#controllers) for more information.
+ +- **Pad 2 Type** (**default**/none/standard/analog/negcon) + +
Choose the Pad Type for User 2.
+ +
With the none setting, input is disabled.
+ +
With the standard setting, a standard [PlayStation Controller](https://en.wikipedia.org/wiki/PlayStation_Controller) is emulated.
+ +
With the analog setting, a [Dual Analog Controller](https://en.wikipedia.org/wiki/Dual_Analog_Controller) is emulated
+ +
With the negcon setting, a [neGcon Controller](https://en.wikipedia.org/wiki/NeGcon) is emulated.
+ +
Check the [Controllers section](https://docs.libretro.com/library/pcsx_rearmed/#controllers) for more information.
+ +- **Pad 3 Type** (**default**/none/standard/analog/negcon) + +
Choose the Pad Type for User 3.
+ +
With the none setting, input is disabled.
+ +
With the standard setting, a standard [PlayStation Controller](https://en.wikipedia.org/wiki/PlayStation_Controller) is emulated.
+ +
With the analog setting, a [Dual Analog Controller](https://en.wikipedia.org/wiki/Dual_Analog_Controller) is emulated
+ +
With the negcon setting, a [neGcon Controller](https://en.wikipedia.org/wiki/NeGcon) is emulated.
+ +
Check the [Controllers section](https://docs.libretro.com/library/pcsx_rearmed/#controllers) for more information.
+ +- **Pad 4 Type** (**default**/none/standard/analog/negcon) + +
Choose the Pad Type for User 4.
+ +
With the none setting, input is disabled.
+ +
With the standard setting, a standard [PlayStation Controller](https://en.wikipedia.org/wiki/PlayStation_Controller) is emulated.
+ +
With the analog setting, a [Dual Analog Controller](https://en.wikipedia.org/wiki/Dual_Analog_Controller) is emulated
+ +
With the negcon setting, a [neGcon Controller](https://en.wikipedia.org/wiki/NeGcon) is emulated.
+ +
Check the [Controllers section](https://docs.libretro.com/library/pcsx_rearmed/#controllers) for more information.
+ +- **Pad 5 Type** (**default**/none/standard/analog/negcon) + +
Choose the Pad Type for User 5.
+ +
With the none setting, input is disabled.
+ +
With the standard setting, a standard [PlayStation Controller](https://en.wikipedia.org/wiki/PlayStation_Controller) is emulated.
+ +
With the analog setting, a [Dual Analog Controller](https://en.wikipedia.org/wiki/Dual_Analog_Controller) is emulated
+ +
With the negcon setting, a [neGcon Controller](https://en.wikipedia.org/wiki/NeGcon) is emulated.
+ +
Check the [Controllers section](https://docs.libretro.com/library/pcsx_rearmed/#controllers) for more information.
+ +- **Pad 6 Type** (**default**/none/standard/analog/negcon) + +
Choose the Pad Type for User 6.
+ +
With the none setting, input is disabled.
+ +
With the standard setting, a standard [PlayStation Controller](https://en.wikipedia.org/wiki/PlayStation_Controller) is emulated.
+ +
With the analog setting, a [Dual Analog Controller](https://en.wikipedia.org/wiki/Dual_Analog_Controller) is emulated
+ +
With the negcon setting, a [neGcon Controller](https://en.wikipedia.org/wiki/NeGcon) is emulated.
+ +
Check the [Controllers section](https://docs.libretro.com/library/pcsx_rearmed/#controllers)for more information.
+ +- **Pad 7 Type** (**default**/none/standard/analog/negcon) + +
Choose the Pad Type for User 7.
+ +
With the none setting, input is disabled.
+ +
With the standard setting, a standard [PlayStation Controller](https://en.wikipedia.org/wiki/PlayStation_Controller) is emulated.
+ +
With the analog setting, a [Dual Analog Controller](https://en.wikipedia.org/wiki/Dual_Analog_Controller) is emulated
+ +
With the negcon setting, a [neGcon Controller](https://en.wikipedia.org/wiki/NeGcon) is emulated.
+ +
Check the [Controllers section](https://docs.libretro.com/library/pcsx_rearmed/#controllers) for more information.
+ +- **Pad 8 Type** (**default**/none/standard/analog/negcon) + +
Choose the Pad Type for User 8.
+ +
With the none setting, input is disabled.
+ +
With the standard setting, a standard [PlayStation Controller](https://en.wikipedia.org/wiki/PlayStation_Controller) is emulated.
+ +
With the analog setting, a [Dual Analog Controller](https://en.wikipedia.org/wiki/Dual_Analog_Controller) is emulated
+ +
With the negcon setting, a [neGcon Controller](https://en.wikipedia.org/wiki/NeGcon) is emulated.
+ +
Check the [Controllers section](https://docs.libretro.com/library/pcsx_rearmed/#controllers) for more information.
+ +- **Multitap 1** (**auto**/Off/On) + +
Enables/Disables [multitap](https://en.wikipedia.org/wiki/PlayStation_Multitap) functionality on port 1, allowing 3-8 player support in games that permit it.
+ +- **Multitap 2** (**auto**/Off/On) + +
Enables/Disables [multitap](https://en.wikipedia.org/wiki/PlayStation_Multitap) functionality on port 2, allowing 3-8 player support in games that permit it.
+ +- **Enable Vibration** (Off/**On**) + +
Enables Rumble. Look at the [Rumble section](https://docs.libretro.com/library/pcsx_rearmed#rumble-support) for more information
+ +- **Enable Dithering** (Off/**On**) + +
If Off, disables the dithering pattern the PSX applies to combat color banding.
+ +
+ +??? note "Enable Dithering - On" + ![](images\Cores\pcsx_rearmed\dither_on.png) + +
+ +
+ +??? note "Enable Dithering - Off" + ![](images\Cores\pcsx_rearmed\dither_off.png) + +
+ +- **Frame duping** (Off/**On**) + +
A speedup, redraws/reuses the last frame if there was no new data.
+ +- **Show Bios Bootlogo(Breaks some games)** (**Off**/On) + +
Self explanatory.
+ +- **Sound: Reverb** (Off/**On**) + +
Awaiting description.
+ +- **Sound: Interpolation** (**simple**/gaussian/cubic/off) + +
Awaiting description.
+ +- **Parasite Eve 2/Vandal Hearts 1/2 Fix** (**Off**/On) + +
Self explanatory.
+ +- **InuYasha Sengoku Battle Fix** (**Off**/On) + +
Self explanatory.
+ +## Controllers + +### Device types + +The PCSX ReARMed core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +#### User 1 - 8 device types + +- None - Input disabled. +- **RetroPad** - Joypad +- RetroPad w/Analog - Joypad - There's no reason to switch to this. + +### Rumble support + +Rumble only works in the PCSX ReARMed core when + +- The content being ran has rumble support. +- The joypad input driver being used has rumble support. (e.g. Xinput) +- The joypad device being used has rumble support. +- The ['Enable Vibration' core option](https://docs.libretro.com/library/pcsx_rearmed#core-options) is set to On + +### Multitap support + +Activating multitap support in compatible games can be configured by the ['Multitap 1' and 'Multitap 2' core options](https://docs.libretro.com/library/pcsx_rearmed#core-options). + +### Controller tables + +#### Joypad and analog device type table + +| User 1 - 8 input descriptors | | standard | analog | negcon | +|-------------------------------|----------------------------------------------|-------------|----------------|--------| +| Cross | ![](images/RetroPad/Retro_B_Round.png) | Cross | Cross | - | +| Square | ![](images/RetroPad/Retro_Y_Round.png) | Square | Square | - | +| Select | ![](images/RetroPad/Retro_Select.png) | Select | Select | - | +| Start | ![](images/RetroPad/Retro_Start.png) | Start | Start | - | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | D-Pad Up | D-Pad Up | - | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | D-Pad Down | D-Pad Down | - | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | D-Pad Left | D-Pad Left | - | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | D-Pad Right | D-Pad Right | - | +| Circle | ![](images/RetroPad/Retro_A_Round.png) | Circle | Circle | - | +| Triangle | ![](images/RetroPad/Retro_X_Round.png) | Triangle | Triangle | - | +| L1 | ![](images/RetroPad/Retro_L1.png) | L1 | L1 | - | +| R1 | ![](images/RetroPad/Retro_R1.png) | R1 | R1 | - | +| L2 | ![](images/RetroPad/Retro_L2.png) | L2 | L2 | - | +| R2 | ![](images/RetroPad/Retro_R2.png) | R2 | R2 | - | +| L3 | ![](images/RetroPad/Retro_L3.png) | | L3 | - | +| R3 | ![](images/RetroPad/Retro_R3.png) | | R3 | - | +| Left Analog X | ![](images/RetroPad/Retro_Left_Stick.png) X | | Left Analog X | - | +| Left Analog Y | ![](images/RetroPad/Retro_Left_Stick.png) Y | | Left Analog Y | - | +| Right Analog X | ![](images/RetroPad/Retro_Right_Stick.png) X | | Right Analog X | - | +| Right Analog Y | ![](images/RetroPad/Retro_Right_Stick.png) Y | | Right Analog Y | - | + +## Compatibility + +| Game | Issue | +|-----------------|--------------------------------------------------------| +| Jumping Flash 2 | Graphics glitches. Geometry issues. | +| Tobal 2 | Graphics glitch. Garbled Dream Factory intro sequence. | + +## External Links + +- [Libretro PCSX ReARMed Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/pcsx_rearmed_libretro.info) +- [Libretro PCSX ReARMed Github Repository](https://github.com/libretro/pcsx_rearmed) +- [Report Libretro PCSX ReARMed Core Issues Here](https://github.com/libretro/pcsx_rearmed/issues) +- [Official PCSX ReARMed Website](http://notaz.gp2x.de/pcsx_rearmed.php) +- [Official PCSX ReARMed Github Repository](https://github.com/notaz/pcsx_rearmed) \ No newline at end of file diff --git a/docs/library/picodrive.md b/docs/library/picodrive.md new file mode 100644 index 00000000..27bd0e44 --- /dev/null +++ b/docs/library/picodrive.md @@ -0,0 +1,254 @@ +# Sega - MS/MD/CD/32X (PicoDrive) + +## Background + +PicoDrive is an open-source Sega 8/16 bit and 32X emulator which was written having ARM-based handheld devices in mind. + +- Supports 32x emulation. +- Designed to run on weak devices. + +### Author/License + +The PicoDrive core has been authored by + +- notaz +- fdave + +The PicoDrive core is licensed under + +- [Non-commercial](https://github.com/libretro/picodrive/blob/master/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the PicoDrive core have the following file extensions: + +- .bin +- .gen +- .smd +- .md +- .32x +- .cue +- .iso +- .sms +- .68k + +## Databases + +RetroArch database(s) that are associated with the PicoDrive core: + +- [Sega - Master System - Mark III](https://github.com/libretro/libretro-database/blob/master/rdb/Sega%20-%20Master%20System%20-%20Mark%20III.rdb) +- [Sega - Mega-CD - Sega CD](https://github.com/libretro/libretro-database/blob/master/rdb/Sega%20-%20Mega-CD%20-%20Sega%20CD.rdb) +- [Sega - Mega Drive - Genesis](https://github.com/libretro/libretro-database/blob/master/rdb/Sega%20-%20Mega%20Drive%20-%20Genesis.rdb) +- [Sega - PICO](https://github.com/libretro/libretro-database/blob/master/rdb/Sega%20-%20PICO.rdb) +- [Sega - 32X](https://github.com/libretro/libretro-database/blob/master/rdb/Sega%20-%2032X.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +| Filename | Description | md5sum | +|:-------------:|:-------------------------:|:--------------------------------:| +| bios_CD_E.bin | MegaCD EU BIOS - Required | e66fa1dc5820d254611fdcdba0662372 | +| bios_CD_U.bin | SegaCD US BIOS - Required | 2efd74e3232ff260e371b99f84024f7f | +| bios_CD_J.bin | MegaCD JP BIOS - Required | 278a9397d192149e84e820ac621a8edd | + +## Features + +Frontend-level settings or features that the PicoDrive core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✔ | +| RetroArch Cheats | ✔ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✔ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The PicoDrive core's internal core name is 'PicoDrive' + +The PicoDrive core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge backup save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The PicoDrive core's core provided FPS is 60 for NTSC games and 50 for PAL games. +- The PicoDrive core's core provided sample rate is 44100 Hz +- The PicoDrive core's core provided aspect ratio is dependent on the ['Core-provided aspect ratio' core option](https://docs.libretro.com/picodrive/#core-options). + +### Loading Sega CD content + +When loading Sega CD games, PicoDrive needs a cue-sheet that points to an image file. A cue sheet, or cue file, is a metadata file which describes how the tracks of a CD or DVD are laid out. + +If you have e.g. `foo.bin`, you should create a text file and save it as `foo.cue`. If the Sega CD game is single-track, the cue file contents should look like this: + +``` + FILE "foo.bin" BINARY + TRACK 01 MODE1/2352 + INDEX 01 00:00:00 +``` + +After that, you can load the `foo.cue` file in RetroArch with the PicoDrive core. + +!!! warning "" + Certain Sega CD games are multi-track, so their .cue files might be more complicated. + +Here's a cue file example done with Lunar - Eternal Blue (USA) + +![](images\Cores\genesis_plus_gx\cue.png) + +## Core options + +The PicoDrive core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Input device 1** [picodrive_input1] (**3 button pad**/6 button pad/None) + + Choose which kind of controller is plugged in slot 1. + +- **"Input device 2** [picodrive_input2] (**3 button pad**/6 button pad/None) + + Choose which kind of controller is plugged in slot 2. + +- **No sprite limit** [picodrive_sprlim] (**disabled**/enabled) + + Enable this to remove the sprite limit. + +- **MegaCD RAM cart** [picodrive_ramcart] (**disabled**/enabled) + + Emulate a MegaCD RAM cart. + +- **Region** [picodrive_region] (**Auto**/Japan NTSC/Japan PAL/US/Europe) + + Force a specific region. + +- **Core-provided aspect ratio** [picodrive_aspect] (**PAR**/4/3/CRT) + + Choose the core-provided aspect ratio. RetroArch's aspect ratio must be set to Core provided in the Video seetings. + +??? note "Core-provided aspect ratio - PAR" + ![](images\Cores\picodrive\par.png) + +??? note "Core-provided aspect ratio - 4/3" + ![](images\Cores\picodrive\4by3.png) + +??? note "Core-provided aspect ratio - CRT" + ![](images\Cores\picodrive\crt.png) + +- **Show Overscan** [picodrive_overscan] (**disabled**/enabled) + + Crop out the potentially random glitchy video output that would have been hidden by the bezel around the edge of a standard-definition television screen. + +??? note "Show Overscan - Off" + ![](images\Cores\picodrive\overscan_off.png) + +??? note "Show Overscan - On" + ![](images\Cores\picodrive\overscan_on.png) + +- **68k overclock** [picodrive_overclk68k] (**disabled**/+25%/+50%/+75%/+100%/+200%/+400%) + + Overclock the emulated [68k chip](http://segaretro.org/M68000) + +- **Dynamic recompilers** [picodrive_drc] (**enabled**/disabled) + + Enable dynamic recompilers which help to improve performance. **This core option is not available on all hardware.** + +## Controllers + +The PicoDrive core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 2 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad +- RetroPad w/Analog - Joypad - There's no reason to switch to this. + +### Controller tables + +#### Joypad + +| User 1 - 2 Remap descriptors | RetroPad Inputs | 3 button pad | 6 button pad | +|------------------------------|----------------------------------------------|--------------|--------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | B | B | +| A | ![](images/RetroPad/Retro_Y_Round.png) | A | A | +| Mode | ![](images/RetroPad/Retro_Select.png) | | Mode | +| Start | ![](images/RetroPad/Retro_Start.png) | Start | Start | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | D-Pad Up | D-Pad Up | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | D-Pad Down | D-Pad Down | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | D-Pad Left | D-Pad Left | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | D-Pad Right | D-Pad Right | +| C | ![](images/RetroPad/Retro_A_Round.png) | C | C | +| Y | ![](images/RetroPad/Retro_X_Round.png) | | Y | +| X | ![](images/RetroPad/Retro_L1.png) | | X | +| Z | ![](images/RetroPad/Retro_R1.png) | | Z | + +## Compatibility + +| 32x games | Issue | +|----------------------------------------------|---------------------------------------------------------------| +| Brutal Unleashed – Above the Claw | Softlocks after the first fight. | +| FIFA Soccer ’96 | Glitched main menu text. | +| Knuckles’ Chaotix | Glitched graphics on the Player Select screen. | +| NBA Jam Tournament Edition | Framerate issues. | +| NFL Quarterback Club | Some menu graphics are missing. | +| Star Wars Arcade (PAL version) | Glitched opening visuals. Cannot get past Press Start screen. | +| Virtua Racing Deluxe | Blinking line during the SEGA logo screen. | +| World Series Baseball Starring Deion Sanders | Crashes when starting a match. | +| WWF Raw | Various graphics are missing. | + +## External Links + +- [Official PicoDrive Website](http://notaz.gp2x.de/pico.php) +- [Official PicoDrive Github Repository](https://github.com/notaz/picodrive) +- [Libretro PicoDrive Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/picodrive_libretro.info) +- [Libretro PicoDrive Github Repository](https://github.com/libretro/picodrive) +- [Report Libretro PicoDrive Core Issues Here](https://github.com/libretro/picodrive/issues) + +### See also + +#### Sega - Master System - Mark III + +- [Sega - Master System (Emux SMS)](https://docs.libretro.com/library/emux_sms/) +- [Sega - MS/GG/MD/CD (Genesis Plus GX)](https://docs.libretro.com/library/genesis_plus_gx/) + +#### Sega - Mega Drive - Genesis + +- [Sega - MS/GG/MD/CD (Genesis Plus GX)](https://docs.libretro.com/library/genesis_plus_gx/) + +#### Sega - Mega-CD - Sega CD + +- [Sega - MS/GG/MD/CD (Genesis Plus GX)](https://docs.libretro.com/library/genesis_plus_gx/) + +#### Sega - PICO + +- [Sega - MS/GG/MD/CD (Genesis Plus GX)](https://docs.libretro.com/library/genesis_plus_gx/) \ No newline at end of file diff --git a/docs/library/pocketcdg.md b/docs/library/pocketcdg.md new file mode 100644 index 00000000..f9f23899 --- /dev/null +++ b/docs/library/pocketcdg.md @@ -0,0 +1,117 @@ +# PocketCDG + +## Background + +A MP3 karaoke music player. + +### Author/License + +The PocketCDG core has been authored by + +- RedBug + +The PocketCDG core is licensed under + +- [MIT](https://github.com/libretro/libretro-pocketcdg/blob/master/LICENSE) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the PocketCDG core have the following file extensions: + +- .cdg + +## Features + +Frontend-level settings or features that the PocketCDG core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✕ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The PocketCDG core's internal core name is 'pocketcdg' + +### Geometry and timing + +- The PocketCDG core's core provided FPS is 50 +- The PocketCDG core's core provided sample rate is 44100 Hz +- The PocketCDG core's core provided aspect ratio is 1 + +## Usage + +The PocketCDG core can load any MP3+CDG file combination. It will then show the lyrics onscreen and on-cue like a true karaoke player, and it will also highlight the text which should be currently sung. + +## Core options + +The PocketCDG core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Resize** [pocketcdg_resize] (**320x240**|Overscan) + + Doesn't seem to do anything + +## Controllers + +The PocketCDG core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. There's no reason to switch to this. +- **RetroPad** - Joypad - Stay on this. +- RetroKeyboard - Keyboard - Has keymapper support but isn't hooked up to any core inputs. There's no reason to switch to this. + +### Controller tables + +#### Joypad + +| User 1 Remap descriptors | RetroPad Inputs | +|--------------------------|----------------------------------------------| +| Pause | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| Shutdown | ![](images/RetroPad/Retro_R1.png) | + +## External Links + +- [Libretro PocketCDG Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/pocketcdg_libretro.info) +- [Libretro PocketCDG Github Repository](https://github.com/libretro/libretro-pocketcdg) +- [Report Libretro PocketCDG Core Issues Here](https://github.com/libretro/libretro-pocketcdg/issues) + +### See also + +#### Media + +- [FFmpeg](https://docs.libretro.com/library/ffmpeg/) +- [Game Music Emu](https://docs.libretro.com/library/game_music_emu/) +- [Imageviewer](https://docs.libretro.com/library/imageviewer/) +- [mpv](https://docs.libretro.com/library/mpv/) \ No newline at end of file diff --git a/docs/library/pokemini.md b/docs/library/pokemini.md new file mode 100644 index 00000000..129a2dc4 --- /dev/null +++ b/docs/library/pokemini.md @@ -0,0 +1,111 @@ +# Nintendo - Pokémon Mini (PokeMini) + +## Background + +Pokémon Mini handheld console emulator. + +### Author/License + +The PokeMini core has been authored by + +- JustBurn + +The PokeMini core is licensed under + +- [GPLv3](https://github.com/libretro/PokeMini/blob/master/LICENSE) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the PokeMini core have the following file extensions: + +- .min + +## Databases + +RetroArch database(s) that are associated with the PokeMini core: + +- [Nintendo - Pokemon Mini](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Pokemon%20Mini.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +| Filename | Description | md5sum | +|:-------------:|:-----------------------------:|:--------------------------------:| +| bios.min | Pokémon Mini BIOS - Optional | 1e4fb124a3a886865acb574f388c803d | + +## Features + +Frontend-level settings or features that the PokeMini core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✕ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The PokeMini core's directory name is 'PokeMini' + +### Geometry and timing + +- The PokeMini core's core provided FPS is 72 +- The PokeMini core's core provided sample rate is 44100 Hz +- The PokeMini core's core provided aspect ratio is 4/3 + +## Controllers + +The PokeMini core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad +- RetroPad w/Analog - Joypad - There's no reason to switch to this. + +### Controller tables + +#### Joypad + +| RetroPad Inputs | PokeMini Core Inputs | +|----------------------------------------------|----------------------| +| ![](images/RetroPad/Retro_B_Round.png) | B | +| ![](images/RetroPad/Retro_Start.png) | Power Button | +| ![](images/RetroPad/Retro_Dpad_Up.png) | D-Pad Up | +| ![](images/RetroPad/Retro_Dpad_Down.png) | D-Pad Down | +| ![](images/RetroPad/Retro_Dpad_Left.png) | D-Pad Left | +| ![](images/RetroPad/Retro_Dpad_Right.png) | D-Pad Right | +| ![](images/RetroPad/Retro_A_Round.png) | A | +| ![](images/RetroPad/Retro_L1.png) | Shake | +| ![](images/RetroPad/Retro_R1.png) | C | + +## External Links + +- [Official PokeMini SourceForge Repository](https://sourceforge.net/projects/pokemini/) +- [Libretro PokeMini Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/pokemini_libretro.info) +- [Libretro PokeMini Github Repository](https://github.com/libretro/PokeMini) +- [Report Libretro PokeMini Core Issues Here](https://github.com/libretro/PokeMini/issues) \ No newline at end of file diff --git a/docs/library/ppsspp.md b/docs/library/ppsspp.md new file mode 100644 index 00000000..7d5250ce --- /dev/null +++ b/docs/library/ppsspp.md @@ -0,0 +1,327 @@ +# PSP (PPSSPP) + +## Contribute to this documentation + +**In order to propose improvements to this document, [visit its corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/ppsspp.md). Changes are proposed using "Pull Requests."** + +**There is a To-Do list for libretro/docs [here](https://docs.libretro.com/docguide/todo/)** + +**You can submit suggestions or issues regarding documentation at the [libretro/docs issue tracker](https://github.com/libretro/docs/issues) or in our [forum thread](https://forums.libretro.com/t/wip-adding-pages-to-documentation-site/10078/).** + +## Background + +PPSSPP is a fast and portable Sony PSP emulator + +### Why use this core? + +Awaiting description. + +### How to get and install the PPSSPP core: + +- Start up RetroArch. Inside the main menu, go to 'Online Updater'. + +
![](images\Cores\all\updater.png)
+ +- Just to make sure we have the latest info files, select 'Update Core Info FIles'. Wait until this is done. Then, select 'Core Updater'. + +
![](images\Cores\all\info.png)
+ +- Browse through the list and select 'PSP (PPSSPP)'. + +
![](images\Cores\ppsspp\ppsspp.png)
+ +After this has finished downloading, the core should now be ready for use! + +#### How to start (after installation): + +- Go back to RetroArch's main menu screen. Select 'Load Content'. + +
![](images\Cores\all\load.png)
+ +- Browse to the folder that contains the content you want to run. + +- Select the content that you want to run. + +- If you are asked which core to select, choose 'PSP (PPSSPP)'. + +The content should now start running! + +### Authors + +- Henrik Hrydgard + +## License + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +The PPSPP core is licensed under + +- [GPLv2](https://github.com/libretro/ppsspp/blob/master/LICENSE.TXT) + +## Extensions + +Content that can be loaded by the PPSSPP core have the following file extensions: + +- .elf +- .iso +- .cso +- .prx +- .pbp + +## Databases + +RetroArch database(s) that are associated with the PPSSPP core: + +- [Sony - PlayStation Portable](https://github.com/libretro/libretro-database/blob/master/rdb/Sony%20-%20PlayStation%20Portable.rdb) + +## BIOS + +The PPSSPP core requires assets files to be fully functional. + +Assets such as fonts and backgrounds that are required for memory card screens. + +In order to acquire PPSSPP's assets files and install them succcessfully, follow these steps. + +1 . Create a directory named PPSSPP in RetroArch's System directory. + +``` +- RetroArch + - System + - PPSSPP +``` + +Here's an example of what it should look like. + +![](images/Cores/ppsspp/directory.png) + +2 . Visit [https://github.com/libretro/ppsspp](https://github.com/libretro/ppsspp) and download the repository. + +![](images/Cores/ppsspp/download.png) + +3 . Extract ppsspp-master.zip + +4 . Copy the contents of `ppsspp-master/assets` into 'system/PPSSPP' + +The end result should look like this. + +![](images/Cores/ppsspp/ppsspp_assets.png) + +!!! attention + Don't like PPSSPP's replacement fonts? You can place the original PSP fonts in 'system/PPSSPP/flash0/font' + +## Features + +RetroArch-level settings or features that the PPSSPP core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ (not Ad-Hoc emulation) | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| Softpatching | ✕ | +| Disk Control | ✕ | +| Username | ✔ | +| Language | ✔ | +| Crop Overscan | ✕ | + +### Directories + +The PPSSPP core's directory name is 'PPSSPP' + +The PPSSPP core saves/loads to/from these directories. + +**RetroArch's Save directory** + +``` +- PSP + - PPSSPP_STATE (Used to be the state directory, no longer used) + - SAVEDATA (Game memory stick directories and files) + - SYSTEM + - CACHE (Shader cache) +``` + +**RetroArch's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The PPSSPP core's internal FPS is 60 +- The PPSSPP core's internal sample rate is 44100 Hz +- The PPSSPP core's core provided aspect ratio is 16/9 + +## Core options + +The PPSSPP core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **CPU Core** (**jit**/interpreter) + + The jit setting enables the Dynamic Recomplier (Dynarec) for CPU emulation. The Dynarec is much faster than the interpreter setting and is the default, recommended mode for supported architectures. + + The interpreter setting enables the Interpreter for CPU emulation. The Interpreter is a very slow type of emulation and mostly useful for debug, but should work anywhere. + +- **Locked CPU Speed** (**off**/222MHz/266MHz/333MHz) + + Awaiting description. + +- **Language** (**automatic**/english/japanese/french/spanish/german/italian/dutch/portuguese/russian/korean/chinese_traditional/chinese_simplified) + + Configure the PPSSPP's system language. + +- **Rendering Mode** (**buffered**/nonbuffered/read_framebuffers_to_memory_cpu/read_framebuffers_to_memory_gpu) + + Awaiting description. + +- **Auto Frameskip** (**Off**/On) + + Awaiting description. + +- **Frameskip** (**0**/1/2/3/4/5/6/7/8/9) + + Choose how much frames should be skipped to improve performance at the expense of visual smoothness. + +- **Framerate limit** (**0**/15/20/30/45/50/60) + + Awaiting description. + +- **Force Max FPS** (**Off**/On) + + Prevents FPS form exceeding 60. Can be useful for games such as God of War which exceeds 60 FPS which can reduce the emulation speed. + +- **Audio latency** (**0**/1/2) + + Awaiting description. + +- **Internal Resolution** (**480x272**/960x544/1440x816/1920x1088/2400x1360/2880x1632/3360x1904/3840x2176/4320x2448/4800x2720" + + Configure the internal resolution. + +- **Output Resolution (restart)** (**480x272**/960x544/1440x816/1920x1088/2400x1360/2880x1632/3360x1904/3840x2176/4320x2448/4800x2720) + + Configure the output resolution. + +- **Confirmation Button** (**cross**/circle) + + Select whether the cross input or the circle input is the confirmation button. + +- **Fast Memory (Speedhack)** (Off/**On**) + + Awaiting description. + +- **Set Rounding Mode** (Off/**On**) + + Awaiting description. + +- **Block Transfer GPU** (Off/**On**) + + Awaiting description. + +- **Texture Scaling Level** (**1**/2/3/4/5/0) + + Awaiting description. + +- **Texture Scaling Type** (xbrz/hybrid/bicubic/hybrid_bicubic) + + Awaiting description. + +- **Anisotropic Filtering** (**off**/1x/2x/4x/8x/16x) + + Awaiting description. **Not available on all platforms.** + +- **Texture Deposterize** (**Off**/On) + + Awaiting description. + +- **Internal Shader** (**off**/fxaa/crt/natural/vignette/grayscale/bloom/sharpen/inverse/scanlines/cartoon/4xHQ/aa-color/upscale) + + Awaiting description. + +- **GPU Hardware T&L** (Off/**On**) + + Awaiting description. + +- **Vertex Cache (Speedhack)** (Off/**On) + + An optimization, that makes things faster and in turn might miss some changes in geometry - though PPSSPP does its best to make it reliable there are some edge cases it can miss. Turn this off if you see strange graphical glitches. + +- **Prescale UV (Speedhack)** (**Off**/On) + + Awaiting description. + +- **IO Threading** (**Off**/On) + + Awaiting description. + +- **Unsafe FuncReplacements** (Off/**On**) + + Awaiting description. + +- **Sound Speedhack** (**Off**/On) + + Awaiting description. + +- **Threaded input hack** (**Off**/On) + + Awaiting description. + +## Controllers + +### Device types + +The PPSSPP core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +#### User 1 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad +- RetroPad w/Analog - Joypad - There's no reason to switch to this. + +### Controller tables + +#### Joypad and analog device type table + +| User 1 Remap descriptors | RetroPad Inputs | +|-------------------------------|----------------------------------------------| +| Cross | ![](images/RetroPad/Retro_B_Round.png) | +| Square | ![](images/RetroPad/Retro_Y_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| Circle | ![](images/RetroPad/Retro_A_Round.png) | +| Triangle | ![](images/RetroPad/Retro_X_Round.png) | +| L | ![](images/RetroPad/Retro_L1.png) | +| R | ![](images/RetroPad/Retro_R1.png) | +| Analog X | ![](images/RetroPad/Retro_Left_Stick.png) X | +| Analog Y | ![](images/RetroPad/Retro_Left_Stick.png) Y | + +## Compatibility + +[PPSSPP Compatibility List](http://forums.ppsspp.org/showthread.php?tid=1473) + +## External Links + +- [Libretro PPSSPP Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/ppsspp_libretro.info) +- [Libretro PPSSPP Github Repository](https://github.com/libretro/ppsspp) +- [Report Libretro PPSSPP Core Issues Here](https://github.com/libretro/ppsspp/issues) +- [Official PPSSPP Website](http://www.ppsspp.org/) +- [Official PPSSPP Github Repository](https://github.com/hrydgard/ppsspp) \ No newline at end of file diff --git a/docs/library/prboom.md b/docs/library/prboom.md new file mode 100644 index 00000000..3cca0b4b --- /dev/null +++ b/docs/library/prboom.md @@ -0,0 +1,179 @@ +# Doom (PrBoom) + +## Background + +Port of prboom to libretro - plays Doom, Doom II, Final Doom and other Doom IWAD mods. + +### Author(s) + +Florian Schulze + +## Contribute to this documentation + +In order to propose improvements to this document, [visit it's corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/prboom.md). Changes are proposed using "Pull Requests." + +## See also + +[Quake 1 (TyrQuake)](https://docs.libretro.com/library/tyrquake.md/) + +## License + +GPLv2 + +## Extensions + +*Content that can be loaded by the PrBoom core have the following file extensions.* + +wad|iwad + +## Database(s) + +*RetroArch database(s) that are associated with the PrBoom core* + +* DOOM + +## Features + +| Feature | Supported | +|-------------------|:---------:| +| Saves | ✔ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✔ | +| Native Cheats | ✕ | +| Controllers | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | + +The PrBoom core's directory name is 'PrBoom' + +Game data is saved/loaded to and from the folder where the loaded content is. + +The Retroarch port of PrBoom is not able to play the music files inside the wad files (they are in a proprietary midi format). +To have music, you have to put the files in mp3 format inside the content's directory. + +## Loading content + +PrBoom can load wad or iwad files. The PrBoom core requires data ROM ['prboom.wad'](https://github.com/libretro/libretro-prboom/blob/master/prboom.wad) inside the loaded content's directory. + +## Core options + +*The PrBoom core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded.* + +- **Internal resolution** (**320x200**/640x400/960x600/1280x800/1600x1000/1920x1200): Configure the resolution. + +??? note "Internal resolution - 320x200" + ![internal_resolution_320x200](images\Cores\prboom\internal_resolution_320x200.png) + +??? note "Internal resolution - 1920x1200" + ![internal_resolution_1920x1200](images\Cores\prboom\internal_resolution_1920x1200.png) + +- **Mouse active when using Gamepad** (**Off**/On): Allows you to use mouse inputs even when the User 1 Device Type is set to RetroPad. + +## Controllers + +*The PrBoom core supports the following controller setting(s), bolded controller settings are the default for the specified user(s):* + +### User 1 Device Type(s) + +* **RetroPad** - Joypad + +* RetroKeyboard/Mouse - Keyboard + Mouse + +### User 2 - 16 Device Type(s) + +* RetroPad - Joypad + +### Controllers graph + +| PrBoom | RetroPad | +|-----------------|----------------------------------------------------------------| +| Strafe | ![RetroPad_B](images/RetroPad/Retro_B_Round.png) | +| Run | ![RetroPad_Y](images/RetroPad/Retro_Y_Round.png) | +| Show/Hide Map | ![RetroPad_Select](images/RetroPad/Retro_Select.png) | +| Settings | ![RetroPad_Start](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![RetroPad_Dpad](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![RetroPad_Dpad](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![RetroPad_Dpad](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![RetroPad_Dpad](images/RetroPad/Retro_Dpad_Right.png) | +| Use | ![RetroPad_A](images/RetroPad/Retro_A_Round.png) | +| Fire | ![RetroPad_X](images/RetroPad/Retro_X_Round.png) | +| Strafe Left | ![RetroPad_L1](images/RetroPad/Retro_L1.png) | +| Strafe Right | ![RetroPad_R1](images/RetroPad/Retro_R1.png) | +| Previous Weapon | ![RetroPad_L2](images/RetroPad/Retro_L2_Temp.png) | +| Next Weapon | ![RetroPad_R2](images/RetroPad/Retro_R2.png) | + +| Weapons | RetroKeyboard/Mouse | +|----------|---------------| +| Fist | ![Keyboard_Black_1](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_1.png) | +| Pistol | ![Keyboard_Black_2](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_2.png) | +| Shotgun | ![Keyboard_Black_3](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_3.png) | +| Chain | ![Keyboard_Black_4](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_4.png) | +| Rocket | ![Keyboard_Black_5](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_5.png) | +| Chainsaw | ![Keyboard_Black_8](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_8.png) | +| Best | ![Keyboard_Black_8](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_0.png) | +| Fire | ![Keyboard_Black_Ctrl](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_Ctrl.png) or ![Retro_Left](images\RetroMouse\Retro_Left.png) | +| Next/Previous Weapon | Mouse scrollwheel | + +| Movement | RetroKeyboard/Mouse | +|----------|---------------------| +| Forward | ![Keyboard_Black_Arrow_Up](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_Arrow_Up.png) or Mouse Button 3 | +| Backward | ![Keyboard_Black_Arrow_Down](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_Arrow_Down.png) | +| Turn Left | ![Keyboard_Black_Arrow_Left](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_Arrow_Left.png) | +| Turn Right | ![Keyboard_Black_Arrow_Right](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_Arrow_Right.png) | +| Run | ![Keyboard_Black_Shift](images/Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_Shift.png) | +| Strafe Left | ![Keyboard_Black_Mark_Left](images/Button_Pack/Keyboard_&_Mouse\Dark\Keyboard_Black_Mark_Left.png) | +| Strafe Right | ![Keyboard_Black_Mark_Right](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_Mark_Right.png) | +| Strafe | ![Keyboard_Black_Alt](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_Alt.png) or ![Retro_Right](images\RetroMouse\Retro_Right.png) | +| Autorun | ![Keyboard_Black_Caps_Lock](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_Caps_Lock.png) | +| 180 Turn | / | +| Use | ![Keyboard_Black_Space](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_Space.png) or Mouse Button 3 | + +| Game | RetroKeyboard/Mouse | +|------|---------------------| +| Save | ![Keyboard_Black_F2](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_F2.png) | +| Load | ![Keyboard_Black_F3](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_F3.png) | +| Quicksave | ![Keyboard_Black_F6](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_F6.png) | +| End Game | ![Keyboard_Black_F7](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_F7.png) | +| Quickload | ![Keyboard_Black_F9](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_F9.png) | +| Quit | ![Keyboard_Black_F10](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_F10.png) | + +| Screen | RetroKeyboard/Mouse | +|--------|---------------------| +| Help | ![Keyboard_Black_F1](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_F1.png) | +| Menu | ![Keyboard_Black_Esc](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_Esc.png) | +| Setup | ![Keyboard_Black_Home](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_Home.png) | +| Pause | Pause | +| Automap | ![Keyboard_Black_Tab](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_Tab.png) | +| Sound Volume | ![Keyboard_Black_F4](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_F4.png) | +| Hud | ![Keyboard_Black_F5](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_F5.png) | +| Messages | ![Keyboard_Black_F8](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_F8.png) | +| Gamma Fix | ![Keyboard_Black_F11](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_F11.png) | +| Spy | ![Keyboard_Black_F12](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_F12.png) | +| Larger View | ![Keyboard_Black_Plus](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_Plus.png) | +| Smaller View | ![Keyboard_Black_Space](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_Minus.png) | + +| Automap | RetroKeyboard/Mouse | +|---------|---------------------| +| Follow Mode | ![Keyboard_Black_F](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_F.png) | +| Zoom In | ![Keyboard_Black_Plus](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_Plus.png) | +| Zoom Out | ![Keyboard_Black_Minus](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_Minus.png) | +| Mark Place | ![Keyboard_Black_M](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_M.png) | +| Clear Marks | ![Keyboard_Black_C](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_C.png) | +| Full/Zoom | ![Keyboard_Black_O](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_O.png) | +| Grid | ![Keyboard_Black_G](images\Button_Pack\Keyboard_&_Mouse\Dark\Keyboard_Black_G.png) | + +## External Links + +* [Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/prboom_libretro.info) +* [Libretro Repository](https://github.com/libretro/libretro-prboom) +* [Report Core Issues Here](https://github.com/libretro/libretro-meta) +* [Official Website](http://prboom.sourceforge.net/) +* [Official SourceForge Repository](http://sourceforge.net/projects/prboom/) diff --git a/docs/library/prosystem.md b/docs/library/prosystem.md new file mode 100644 index 00000000..43d31f15 --- /dev/null +++ b/docs/library/prosystem.md @@ -0,0 +1,135 @@ +# Atari - 7800 (ProSystem) + +## Background + +ProSystem is an Atari 7800 emulator. + +### Author/License + +The ProSystem core has been authored by + +- Greg Stanton +- Brian Berlin +- Leonis +- Greg DeMent + +The ProSystem core is licensed under + +- [GPLv2](https://github.com/libretro/prosystem-libretro/blob/master/License.txt) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the ProSystem core have the following file extensions: + +- .a78 +- .bin + +## Databases + +RetroArch database(s) that are associated with the ProSystem core: + +- [Atari - 7800](https://github.com/libretro/libretro-database/blob/master/rdb/Atari%20-%207800.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +| Filename | Description | md5sum | +|:-----------------:|:--------------------:|:--------------------------------:| +| 7800 BIOS (U).rom | 7800 BIOS - Optional | 0763f1ffb006ddbe32e52d497ee848ae | + +## Features + +Frontend-level settings or features that the ProSystem core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✕ | +| Core Options | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The ProSystem core's internal core name is 'ProSystem' + +The ProSystem core saves/loads to/from these directories. + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The ProSystem core's core provided FPS is 60 for NTSC games and 50 for PAL games. +- The ProSystem core's core provided sample rate is 48000 Hz +- The ProSystem core's core provided aspect ratio is 4/3 + +## Controllers + +The ProSystem core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 2 device types + +- None - Doesn't disable input. There's no reason to switch to this. +- **RetroPad** - Joypad - Stay on this. +- RetroPad w/Analog - Joypad - Same as RetroPad. There's no reaosn to switch to this. + +### Controller tables + +#### Joypad + +![](images/Controllers/atari_7800.png) + +| User 1 Remap descriptors | RetroPad Inputs | +|--------------------------|----------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Console Select | ![](images/RetroPad/Retro_Select.png) | +| Console Pause | ![](images/RetroPad/Retro_Start.png) | +| Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| 2 | ![](images/RetroPad/Retro_A_Round.png) | +| Console Reset | ![](images/RetroPad/Retro_X_Round.png) | +| Left Difficulty | ![](images/RetroPad/Retro_L1.png) | +| Right Difficulty | ![](images/RetroPad/Retro_R1.png) | + +| User 2 Remap descriptors | RetroPad Inputs | +|--------------------------|----------------------------------------------| +| 1 | ![](images/RetroPad/Retro_B_Round.png) | +| Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| 2 | ![](images/RetroPad/Retro_A_Round.png) | + +## External Links + +- [Official ProSystem Website](https://gstanton.github.io/ProSystem1_3/) +- [Official ProSystem Github Repository](https://github.com/gstanton/ProSystem1_3) +- [Libretro ProSystem Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/prosystem_libretro.info) +- [Libretro ProSystem Github Repository](https://github.com/libretro/prosystem-libretro) +- [Report Libretro ProSystem Core Issues Here](https://github.com/libretro/prosystem-libretro/issues) \ No newline at end of file diff --git a/docs/library/px68k.md b/docs/library/px68k.md new file mode 100644 index 00000000..ee7f0fc4 --- /dev/null +++ b/docs/library/px68k.md @@ -0,0 +1,513 @@ +# Sharp X68000 (PX68k) + +## Contribute to this documentation + +**DOCUMENTATION IS A WORK IN PROGRESS** + +**In order to propose improvements to this document, [visit its corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/px68k.md). Changes are proposed using "Pull Requests."** + +**There is a To-Do list for libretro/docs [here](https://docs.libretro.com/docguide/todo/)** + +**You can submit suggestions or issues regarding documentation at the [libretro/docs issue tracker](https://github.com/libretro/docs/issues) or in our [forum thread](https://forums.libretro.com/t/wip-adding-pages-to-documentation-site/10078/).** + +## Background + +Awaiting description. + +### How to install the PX68k core: + +- Start up RetroArch. Inside the main menu, go to 'Online Updater'. + +
![](images\Cores\all\updater.png)
+ +- Just to make sure we have the latest info files, select 'Update Core Info FIles'. Wait until this is done. Then, select 'Core Updater'. + +
![](images\Cores\all\info.png)
+ +- Browse through the list and select 'Sharp X68000 (PX68k)'. + +
![](images\Cores\updater\px68k.png)
+ +After this has finished downloading, the core should now be ready for use! + +#### How to start the PX68k core: + +- Go back to RetroArch's main menu screen. Select 'Load Content'. + +
![](images\Cores\all\load.png)
+ +- Browse to the folder that contains the content you want to run. + +- Select the content that you want to run. + +- If you are asked which core to select, choose 'Sharp X68000 (PX68k)'. + +The content should now start running! + +### Authors + +- hissorii + +## License + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +The PX68k core is licensed under + +- GPLv2 + +## Extensions + +Content that can be loaded by the PX68k core have the following file extensions: + +- .dim +- .zip +- .img +- .d88 +- .88d +- .hdm +- .dup +- .2hd +- .xdf +- .hdf +- .cmd +- .m3u + +## Databases + +RetroArch database(s) that are associated with the PX68k core: + +- [Sharp - X68000](https://github.com/libretro/libretro-database/blob/master/rdb/Sharp%20-%20X68000.rdb) + +## BIOS + +Required or optional firmware files go in RetroArch's system directory. + +| Filename | Description | md5sum | +|:-------------------:|:------------------------:|:--------------------------------:| +| keropi/iplrom.dat | X68000 BIOS - Required | | +| keropi/iplrom30.dat | X68000 BIOS 2 - Optional | | +| keropi/iplromco.dat | X68000 BIOS 3 - Optional | | +| keropi/iplromxv.dat | X68000 BIOS 4 - Optional | | +| keropi/cgrom.dat | Font file - Required | | + +!!! attention + The firmware files need to be in a directory named 'keropi' in RetroArch's system directory. + +## Features + +RetroArch-level settings or features that the PX68k core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✔ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The PX68k core's directory name is 'PX68K' + +The PX68k core saves/loads to/from these directories. + +**RetroArch's Home directory** + +- retroarch-core-options.cfg (Core-options) + +**RetroArch's Config directory** + +- PX68K.cfg (Core Overrides) +- 'content-name'.cfg (Game Overrides) +- 'content-name'.opt (Game-options) + +**RetroArch's Input Remapping directory** + +- (PX68K.rmp (Core Remap) +- 'content-name'.rmp (Game Remap) + +**RetroArch's Video Shader directory** + +- PX68K.'shader-preset-extension' (Core Shader Preset) +- 'content-name'.'shader-preset-extension' (Game Shader Preset) + +**RetroArch's System directory** + +``` +keropi/ + - config (Config file) + - sram.dat (SRAM file) +``` + +### Geometry and timing + +- The PX68k core's core provided FPS is (FPS) +- The PX68k core's core provided sample rate is 44100 Hz +- The PX68k core's core provided aspect ratio is 4:3 + +### Usage + + +L2 button or F12 key brings up the original px68k menu where you can change the inserted disks. + +They have to be unzipped to be accessible from this menu but can be zipped/archived when launching directly from RetroArch. + +After the first boot a “config” file will be generated in the “keropi” folder. You can enter your rom folder into the “StartDir” line to make it accessible from the PX68k-libretro core’s in-game menu. + +Define your disks path in system/keropi/config StartDir line. + +You can launch content with: + +- retroarch -L px68k_libretro.so ./content.hdf + +- retroarch -L px68k_libretro.so ./content.xdf + +- retroarch -L px68k_libretro.so ./content.cmd (cmdfile is a text file contening cmd like "px68k /somewhere/software/x68000/content1.dim /somewhere/software/x68000/content2.dim") + +- retroarch -L sdlpx68k_libretro.so "px68k /somewhere/software/x68000/content1.dim /somewhere/software/x68000/content2.dim" + +- retroarch -L px68k_libretro.so ./content.m3u (m3u files are useful for launching multi-disk games, see section below for more details on the format) + +- load retroarch , then load core and content from RA menu. + +### Multiple-disk games + +If foo is a multiple-disk game, you should have .dim files for each one, e.g. foo (Disk 1).dim, foo (Disk 2).dim, foo (Disk 3).dim. + +PX68k has a few methods to support loading and swapping multi-disk games. + +#### Loading multiple disks at startup + +- Use an M3U playlist file + + Create a text file and save it as foo.m3u. Then enter your game's .dim files on it, one per line. The m3u file contents should look something like this: + + `foo.m3u` + ``` + foo (Disk 1).dim + foo (Disk 2).dim + foo (Disk 3).dim + ``` + After that, you can load the foo.m3u file in RetroArch with the PX68k core either using the frontend or from the command line. + + The first 2 disks listed in this file are loaded into disk drives FDD0 and FDD1 on the core, respectively. To swap disks for games that use more than 2 disks, use the disk swapping option either from within RetroArch's menu or using the native PX68k menu explained below. + +- Use a CMD file + + This method is similar to the m3u playlist and allows loading up to 2 disks at launch. Create a text file and save it as foo.cmd. The format of this file should have all the games on one line and begins with px68k as in the example below. + + "px68k /somewhere/software/x68000/content1.dim /somewhere/software/x68000/content2.dim" + + To swap disks for games that use more than 2 disks, use the native PX68k menu explained below. + +- From the command line + + As shown in the usage section, you can use the following format to launch multi-disk games directly from the command line: + + retroarch -L sdlpx68k_libretro.so "px68k /somewhere/software/x68000/content1.dim /somewhere/software/x68000/content2.dim" + + To swap disks for games that use more than 2 disks, use the native PX68k menu explained below. + +#### Swapping Disks + +Games that have more than 2 disks will often require swapping disks at some point during gameplay. There are 2 supported methods to swap disks in this core. + +- Use the disk swapping option from RetroArch GUI. + + Open the RetroArch gui, select Quick Menu ->Disk Control to access the disk controls. Eject the disk using the Disk Cycle Tray Status command, then set the new disk index and load the new disk by selecting Disk Cycle Tray Status again. + + The default disk drive that is swapped is FDD1. If you need to swap the disk loaded in FDD0, change the Core Option "Swap Disks on Drive" first before loading the new disk in this menu. + +- Use the native PX68k menu + + Press L2 on the controller or F12 on the keyboard to access the PX68k menu, then select the disk slot and choose the file from here. + + The starting directory for loading disks is determined by the setting StartDir in the system/keropi/config file. + +## Core options + +The PX68k core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **CPU Speed** [px68k_cpuspeed] (**10Mhz**/16Mhz/25Mhz/33Mhz (OC)/66Mhz (OC)/100Mhz (OC)/150Mhz (OC)/200Mhz (OC)) + + Configure the CPU speed. Can be used to slow down games that run too fast or to speed up floppy loading times. + +- **RAM Size (Restart)** [px68k_ramsize] (**2MB**/3MB/4MB/5MB/6MB/7MB/8MB/9MB/10MB/11MB/12MB/1MB) + + Amount of RAM used. + +- **Use Analog** [px68k_analog] (**Off**/On) + + Awaiting description. + +- **P1 Joypad Type** [px68k_joytype1] (**Default (2 Buttons)**/CPSF-MD (8 Buttons)/CPSF-SFC (8 Buttons)) + + Awaiting description. + +- **P2 Joypad Type** [px68k_joytype2] (**Default (2 Buttons)**/CPSF-MD (8 Buttons)/CPSF-SFC (8 Buttons)) + + Awaiting description. + +- **ADPCM Volume** [px68k_adpcm_vol] (**15**/0/1/2/3/4/5/6/7/8/9/10/11/12/13/14) + + Awaiting description. + +- **OPM Volume** [px68k_opm_vol] (**12**/13/14/15/0/1/2/3/4/5/6/7/8/9/10/11) + + Awaiting description. + +- **Swap Disks on Drive** [px68k_disk_drive] (**FDD1**/FDD0) + + By default using the native Disk Swap interface within RetroArch's menu will swap the disk in drive FDD1. Change this option to swap disks in drive FDD0. + +## Controllers + +The PX68k core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad +- RetroKeyboard - Keyboard - Has keymapper support. + +### User 2 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad +- RetroKeyboard - Keyboard + +### Controller tables + +#### Joypad + +| User 1 Remap descriptors for 'RetroPad' device type | RetroPad Inputs | 2 Button | CPSF-MD (8 Buttons) | CPSF-SFC (8 Buttons) | +|-----------------------------------------------------|----------------------------------------------|---------------|---------------------|----------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | JOY_TRG2 | JOY_TRG2 | JOY_TRG1 | +| Y | ![](images/RetroPad/Retro_Y_Round.png) | JOY_TRG1 | JOY_TRG3 | JOY_TRG4 | +| Select | ![](images/RetroPad/Retro_Select.png) | JOY_LEFT | JOY_TRG7 | JOY_TRG7 | +| Start | ![](images/RetroPad/Retro_Start.png) | JOY_RIGHT | JOY_TRG6 | JOY_TRG6 | +| Up | ![](images/RetroPad/Retro_Dpad_Up.png) | JOY_UP | JOY_UP | JOY_UP | +| Down | ![](images/RetroPad/Retro_Dpad_Down.png) | JOY_DOWN | JOY_DOWN | JOY_DOWN | +| Left | ![](images/RetroPad/Retro_Dpad_Left.png) | JOY_LEFT | JOY_LEFT | JOY_LEFT | +| Right | ![](images/RetroPad/Retro_Dpad_Right.png) | JOY_RIGHT | JOY_RIGHT | JOY_RIGHT | +| A | ![](images/RetroPad/Retro_A_Round.png) | JOY_TRG1 | JOY_TRG1 | JOY_TRG2 | +| X | ![](images/RetroPad/Retro_X_Round.png) | JOY_TRG2 | JOY_TRG4 | JOY_TRG3 | +| L | ![](images/RetroPad/Retro_L1.png) | JOY_TRG1 | JOY_TRG5 | JOY_TRG8 | +| R | ![](images/RetroPad/Retro_R1.png) | JOY_TRG2 | JOY_TRG8 | JOY_TRG5 | +| L2 - Menu | ![](images/RetroPad/Retro_L2.png) | Menu | Menu | Menu | +| R2 | ![](images/RetroPad/Retro_R2.png) | | | | +| L3 | ![](images/RetroPad/Retro_L3.png) | | | | +| R3 | ![](images/RetroPad/Retro_R3.png) | | | | +| | ![](images/RetroPad/Retro_Left_Stick.png) X | | | | +| | ![](images/RetroPad/Retro_Left_Stick.png) Y | | | | +| | ![](images/RetroPad/Retro_Right_Stick.png) X | | | | +| | ![](images/RetroPad/Retro_Right_Stick.png) Y | | | | + +| User 2 Remap descriptors for 'RetroPad' device type | RetroPad Inputs | 2 Button | CPSF-MD (8 Buttons) | CPSF-SFC (8 Buttons) | +|-----------------------------------------------------|----------------------------------------------|---------------|---------------------|----------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | JOY_TRG2 | JOY_TRG2 | JOY_TRG1 | +| Y | ![](images/RetroPad/Retro_Y_Round.png) | JOY_TRG1 | JOY_TRG3 | JOY_TRG4 | +| Select | ![](images/RetroPad/Retro_Select.png) | JOY_LEFT | JOY_TRG7 | JOY_TRG7 | +| Start | ![](images/RetroPad/Retro_Start.png) | JOY_RIGHT | JOY_TRG6 | JOY_TRG6 | +| Up | ![](images/RetroPad/Retro_Dpad_Up.png) | JOY_UP | JOY_UP | JOY_UP | +| Down | ![](images/RetroPad/Retro_Dpad_Down.png) | JOY_DOWN | JOY_DOWN | JOY_DOWN | +| Left | ![](images/RetroPad/Retro_Dpad_Left.png) | JOY_LEFT | JOY_LEFT | JOY_LEFT | +| Right | ![](images/RetroPad/Retro_Dpad_Right.png) | JOY_RIGHT | JOY_RIGHT | JOY_RIGHT | +| A | ![](images/RetroPad/Retro_A_Round.png) | JOY_TRG1 | JOY_TRG1 | JOY_TRG2 | +| X | ![](images/RetroPad/Retro_X_Round.png) | JOY_TRG2 | JOY_TRG4 | JOY_TRG3 | +| L | ![](images/RetroPad/Retro_L1.png) | JOY_TRG1 | JOY_TRG5 | JOY_TRG8 | +| R | ![](images/RetroPad/Retro_R1.png) | JOY_TRG2 | JOY_TRG8 | JOY_TRG5 | +| L2 | ![](images/RetroPad/Retro_L2.png) | | | | +| R2 | ![](images/RetroPad/Retro_R2.png) | | | | +| L3 | ![](images/RetroPad/Retro_L3.png) | | | | +| R3 | ![](images/RetroPad/Retro_R3.png) | | | | +| | ![](images/RetroPad/Retro_Left_Stick.png) X | | | | +| | ![](images/RetroPad/Retro_Left_Stick.png) Y | | | | +| | ![](images/RetroPad/Retro_Right_Stick.png) X | | | | +| | ![](images/RetroPad/Retro_Right_Stick.png) Y | | | | + +#### Keyboard + +![](images/Cores/px68k/keyboard.jpg) + +| RetroKeyboard Inputs | RetroKeyboard | +|------------------------------|---------------| +| Keyboard Backspace | - | +| Keyboard Tab | - | +| Keyboard Clear | - | +| Keyboard Return | - | +| Keyboard Pause | - | +| Keyboard Escape | - | +| Keyboard Space | - | +| Keyboard Exclaim ! | - | +| Keyboard Double Quote " | - | +| Keyboard Hash # | - | +| Keyboard Dollar $ | - | +| Keyboard Ampersand & | - | +| Keyboard Quote ' | - | +| Keyboard Left Parenthesis ( | - | +| Keyboard Right Parenthesis ) | - | +| Keyboard Asterisk * | - | +| Keyboard Plus + | - | +| Keyboard Comma , | - | +| Keyboard Minus - | - | +| Keyboard Period . | - | +| Keyboard Slash / | - | +| Keyboard 0 | - | +| Keyboard 1 | - | +| Keyboard 2 | - | +| Keyboard 3 | - | +| Keyboard 4 | - | +| Keyboard 5 | - | +| Keyboard 6 | - | +| Keyboard 7 | - | +| Keyboard 8 | - | +| Keyboard 9 | - | +| Keyboard Colon : | - | +| Keyboard Semicolon ; | - | +| Keyboard Less than < | - | +| Keyboard Equals = | - | +| Keyboard Greater than > | - | +| Keyboard Question ? | - | +| Keyboard At @ | - | +| Keyboard Left Bracket [ | - | +| Keyboard Backslash \ | - | +| Keyboard Right Bracket ] | - | +| Keyboard Caret ^ | - | +| Keyboard Underscore _ | - | +| Keyboard Backquote ` | - | +| Keyboard a | - | +| Keyboard b | - | +| Keyboard c | - | +| Keyboard d | - | +| Keyboard e | - | +| Keyboard f | - | +| Keyboard g | - | +| Keyboard h | - | +| Keyboard i | - | +| Keyboard j | - | +| Keyboard k | - | +| Keyboard l | - | +| Keyboard m | - | +| Keyboard n | - | +| Keyboard o | - | +| Keyboard p | - | +| Keyboard q | - | +| Keyboard r | - | +| Keyboard s | - | +| Keyboard t | - | +| Keyboard u | - | +| Keyboard v | - | +| Keyboard w | - | +| Keyboard x | - | +| Keyboard y | - | +| Keyboard z | - | +| Keyboard Delete | - | +| Keyboard Keypad 0 | - | +| Keyboard Keypad 1 | - | +| Keyboard Keypad 2 | - | +| Keyboard Keypad 3 | - | +| Keyboard Keypad 4 | - | +| Keyboard Keypad 5 | - | +| Keyboard Keypad 6 | - | +| Keyboard Keypad 7 | - | +| Keyboard Keypad 8 | - | +| Keyboard Keypad 9 | - | +| Keyboard Keypad Period . | - | +| Keyboard Keypad Divide / | - | +| Keyboard Keypad Multiply * | - | +| Keyboard Keypad Minus - | - | +| Keyboard Keypad Plus + | - | +| Keyboard Keypad Enter | - | +| Keyboard Keypad Equals = | - | +| Keyboard Up | - | +| Keyboard Down | - | +| Keyboard Right | - | +| Keyboard Left | - | +| Keyboard Insert | - | +| Keyboard Home | - | +| Keyboard End | - | +| Keyboard Page Up | - | +| Keyboard Page Down | - | +| Keyboard F1 | - | +| Keyboard F2 | - | +| Keyboard F3 | - | +| Keyboard F4 | - | +| Keyboard F5 | - | +| Keyboard F6 | - | +| Keyboard F7 | - | +| Keyboard F8 | - | +| Keyboard F9 | - | +| Keyboard F10 | - | +| Keyboard F11 | - | +| Keyboard F12 | - | +| Keyboard F13 | - | +| Keyboard F14 | - | +| Keyboard F15 | - | +| Keyboard Num Lock | - | +| Keyboard Caps Lock | - | +| Keyboard Scroll Lock | - | +| Keyboard Right Shift | - | +| Keyboard Left Shift | - | +| Keyboard Right Control | - | +| Keyboard Left Control | - | +| Keyboard Right Alt | - | +| Keyboard Left Alt | - | +| Keyboard Right Meta | - | +| Keyboard Left Meta | - | +| Keyboard Right Super | - | +| Keyboard Left Super | - | +| Keyboard Mode | - | +| Keyboard Compose | - | +| Keyboard Help | - | +| Keyboard Print | - | +| Keyboard Sys Req | - | +| Keyboard Break | - | +| Keyboard Menu | - | +| Keyboard Power | - | +| Keyboard € | - | +| Keyboard Undo | - | +| Keyboard Unmapped | - | +| Keyboard Unknown | - | + +#### Mouse + +| RetroMouse Inputs | Mouse | +|-----------------------------------------------------|--------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Mouse Cursor | Mouse Cursor | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | Mouse Left Button | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | Mouse Right Button | + +## Compatibility + +Awaiting description. + +## External Links + +- [Libretro PX68k Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/px68k_libretro.info) +- [Libretro PX68k Github Repository](https://github.com/libretro/px68k-libretro) +- [Report Libretro PX68k Core Issues Here](https://github.com/libretro/px68k-libretro/issues) +- [Official PX68k Website](http://hissorii.blog45.fc2.com/) +- [Official PX68k Github Repository](https://github.com/hissorii/px68k) \ No newline at end of file diff --git a/docs/library/quicknes.md b/docs/library/quicknes.md new file mode 100644 index 00000000..7e5581d7 --- /dev/null +++ b/docs/library/quicknes.md @@ -0,0 +1,142 @@ +# Nintendo - NES / Famicom (QuickNES) + +## Background + +Nes_Emu, the core NES emulator library used by QuickNES, began as a very simple NES emulator sometime in 2004. It was based on the 6502 CPU core and APU sound core used in the Game_Music_Emu sound engine. + +### Author/License + +The QuickNES core has been authored by + +- blargg +- kode54 + +The QuickNES core is licensed under + +- [LGPLv2.1+](https://github.com/kode54/QuickNES/blob/master/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the QuickNES core have the following file extensions: + +- .nes + +## Databases + +RetroArch database(s) that are associated with the QuickNES core: + +- [Nintendo - Nintendo Entertainment System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Nintendo%20Entertainment%20System.rdb) + +## Features + +Frontend-level settings or features that the QuickNES core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✕ | +| RetroAchievements | ✔ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✔ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✔ | +| LEDs | ✕ | + +### Directories + +The QuickNES core's directory name is 'QuickNES' + +The QuickNES core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The QuickNES core's core provided FPS is 60 +- The QuickNES core's core provided sample rate is 44100 Hz +- The QuickNES core's core provided aspect ratio is 4/3 + +## Controllers + +The QuickNES core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 2 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad +- RetroPad w/ Analog - Joypad - There's no reason to switch to this.** + +### Controller tables + +#### Joypad + +![](images/Controllers/nes.png) + +| User 1 - 2 Remap descriptors | RetroPad Inputs | +|------------------------------|----------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | + +## Compatibility + +| Game | Issue | +|-------------------------------|--------------------------------------------------------------------------| +| Burai Fighter | Softlocks when entering a level. | +| Crisis Force | Crashes on start. | +| Family Circuit '91 | Crashes on start. | +| Gradius II | Crashes on start. | +| Huge Insect | No enemies spawn. | +| Lagrange Point | Crashes on start. | +| Mickey's Safari in Letterland | Graphical glitches on the sides of the screen and on the status bar. (1) | +| Ms. Pac-Man (Tengen version) | Graphical glitches on the sides of the screen. | +| Skull & Crossbones | Crashes on start. | + +??? note "(1)" + ![](images/Cores/quicknes/mickey.png) + +## External Links + +- [Official QuickNES Github Repository](https://github.com/kode54/QuickNES) +- [Libretro QuickNES Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/quicknes_libretro.info) +- [Libretro QuickNES Github Repository](https://github.com/libretro/QuickNES_Core) +- [Report Libretro QuickNES Core Issues Here](https://github.com/libretro/QuickNES_Core/issues) + +### See also + +#### Nintendo - Nintendo Entertainment System + +- [Nintendo - NES / Famicom (bnes)](https://docs.libretro.com/library/bnes/) +- [Nintendo - NES / Famicom (Emux NES)](https://docs.libretro.com/library/emux_nes/) +- [Nintendo - NES / Famicom (FCEUmm)](https://docs.libretro.com/library/fceumm/) +- [Nintendo - NES / Famicom (Mesen)](https://docs.libretro.com/library/mesen/) +- [Nintendo - NES / Famicom (Nestopia UE)](https://docs.libretro.com/library/nestopia_ue/) \ No newline at end of file diff --git a/docs/library/redream.md b/docs/library/redream.md new file mode 100644 index 00000000..5b3f1f35 --- /dev/null +++ b/docs/library/redream.md @@ -0,0 +1,151 @@ +# Sega - Dreamcast (Redream) + +## Background + +Redream is a work-in-progress SEGA Dreamcast emulator written in C for Mac, Linux and Windows. + +### Requirements + +This core requires OpenGL 3.3 or higher in order to work. + +RetroArch's video driver must be set to OpenGL. Go to Settings -> Driver. If the ‘video driver’ is set to something else or than 'gl', switch to ‘gl’, and then restart. + +!!! attention + There is currently no ‘working’ macOS version available. This is because this core requires OpenGL core 3.3 context, and RetroArch on macOS currently does not support this. + +### Author/License + +The Redream core has been authored by + +- inolen + +The Redream core **(libretro fork only)** is licensed under + +- [GPLv3](https://github.com/libretro/redream/blob/master/LICENSE.txt) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Redream core have the following file extensions: + +- .gdi +- .chd +- .cdi + +## Databases + +RetroArch database(s) that are associated with the Redream core: + +- [Sega - Dreamcast](https://github.com/libretro/libretro-database/blob/master/rdb/Sega%20-%20Dreamcast.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +!!! attention + The firmware files need to be in a directory named 'dc' in RetroArch's system directory. + +| Filename | Description | md5sum | +|:---------------:|:--------------------------------------------:|:--------------------------------:| +| dc/dc_boot.bin | dc_boot.bin (Dreamcast BIOS) - Required | e10c53c2f8b90bab96ead2d368858623 | | +| dc/dc_flash.bin | dc_flash.bin (Date/Time/Language) - Required | 0a93f7940c455905bea6e392dfde92a4 | + +## Features + +Frontend-level settings or features that the Redream core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✕ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Redream core's internal core name is 'redream' + +The Redream core saves/loads to/from these directories. + +**Frontend's System directory** + +- flash.bin (???) +- vmu0.bin (VMU Slot 1 Save) +- vmu1.bin (VMU Slot 2 Save) +- vmu2.bin (VMU Slot 3 Save) +- vmu3.bin (VMU Slot 4 Save) + +### Geometry and timing + +- The Redream core's core provided FPS is 60 +- The Redream core's core provided sample rate is 44100 Hz +- The Redream core's core provided aspect ratio is 4/3 + +## Controllers + +The Redream core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 4 device types + +- None - Doesn't disable input. There's no reason to switch to this. +- **RetroPad** - Joypad - Stay on this. +- RetroPad w/Analog - Same as RetroPad. There's no reason to switch to this. + +### Controller tables + +#### Joypad + +![](images/Controllers/dc.png) + +| User 1 - 4 Remap descriptors | RetroPad Inputs | +|------------------------------|----------------------------------------------| +| A | ![](images/RetroPad/Retro_B_Round.png) | +| X | ![](images/RetroPad/Retro_Y_Round.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| B | ![](images/RetroPad/Retro_A_Round.png) | +| Y | ![](images/RetroPad/Retro_X_Round.png) | +| L | ![](images/RetroPad/Retro_L2.png) | +| R | ![](images/RetroPad/Retro_R2.png) | +| Analog X | ![](images/RetroPad/Retro_R3.png) | +| Analog Y | ![](images/RetroPad/Retro_Left_Stick.png) X | + +## Compatibility + +- Since Redream is a work-in-progress Dreamcast emulator, expect sound issues, general compatibility issues, and a general rough experience. + +## External Links + +- [Libretro Redream Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/redream_libretro.info) +- [Libretro Redream Github Repository](https://github.com/libretro/redream) +- [Report Libretro Redream Core Issues Here](https://github.com/libretro/redream/issues) + +### See also + +#### Sega - Dreamcast + +- [Sega - Dreamcast (Reicast)](https://docs.libretro.com/library/reicast/) \ No newline at end of file diff --git a/docs/library/reicast.md b/docs/library/reicast.md new file mode 100644 index 00000000..23a35160 --- /dev/null +++ b/docs/library/reicast.md @@ -0,0 +1,271 @@ +# Sega Dreamcast (Reicast) + +## Contribute to this documentation + +In order to propose improvements to this document, [visit its corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/reicast.md). Changes are proposed using "Pull Requests." + +## Background + +Reicast is a multi-platform Sega Dreamcast emulator. + +### Why use this core? + +Awaiting description. + +### How to get and install the Reicast core: + +1. Start up RetroArch. Inside the main menu, go to 'Online Updater'. + +2. Just to make sure we have the latest info files, select 'Update Core Info FIles'. Wait until this is done. Then, select 'Core Updater'. + +3. Browse through the list and select 'Sega Dreamcast (Reicast)'. + +After this has finished downloading, the core should now be ready for use! + +#### How to play (after installation): + +1. Go back to RetroArch's main menu screen. Select 'Load Content'. + +2. Browse to the folder that contains the content you want to run. + +3. Select the content that you want to run. + +4. If you are asked which core to select, choose 'Sega Dreamcast (Reicast)'. + +The game should now start running! + +### Authors + +- skmp + +## See also + +- [Sega Dreamcast (Redream)](https://docs.libretro.com/library/redream/) - Shared platforms. + +## License + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +- [GPLv2](https://github.com/reicast/reicast-emulator/blob/master/LICENSE) + +## Extensions + +Content that can be loaded by the Reicast core have the following file extensions: + +- .cdi +- .gdi +- .chd +- .cue + +## Databases + +RetroArch database(s) that are associated with the Reicast core: + +- [Sega - Dreamcast](https://github.com/libretro/libretro-database/blob/master/rdb/Sega%20-%20Dreamcast.rdb) + +## BIOS + +Required or optional firmware files go in RetroArch's system directory. + +| Filename | Description | md5sum | +|:--------------:|:------------------------------:|:--------------------------------:| +| dc/dc_boot.bin | Dreamcast BIOS - Requried | e10c53c2f8b90bab96ead2d368858623 | +| dc/dc_flash.bin | Date/Time/Language - Required | 0a93f7940c455905bea6e392dfde92a4 | + +!!! attention + The 'dc_boot.bin' and 'dc_flash.bin' firmware files need to be in a directory named 'dc' in RetroArch's system directory. + +## Features + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✔ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| Softpatching | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Crop Overscan (in RetroArch's Video settings) | ✕ | + +### Directories + +The Reicast core's directory name is 'Reicast' + +The Reicast core creates these files in RetroArch's system directory. + +- dc/vmu_save_A1.bin +- dc/vmu_save_B1.bin +- dc/vmu_save_C1.bin +- dc/vmu_save_D1.bin +- dc/data/dc_nvmem.bin + +- dc directory () +-- vmu_save_A1.bin () +-- vmu_save_B1.bin () +-- vmu_save_C1.bin () +-- vmu_save_D1.bin () +-- data directory () +--- dc_nvmem.bin () + +### Core provided aspect ratio + +Reicast's core provided aspect ratio is 4/3. + +### Rumble + +Rumble only works when the Joypad being used has rumble functionality and the Joypad input driver being used has rumble function implementation (e.g. **Xinput**). + +## Core options + +The Reicast core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **CPU Mode (restart)** (**dynamic_recomplier**/generic_recomplier) + +
Awaiting description.
+ +- **Boot to BIOS (restart)** (**Off**/On) + +
Boot directly into the Dreamcast BIOS menu.
+ +- **Internal resolution (restart)** (**640x480**/1280x960/1920x1440/2560x1920/3200x2400/3840x2880/4480x3360/5120x3840/5760x4320/6400x4800/7040x5280/7680x5760/8320x6240/8960x6720/9600x7200/10240x7680/10880x8160/11520x8640/12160x9120/12800x9600) + +
Self explanatory.
+ +
+ +??? note "Internal resolution - 640x480" + ![](images\Cores\reicast\640x480.png) + +
+ +
+ +??? note "Internal resolution - 1920x1440" + ![](images\Cores\reicast\1920x1440.png) + +
+ +- **Mipmapping** (Off/**On**) + +
Awaiting description.
+ +- **Volume modifier mode** (**Off**/debug/on/full) + +
Awaiting description.
+ +- **Widescreen hack** (**Off**/On) + +
Awaiting description.
+ +- **Audio buffer size** (**1024**/2048) + +
Awaiting description.
+ +- **Cable type** (**TV (VBS/Y+S/C)**/TV (RGB)/VGA (RGB)) + +
Awaiting description.
+ +- **Broadcast** (**4**/0/1/2/3) + +
Awaiting description.
+ +- **Framerate** (**normal**/fullspeed) + +
Awaiting description.
+ +- **Region** (**3**/0/1/2) + +
Awaiting description.
+ +- **Precompile shaders** (**Off**/On) + +
Awaiting description.
+ +- **"Enable RTT (Render To Texture)** (Off/**On**) + +
Awaiting description.
+ +- **Purupuru Pack (restart)** (Off/**On**) + +
Awaiting description.
+ +## Controllers + +### Device types + +The Reicast core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +#### User 1 - 4 device types + +- None - Input disabled. +- **RetroPad** - Joypad +- RetroPad w/Analog - Joypad - **There is no reason to switch to this.** + +### Controller tables + +#### Joypad and analog device type table + +| User 1 - 4 input descriptors | | RetroPad | +|------------------------------|---------------------------------------------|--------------------| +| A | ![](images/RetroPad/Retro_B_Round.png) | A | +| X | ![](images/RetroPad/Retro_Y_Round.png) | X | +| Start | ![](images/RetroPad/Retro_Start.png) | Start | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | D-Pad Up | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | D-Pad Down | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | D-Pad Left | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | D-Pad Right | +| B | ![](images/RetroPad/Retro_A_Round.png) | B | +| Y | ![](images/RetroPad/Retro_X_Round.png) | Y | +| L (fierce) | ![](images/RetroPad/Retro_L1.png) | L (fierce) | +| R (fierce) | ![](images/RetroPad/Retro_R1.png) | R (fierce) | +| L (weak) | ![](images/RetroPad/Retro_L2.png) | L (weak) | +| R (weak) | ![](images/RetroPad/Retro_R2.png) | R (weak) | +| Analog X | ![](images/RetroPad/Retro_Left_Stick.png) X | Analog X | +| Analog Y | ![](images/RetroPad/Retro_Left_Stick.png) Y | Analog Y | + +## Compatibility + +### General Reicast Issues + +- The date and time do not seem to get properly saved, as the system will ask you to set the clock every time you start. +- Once you save to a VMU slot with any game, that VMU becomes inaccessible the next time you load the emulator. +- Polygon sorting issues can make objects appear distorted. +- When using an Xbox 360 Controller, analog triggers don't work properly. Use the bumpers instead. +- Changing games without closing and reloading RetroArch often leads to RetroArch crashing. + +| Game | Issue | +|---------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Cannon Spike (PAL) | Many flickering polygons, most of the play area is invisible. | +| Capcom vs. SNK: Millennium Fight 2000 (PAL) | The "KO" text appears distorted. | +| Crazy Taxi (PAL) | Player taxis do not emit engine sounds. | +| Crazy Taxi (USA) | Player taxis do not emit engine sounds. | | +| Jet Grind Radio (USA) | Shadow volumes do not work right, so player characters do not cast shadows. Roller skate trails aren't transparent and instead fade to solid black. HUD elements flicker during character select in the garage. Police reports during levels do not display correctly. | +| Sonic Adventure (PAL) | Must be set to use "VGA" output in core options, as "TV" mode will cause all subsequent FMV to make RetroArch become unresponsive. | +| Sonic Adventure 2 (USA) | Shadow volumes do not work right, so characters and other objects do not cast shadows. Text during score tally will flicker sometimes (Wild Canyon as Knuckles). | +| Soul Calibur (PAL) | The sky during both the intro and matches will flicker. Text is occasionally garbled and misaligned. | +| Super Runabout: San Francisco (USA) | Crash to desktop with no error message. | +| Virtua Fighter 3TB (USA) | Shadow volumes do not work right, so player characters do not cast shadows. On the character select screen, alpha blending on hair textures does not display. | +| Zombie Revenge (USA) | Shadow volumes do not work right, so player characters do not cast shadows. The laptop in the game's intro cutscene doesn't display correctly. If you pause the game using the start button, RetroArch freezes. | + +## External Links + +- [Libretro Reicast Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/reicast_libretro.info) +- [Libretro Reicast Github Repository](https://github.com/libretro/reicast-emulator) +- [Report Libretro Reicast Core Issues Here](https://github.com/libretro/reicast-emulator/issues) +- [Official Reicast Website](http://reicast.com/) +- [Official Reicast Github Repository](https://github.com/reicast/reicast-emulator) \ No newline at end of file diff --git a/docs/library/remote_retropad.md b/docs/library/remote_retropad.md new file mode 100644 index 00000000..e2033e07 --- /dev/null +++ b/docs/library/remote_retropad.md @@ -0,0 +1,134 @@ +# Remote RetroPad + +## Background + +Awaiting description. + +#### How to start the Remote RetroPad core: + +- To start the Remote RetroPad core, go to RetroArch's main menu screen. Select 'Load Core', then 'Start Remote RetroPad'. + +- Now, select 'Start Core'. + +The content should now start running! + +### Author/License + +The Remote RetroPad core has been authored by + +- The RetroArch Team + +The Remote RetroPad core is licensed under + +- [MIT](https://github.com/libretro/libretro-samples/blob/master/license) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Features + +Frontend-level settings or features that the Remote RetroPad core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✕ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✕ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Remote RetroPad core's internal core name is 'RetroPad Remote' + +### Geometry and timing + +- The Remote RetroPad core's core provided FPS is 60.0 +- The Remote RetroPad core's core provided sample rate is 30000.0 Hz +- The Remote RetroPad core's core provided aspect ratio is 4.0 / 3.0 + +## Usage + +Awaiting description. + +## Core options + +The Remote RetroPad core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Port** [net_retropad_port] (55400 to 55420 in increments of 1. **55400 is default.**) + + Awaiting description. + +- **IP address part 1** [net_retropad_ip_octet1] (0 to 255 in increments of 1. **0 is default.**) + + Awaiting description. + +- **IP address part 2** [net_retropad_ip_octet2] (0 to 255 in increments of 1. **0 is default.**) + + Awaiting description. + +- **IP address part 3** [net_retropad_ip_octet3] (0 to 255 in increments of 1. **0 is default.**) + + Awaiting description. + +- **IP address part 4** [net_retropad_ip_octet4] (0 to 255 in increments of 1. **0 is default.**) + + Awaiting description. + +## Controllers + +The Remote RetroPad core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad - Stay on this. +- RetroPad w/Analog - Joypad - There's no reason to switch to this. + +### Controller tables + +#### Joypad + +| User 1 Remap descriptors | RetroPad Inputs | +|--------------------------|----------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Y | ![](images/RetroPad/Retro_Y_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| X | ![](images/RetroPad/Retro_X_Round.png) | +| L | ![](images/RetroPad/Retro_L1.png) | +| R | ![](images/RetroPad/Retro_R1.png) | +| L2 | ![](images/RetroPad/Retro_L2.png) | +| R2 | ![](images/RetroPad/Retro_R2.png) | +| L3 | ![](images/RetroPad/Retro_L3.png) | +| R3 | ![](images/RetroPad/Retro_R3.png) | + +## External Links + +- [Libretro Remote RetroPad Github Repository](https://github.com/libretro/RetroArch/tree/master/cores/libretro-net-retropad) +- [Report Libretro Remote RetroPad Core Issues Here](https://github.com/libretro/RetroArch/issues) \ No newline at end of file diff --git a/docs/library/sameboy.md b/docs/library/sameboy.md new file mode 100644 index 00000000..f82826b5 --- /dev/null +++ b/docs/library/sameboy.md @@ -0,0 +1,281 @@ +# Nintendo - Game Boy / Color (SameBoy) + +## Background + +SameBoy is an extremely accurate open source Gameboy (DMG) and Gameboy Color (CGB) emulator, written in portable C. + +- Supports GameBoy (DMG) and GameBoy Color (CGB) emulation +- Battery save support +- Save states +- Includes open source DMG and CGB boot ROMs +- Real time clock emulation +- Extremely high accuracy + +### Author/License + +The SameBoy core has been authored by + +- LIJI32 + +The SameBoy core is licensed under + +- [MIT](https://github.com/libretro/SameBoy/blob/master/LICENSE) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the SameBoy core have the following file extensions: + +- .gb +- .gbc + +## Databases + +RetroArch database(s) that are associated with the SameBoy core: + +- [Nintendo - Game Boy](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Game%20Boy.rdb) +- [Nintendo - Game Boy Color](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Game%20Boy%20Color.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +!!! attention + The SameBoy core has reverse engineered Game Boy/Game Boy Color boot ROMs baked into the core itself so real BIOS files aren't required. If you’d like to override this, you can place the following BIOS files in RetroArch's system directory. + +| Filename | Description | md5sum | +|:------------:|:----------------------------------:|:--------------------------------:| +| dmg_boot.bin | Game Boy boot ROM - Optional | 32fbbd84168d3482956eb3c5051637f5 | +| cgb_boot.bin | Game Boy Color boot ROM - Optional | dbfce9db9deaa2567f6a84fde55f9680 | + +## Features + +Frontend-level settings or features that the SameBoy core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✔ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✔ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✔ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The SameBoy core's internal core name is 'SameBoy' + +The SameBoy core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge backup save) +- 'content-name'.rtc (Real time clock save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The SameBoy core's core provided FPS is (FPS) +- The SameBoy core's core provided sample rate is 48000 Hz +- The SameBoy core's core provided aspect ratio is (Ratio) + +## Link + +Link cable emulation is supported via the Subsystem API. + +There are two ways to access the Subsystem API. + +**One way is to access the Subsystem API through RetroArch's GUI like this.** + +First, we load the first GameBoy ROM through '2 Player Game Boy Link' in RetroArch's Main Menu. + +![](images/Cores/sameboy/menu1.png) + +![](images/Cores/sameboy/gb1.png) + +Next, we load our Super GameBoy ROM through 'Load Super GameBoy' in RetroArch's Menu Menu. + +![](images/Cores/sameboy/menu2.png) + +![](images/Cores/sameboy/gb2.png) + +Then, we start the content by selecting 'Start GameBoy' In RetroArch's Menu Menu. + +![](images/Cores/bsnes/start.png) + +**The other way is to launch RetroArch with commandline like this.** + +``` +retroarch -L {path to sameboy core} {path to first GameBoy ROM} --subsystem gb_link_2p {path to second GameBoy ROM} +``` + +## Core options + +The SameBoy core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +### Regular Options + +- **Dual Game Boy Mode (restart)** [sameboy_dual] (**disabled**|enabled) + + Emulate two Game Boy games at the same time. + +- **Color Correction** [sameboy_color_correction_mode] (**off**|correct curves|emulate hardware|preserve brightness) + + Only for Gameboy Color games. + + Select color correction. + +??? note "Color Correction - off" + ![](images\Cores\sameboy\color_off.png) + +??? note "Color Correction - correct curves" + ![](images\Cores\sameboy\color_curves.png) + +??? note "Color Correction - emulate hardware" + ![](images\Cores\sameboy\color_hardware.png) + +??? note "Color Correction - preserve brightness" + ![](images\Cores\sameboy\color_brightness.png) + +- **High Pass Filter** [sameboy_high_pass_filter_mode] (**off**|accurate|remove dc offset) + + Awaiting description. + +- **Emulated Model** [sameboy_model] (**Game Boy Color**|Game Boy Advance|Auto|Game Boy) + + Select what console/model the content is being ran on. May activate special in-game content. + +### Dual Mode Options + +- **Dual Game Boy Mode (restart)** [sameboy_dual] (**disabled**|enabled) + + Emulate two Game Boy games at the same time. + + This core option is enabled by default and is hidden from view when the 2 Player Game Boy Link Subsystem API is used. + +- **Link Cable Emulation** [sameboy_link] (**enabled**|disabled) + + Enable in-game Game Boy link cable functions. + +- **Screen Layout** [sameboy_screen_layout] (**top-down**|left-right) + + Configure the layout of the two emulated Game Boys. + +- **Audio output** [sameboy_audio_output] (**Game Boy #1**|Game Boy #2) + + Select which Game Boy will output audio. + +- **Emulated Model for Game Boy #1** [sameboy_model_1] (**Game Boy Color**|Game Boy Advance|Auto|Game Boy) + + Select what console/model the content is being ran on for Game Boy #1. + + May activate special in-game content. + +- **Emulated Model for Game Boy #2** [sameboy_model_2] (**Game Boy Color**|Game Boy Advance|Auto|Game Boy) + + Select what console/model the content is being ran on for Game Boy #2. + + May activate special in-game content. + +- **Color Correction for Game Boy #1** [sameboy_color_correction_mode_1] (**off**|correct curves|emulate hardware|preserve brightness) + + Only for Gameboy Color games. + + Select color correction for Game Boy #1. + +- **Color Correction for Game Boy #2** [sameboy_color_correction_mode_2] (**off**|correct curves|emulate hardware|preserve brightness) + + Only for Gameboy Color games. + + Select color correction for Game Boy #2. + +- **High Pass Filter for Game Boy #1** [sameboy_high_pass_filter_mode_1] (**off**|accurate|remove dc offset) + + Awaiting description. + +- **High Pass Filter for Game Boy #2** [sameboy_high_pass_filter_mode_2] (**off**|accurate|remove dc offset) + + Awaiting description. + +## Controllers + +The SameBoy core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 2 device types + +- None - Doesn't disable input. There's no reason to switch to this. +- **RetroPad** - Joypad - Stay on this. +- Nintendo Game Boy - Joypad - Same as RetroPad. There's no reason to switch to this. + +### Rumble support + +Rumble only works in the SameBoy core when + +- The content being ran has rumble support. +- The frontend being used has rumble support. +- The joypad device being used has rumble support. + +### Controller tables + +#### Joypad + +![](images/Controllers/gb.png) + +| User 1 - 2 Remap descriptors | RetroPad Inputs | +|------------------------------|-------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | + +## Compatibility + +[SameBoy automation results](https://sameboy.github.io/automation/) + +## External Links + +- [Official SameBoy Website](https://sameboy.github.io/) +- [Official SameBoy Github Repository](https://github.com/LIJI32/SameBoy) +- [Libretro SameBoy Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/sameboy_libretro.info) +- [Libretro SameBoy Github Repository](https://github.com/libretro/SameBoy) +- [Report Libretro SameBoy Core Issues Here](https://github.com/libretro/libretro-meta/issues) + +### See also + +#### Nintendo - Game Boy (+ Color) + +- [Nintendo - Game Boy / Color (Emux GB)](https://docs.libretro.com/library/emux_gb/) +- [Nintendo - Game Boy / Color (Gambatte)](https://docs.libretro.com/library/gambatte/) +- [Nintendo - Game Boy / Color (Gearboy)](https://docs.libretro.com/library/gearboy/) +- [Nintendo - Game Boy / Color (TGB Dual)](https://docs.libretro.com/library/tgb_dual/) +- [Nintendo - Game Boy Advance (mGBA)](https://docs.libretro.com/library/mgba/) +- [Nintendo - SNES / Famicom (higan Accuracy)](https://docs.libretro.com/library/higan_accuracy/) +- [Nintendo - SNES / Famicom (nSide Balanced)](https://docs.libretro.com/library/nside_balanced/) \ No newline at end of file diff --git a/docs/library/scummvm.md b/docs/library/scummvm.md new file mode 100644 index 00000000..6e0ec41d --- /dev/null +++ b/docs/library/scummvm.md @@ -0,0 +1,161 @@ +# ScummVM + +## Background + +ScummVM is an interpreter program which allows you to run certain classic graphical point-and-click adventure games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed + +### Author/License + +The ScummVM core has been authored by + +- [ScummVM Team](http://www.scummvm.org/credits/) + +The ScummVM core is licensed under + +- [GPLv2](https://github.com/libretro/scummvm/blob/master/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the ScummVM core have the following file extensions: + +- .scummvm + +## Databases + +RetroArch database(s) that are associated with the ScummVM core: + +- [ScummVM](https://github.com/libretro/libretro-database/blob/master/rdb/ScummVM.rdb) + +## Features + +Frontend-level settings or features that the ScummVM core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The ScummVM core's directory name is 'scummvm' + +The ScummVM core saves/loads to/from these directories. + +**Frontend's Save directory** + +- Game saves + +**Frontend's System directory** + +- scummvm.ini (ScummVM Config File) + +### Geometry and timing + +- The ScummVM core's core provided FPS is 60 +- The ScummVM core's core provided sample rate is 44100 Hz +- The ScummVM core's core provided aspect ratio is 4/3 + +## Scanning Support + +To allow launching ScummVM games from the menu, you'll need to do the following: + +1. Look up the Game ID of the game you're looking to add to the menu. Game IDs can be found in [ScummVM's compatibility list](http://scummvm.org/compatibility). + > `monkey` for Monkey Island + +2. Inside the game directory, create a `.scummvm` file, named by the Game ID + > `monkey.scummvm` for Monkey Island + +3. Open up the file in a text editor, and enter in the Game ID. + > `echo monkey > monkey.scummvm` + +4. (Optional) Alternatively, you could download a prepared `.scummvm` file from [libretro-database-scummvm](https://github.com/RobLoach/libretro-database-scummvm/tree/master/games). + +5. Scan each game directory + +This is an example of what the playlist would look like: + +``` + /storage/roms/scummvm/monkey/monkey.scummvm + The Secret of Monkey Island + /tmp/cores/scummvm_libretro.so + ScummVM + b0e2af30|crc + ScummVM.lpl +``` +## Controllers + +The ScummVM core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad +- RetroPad w/Analog - Joypad - There's no reason to switch to this. + +### Controller tables + +#### Joypad + +| User 1 Remap descriptors | RetroPad Inputs | ScummVM Core Inputs | +|--------------------------|----------------------------------------------|---------------------| +| Mouse Button 2 | ![](images/RetroPad/Retro_B_Round.png) | Mouse Button 2 | +| ScummVM GUI | ![](images/RetroPad/Retro_Select.png) | ScummVM GUI | +| Esc | ![](images/RetroPad/Retro_Start.png) | Esc | +| Mouse Up | ![](images/RetroPad/Retro_Dpad_Up.png) | Mouse Up | +| Mouse Down | ![](images/RetroPad/Retro_Dpad_Down.png) | Mouse Down | +| Mouse Left | ![](images/RetroPad/Retro_Dpad_Left.png) | Mouse Left | +| Mouse Right | ![](images/RetroPad/Retro_Dpad_Right.png) | Mouse Right | +| Mouse Button 1 | ![](images/RetroPad/Retro_A_Round.png) | Mouse Button 1 | +| | ![](images/RetroPad/Retro_Left_Stick.png) X | Mouse Left/Right | +| | ![](images/RetroPad/Retro_Left_Stick.png) Y | Mouse Up/Down | + +#### Mouse + +| RetroMouse Inputs | ScummVM Core Inputs | +|-----------------------------------------------------|--------------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Mouse Cursor | Mouse Cursor | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | Mouse Button 1 | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | Mouse Button 2 | + +#### Pointer + +| RetroPointer Inputs | ScummVM Core Inputs | +|----------------------------------------------------------------------------------------------------------------------|---------------------| +| ![](images/RetroMouse/Retro_Mouse.png) or ![](images/Button_Pack/Gestures/Gesture_Finger_Front.png) Pointer Position | Mouse Cursor | +| ![](images/RetroMouse/Retro_Left.png) or ![](images/Button_Pack/Gestures/Gesture_Tap.png) Pointer Pressed | Mouse Button 1 | + +## Compatibility + +- [ScummVM Compatibility List](https://www.scummvm.org/compatibility/) + +## External Links + +- [Official ScummVM Website](http://scummvm.org/) +- [Official ScummVM Github Repository](https://github.com/scummvm/scummvm) +- [Libretro ScummVM Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/scummvm_libretro.info) +- [Libretro ScummVM Github Repository](https://github.com/libretro/scummvm) +- [Report Libretro ScummVM Core Issues Here](https://github.com/libretro/scummvm/issues) \ No newline at end of file diff --git a/docs/library/snes9x.md b/docs/library/snes9x.md new file mode 100644 index 00000000..32517b35 --- /dev/null +++ b/docs/library/snes9x.md @@ -0,0 +1,343 @@ +# Nintendo - SNES / Famicom (Snes9x) + +## Background + +Port of upstream mainline **up-to-date** Snes9x, a portable Super Nintendo Entertainment System emulator to libretro. + +- **Most up-to-date libretro Snes9x core available.** +- Highly accurate SNES emulation. +- Simplified and easily accessible MSU-1 expansion chip support. +- Recommended for netplay +- Less CPU intensive than the higan/bsnes based cores. + +### Author/License + +The Snes9x core has been authored by + +- Snes9x Team + +The Snes9x core is licensed under + +- [Non-commercial](https://github.com/libretro/snes9x/blob/master/docs/snes9x-license.txt) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Snes9x core have the following file extensions: + +- .smc +- .sfc +- .swc +- .fig +- .bs + +## Databases + +RetroArch database(s) that are associated with the Snes9x core: + +- [Nintendo - Super Nintendo Entertainment System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System.rdb) +- [Nintendo - Super Nintendo Entertainment System Hacks](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System%20Hacks.rdb) +- [Nintendo - Sufami Turbo](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Sufami%20Turbo.rdb) +- [Nintendo - Satellaview](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Satellaview.rdb) + +## Features + +Frontend-level settings or features that the Snes9x core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✔ | +| RetroArch Cheats | ✔ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | - | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✔ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Snes9x core's internal core name is 'Snes9x' + +The Snes9x core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The Snes9x core's core provided FPS is 60.0988118623 for NTSC games and 50.0069789082 for PAL games. +- The Snes9x core's core provided sample rate is 32040 Hz +- The Snes9x core's core provided aspect ratio is dependent on the ['Preferred aspect ratio' core option](https://docs.libretro.com/library/snes9x#core-options). + +## MSU-1 support + +MSU-1 support in the Snes9x core follows the SD2SNES/Snes9x naming format, i.e. + +``` +gamename.sfc +gamename.msu +gamename-#.pcm +``` + +Loading a manifest.bml file or having a xml file isn't necessary. **Just load gamename.sfc.** + +Here's an example of a working MSU-1 setup done with [Secret of Mana MSU-1](https://www.romhacking.net/hacks/2467/). Please note that som_msu1.sfc is being [softpatched](https://docs.libretro.com/guides/softpatching/) in this example. + +![](images/Cores/snes9x/msu.png) + +## Core options + +The Snes9x core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **SuperFX Frequency** [snes9x_overclock] (**10MHz**|20MHz|40MHz|60MHz|80MHz|100MHz) + + Overclock the [SuperFX chip](https://en.wikipedia.org/wiki/Super_FX). 10Mhz is stock clockspeed. + +- **Reduce Slowdown (Hack, Unsafe)** [snes9x_overclock_cycles] (**disabled**|compatible|max) + + Many games for the SNES suffered from slowdown due to the weak main CPU. This option helps allievate that at the cost of possible bugs. + + [Example video here](https://www.youtube.com/watch?v=8xA9fosum4Q) + + compatible: Reduce slowdown but keep as much game compatibility as much as possible. + + max: Reduce slowdown as much as possible but will break more games. + +- **Reduce Flickering (Hack, Unsafe)** [snes9x_reduce_sprite_flicker] (**disabled**|enabled) + + Rises sprite limit to reduce flickering in games. + +- **Show layer 1** [snes9x_layer_1] (**enabled**|disabled) + + Self-explanatory. + +- **Show layer 2** [snes9x_layer_2] (**enabled**|disabled) + + Self-explanatory. + +- **Show layer 3** [snes9x_layer_3] (**enabled**|disabled) + + Self-explanatory. + +- **Show layer 4** [snes9x_layer_4] (**enabled**|disabled) + + Self-explanatory. + +- **Show sprite layer** [snes9x_layer_5] (**enabled**|disabled) + + Self-explanatory. + +- **Enable graphic clip windows** [snes9x_gfx_clip] (**enabled**|disabled) + + Self-explanatory. + +- **Enable transparency effects** [snes9x_gfx_transp] (**enabled**|disabled) + + Self-explanatory. + +- **Enable hires mode** [snes9x_gfx_hires] (**enabled**|disabled) + + Self-explanatory. + +- **Enable sound channel 1** [snes9x_sndchan_1] (**enabled**|disabled) + + Self-explanatory. + +- **Enable sound channel 2** [snes9x_sndchan_2] (**enabled**|disabled) + + Self-explanatory. + +- **Enable sound channel 3** [snes9x_sndchan_3] (**enabled**|disabled) + + Self-explanatory. + +- **Enable sound channel 4** [snes9x_sndchan_4] (**enabled**|disabled) + + Self-explanatory. + +- **Enable sound channel 5** [snes9x_sndchan_5] (**enabled**|disabled) + + Self-explanatory. + +- **Enable sound channel 6** [snes9x_sndchan_6] (**enabled**|disabled) + + Self-explanatory. + +- **Enable sound channel 7** [snes9x_sndchan_7] (**enabled**|disabled) + + Self-explanatory. + +- **Enable sound channel 8** [snes9x_sndchan_8] (**enabled**|disabled) + + Self-explanatory. + +- **Crop overscan** [snes9x_overscan] (**auto**|enabled|disabled) + + Crop out the potentially random glitchy video output that would have been hidden by the bezel around the edge of a standard-definition television screen. + +??? note "Crop overscan - On" + ![](images\Cores\snes9x\crop_on.png) + +??? note "Crop overscan - Off" + ![](images\Cores\snes9x\crop_off.png) + +- **Preferred aspect ratio** [snes9x_aspect] (**auto**|ntsc|pal|4:3) + + Choose the preferred aspect ratio. RetroArch's aspect ratio must be set to Core provided in the Video seetings. + +??? note "Preferred aspect ratio - ntsc" + ![](images\Cores\snes9x\ntsc.png) + +??? note "Preferred aspect ratio - pal" + ![](images\Cores\snes9x\pal.png) + +??? note "Preferred aspect ratio - 4:3" + ![](images\Cores\snes9x\4by3.png) + +## Controllers + +The Snes9x core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. +- **[SNES Joypad](http://nintendo.wikia.com/wiki/Super_Nintendo_Entertainment_System_controller)** - Joypad +- [SNES Mouse](https://en.wikipedia.org/wiki/Super_NES_Mouse) - Mouse +- [Multitap](http://nintendo.wikia.com/wiki/Super_Multitap) - Joypad - Allows for up to five players to play together in multitap games. + +### User 2 device types + +- None - Doesn't disable input. +- **[SNES Joypad](http://nintendo.wikia.com/wiki/Super_Nintendo_Entertainment_System_controller)** - Joypad +- [SNES Mouse](https://en.wikipedia.org/wiki/Super_NES_Mouse) - Mouse +- [Multitap](http://nintendo.wikia.com/wiki/Super_Multitap) - Joypad - Allows for up to five players to play together in mulitap games. +- [SuperScope](https://en.wikipedia.org/wiki/Super_Scope) - Lightgun +- [Justifier](https://en.wikipedia.org/wiki/Konami_Justifier) - Lightgun + +### Multitap support + +Activating multitap support in compatible games can be configured by switching to the 'Multitap' device type for the corresponding users. + +### Controller tables + +#### Joypad + +![](images/Controllers/snes.png) + +| User 1 - 5 Remap descriptors | RetroPad Inputs | +|------------------------------|----------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Y | ![](images/RetroPad/Retro_Y_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| X | ![](images/RetroPad/Retro_X_Round.png) | +| L | ![](images/RetroPad/Retro_L1.png) | +| R | ![](images/RetroPad/Retro_R1.png) | + +#### Mouse + +| RetroMouse Inputs | SNES Mouse | +|-----------------------------------------------------|-------------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Mouse Cursor | SNES Mouse Cursor | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | SNES Mouse Left Button | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | SNES Mouse Right Button | + +#### Lightgun + +| RetroLightgun Inputs | SuperScope | Justifier | +|------------------------------------------------------|----------------------|---------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Gun Crosshair | SuperScope Crosshair | Justifier Crosshair | +| Gun Trigger | SuperScope Trigger | Justifier Trigger | +| Gun Aux A | SuperScope Cursor | | +| Gun Aux B | SuperScope Turbo | Justifier Offscreen | +| Gun Start | SuperScope Pause | Justifier Start | + +## Compatibility + +| Game | Issue | +|--------------------------------------------------|--------------------------------------------------------------------------------------| +| A.S.P. Air Strike Patrol | The shadow below the aircraft is missing. Glitched graphics on the briefing screens. | +| BS-Zelda MottZilla Patch | Only shows a black screen. | +| Doom | Colored dots appear during gameplay. | +| Funaki Masakatsu Hybrid Wrestler – Tougi Denshou | Corrupted graphics on the Pancrase logo screen. | +| Hayazashi Nidan Morita Shougi 2 | Matches won’t start. | +| Mecarobot Golf | The ground "wobbles" during gameplay. | +| Secret of Evermore (PAL versions) | Randomly freezes when the background music changes. | +| Speedy Gonzales: Los Gatos Bandidos | Freezes when pressing a switch in the last level. | + +!!! attention + The Snes9x core can launch some Satellaview games with sometimes low compatibility. + +## External Links + +- [Official Snes9x Website (no longer updated)](http://www.snes9x.com/) +- [Official Snes9x Github Repository](https://github.com/snes9xgit/snes9x) +- [Official Upstream Snes9x Downloads](http://www.s9x-w32.de/dl/) +- [Alternate Official Upstream Snes9x Downloads](https://sites.google.com/site/bearoso/) +- [Libretro Snes9x Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/snes9x_libretro.info) +- [Libretro Snes9x Github Repository](https://github.com/libretro/snes9x) +- [Report Libretro Snes9x Core Issues Here](https://github.com/libretro/snes9x/issues) + +### See also + +#### Nintendo - Sufami Turbo + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) + +#### Nintendo - Super Nintendo Entertainment System (+ Hacks) + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (higan Accuracy)](https://docs.libretro.com/library/higan_accuracy/) +- [Nintendo - SNES / Famicom (nSide Balanced)](https://docs.libretro.com/library/nside_balanced/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) \ No newline at end of file diff --git a/docs/library/snes9x_2002.md b/docs/library/snes9x_2002.md new file mode 100644 index 00000000..c43339d5 --- /dev/null +++ b/docs/library/snes9x_2002.md @@ -0,0 +1,187 @@ +# Nintendo - SNES / Famicom (Snes9x 2002) + +## Background + +Port of SNES9x 1.39 for libretro (was previously called PocketSNES). Heavily optimized for ARM. + +Provides more favorable performance thresholds at the cost of accuracy. **DO NOT use this core unless you have underpowered hardware and the mainline Snes9x core and the bsnes/higan/bsnes-mercury cores aren't fast enough** + +This core is part of a group of Snes9x cores that are snapshots from the year their code is based on. (Snes9x 2002, Snes9x 2005, Snes9x 2005 Plus, Snes9x 2010) + +### Author/License + +The Snes9x 2002 core has been authored by + +- Snes9x Team +- PocketSNES Team +- Toadking + +The Snes9x 2002 core is licensed under + +- [Non-commercial](https://github.com/libretro/snes9x/blob/master/docs/snes9x-license.txt) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Snes9x 2002 core have the following file extensions: + +- .smc +- .fig +- .sfc +- .gd3 +- .gd7 +- .dx2 +- .bsx +- .swc + +## Databases + +RetroArch database(s) that are associated with the Snes9x 2002 core: + +- [Nintendo - Super Nintendo Entertainment System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System.rdb) +- [Nintendo - Super Nintendo Entertainment System Hacks](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System%20Hacks.rdb) +- [Nintendo - Sufami Turbo](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Sufami%20Turbo.rdb) + +## Features + +Frontend-level settings or features that the Snes9x 2002 core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✔ | +| RetroArch Cheats | ✔ | +| Native Cheats | ✔ | +| Controls | ✔ | +| Remapping | ✕ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✔ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✔ | +| LEDs | ✕ | + +### Directories + +The Snes9x 2002 core's internal core name is 'Snes9x 2002' + +The Snes9x 2002 core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The Snes9x 2002 core's core provided FPS is 60.0988118623 for NTSC games and 50.0069789082 for PAL games. +- The Snes9x 2002 core's core provided sample rate is 32040.5 Hz +- The Snes9x 2002 core's core provided aspect ratio is 4/3 + +## Core options + +The Snes9x 2002 core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Reduce Slowdown (Hack, Unsafe, Restart)** [snes9x2002_overclock_cycles] (**disabled**|compatible|max) + + Many games for the SNES suffered from slowdown due to the weak main CPU. This option helps allievate that at the cost of possible bugs. + + [Example video here](https://www.youtube.com/watch?v=8xA9fosum4Q) + + compatible: Reduce slowdown but keep as much game compatibility as much as possible. + + max: Reduce slowdown as much as possible but will break more games. + +## Controllers + +The Snes9x 2002 core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 2 device types + +- None - Doesn't disable input. There's no reason to switch to this. +- **RetroPad - Joypad - Stay on this. +- RetroPad w/Analog - Joypad - Same as RetroPad. There's no reason to switch to this. + +### Controller tables + +#### Joypad + +![](images/Controllers/snes.png) + +| RetroPad Inputs | Snes9x 2002 core Inputs | +|----------------------------------------------|-------------------------| +| ![](images/RetroPad/Retro_B_Round.png) | B | +| ![](images/RetroPad/Retro_Y_Round.png) | Y | +| ![](images/RetroPad/Retro_Select.png) | Select | +| ![](images/RetroPad/Retro_Start.png) | Start | +| ![](images/RetroPad/Retro_Dpad_Up.png) | D-Pad Up | +| ![](images/RetroPad/Retro_Dpad_Down.png) | D-Pad Down | +| ![](images/RetroPad/Retro_Dpad_Left.png) | D-Pad Left | +| ![](images/RetroPad/Retro_Dpad_Right.png) | D-Pad Right | +| ![](images/RetroPad/Retro_A_Round.png) | A | +| ![](images/RetroPad/Retro_X_Round.png) | X | +| ![](images/RetroPad/Retro_L1.png) | L | +| ![](images/RetroPad/Retro_R1.png) | R | + +## Compatibility + +Awaiting description. + +## External Links + +- [Official Snes9x 2002 Website](http://www.pocketsnes.net/) +- [Libretro Snes9x 2002 Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/snes9x2002_libretro.info) +- [Libretro Snes9x 2002 Github Repository](https://github.com/libretro/snes9x2002) +- [Report Libretro Snes9x 2002 Core Issues Here](https://github.com/libretro/snes9x2002/issues) + +### See also + +#### Nintendo - Sufami Turbo + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) + +#### Nintendo - Super Nintendo Entertainment System (+ Hacks) + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (higan Accuracy)](https://docs.libretro.com/library/higan_accuracy/) +- [Nintendo - SNES / Famicom (nSide Balanced)](https://docs.libretro.com/library/nside_balanced/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) \ No newline at end of file diff --git a/docs/library/snes9x_2005.md b/docs/library/snes9x_2005.md new file mode 100644 index 00000000..6c96e75a --- /dev/null +++ b/docs/library/snes9x_2005.md @@ -0,0 +1,206 @@ +# Nintendo - SNES / Famicom (Snes9x 2005) + +## Background + +Port of SNES9x 1.43 for libretro. It was previously called CAT SFC. + +Provides more favorable performance thresholds at the cost of accuracy. **DO NOT use this core unless you have underpowered hardware and the mainline Snes9x core and the bsnes/higan/bsnes-mercury cores aren't fast enough** + +This core is part of a group of Snes9x cores that are snapshots from the year their code is based on. (Snes9x 2002, Snes9x 2005, Snes9x 2005 Plus, Snes9x 2010) + +### Author/License + +The Snes9x 2005 core has been authored by + +- Snes9x Team +- dking +- BassAceGold +- ShadauxCat +- Nebuleon + +The Snes9x 2005 core is licensed under + +- [Non-commercial](https://github.com/libretro/snes9x/blob/master/docs/snes9x-license.txt) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Snes9x 2005 core have the following file extensions: + +- .smc +- .fig +- .sfc +- .gd3 +- .gd7 +- .dx2 +- .bsx +- .swc + +## Databases + +RetroArch database(s) that are associated with the Snes9x 2005 core: + +- [Nintendo - Super Nintendo Entertainment System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System.rdb) +- [Nintendo - Super Nintendo Entertainment System Hacks](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System%20Hacks.rdb) +- [Nintendo - Sufami Turbo](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Sufami%20Turbo.rdb) + +## Features + +Frontend-level settings or features that the Snes9x 2005 core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✔ | +| RetroArch Cheats | ✔ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✔ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Snes9x 2005 core's internal core name is 'Snes9x 2005' + +The Snes9x 2005 core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The Snes9x 2005 core's core provided FPS is (FPS) +- The Snes9x 2005 core's core provided sample rate is (Rate) +- The Snes9x 2005 core's core provided aspect ratio is 4/3 + +## Core options + +The Snes9x 2005 core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Video Mode** [catsfc_VideoMode] (**auto**|NTSC|PAL) + + Awaiting description. + +- **Reduce Slowdown (Hack, Unsafe, Restart)** [catsfc_overclock_cycles] (**disabled**|compatible|max) + + Many games for the SNES suffered from slowdown due to the weak main CPU. This option helps allievate that at the cost of possible bugs. + + [Example video here](https://www.youtube.com/watch?v=8xA9fosum4Q) + + compatible: Reduce slowdown but keep as much game compatibility as much as possible. + + max: Reduce slowdown as much as possible but will break more games. + +- **Reduce Flickering (Hack, Unsafe)** [catsfc_reduce_sprite_flicker] (**disabled**|enabled) + + Rises sprite limit to reduce flickering in games. + +## Controllers + +The Snes9x 2005 core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 5 device types + +- None - Doesn't disable input. There's no reason to switch to this. +- **RetroPad - Joypad - Stay on this. +- RetroPad w/Analog - Joypad - Same as RetroPad. There's no reason to switch to this. + +### Controller tables + +#### Joypad + +![](images/Controllers/snes.png) + +| User 1 - 5 Remap descriptors | RetroPad Inputs | +|------------------------------|----------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Y | ![](images/RetroPad/Retro_Y_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| X | ![](images/RetroPad/Retro_X_Round.png) | +| L | ![](images/RetroPad/Retro_L1.png) | +| R | ![](images/RetroPad/Retro_R1.png) | + +## Compatibility + +| Game | Issue | +|--------------------------------------------------|--------------------------------------------------------------------------------------| +| A.S.P. Air Strike Patrol | The shadow below the aircraft is missing. Glitched graphics on the briefing screens. | +| Bass Masters Classic - Pro Edition | Only shows a black screen. | +| Funaki Masakatsu Hybrid Wrestler – Tougi Denshou | Corrupted graphics on the Pancrase logo screen. | +| Hayazashi Nidan Morita Shougi 2 | Matches won’t start. | +| Madden NFL 96 | Only shows a black screen. | +| Masters New – Harukanaru Augusta 3 | Black screen after selecting game. | +| Mecarobot Golf | The ground "wobbles" during gameplay. | +| Mechwarrior 3050 | Black screen after the Activision logo. | + +## External Links + +- [Official Snes9x 2005 Github Repository](https://github.com/ShadauxCat/CATSFC) +- [Libretro Snes9x 2005 Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/snes9x2005_libretro.info) +- [Libretro Snes9x 2005 Github Repository](https://github.com/libretro/snes9x2005) +- [Report Libretro Snes9x 2005 Core Issues Here](https://github.com/libretro/snes9x2005/issues) + +### See also + +#### Nintendo - Sufami Turbo + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) + +#### Nintendo - Super Nintendo Entertainment System (+ Hacks) + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (higan Accuracy)](https://docs.libretro.com/library/higan_accuracy/) +- [Nintendo - SNES / Famicom (nSide Balanced)](https://docs.libretro.com/library/nside_balanced/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) \ No newline at end of file diff --git a/docs/library/snes9x_2005_plus.md b/docs/library/snes9x_2005_plus.md new file mode 100644 index 00000000..fc3d220d --- /dev/null +++ b/docs/library/snes9x_2005_plus.md @@ -0,0 +1,208 @@ +# Nintendo - SNES / Famicom (Snes9x 2005 Plus) + +## Background + +Port of SNES9x 1.43 for libretro. It was previously called CAT SFC. + +The Snes9x 2005 Plus core has been compiled with Blargg's APU. An accurate audio processing unit. + +Provides more favorable performance thresholds at the cost of accuracy. **DO NOT use this core unless you have underpowered hardware and the mainline Snes9x core and the bsnes/higan/bsnes-mercury cores aren't fast enough** + +This core is part of a group of Snes9x cores that are snapshots from the year their code is based on. (Snes9x 2002, Snes9x 2005, Snes9x 2005 Plus, Snes9x 2010) + +### Author/License + +The Snes9x 2005 Plus core has been authored by + +- Snes9x Team +- dking +- BassAceGold +- ShadauxCat +- Nebuleon + +The Snes9x 2005 Plus core is licensed under + +- [Non-commercial](https://github.com/libretro/snes9x/blob/master/docs/snes9x-license.txt) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Snes9x 2005 Plus core have the following file extensions: + +- .smc +- .fig +- .sfc +- .gd3 +- .gd7 +- .dx2 +- .bsx +- .swc + +## Databases + +RetroArch database(s) that are associated with the Snes9x 2005 Plus core: + +- [Nintendo - Super Nintendo Entertainment System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System.rdb) +- [Nintendo - Super Nintendo Entertainment System Hacks](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System%20Hacks.rdb) +- [Nintendo - Sufami Turbo](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Sufami%20Turbo.rdb) + +## Features + +Frontend-level settings or features that the Snes9x 2005 Plus core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✔ | +| RetroArch Cheats | ✔ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✔ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Snes9x 2005 Plus core's internal core name is 'Snes9x 2005 Plus' + +The Snes9x 2005 Plus core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The Snes9x 2005 Plus core's core provided FPS is (FPS) +- The Snes9x 2005 Plus core's core provided sample rate is (Rate) +- The Snes9x 2005 Plus core's core provided aspect ratio is 4/3 + +## Core options + +The Snes9x 2005 Plus core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Video Mode** [catsfc_VideoMode] (**auto**|NTSC|PAL) + + Awaiting description. + +- **Reduce Slowdown (Hack, Unsafe, Restart)** [catsfc_overclock_cycles] (**disabled**|compatible|max) + + Many games for the SNES suffered from slowdown due to the weak main CPU. This option helps allievate that at the cost of possible bugs. + + [Example video here](https://www.youtube.com/watch?v=8xA9fosum4Q) + + compatible: Reduce slowdown but keep as much game compatibility as much as possible. + + max: Reduce slowdown as much as possible but will break more games. + +- **Reduce Flickering (Hack, Unsafe)** [catsfc_reduce_sprite_flicker] (**disabled**|enabled) + + Rises sprite limit to reduce flickering in games. + +## Controllers + +The Snes9x 2005 Plus core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 5 device types + +- None - Doesn't disable input. There's no reason to switch to this. +- **RetroPad - Joypad - Stay on this. +- RetroPad w/Analog - Joypad - Same as RetroPad. There's no reason to switch to this. + +### Controller tables + +#### Joypad + +![](images/Controllers/snes.png) + +| User 1 - 5 Remap descriptors | RetroPad Inputs | +|------------------------------|----------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Y | ![](images/RetroPad/Retro_Y_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| X | ![](images/RetroPad/Retro_X_Round.png) | +| L | ![](images/RetroPad/Retro_L1.png) | +| R | ![](images/RetroPad/Retro_R1.png) | + +## Compatibility + +| Game | Issue | +|--------------------------------------------------|--------------------------------------------------------------------------------------| +| A.S.P. Air Strike Patrol | The shadow below the aircraft is missing. Glitched graphics on the briefing screens. | +| Bass Masters Classic - Pro Edition | Only shows a black screen. | +| Funaki Masakatsu Hybrid Wrestler – Tougi Denshou | Corrupted graphics on the Pancrase logo screen. | +| Hayazashi Nidan Morita Shougi 2 | Matches won’t start. | +| Madden NFL 96 | Only shows a black screen. | +| Masters New – Harukanaru Augusta 3 | Black screen after selecting game. | +| Mecarobot Golf | The ground "wobbles" during gameplay. | +| Mechwarrior 3050 | Black screen after the Activision logo. | + +## External Links + +- [Official Snes9x 2005 Plus Github Repository](https://github.com/ShadauxCat/CATSFC) +- [Libretro Snes9x 2005 Plus Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/snes9x2005_plus_libretro.info) +- [Libretro Snes9x 2005 Plus Github Repository](https://github.com/libretro/snes9x2005) +- [Report Libretro Snes9x 2005 Plus Core Issues Here](https://github.com/libretro/snes9x2005/issues) + +### See also + +#### Nintendo - Sufami Turbo + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) + +#### Nintendo - Super Nintendo Entertainment System (+ Hacks) + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (higan Accuracy)](https://docs.libretro.com/library/higan_accuracy/) +- [Nintendo - SNES / Famicom (nSide Balanced)](https://docs.libretro.com/library/nside_balanced/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) \ No newline at end of file diff --git a/docs/library/snes9x_2010.md b/docs/library/snes9x_2010.md new file mode 100644 index 00000000..c1ed4350 --- /dev/null +++ b/docs/library/snes9x_2010.md @@ -0,0 +1,243 @@ +# Nintendo - SNES / Famicom (Snes9x 2010) + +## Background + +Port of Snes9x 1.52+ to Libretro (previously called SNES9x Next). Rewritten in C and several optimizations and speedhacks. + +Provides more favorable performance thresholds at the cost of accuracy. **DO NOT use this core unless you have underpowered hardware and the mainline Snes9x core and the bsnes/higan/bsnes-mercury cores aren't fast enough** + +This core is part of a group of Snes9x cores that are snapshots from the year their code is based on. (Snes9x 2002, Snes9x 2005, Snes9x 2005 Plus, Snes9x 2010) + +### Author/License + +The Snes9x 2010 core has been authored by + +- Snes9x Team +- Squarepusher + +The Snes9x 2010 core is licensed under + +- [Non-commercial](https://github.com/libretro/snes9x/blob/master/docs/snes9x-license.txt) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Snes9x 2010 core have the following file extensions: + +- .smc +- .fig +- .sfc +- .gd3 +- .gd7 +- .dx2 +- .bsx +- .swc + +## Databases + +RetroArch database(s) that are associated with the Snes9x 2010 core: + +- [Nintendo - Super Nintendo Entertainment System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System.rdb) +- [Nintendo - Super Nintendo Entertainment System Hacks](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System%20Hacks.rdb) +- [Nintendo - Sufami Turbo](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Sufami%20Turbo.rdb) + +## Features + +Frontend-level settings or features that the Snes9x 2010 core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✔ | +| RetroArch Cheats | ✔ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | - | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✔ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✔ | +| LEDs | ✕ | + +### Directories + +The Snes9x 2010 core's internal core name is 'Snes9x 2010' + +The Snes9x 2010 core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The Snes9x 2010 core's core provided FPS is 60.0988118623 for NTSC games and 50.0069789082 for PAL games +- The Snes9x 2010 core's core provided sample rate is 32040.5 Hz +- The Snes9x 2010 core's core provided aspect ratio is 4/3 + +## Core options + +The Snes9x 2010 core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **SuperFX Overclock** [snes9x_next_overclock] (**Disabled(10MHz)**|40MHz|60MHz|80MHz|100MHz|Underclock(5MHz)|Underclock(8MHz)) + + Overclock or underclock the [SuperFX chip](https://en.wikipedia.org/wiki/Super_FX). 10Mhz is stock clockspeed. + +- **Reduce Slowdown (Hack, Unsafe)** [snes9x_next_overclock_cycles] (**disabled**|compatible|max) + + Many games for the SNES suffered from slowdown due to the weak main CPU. This option helps allievate that at the cost of possible bugs. + + [Example video here](https://www.youtube.com/watch?v=8xA9fosum4Q) + + compatible: Reduce slowdown but keep as much game compatibility as much as possible. + + max: Reduce slowdown as much as possible but will break more games. + +- **Reduce Flickering (Hack, Unsafe)** [snes9x_next_reduce_sprite_flicker] (**disabled**|enabled) + + Rises sprite limit to reduce flickering in games. + +## Controllers + +The Snes9x 2010 core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. There's no reason to switch to this. +- **[SNES Joypad](http://nintendo.wikia.com/wiki/Super_Nintendo_Entertainment_System_controller)** - Joypad +- [SNES Mouse](https://en.wikipedia.org/wiki/Super_NES_Mouse) - Mouse + +### User 2 device types + +- None - Doesn't disable input. There's no reason to switch to this. +- **[SNES Joypad](http://nintendo.wikia.com/wiki/Super_Nintendo_Entertainment_System_controller)** - Joypad +- [SNES Mouse](https://en.wikipedia.org/wiki/Super_NES_Mouse) - Mouse +- [Multitap](http://nintendo.wikia.com/wiki/Super_Multitap) - Joypad - Allows for up to five players to play together in multitap games. +- [SuperScope](https://en.wikipedia.org/wiki/Super_Scope) - Lightgun +- [Justifier](https://en.wikipedia.org/wiki/Konami_Justifier) - Lightgun +- [Justifiers](https://en.wikipedia.org/wiki/Konami_Justifier) - Lightgun - Two Justifiers are plugged in, for two-player Justifier games. + +### Multitap support + +Activating multitap support in compatible games can be configured by switching to the [Multitap device type](https://docs.libretro.com/library/snes9x_2010#controllers) for User 2. + +### Controller tables + +#### Joypad + +![](images/Controllers/snes.png) + +| User 1 - 5 Remap descriptors | RetroPad Inputs | +|------------------------------|----------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Y | ![](images/RetroPad/Retro_Y_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| X | ![](images/RetroPad/Retro_X_Round.png) | +| L | ![](images/RetroPad/Retro_L1.png) | +| R | ![](images/RetroPad/Retro_R1.png) | + +#### Mouse + +| RetroMouse Inputs | SNES Mouse | +|-----------------------------------------------------|-------------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Mouse Cursor | SNES Mouse Cursor | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | SNES Mouse Left Button | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | SNES Mouse Right Button | + +#### Lightgun + +| RetroLightgun Inputs | SuperScope | Justifier(s) | +|------------------------------------------------------|----------------------|---------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Gun Crosshair | SuperScope Crosshair | Justifier Crosshair | +| Gun Trigger | SuperScope Trigger | Justifier Trigger | +| Gun Aux A | SuperScope Cursor | | +| Gun Aux B | SuperScope Turbo | Justifier Offscreen | +| Gun Start | SuperScope Pause | Justifier Start | + +## Compatibility + +| Game | Issue | +|--------------------------------------------------|---------------------------------------------------------------------------------------| +| A.S.P. Air Strike Patrol | The shadow below the aircraft is missing. Glitched graphics on the briefing screens. | +| Bass Masters Classic - Pro Edition | Only shows a black screen. | +| Doom | Colored dots appear during gameplay. | +| F-1 Grand Prix | Glitched HUD display. | +| F1 ROC II – Race of Champions | Crashes when starting a race. | +| Funaki Masakatsu Hybrid Wrestler – Tougi Denshou | Corrupted graphics on the Pancrase logo screen. | +| Hayazashi Nidan Morita Shougi 2 | Matches won’t start. | +| Madden NFL 96 | Only shows a black screen. | +| Masters New – Harukanaru Augusta 3 | Graphical corruption during gameplay. | +| Mecarobot Golf | The ground "wobbles" during gameplay. | +| Mechwarrior 3050 | Black screen after the Activision logo. | +| Secret of Evermore (PAL) | Randomly freezes when the background music changes. | +| Sink or Swim | Sometimes the levels are filled with water instantly. | +| Speedy Gonzales: Los Gatos Bandidos | Freezes when pressing a switch in the last level. | +| Super Bomberman 3 | Freezes after about 20 seconds in the Battle mode menu. | +| Super Bomberman 5 | Title screen flickers if the opening cinematic isn’t skipped. | + +## External Links + +- [Snes9x 2010/Next Web Player](https://toadking.com/retroarch/snes9x-next.html) +- [Libretro Snes9x 2010 Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/snes9x2010_libretro.info) +- [Libretro Snes9x 2010 Github Repository](https://github.com/libretro/snes9x2010) +- [Report Libretro Snes9x 2010 Core Issues Here](https://github.com/libretro/snes9x2010/issues) + +### See also + +#### Nintendo - Sufami Turbo + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) + +#### Nintendo - Super Nintendo Entertainment System (+ Hacks) + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (higan Accuracy)](https://docs.libretro.com/library/higan_accuracy/) +- [Nintendo - SNES / Famicom (nSide Balanced)](https://docs.libretro.com/library/nside_balanced/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) \ No newline at end of file diff --git a/docs/library/stella.md b/docs/library/stella.md new file mode 100644 index 00000000..c7d80404 --- /dev/null +++ b/docs/library/stella.md @@ -0,0 +1,128 @@ +# Atari - 2600 (Stella) + +## Background + +Stella is a multi-platform Atari 2600 VCS emulator. + +### Author/License + +The Stella core has been authored by + +- Stephen Anthony +- Bradford Mott +- Eckhard Stolberg +- Brian Watson + +The Stella core is licensed under + +- [GPLv2](https://github.com/stella-emu/stella/blob/master/License.txt) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Stella core have the following file extensions: + +- .a26 +- .bin + +## Databases + +RetroArch database(s) that are associated with the Stella core: + +- [Atari - 2600](https://github.com/libretro/libretro-database/blob/master/rdb/Atari%20-%202600.rdb) + +## Features + +Frontend-level settings or features that the Stella core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✕ | +| RetroAchievements | ✔ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Stella core's internal core name is 'Stella' + +The Stella core saves/loads to/from these directories. + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The Stella core's core provided FPS is (FPS) +- The Stella core's core provided sample rate is 31400 Hz +- The Stella core's core provided aspect ratio is 4/3 + +## Controllers + +The Stella core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 2 device types + +- None - Doesn't disable input. +- **RetroPad** - Joypad - Stay on this +- RetroPad w/Analog - Joypad - There's no reason to switch to this + +### Controller tables + +#### Joypad + +![](images/Controllers/atari_2600.png) + +| User 1 Remap descriptors | RetroPad Inputs | +|--------------------------|----------------------------------------------| +| Fire | ![](images/RetroPad/Retro_B_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Reset | ![](images/RetroPad/Retro_Start.png) | +| Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| Left Difficulty A | ![](images/RetroPad/Retro_L1.png) | +| Right Difficulty A | ![](images/RetroPad/Retro_R1.png) | +| Left Difficulty B | ![](images/RetroPad/Retro_L2.png) | +| Left Difficulty B | ![](images/RetroPad/Retro_R2.png) | +| Color | ![](images/RetroPad/Retro_L3.png) | +| Black/White | ![](images/RetroPad/Retro_R3.png) | + +| User 2 Remap descriptors | RetroPad Inputs | +|--------------------------|----------------------------------------------| +| Fire | ![](images/RetroPad/Retro_B_Round.png) | +| Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| Right | ![](images/RetroPad/Retro_Dpad_Right.png) | + +## External Links + +- [Official Stella Website](https://stella-emu.github.io/) +- [Official Stella Github Repository](https://github.com/stella-emu/stella) +- [Libretro Stella Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/stella_libretro.info) +- [Libretro Stella Github Repository](https://github.com/libretro/stella-libretro) +- [Report Libretro Stella Core Issues Here](https://github.com/libretro/stella-libretro/issues) \ No newline at end of file diff --git a/docs/library/tgb_dual.md b/docs/library/tgb_dual.md new file mode 100644 index 00000000..7f6d5aeb --- /dev/null +++ b/docs/library/tgb_dual.md @@ -0,0 +1,169 @@ +# Nintendo - Game Boy / Color (TGB Dual) + +## Background + +TGB Dual is an open source (GPLv2) GB/GBC emulator with game link cable support. + +### Author/License + +The TGB Dual core has been authored by + +- GIGO +- Hii + +The TGB Dual core is licensed under + +- [GPLv2](https://github.com/libretro/tgbdual-libretro/blob/master/docs/COPYING-2.0.txt) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the TGB Dual core have the following file extensions: + +- .gb +- .gbc +- .sgb + +## Databases + +RetroArch database(s) that are associated with the TGB Dual core: + +- [Nintendo - Game Boy](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Game%20Boy.rdb) +- [Nintendo - Game Boy Color](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Game%20Boy%20Color.rdb) + +## Features + +Frontend-level settings or features that the TGB Dual core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✔ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The TGB Dual core's internal core name is 'TGB Dual' + +The TGB Dual core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) +- 'content-name'.rtc (Real time clock save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The TGB Dual core's core provided FPS is 59.7275005696 +- The TGB Dual core's core provided sample rate is 44100 Hz +- The TGB dual core's core provided aspect ratio is (Ratio) + +## Core options + +The TGB Dual core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **GB Link Enable (restart)** [tgbdual_gblink_enable] (**disabled**|enabled) + + Emulates two Game Boy units side by side for multiplayer support. + +??? note "*GB Link Enable - Enabled*" + ![](images\Cores\tgb_dual\link.png) + +- **Screen placement** [tgbdual_screen_placement] (**horizontal**|vertical) + + Switches the screen layout for multiplayer support. + +??? note "*Horizontal*" + ![](images\Cores\tgb_dual\horiz.png) + +??? note "*Vertical*" + ![](images\Cores\tgb_dual\vert.png) + +- **Switch player screens** [tgbdual_switch_screens] (**normal**|switched) + + Switches the player screens for multiplayer support. + +- **Show player screens** [tgbdual_single_screen_mp] (**both players**|player 1 only|player 2 only) + + Displays the selected player screens for multiplayer support. + +## Controllers + +The TGB Dual core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 2 device types + +- None - Doesn't disable input. There's no reason to switch to this. +- **RetroPad** - Joypad - Stay on this. +- RetroPad - Joypad - Same as RetroPad. There's no reason to switch to this. + +### Controller tables + +#### Joypad + +![](images/Controllers/gb.png) + +| User 1 - 2 Remap descriptors | RetroPad Inputs | +|------------------------------|-------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| Next Audio Mode | ![](images/RetroPad/Retro_L1.png) | +| Prev Audio Mode | ![](images/RetroPad/Retro_R1.png) | + +## Compatibility + +Awaiting description. + +## External Links + +- [Official TGB Dual Website](http://gigo.retrogames.com/download.html#tgb-dual) +- [Official TGB Dual SDL port Website](http://shinh.skr.jp/tgbdualsdl/) +- [Libretro TGB Dual Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/tgbdual_libretro.info) +- [Libretro TGB Dual Github Repository](https://github.com/libretro/tgbdual-libretro) +- [Report Libretro TGB Dual Core Issues Here](https://github.com/libretro/tgbdual-libretro/issues) + +### See also + +#### Nintendo - Game Boy (+ Color) + +- [Nintendo - Game Boy / Color (Emux GB)](https://docs.libretro.com/library/emux_gb/) +- [Nintendo - Game Boy / Color (Gambatte)](https://docs.libretro.com/library/gambatte/) +- [Nintendo - Game Boy / Color (Gearboy)](https://docs.libretro.com/library/gearboy/) +- [Nintendo - Game Boy / Color (SameBoy)](https://docs.libretro.com/library/sameboy/) +- [Nintendo - Game Boy Advance (mGBA)](https://docs.libretro.com/library/mgba/) +- [Nintendo - SNES / Famicom (higan Accuracy)](https://docs.libretro.com/library/higan_accuracy/) +- [Nintendo - SNES / Famicom (nSide Balanced)](https://docs.libretro.com/library/nside_balanced/) \ No newline at end of file diff --git a/docs/library/tyrquake.md b/docs/library/tyrquake.md new file mode 100644 index 00000000..baa7fd41 --- /dev/null +++ b/docs/library/tyrquake.md @@ -0,0 +1,274 @@ +# Quake 1 (TyrQuake) + +## Contribute to this documentation + +In order to propose improvements to this document, [visit it's corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/tyrquake.md). Changes are proposed using "Pull Requests." + +## Background + +Libretro port of Tyrquake (Quake 1 engine) + +### How to get and install the TyrQuake core: + +1. Start up RetroArch. Inside the main menu, go to 'Online Updater'. + +2. Just to make sure we have the latest info files, select 'Update Core Info FIles'. Wait until this is done. Then, select 'Core Updater'. + +3. Browse through the list and select 'Quake 1 (TyrQuake)'. + +After this has finished downloading, the core should now be ready for use! + +#### How to play (after installation): + +1. Go back to RetroArch's main menu screen. Select 'Load Content'. + +2. Browse to the folder that contains the content you want to run. + +3. Select the content that you want to run. + +4. If you are asked which core to select, choose 'Quake 1 (TyrQuake)'. + +The game should now start running! + +### Authors + +- Kevin Shanahan (Tyrann) + +## See also + +- [Doom (PrBoom)](https://docs.libretro.com/library/prboom/) - Shared original developers. + +## License + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +- [GPLv2](https://github.com/libretro/tyrquake/blob/master/gnu.txt) + +## Extensions + +Content that can be loaded by the TyrQuake core have the following file extensions: + +- .pak + +## Databases + +RetroArch database(s) that are associated with the TyrQuake core: + +- [Quake1](https://github.com/libretro/libretro-database/blob/master/rdb/Quake1.rdb) + +## Features + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✔ | +| Native Cheats | ✔ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✔ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| Softpatching | ✕ | +| Disk Control | ✕ | +| Username | ✔ | +| Crop Overscan | ✕ | + +### Saves/States + +The TyrQuake core's directory name is 'TyrQuake' + +TyrQuake settings are saved/loaded to and from where the loaded content is. + +- config.cfg + +Save data is saved/loaded to and from where the loaded content is. + +- .sav (Save) + +Content directory + +- .sav (Save) +- config.cfg (Config) + +### Core provided aspect ratio + +TyrQuake's core provided aspect ratio is 4/3. + +### Libretro specific features + +- Runs at fixed frametimes +- Software bilinear filtering +- Software Half-Life/Quake 2-style colored lighting RGBA +- Chasecam / thirdperson view mode +- Interpolated animation applied on the keyframe animation for smooth animation + +### Expansion paks + +Awaiting description. + +### Rumble + +Rumble only works when the joypad input driver being used has rumble function implementation (e.g. **Xinput**). + +### Username + +The TyrQuake core uses RetroArch's username setting for the in-game player name. + +### config.cfg + +TyrQuake's internal game settings can be found in config.cfg + +## Core options + +The TyrQuake core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +- **Colored lightning (restart)** (**Off**/On): Awaiting description. + +- **Resolution (restart)** (**320x200**/640x400/960x600/1280x800/1600x1000/1920x1200/320x240/320x480/360x200/360x240/360x400/360x480/400x224/480x272/512x224/512x240/512x384/512x512/640x224/640x240/640x448/640x480/720x576/800x480/800x600/960x720/1024x768/1280x720/1600x900/1920x1080): Configure the resolution. + +??? note "Resolution - 320x240" + ![](images\Cores\tyrquake\320x240.png) + +??? note "Resolution - 1920x1080" + ![](images\Cores\tyrquake\1920x1080.png) + +- **Rumble** (**Off**/On): Enables or disables rumble functionality. Check the [Rumble section](https://docs.libretro.com/library/tyrquake/#rumble) for more information. + +- **Change retropad layout** (**1: New layout**/2: Old layout): Configure the 'RetroPad' device type's layout. Look at the [RetroPad tables](https://docs.libretro.com/library/tyrquake/joypad-and-analog-device-type-table) below for more information. + +## Controllers + +### Device types + +The TyrQuake core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +#### User 1 device types + +- **RetroPad** - Joypad - Can be configured to use the new layout or the old layout by the ['Change retropad layout' core option](https://docs.libretro.com/library/tyrquake/core-options). +- **RetroKeyboard/Mouse** - Keyboard/Mouse - Allows for keyboard and mouse usage. + +### Controller tables + +#### Joypad and analog device type table + +| User 1 input descriptors (RetroPad (1: New layout)) | ** | RetroPad (1: New layout) | +|-----------------------------------------------------|----------------------------------------------|-----------------------------| +| Look right | ![](images/RetroPad/Retro_B_Round.png) | Cancel/Look right | +| Look up | ![](images/RetroPad/Retro_Y_Round.png) | Look up | +| Toggle console | ![](images/RetroPad/Retro_Select.png) | Toggle console | +| Menu | ![](images/RetroPad/Retro_Start.png) | Menu | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | Up/Move forwards | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | Down/Move backwards | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | Left/Move left | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | Right/Move right | +| Look down | ![](images/RetroPad/Retro_A_Round.png) | Confirm/Look down | +| Look left | ![](images/RetroPad/Retro_X_Round.png) | Look left | +| Previous weapon | ![](images/RetroPad/Retro_L1.png) | Previous weapon | +| Next weapon | ![](images/RetroPad/Retro_R1.png) | Next weapon | +| Jump | ![](images/RetroPad/Retro_L2.png) | Jump | +| Fire | ![](images/RetroPad/Retro_R2.png) | Fire | +| Toggle run mode | ![](images/RetroPad/Retro_L3.png) | Toggle run mode (for D-Pad) | +| Swim up | ![](images/RetroPad/Retro_R3.png) | Swim up | +| ** | ![](images/RetroPad/Retro_Left_Stick.png) X | Move left/right | +| ** | ![](images/RetroPad/Retro_Left_Stick.png) Y | Move backwards/forwards | +| ** | ![](images/RetroPad/Retro_Right_Stick.png) X | Look left/right | +| ** | ![](images/RetroPad/Retro_Right_Stick.png) Y | Look up/down | + +| User 1 input descriptors (RetroPad (2: Old layout)) | ** | RetroPad (2: Old layout) | +|-----------------------------------------------------|----------------------------------------------|-----------------------------| +| Jump | ![](images/RetroPad/Retro_B_Round.png) | Cancel/Jump | +| Fire | ![](images/RetroPad/Retro_Y_Round.png) | Fire | +| Toggle Run Mode | ![](images/RetroPad/Retro_Select.png) | Toggle run mode (for D-Pad) | +| Menu | ![](images/RetroPad/Retro_Start.png) | Menu | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | Up/Move forwards | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | Down/Move backwards | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | Left/Look left | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | Right/Look right | +| Cycle Weapon | ![](images/RetroPad/Retro_A_Round.png) | Confirm/Look down | +| Freelook | ![](images/RetroPad/Retro_X_Round.png) | Freelook (for D-Pad) | +| Strafe Left | ![](images/RetroPad/Retro_L1.png) | Strafe Left | +| Strafe Right | ![](images/RetroPad/Retro_R1.png) | Strafe Right | +| Look Up | ![](images/RetroPad/Retro_L2.png) | Look Up | +| Look Down | ![](images/RetroPad/Retro_R2.png) | Look Down | +| Swim down | ![](images/RetroPad/Retro_L3.png) | Swim down | +| Swim up | ![](images/RetroPad/Retro_R3.png) | Swim up | +| ** | ![](images/RetroPad/Retro_Left_Stick.png) X | Move left/right | +| ** | ![](images/RetroPad/Retro_Left_Stick.png) Y | Move backwards/forwards | +| ** | ![](images/RetroPad/Retro_Right_Stick.png) X | Look left/right | +| ** | ![](images/RetroPad/Retro_Right_Stick.png) Y | Look up/down | + +#### Keyboard device type table + +| User 1 input descriptors | ** | RetroKeyboard/Mouse | +|-------------------------------|-------------------------------|---------------------| +| ** | Keyboard Tab | Show scores | +| ** | Keyboard Pause | Pause | +| ** | Keyboard Escape | Menu | +| ** | Keyboard Space | Jump | +| ** | Keyboard + | Size up | +| ** | Keyboard , | Move left | +| ** | Keyboard - | Size down | +| ** | Keyboard . | Move right | +| ** | Keyboard / | Next weapon | +| ** | Keyboard 0 | Weapon slot 0 | +| ** | Keyboard 1 | Weapon slot 1 | +| ** | Keyboard 2 | Weapon slot 2 | +| ** | Keyboard 3 | Weapon slot 3 | +| ** | Keyboard 4 | Weapon slot 4 | +| ** | Keyboard 5 | Weapon slot 5 | +| ** | Keyboard 6 | Weapon slot 6 | +| ** | Keyboard 7 | Weapon slot 7 | +| ** | Keyboard 8 | Weapon slot 8 | +| ** | Keyboard = | Size up | +| ** | Keyboard \ | Mouse look | +| ** | Keyboard a | Look up | +| ** | Keyboard c | Move down | +| ** | Keyboard d | Move up | +| ** | Keyboard t | Say | +| ** | Keyboard z | Look down | +| ** | Keyboard Delete | Look down | +| ** | Keyboard Numpad Enter | Jump | +| ** | Keyboard Up | Move forwards | +| ** | Keyboard Down | Move backwards | +| ** | Keyboard Right | Look right | +| ** | Keyboard Left | Look left | +| ** | Keyboard Insert | Keyboard look | +| ** | Keyboard End | Center view | +| ** | Keyboard Page Down | Look up | +| ** | Keyboard F1 | Help | +| ** | Keyboard F2 | Save menu | +| ** | Keyboard F3 | Load menu | +| ** | Keyboard F4 | Options menu | +| ** | Keyboard F5 | Multiplayer menu | +| ** | Keyboard F6 | Quick save | +| ** | Keyboard F9 | Quick load | +| ** | Keyboard F10 | Quit | +| ** | Keyboard F11 | Zoom in | +| ** | Keyboard F12 | Screenshot | +| ** | Keyboard ~ | Toggle console | + +#### Mouse device type table + +| User # input descriptors | ** | RetroKeyboard/Mouse | +|-------------------------------|------------------------------------------|-------------------- | +| ** | ![](images/RetroMouse/Retro_Mouse.png) | Look | +| ** | ![](images/RetroMouse/Retro_Left.png) | Fire | +| ** | ![](images/RetroMouse/Retro_Right.png) | Move forwards | + +## External Links + +- [Libretro TyrQuake Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/tyrquake_libretro.info) +- [Libretro TyrQuake Github Repository](https://github.com/libretro/tyrquake) +- [Report Libretro TyrQuake Core Issues Here](https://github.com/libretro/tyrquake/issues) +- [Official TyrQuake Website](http://disenchant.net/tyrquake/) +- [Official TyrQuake Git Repository](http://disenchant.net/git/?p=tyrquake) \ No newline at end of file diff --git a/docs/library/uzem.md b/docs/library/uzem.md new file mode 100644 index 00000000..a10306c7 --- /dev/null +++ b/docs/library/uzem.md @@ -0,0 +1,113 @@ +# Uzebox (Uzem) + +**[This core currently doesn't start](https://github.com/libretro/libretro-uzem/issues/2) so this documentation will remain incomplete until it is fixed.** + +**[This core currently doesn't start](https://github.com/libretro/libretro-uzem/issues/2) so this documentation will remain incomplete until it is fixed.** + +**[This core currently doesn't start](https://github.com/libretro/libretro-uzem/issues/2) so this documentation will remain incomplete until it is fixed.** + +## Contribute to this documentation + +**In order to propose improvements to this document, [visit its corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/uzem.md). Changes are proposed using "Pull Requests."** + +**There is a To-Do list for libretro/docs [here](https://docs.libretro.com/docguide/todo/)** + +**You can submit suggestions or issues regarding documentation at the [libretro/docs issue tracker](https://github.com/libretro/docs/issues) or in our [forum thread](https://forums.libretro.com/t/wip-adding-pages-to-documentation-site/10078/).** + +## Background + +Uzem is the official emulator for the Uzebox (A retro-minimalist 8-bit open source game console). + +The Uzebox is a minimal system based on a AVR ATmega644 microcontroller. + +### Why use this core? + +Awaiting description. + +### How to get and install the Uzem core: + +- Start up RetroArch. Inside the main menu, go to 'Online Updater'. + +
![](images\Cores\all\updater.png)
+ +- Just to make sure we have the latest info files, select 'Update Core Info FIles'. Wait until this is done. Then, select 'Core Updater'. + +
![](images\Cores\all\info.png)
+ +- Browse through the list and select 'Uzebox (Uzem)'. + +After this has finished downloading, the core should now be ready for use! + +#### How to start (after installation): + +- Go back to RetroArch's main menu screen. Select 'Load Content'. + +
![](images\Cores\all\load.png)
+ +- Browse to the folder that contains the content you want to run. + +- Select the content that you want to run. + +- If you are asked which core to select, choose 'Uzebox (Uzem)'. + +The content should now start running! + +### Authors + +- Awaiting description. + +## License + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +The Uzem core is licensed under + +[GPLv3](https://github.com/Uzebox/uzebox/blob/master/gpl-3.0.txt) + +## Extensions + +Content that can be loaded by the Uzem core have the following file extensions: + +- uze + +## Databases + +RetroArch database(s) that are associated with the Uzem core: + +- [Uzebox](https://github.com/libretro/libretro-database/blob/master/rdb/Uzebox.rdb) + +## Features + +Awaiting description. + +### Directories + +Awaiting description. + +### Geometry and timing + +Awaiting description. + +### Usage + +Awaiting description. + +## Core options + +Awaiting description. + +## Controllers + +Awaiting description. + +## Compatibility + +Awaiting description. + +## External Links + +- [Libretro Uzem Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/uzem_libretro.info) +- [Libretro Uzem Github Repository](https://github.com/libretro/libretro-uzem) +- [Report Libretro Uzem Core Issues Here](https://github.com/libretro/libretro-uzem/issues) +- [Official Uzem Website](http://belogic.com/uzebox/index.asp) +- [Official Uzem Github Repository](https://github.com/Uzebox/uzebox) \ No newline at end of file diff --git a/docs/library/vba_m.md b/docs/library/vba_m.md new file mode 100644 index 00000000..b5e19878 --- /dev/null +++ b/docs/library/vba_m.md @@ -0,0 +1,181 @@ +# Nintendo - Game Boy Advance (VBA-M) + +## Background + +VBA-M is a Game Boy Advance emulator with the goal to improve upon VisualBoyAdvance by integrating the best features from the various builds floating around. + +### Author/License + +The VBA-M core has been authored by + +- Forgotten +- VBA-M Team + +The VBA-M core is licensed under + +- [GPLv2](https://github.com/libretro/vbam-libretro/blob/master/doc/gpl.txt) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the VBA-M core have the following file extensions: + +- .gba + +## Databases + +RetroArch database(s) that are associated with the VBA-M core: + +- [Nintendo - Game Boy Advance](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Game%20Boy%20Advance.rdb) + +## Features + +Frontend-level settings or features that the VBA-M core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ (not link-cable emulation) | +| Core Options | ✔ | +| RetroAchievements | ✔ | +| RetroArch Cheats | ✔ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✔ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The VBA-M core's directory name is 'VBA-M' + +The VBA-M core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The VBA-M core's core provided FPS is 59.727 +- The VBA-M core's core provided sample rate is 32000 Hz +- The VBA-M core's core provided aspect ratio is 3/2 + +## Core options + +The VBA-M core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Show layer 1** [vbam_layer_1] (Off/**On**) + + Self-explanatory. + +- **Show layer 2** [vbam_layer_2] (Off/**On**) + + Self-explanatory. + +- **Show layer 3** [vbam_layer_3] (Off/**On**) + + Self-explanatory. + +- **Show layer 4** [vbam_layer_4] (Off/**On**) + + Self-explanatory. + +- **Show sprite layer** [vbam_layer_5] (Off/**On**) + + Self-explanatory. + +- **Show window layer 1** [vbam_layer_6] (Off/**On**) + + Self-explanatory. + +- **Show window layer 2** [vbam_layer_7] (Off/**On**) + + Self-explanatory. + +- **Show sprite window layer** [vbam_layer_8] (Off/**On**) + + Self-explanatory. + +## Controllers + +The VBA-M core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Input disabled. +- **RetroPad** - Joypad +- GBA Joypad - Joypad +- Alt Joypad YB - Joypad +- Alt Joypad AB - Joypad + +### Controller tables + +#### Joypad + +![](images/Controllers/gba.png) + +| User 1 Remap descriptors | RetroPad Inputs | RetroPad device type | GBA Joypad | Alt Joypad YB | Alt Joypad AB | +|--------------------------|----------------------------------------------|----------------------|-------------|---------------|---------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | B | B | A | A | +| | ![](images/RetroPad/Retro_Y_Round.png) | | | B | | +| Select | ![](images/RetroPad/Retro_Select.png) | Select | Select | Select | Select | +| Start | ![](images/RetroPad/Retro_Start.png) | Start | Start | Start | Start | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | D-Pad Up | D-Pad Up | D-Pad Up | D-Pad Up | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | D-Pad Down | D-Pad Down | D-Pad Down | D-Pad Down | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | D-Pad Left | D-Pad Left | D-Pad Left | D-Pad Left | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | D-Pad Right | D-Pad Right | D-Pad Right | D-Pad Right | +| A | ![](images/RetroPad/Retro_A_Round.png) | A | A | | B | +| L | ![](images/RetroPad/Retro_L1.png) | L | L | L | L | +| R | ![](images/RetroPad/Retro_R1.png) | R | R | R | R | + +## Compatibility + +| Game | Issue | +|---------------------------------|----------------------------------| +| Boktai Trilogy | The solar sensor is not emulated | +| Digimon Racing (Europe) | Freezes during the intro. This can be avoided by enabling linking in the standalone VBA-M release | +| Koro Koro Puzzle Happy Panechu! | The tilt sensor is not emulated | +| Phantasy Star Collection | Digital Eclipse logo sound effect is missing. Phantasy Star 1 flickers | +| WarioWare: Twisted! | The tilt sensor is not emulated | +| Yoshi’s Universal Gravitation | The tilt sensor is not emulated | + +## External Links + +- [Official VBA-M Website](http://vba-m.com/) +- [Official VBA-M Github Repository](https://github.com/visualboyadvance-m/visualboyadvance-m) +- [Libretro VBA-M Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/vbam_libretro.info) +- [Libretro VBA-M Github Repository](https://github.com/libretro/vbam-libretro) +- [Report Libretro VBA-M Core Issues Here](https://github.com/libretro/vbam-libretro/issues) + +### See also + +#### Nintendo - Game Boy Advance + +- [Nintendo - Game Boy Advance (Beetle GBA)](https://docs.libretro.com/library/beetle_gba/) +- [Nintendo - Game Boy Advance (gpSP)](https://docs.libretro.com/library/gpsp/) +- [Nintendo - Game Boy Advance (Meteor)](https://docs.libretro.com/library/meteor/) +- [Nintendo - Game Boy Advance (mGBA)](https://docs.libretro.com/library/mgba/) +- [Nintendo - Game Boy Advance (TempGBA)](https://docs.libretro.com/library/tempgba/) +- [Nintendo - Game Boy Advance (VBA Next)](https://docs.libretro.com/library/vba_next/) \ No newline at end of file diff --git a/docs/library/vba_next.md b/docs/library/vba_next.md new file mode 100644 index 00000000..ff221c64 --- /dev/null +++ b/docs/library/vba_next.md @@ -0,0 +1,174 @@ +# Nintendo - Game Boy Advance (VBA Next) + +## Background + +VBA Next is a Game Boy Advance emulator based on VBA-M 2011 with backported patches for performance and compatibility improvements. + +### Author/License + +The VBA Next core has been authored by + +- Forgotten +- VBA-M Team +- Squarepusher + +The VBA Next core is licensed under + +- [GPLv2](https://github.com/libretro/vba-next/blob/master/LICENSE) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the VBA Next core have the following file extensions: + +- .gba + +## Databases + +RetroArch database(s) that are associated with the VBA Next core: + +- [Nintendo - Game Boy Advance](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Game%20Boy%20Advance.rdb) + +## BIOS + +Required or optional firmware files go in the frontend's system directory. + +!!! warning + In order for the Game Boy Advance BIOS to be used, the 'Use bios if available' core option must be set to On. + +| Filename | Description | md5sum | +|:-------------:|:---------------------------------:|:--------------------------------:| +| gba_bios.bin | Game Boy Advance Image - Optional | a860e8c0b6d573d191e4ec7db1b1e4f6 | + +## Features + +Frontend-level settings or features that the VBA Next core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✔ (not link-cable emulation) | +| Core Options | ✔ | +| RetroAchievements | ✔ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✔ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The VBA Next core's directory name is 'VBA Next' + +The VBA Next core saves/loads to/from these directories. + +**Frontend's Save directory** + +- 'content-name'.srm (Cartridge battery save) + +**Frontend's State directory** + +- 'content-name'.state# (State) + +### Geometry and timing + +- The VBA Next core's core provided FPS is 59.727 +- The VBA Next core's core provided sample rate is 32000 Hz +- The VBA Next core's core provided aspect ratio is 3/2 + +## Core options + +The VBA Next core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Use bios if available (Restart)** [vbanext_bios] (Off/**On**) + + Self-explanatory. Look at the [BIOS section](https://docs.libretro.com/library/vba_next/#bios) for more information. + +??? note "Use bios if available - On" + ![](images\Cores\vba_next\bios.png) + +## Controllers + +The VBA Next core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input +- **RetroPad** - Joypad +- RetroPad w/Analog - Joypad - There's no reason to switch to this. + +### Controller tables + +#### Joypad + +![](images/Controllers/gba.png) + +| User 1 Remap descriptors | RetroPad Inputs | +|--------------------------|-------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| Select | ![](images/RetroPad/Retro_Select.png) | +| Start | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| L | ![](images/RetroPad/Retro_X_Round.png) | +| R | ![](images/RetroPad/Retro_L1.png) | + +## Compatibility + +| Game | Issue | +|---------------------------------------------------|----------------------------------------------------------------------------------------------------| +| Boktai Trilogy | The solar sensor is not emulated. | +| Croket! 2 – Yami no Bank to Banqueen | Heavy slowdown when approaching the snowman in the beginning. | +| Digimon Racing (Europe) | Freezes during the intro. This can be avoided by enabling linking in the standalone VBA-M release. | +| Drome Racers | Only shows a black screen after the THQ logo. | +| Hamtaro: Ham-Ham Games | Locks up if the opening cinematics aren’t skipped. | +| Hot Wheels - Stunt Track Challenge | Resets itself when trying to go in-game. | +| Jurassic Park III: Park Builder | Unreadable glitched text. | +| Koro Koro Puzzle Happy Panechu! | The tilt sensor is not emulated. | +| Moto GP | Black screen, loud screeching noise. | +| Phantasy Star Collection | Digital Eclipse logo sound effect is missing. Phantasy Star 1 flickers. | +| SSX 3 | Graphics glitches. Seems pitch-related. (1) | +| Super Mario Advance 2: Super Mario World (Europe) | The program crashes during the final fight, when Bowser approaches (zoom mode 7) | +| WarioWare: Twisted! | The tilt sensor is not emulated. | +| Yoshi’s Universal Gravitation | The tilt sensor is not emulated. | + +??? note "1" + ![](images/Cores/vba_next/ssx.png) + +## External Links + +- [Libretro VBA Next Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/vba_next_libretro.info) +- [Libretro VBA Next Github Repository](https://github.com/libretro/vba-next) +- [Report Libretro VBA Next Core Issues Here](https://github.com/libretro/vba-next/issues) + +### See also + +#### Nintendo - Game Boy Advance + +- [Nintendo - Game Boy Advance (Beetle GBA)](https://docs.libretro.com/library/beetle_gba/) +- [Nintendo - Game Boy Advance (gpSP)](https://docs.libretro.com/library/gpsp/) +- [Nintendo - Game Boy Advance (Meteor)](https://docs.libretro.com/library/meteor/) +- [Nintendo - Game Boy Advance (mGBA)](https://docs.libretro.com/library/mgba/) +- [Nintendo - Game Boy Advance (TempGBA)](https://docs.libretro.com/library/tempgba/) +- [Nintendo - Game Boy Advance (VBA-M)](https://docs.libretro.com/library/vba_m/) \ No newline at end of file diff --git a/docs/library/vecx.md b/docs/library/vecx.md new file mode 100644 index 00000000..898c405c --- /dev/null +++ b/docs/library/vecx.md @@ -0,0 +1,90 @@ +# Vectrex (vecx) + +## Background + +vecx is an emulator for the vector-display based Vectrex video game console. + +Author(s): Valavan Manohararajah|John Hawthorn|Nikita Zimin|Demeth + +## Contribute to this documentation + +In order to propose improvements to this document, [visit it's corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/vecx.md). Changes are proposed using "Pull Requests." + +## License + +GPLv3 + +## Extensions + +bin|vec + +## BIOS + +The vecx core does not feature BIOS use. + +## Features + +| Feature | Supported | +|-------------------|:---------:| +| Saves | ✔ | +| States | ✔ | +| Rewind | ✔ | +| Netplay | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controllers | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | + +## Options + +The vecx core has the following options that can be tweaked from the core options menu. The default setting is bolded. + +- **Res Multiplier** (**1**-4) + +??? note "*Res Multiplier - 1*" + ![res_multiplier_1](images\Cores\vecx\res_multiplier_1.png) + +??? note "*Res Multiplier - 4*" + ![res_multiplier_4](images\Cores\vecx\res_multiplier_4.png) + +## Controllers + +The vecx core supports one controller setting: + +* RetroPad + +![vecx_retropad](images\Controllers\vecx_retropad.png) + +| vecx | [RetroPad](RetroPad) | +|-----------|----------------------------------------------------------------| +| 2 | ![RetroPad_B](images/RetroPad/Retro_B_Round.png) | +| 4 | ![RetroPad_Y](images/RetroPad/Retro_Y_Round.png) | +| | ![RetroPad_Select](images/RetroPad/Retro_Select.png) | +| | ![RetroPad_Start](images/RetroPad/Retro_Start.png) | +| D-pad | ![RetroPad_Dpad](images/RetroPad/Retro_Dpad.png) | +| 1 | ![RetroPad_A](images/RetroPad/Retro_A_Round.png) | +| 3 | ![RetroPad_X](images/RetroPad/Retro_X_Round.png) | +| | ![RetroPad_L1](images/RetroPad/Retro_L1.png) | +| | ![RetroPad_R1](images/RetroPad/Retro_R1.png) | +| | ![RetroPad_L2](images/RetroPad/Retro_L2_Temp.png) | +| | ![RetroPad_R2](images/RetroPad/Retro_R2.png) | +| | ![RetroPad_L3](images/RetroPad/Retro_L3.png) | +| | ![RetroPad_R3](images/RetroPad/Retro_R3.png) | +| | ![RetroPad_Left_Stick](images/RetroPad/Retro_Left_Stick.png) | +| | ![RetroPad_Right_Stick](images/RetroPad/Retro_Right_Stick.png) | + +## Compatibility + +Unknown + +## External Links + +* [Libretro Repository](https://github.com/libretro/libretro-vecx) +* [Report Core Issues Here](https://github.com/libretro/libretro-meta/issues) +* [Official GitHub Repository of the SDL port](https://github.com/jhawthorn/vecx) diff --git a/docs/library/vemulator.md b/docs/library/vemulator.md new file mode 100644 index 00000000..f92ab61f --- /dev/null +++ b/docs/library/vemulator.md @@ -0,0 +1,113 @@ +# VeMUlator + +## Background + +This is a port of the Android SEGA Dreamcast VMU emulator "VeMUlator" for libretro, it was translated from Java to C++ and then implemented the libretro.h callbacks. + +### Author/License + +The VeMUlator core has been authored by + +- Mahmoud Jaoune + +The VeMUlator core is licensed under + +- [GPLv3](https://github.com/MJaoune/vemulator-libretro/blob/master/COPYING) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the VeMUlator core have the following file extensions: + +- .vms +- .dci +- .bin + +## Features + +Frontend-level settings or features that the VeMUlator core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | - | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | - | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The VeMUlator core's internal core name is 'VeMUlator' + +### Geometry and timing + +- The VeMUlator core's core provided FPS is 60 +- The VeMUlator core's core provided sample rate is 32768 Hz +- The VeMUlator core's core provided aspect ratio is 3/2 + +## Core options + +The VeMUlator core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Enable flash write (.bin, requires restart)** [enable_flash_write] (**enabled**|disabled) + + Self-explanatory. + +## Controllers + +The VeMUlator core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. There's no reason to switch to this. +- **RetroPad** - Joypad - Stay on this. +- RetroPad w/Analog - Joypad - Same as RetroPad. There's no reason to switch to this. + +### Controller tables + +#### Joypad + +| RetroPad Inputs | VeMUlator core Inputs | +|-------------------------------------------|-----------------------| +| ![](images/RetroPad/Retro_B_Round.png) | B | +| ![](images/RetroPad/Retro_Start.png) | Start | +| ![](images/RetroPad/Retro_Dpad_Up.png) | Up | +| ![](images/RetroPad/Retro_Dpad_Down.png) | Down | +| ![](images/RetroPad/Retro_Dpad_Left.png) | Left | +| ![](images/RetroPad/Retro_Dpad_Right.png) | Right | +| ![](images/RetroPad/Retro_A_Round.png) | A | + +## Compatibility + +Known issues: + +- Timer problems (Mainly T0, due to lack of documentation of the VMU.) +- Sound not being synchronized with the system. + +## External Links + +- [Official/Libretro VeMUlator Github Repository](https://github.com/MJaoune/vemulator-libretro) +- [Libretro VeMUlator Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/vemulator_libretro.info) +- [Report Libretro VeMUlator Core Issues Here](https://github.com/MJaoune/vemulator-libretro/issues) \ No newline at end of file diff --git a/docs/library/video_processor.md b/docs/library/video_processor.md new file mode 100644 index 00000000..29d75578 --- /dev/null +++ b/docs/library/video_processor.md @@ -0,0 +1,87 @@ +# Video Processor + +## Background + +Libretro core for V4L2 capture devices + +The basic idea is this -- plug your legacy console into a capture device and use RetroArch to upscale it and apply shaders to taste. + +#### How to start the Video Processor core: + +- To start the Video Processor core, go to RetroArch's main menu screen. Select 'Load Core', then 'Start Video Processor'. + +The content should now start running! + +### Author/License + +The Video Processor core has been authored by + +- Jared McNeill + +The Video Processor core is licensed under + +- [BSD-2-Clause](https://github.com/jaredmcneill/libretro-v4l2/blob/master/LICENSE) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Features + +Frontend-level settings or features that the Video Processor core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | - | +| Screenshots | - | +| Saves | - | +| States | - | +| Rewind | - | +| Netplay | - | +| Core Options | - | +| RetroAchievements | - | +| RetroArch Cheats | - | +| Native Cheats | - | +| Controls | - | +| Remapping | - | +| Multi-Mouse | - | +| Rumble | - | +| Sensors | - | +| Camera | - | +| Location | - | +| Subsystem | - | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | - | +| Disk Control | - | +| Username | - | +| Language | - | +| Crop Overscan | - | +| LEDs | - | + +### Directories + +The Video Processor core's internal core name is 'V4L2' + +### Geometry and timing + +- The Video Processor core's core provided FPS is (FPS) +- The Video Processor core's core provided sample rate is 48000 Hz +- The Video Processor core's core provided aspect ratio is (Ratio) + +## Usage + +Awaiting description + +## Controllers + +The Video Processor core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User # - # device types + +Awaiting description. + +#### Joypad + +Awaiting description. + +## External Links + +- [Libretro Video Processor Github Repository](https://github.com/libretro/RetroArch/tree/master/cores/libretro-video-processor) +- [Report Libretro Video Processor Core Issues Here](https://github.com/libretro/RetroArch/issues) \ No newline at end of file diff --git a/docs/library/virtual_jaguar.md b/docs/library/virtual_jaguar.md new file mode 100644 index 00000000..5f8d2f07 --- /dev/null +++ b/docs/library/virtual_jaguar.md @@ -0,0 +1,180 @@ +# Atari - Jaguar (Virtual Jaguar) + +## Background + +Virtual Jaguar is a portable Jaguar emulator which is based on the source code of what used to be Potato Emulation. + +### Author/License + +The Virtual Jaguar core has been authored by + +- David Raingeard +- Shamus + +The Virtual Jaguar core is licensed under + +- [GPLv3](https://github.com/libretro/virtualjaguar-libretro/blob/master/docs/GPLv3) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Virtual Jaguar core have the following file extensions: + +- .j64 +- .jag +- .rom +- .abs +- .cof +- .bin +- .prg + +## Databases + +RetroArch database(s) that are associated with the Virtual Jaguar core: + +- [Atari - Jaguar](https://github.com/libretro/libretro-database/blob/master/rdb/Atari%20-%20Jaguar.rdb) + +## Features + +Frontend-level settings or features that the Virtual Jaguar core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✔ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✔ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The Virtual Jaguar core's internal core name is 'Virtual Jaguar' + +The Virtual Jaguar core saves/loads to/from these directories. + +-**Frontend's Home directory** + +- cdrom.eeprom (Save) +- 'Game-CRC'.eeprom (Save) + +### Geometry and timing + +- The Virtual Jaguar core's core provided FPS is 50 for PAL games and 60 for NTSC games. +- The Virtual Jaguar core's core provided sample rate is 48000 Hz +- The Virtual Jaguar core's core provided aspect ratio is 4/3 + +## Core options + +The Virtual Jaguar core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Fast Blitter** [virtualjaguar_usefastblitter] (**disabled**|enabled) + + This option will force Virtual Jaguar to use the older, less compatible yet faster blitter. Some games will not work properly with this option on. + +- **Doom Res Hack** [virtualjaguar_doom_res_hack] (**disabled**|enabled) + + Needed for Doom to run in its correct resolution. + +??? note "*Doom Res Hack - Disabled*" + ![](images\Cores\virtual_jaguar\doom_off.png) + +??? note "*Doom Res Hack - Enabled*" + ![](images\Cores\virtual_jaguar\doom_on.png) + +- **Bios** [virtualjaguar_bios] (**disabled**|enabled) + + Enables bios loading sequence. + +??? note "*Bios - Enabled*" + ![](images\Cores\virtual_jaguar\bios.png) + +- **Pal (Restart)** [virtualjaguar_pal] (**disabled**|enabled) + + NTSC to PAL switch. Setting this to on switches to PAL mode. + +## Controllers + +The Virtual Jaguar core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 - 2 device types + +![](images/Controllers/jaguar.png) + +- None - Doesn't disable input. There's no reason to switch to this. +- **RetroPad** - Joypad - Stay on this. +- RetroPad w/Analog - Joypad - Same as RetroPad. There's no reason to switch to this. + +### Controller tables + +#### Joypad + +| User 1 - 2 Remap descriptors | RetroPad Inputs | +|------------------------------|-------------------------------------------| +| B | ![](images/RetroPad/Retro_B_Round.png) | +| C | ![](images/RetroPad/Retro_Y_Round.png) | +| Pause | ![](images/RetroPad/Retro_Select.png) | +| Option | ![](images/RetroPad/Retro_Start.png) | +| D-Pad Up | ![](images/RetroPad/Retro_Dpad_Up.png) | +| D-Pad Down | ![](images/RetroPad/Retro_Dpad_Down.png) | +| D-Pad Left | ![](images/RetroPad/Retro_Dpad_Left.png) | +| D-Pad Right | ![](images/RetroPad/Retro_Dpad_Right.png) | +| A | ![](images/RetroPad/Retro_A_Round.png) | +| Numpad 0 | ![](images/RetroPad/Retro_X_Round.png) | +| Numpad 1 | ![](images/RetroPad/Retro_L1.png) | +| Numpad 2 | ![](images/RetroPad/Retro_R1.png) | +| Numpad 3 | ![](images/RetroPad/Retro_L2.png) | +| Numpad 4 | ![](images/RetroPad/Retro_R2.png) | +| Numpad 5 | ![](images/RetroPad/Retro_L3.png) | +| Numpad 6 | ![](images/RetroPad/Retro_R3.png) | + +## Compatibility + +A reference compatibility table can be found on the bottom of this [page](https://icculus.org/virtualjaguar/) + +| Game | Issue | +|----------------|---------------------------------------------------------| +| Cybermorph | Graphics glitches. (1) | +| Doom | Enable Doom core option hack for proper graphics pitch. | +| Iron Soldier | Hangs after selecting a stage. | +| Iron Soldier 2 | Hangs after selecting a stage. Audio glitches. | +| Kasumi Ninja | Graphics glitches. Missing background layers (2) | +| Ruiner Pinball | Doesn't boot. | +| Super Burnout | Hangs after selecting a track. | +| Towers II | Heavy flickering. | +| Wolfenstein 3D | Doesn't boot. | + +??? note "(1)" + ![](images\Cores\virtual_jaguar\cyber.png) + +??? note "(2)" + ![](images\Cores\virtual_jaguar\ninja.png) + +## External Links + +- [Official Virtual Jaguar Website](https://icculus.org/virtualjaguar/) +- [Official Virtual Jaguar Git Repository](http://shamusworld.gotdns.org/git/virtualjaguar) +- [Libretro Virtual Jaguar Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/virtualjaguar_libretro.info) +- [Libretro Virtual Jaguar Github Repository](https://github.com/libretro/virtualjaguar-libretro) +- [Report Libretro Virtual Jaguar Core Issues Here](https://github.com/libretro/virtualjaguar-libretro/issues) \ No newline at end of file diff --git a/docs/library/xrick.md b/docs/library/xrick.md new file mode 100644 index 00000000..7b99c033 --- /dev/null +++ b/docs/library/xrick.md @@ -0,0 +1,126 @@ +# Rick Dangerous (XRick) + +## Background + +Xrick is an open source implementation of the game "Rick Dangerous". + +This libretro core is based on BigOrno's [work](http://www.bigorno.net/xrick/). + +#### How to start the XRick core: + +- To start the XRick core, you need to obtain Rick Dangerous' data files. You can do this by going to RetroArch's main menu screen and selecting 'Online Updater'. From there, select 'Content Downloader'. + +
![](images\Cores\all\download.png)
+ +- Select 'Rick Dangerous', then select 'Rick Dangerous.zip'. This should download and extract this file to RetroArch's Downloads directory. + +
![](images\Cores\xrick\xrick.png)
+ +- Go back to RetroArch's main menu screen. Select 'Load Content', then 'Downloads'. + +
![](images\Cores\all\load.png)
+ +
![](images\Cores\all\downloads.png)
+ +- Select the 'xrick' directory, next select 'data.zip'. Then, select Load Archive. + +- If you are asked which core to select, choose 'Rick Dangerous (XRick)'. + +The content should now start running! + +### Author/License + +The XRick core is licensed under + +- [GPLv3](https://github.com/libretro/xrick-libretro/blob/master/README) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the XRick core have the following file extensions: + +- .zip + +## Databases + +RetroArch database(s) that are associated with the XRick core: + +- [Rick Dangerous](https://github.com/libretro/libretro-database/blob/master/rdb/Rick%20Dangerous.rdb) + +## Features + +Frontend-level settings or features that the XRick core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✕ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✕ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The XRick core's internal core name is 'xrick' + +### Geometry and timing + +- The XRick core's core provided FPS is 50 +- The XRick core's core provided sample rate is 22050.0 Hz +- The XRick core's core provided aspect ratio is 4/3 + +## Controllers + +The XRick core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Doesn't disable input. There's no reason to switch to this. +- **RetroPad** - Joypad - Stay on this. +- RetroPad w/Analog - Joypad - Same as RetroPad. There's no reason to switch to this. + +### Controller tables + +#### Joypad + +| RetroPad Inputs | XRick core Inputs | +|-------------------------------------------|-------------------| +| ![](images/RetroPad/Retro_Dpad_Up.png) | Jump | +| ![](images/RetroPad/Retro_Dpad_Down.png) | Crouch | +| ![](images/RetroPad/Retro_Dpad_Left.png) | Left | +| ![](images/RetroPad/Retro_Dpad_Right.png) | Right | +| ![](images/RetroPad/Retro_A_Round.png) | Attack | + +Supported combinations + +- Attack + Left = Stab left using your bayonet +- Attack + Right = Stab right using your bayonet +- Attack + Up = Shoot +- Attack + Down = Drop a bomb + +## External Links + +- [Official XRick Website](http://www.bigorno.net/xrick/) +- [Libretro XRick Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/xrick_libretro.info) +- [Libretro XRick Github Repository](https://github.com/libretro/xrick-libretro) +- [Report Libretro XRick Core Issues Here](https://github.com/libretro/libretro-meta/issues) \ No newline at end of file diff --git a/docs/library/yabause.md b/docs/library/yabause.md new file mode 100644 index 00000000..974310f5 --- /dev/null +++ b/docs/library/yabause.md @@ -0,0 +1,103 @@ +# Sega Saturn (Yabause) + +## Background + +Yabause is an active Sega Saturn emulator that is both open-source and written with portability in mind. The libretro port only supports the software renderer at the moment, which is more accurate but also slower than the GL renderer. + +Author(s): Guillaume Duhammel|Theo Berkau|Anders Montonen + +## Contribute to this documentation + +In order to propose improvements to this document, [visit it's corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/Yabause.md). Changes are proposed using "Pull Requests." + +## License + +GPLv2 + +## Extensions + +bin|cue|iso + +!!! note + Yabause does not support cue files that point to multiple bin files. Convert multi-bin tracks to single-bin tracks for proper operation. + +## BIOS + +| Filename | Description | md5sum | +|:---------------:|:------------------:|:--------------------------------:| +| saturn_bios.bin | Sega Saturn BIOS | af5828fdff51384f99b3c4926be27762 | + +## Features + +| Feature | Supported | +|-------------------|:---------:| +| Saves | ✔ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| RetroAchievements | ✕ | +| RetroArch Cheats | ✔ | +| Native Cheats | ✕ | +| Controllers | ✔ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | + +## Options + +The Yabause core has the following options that can be tweaked from the core options menu. The default setting is bolded. + +- **Frameskip** (**Off**/On): Frames are skipped when the CPU is unable to keep up a stable rate. +- **Force HLE BIOS (Restart)** (Off/**On**): HLE BIOS will be used even when a real BIOS file is present. +- **Addon Cartridge (Restart)** (**none**/1M_ram/4M_ram): Allows switching between the various RAM cartridges released for the system. + +## Controllers + +The Yabause core supports four controller setting(s): + +* Saturn Pad + +![yabause_saturnpad](images\Controllers\yabause_saturnpad.png) + +* Saturn 3D Pad + +![yabause_saturn3dpad](images\Controllers\yabause_saturn3dpad.png) + +* Multitap + Pad + +![yabause_multitap_pad](images\Controllers\yabause_multitap_pad.png) + +* Multitap + 3D Pad + +![yabause_multitap_3dpad](images\Controllers\yabause_yabause_multitap_3dpad.png) + +| Yabause | Saturn Pad | Saturn 3D Pad | +|-------------|----------------------------------------------------------------|---------------| +| A | ![RetroPad_B](images/RetroPad/Retro_B_Round.png) | - | +| X | ![RetroPad_Y](images/RetroPad/Retro_Y_Round.png) | - | +| | ![RetroPad_Select](images/RetroPad/Retro_Select.png) | - | +| Start | ![RetroPad_Start](images/RetroPad/Retro_Start.png) | - | +| D-pad | ![RetroPad_Dpad](images/RetroPad/Retro_Dpad.png) | - | +| B | ![RetroPad_A](images/RetroPad/Retro_A_Round.png) | - | +| Y | ![RetroPad_X](images/RetroPad/Retro_X_Round.png) | - | +| C | ![RetroPad_L1](images/RetroPad/Retro_L1.png) | - | +| Z | ![RetroPad_R1](images/RetroPad/Retro_R1.png) | - | +| L | ![RetroPad_L2](images/RetroPad/Retro_L2_Temp.png) | - | +| R | ![RetroPad_R2](images/RetroPad/Retro_R2.png) | - | +| | ![RetroPad_L3](images/RetroPad/Retro_L3.png) | - | +| | ![RetroPad_R3](images/RetroPad/Retro_R3.png) | - | +| Left Analog | ![RetroPad_Left_Stick](images/RetroPad/Retro_Left_Stick.png) | - | +| | ![RetroPad_Right_Stick](images/RetroPad/Retro_Right_Stick.png) | - | + +## Compatibility + +[Yabause Core Compatibility List](https://wiki.yabause.org/index.php5?title=Compatibility_list) + +## External Links + +* [Libretro Repository](https://github.com/libretro/yabause) +* [Report Core Issues Here](https://github.com/libretro/libretro-meta/issues) +* [Official Website](https://yabause.org/) +* [Official GitHub Repository](https://github.com/Guillaumito/yabause) diff --git a/docs/meta/core_list.md b/docs/meta/core_list.md new file mode 100644 index 00000000..3e197c6d --- /dev/null +++ b/docs/meta/core_list.md @@ -0,0 +1,132 @@ +- 3D Engine +- 4DO +- 2048 +- Atari800 +- Beetle bsnes +- Beetle Cygne +- Beetle GBA +- Beetle Handy +- Beetle NeoPop +- Beetle PC-FX +- Beetle PCE FAST +- Beetle PSX +- Beetle PSX HW +- Beetle Saturn +- Beetle SGX +- Beetle VB +- blueMSX +- bnes +- bsnes-mercury Accuracy +- bsnes-mercury Balanced +- bsnes-mercury Performance +- bsnes Accuracy +- bsnes Balanced +- bsnes C++98 (v085) +- bsnes Performance +- Caprice32 +- ChaiLove +- Citra +- Craft +- CrocoDS +- DeSmuME +- Dinothawr +- Dolphin +- DOSBox +- Dummy Core +- Dungeon Crawl Stone Soup +- EasyRPG +- EightyOne +- Emux CHIP-8 +- Emux GB +- Emux NES +- Emux SMS +- FB Alpha +- FB Alpha 2012 +- FB Alpha 2012 CPS-1 +- FB Alpha 2012 CPS-2 +- FB Alpha 2012 CPS-3 +- FB Alpha 2012 Neo Geo +- FCEUmm +- FFmpeg +- fMSX +- FreeIntv +- FreeJ2ME +- Frodo +- Fuse +- Gambatte +- Game Music Emu +- Gearboy +- Genesis Plus GX +- gpSP +- GW +- Handy +- Hatari +- higan Accuracy +- Imageviewer +- Lutro +- MAME +- MAME 2000 +- MAME 2003 +- MAME 2003 Midway +- MAME 2009 +- MAME 2010 +- MAME 2014 +- MAME 2016 +- melonDS +- Mesen +- MESS 2014 +- Meteor +- mGBA +- mpv +- Mr.Boom +- Mupen64Plus +- Mupen64Plus GLES3 +- Neko Project II +- Neko Project II Kai +- Nestopia UE +- nSide Balanced +- NXEngine +- O2EM +- OpenLara +- P-UAE +- ParaLLEl N64 +- PCem +- PCSX ReARMed +- PCSX ReARMed [Interpreter] +- PicoDrive +- PocketCDG +- PokeMini +- PPSSPP +- PrBoom +- ProSystem +- PX68k +- QuickNES +- Redream +- Reicast +- RemoteJoy +- Remote RetroPad +- SameBoy +- ScummVM +- Snes9x +- Snes9x 2002 +- Snes9x 2005 +- Snes9x 2005 Plus +- Snes9x 2010 +- Stella +- TempGBA +- TGB Dual +- TyrQuake +- UME 2014 +- Uzem +- VBA-M +- VBA Next +- vecx +- VeMUlator +- VICE C64 +- VICE C128 +- VICE PLUS4 +- VICE VIC20 +- Video Processor +- Virtual Jaguar +- XRick +- Yabause \ No newline at end of file diff --git a/docs/meta/core_template.md b/docs/meta/core_template.md new file mode 100644 index 00000000..603e8b7f --- /dev/null +++ b/docs/meta/core_template.md @@ -0,0 +1,523 @@ +# (Title) + +// Copy the display name entry from the core info file and paste it here for the title. +// https://github.com/libretro/libretro-super/tree/master/dist/info + +## Background + +Awaiting description. + +// Put background information for the core here. + +### Requirements +// Optional section. + +Awaiting description. + +// Fill in hardware or software requirements for the core here. + +#### How to start the (Core name) core: +// Optional section. +// This section is for cores that need files from RetroArch's content downloader. + +- To start the (Core name) core, you need to obtain (Core name)'s data files. You can do this by going to RetroArch's main menu screen and selecting 'Online Updater'. From there, select 'Content Downloader'. + +
![](images\Cores\all\download.png)
+ +// Fill in the (Core name). + +- Select '(Content directory name)', then select '(Game filename)'. This should download and extract this file to RetroArch's Downloads directory. + +
![](images\Cores\folder\screenshot_name.png)
+ +// Fill in the (Content directory name) and the (Game filename). + +- Go back to RetroArch's main menu screen. Select 'Load Content', then 'Downloads'. + +
![](images\Cores\all\load.png)
+ +
![](images\Cores\all\downloads.png)
+ +- Select the '(Content directory name)' directory, then select '(Game filename)'. + +// Fill in the (Content directory name) and the (Game filename). + +- If you are asked which core to select, choose '(Title)'. + +// Fill in the title. + +The content should now start running! + +#### How to start the (Core name) core: +// Optional section. +// This section is for cores that don't need any content to be started. + +- To start the (Core name) core, go to RetroArch's main menu screen. Select 'Load Core', then '(Core name)'. + +// Fill in the (Core name). + +- Now, select 'Start Core'. + +The content should now start running! + +### Author/License + +The (Core name) core has been authored by + +- [Author](http://link) + +// Fill in the (Core name) +// Copy the author entry from the core info file and paste it here. Link is optional. +// https://github.com/libretro/libretro-super/tree/master/dist/info + +The (Core name) core is licensed under + +- [license](https://link) + +// Fill in the (Core name) +// Copy the license entry from the core info file and a url to license information and paste it here. +//(https://github.com/libretro/libretro-super/tree/master/dist/info) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions +// Optional section. + +Content that can be loaded by the (Core name) core have the following file extensions: + +// Fill in the (Core name). + +- .(extension) + +// Copy the exntension entry from the core info file and paste it here. +// https://github.com/libretro/libretro-super/tree/master/dist/info) + +## Databases +// Optional section. + +RetroArch database(s) that are associated with the (Core name) core: + +// Fill in the (Core name). + +- [Database name](Database file URL) + +// Copy the database entry from the core info file and paste it here. Also, paste in the link for the database. +// https://github.com/libretro/libretro-super/tree/master/dist/info +// https://github.com/libretro/libretro-database/tree/master/rdb + +## BIOS +// Optional section. + +Required or optional firmware files go in the frontend's system directory. + +| Filename | Description | md5sum | +|:-----------------:|:-------------------------------:|:--------------------------------:| +| bios_filename.bin | Description - Optional/Required | | + +// Copy the firmware information from the core info file and paste it here ( +// https://github.com/libretro/libretro-super/tree/master/dist/info)-- + +## Features + +Frontend-level settings or features that the (Core name) core respects. + +// Fill in the (Core name). + +| Feature | Supported | +|-------------------|:---------:| +| Restart | - | +| Screenshots | - | +| Saves | - | +| States | - | +| Rewind | - | +| Netplay | - | +| Core Options | - | +| RetroAchievements | - | +| RetroArch Cheats | - | +| Native Cheats | - | +| Controls | - | +| Remapping | - | +| Multi-Mouse | - | +| Rumble | - | +| Sensors | - | +| Camera | - | +| Location | - | +| Subsystem | - | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | - | +| Disk Control | - | +| Username | - | +| Language | - | +| Crop Overscan | - | +| LEDs | - | + +// Use ✔ or ✕ +// Leave it as - if unsure. + +### Directories + +The (Core name) core's library name is '(Directory name)' + +// Fill in the (Core name) and the (Directory name). +// The (Directory name) is the name of the directory the core creates in the frontend's save and state directories. + +The (Core name) core saves/loads to/from these directories. + +// Fill in the (Core name). + +-**Frontend's Home directory** + +- . () + +**Frontend's Save directory** + +- . () + +**Frontend's State directory** + +- . () + +**Frontend's System directory** + +- . () + +**Loaded content's directory** + +- . () + +**Appdata directory** + +- . () + +// Add a list of directories/files the core uses. + +### Geometry and timing +// Optional section. + +- The (Core name) core's core provided FPS is (FPS) +- The (Core name) core's core provided sample rate is (Rate) +- The (Core name) core's core provided aspect ratio is (Ratio) + +// Fill in the (Core name) and the FPS, sample rate, aspect ratio info. + +## Usage +// Optional section. +// Explain how to use the core if further explaination is needed. + +## Core options +// Optional section. + +The (Core name) core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +// Fill in the (Core name). + +Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. + +- **Core Option** [option-string] (**Setting1**|Setting2) + + Awaiting description. + +??? note "Core Option - Setting" + ![](images\Cores\folder\screenshot_name.png) + +// Fill in core options. +// Add core option screenshots if needed. + +## Controllers + +The (Core name) core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +// Fill in the (Core name). + +### User # - # device types + +- None - Input disabled. +- **(Device name)** - (Device type) - Optional description. + +// Fill in (Device name). + +// Fill in (Device type) +/// Possible device types +//// None +//// Joypad +//// Analog +//// Keyboard +//// Mouse +//// Lightgun +//// Pointer + +### Other controllers +// Optional section. +// This section is for cores that have controllers that cannot be manually selected through the frontend's Controls menu. + +- (Device name) - (Device type) - Optional description. + +### Rumble support +// Optional section. +// This section is for cores that have rumble support + +Rumble only works in the (Core name) core when + +// Fill in the (Core name). + +- The content being ran has rumble support. +- The frontend being used has rumble support. +- The joypad device being used has rumble support. + +// Explain how to activate rumble. + +### Multitap support +// Optional section. +// This section for cores that have an opton to activate mutlitap in supported games. + +// Explain how to activate multitap. + +### Controller tables + +#### Joypad + +| User # Remap descriptors | RetroPad Inputs | (Device name) Inputs | +|--------------------------|----------------------------------------------|---------------------------| +| Action 1 | ![](images/RetroPad/Retro_B_Round.png) | - | +| Action 2 | ![](images/RetroPad/Retro_Y_Round.png) | - | +| Action 3 | ![](images/RetroPad/Retro_Select.png) | - | +| Action 4 | ![](images/RetroPad/Retro_Start.png) | - | +| Action 5 | ![](images/RetroPad/Retro_Dpad_Up.png) | - | +| Action 6 | ![](images/RetroPad/Retro_Dpad_Down.png) | - | +| Action 7 | ![](images/RetroPad/Retro_Dpad_Left.png) | - | +| Action 8 | ![](images/RetroPad/Retro_Dpad_Right.png) | - | +| Action 9 | ![](images/RetroPad/Retro_A_Round.png) | - | +| Action 10 | ![](images/RetroPad/Retro_X_Round.png) | - | +| Action 11 | ![](images/RetroPad/Retro_L1.png) | - | +| Action 12 | ![](images/RetroPad/Retro_R1.png) | - | +| Action 13 | ![](images/RetroPad/Retro_L2.png) | - | +| Action 14 | ![](images/RetroPad/Retro_R2.png) | - | +| Action 15 | ![](images/RetroPad/Retro_L3.png) | - | +| Action 16 | ![](images/RetroPad/Retro_R3.png) | - | +| Action 17 | ![](images/RetroPad/Retro_Left_Stick.png) X | - | +| Action 18 | ![](images/RetroPad/Retro_Left_Stick.png) Y | - | +| Action 19 | ![](images/RetroPad/Retro_Right_Stick.png) X | - | +| Action 20 | ![](images/RetroPad/Retro_Right_Stick.png) Y | - | + +#### Keyboard + +| RetroKeyboard Inputs | (Device name) Inputs | +|------------------------------|---------------------------| +| Keyboard Backspace | - | +| Keyboard Tab | - | +| Keyboard Clear | - | +| Keyboard Return | - | +| Keyboard Pause | - | +| Keyboard Escape | - | +| Keyboard Space | - | +| Keyboard Exclaim ! | - | +| Keyboard Double Quote " | - | +| Keyboard Hash # | - | +| Keyboard Dollar $ | - | +| Keyboard Ampersand & | - | +| Keyboard Quote ' | - | +| Keyboard Left Parenthesis ( | - | +| Keyboard Right Parenthesis ) | - | +| Keyboard Asterisk * | - | +| Keyboard Plus + | - | +| Keyboard Comma , | - | +| Keyboard Minus - | - | +| Keyboard Period . | - | +| Keyboard Slash / | - | +| Keyboard 0 | - | +| Keyboard 1 | - | +| Keyboard 2 | - | +| Keyboard 3 | - | +| Keyboard 4 | - | +| Keyboard 5 | - | +| Keyboard 6 | - | +| Keyboard 7 | - | +| Keyboard 8 | - | +| Keyboard 9 | - | +| Keyboard Colon : | - | +| Keyboard Semicolon ; | - | +| Keyboard Less than < | - | +| Keyboard Equals = | - | +| Keyboard Greater than > | - | +| Keyboard Question ? | - | +| Keyboard At @ | - | +| Keyboard Left Bracket [ | - | +| Keyboard Backslash \ | - | +| Keyboard Right Bracket ] | - | +| Keyboard Caret ^ | - | +| Keyboard Underscore _ | - | +| Keyboard Backquote ` | - | +| Keyboard a | - | +| Keyboard b | - | +| Keyboard c | - | +| Keyboard d | - | +| Keyboard e | - | +| Keyboard f | - | +| Keyboard g | - | +| Keyboard h | - | +| Keyboard i | - | +| Keyboard j | - | +| Keyboard k | - | +| Keyboard l | - | +| Keyboard m | - | +| Keyboard n | - | +| Keyboard o | - | +| Keyboard p | - | +| Keyboard q | - | +| Keyboard r | - | +| Keyboard s | - | +| Keyboard t | - | +| Keyboard u | - | +| Keyboard v | - | +| Keyboard w | - | +| Keyboard x | - | +| Keyboard y | - | +| Keyboard z | - | +| Keyboard Delete | - | +| Keyboard Keypad 0 | - | +| Keyboard Keypad 1 | - | +| Keyboard Keypad 2 | - | +| Keyboard Keypad 3 | - | +| Keyboard Keypad 4 | - | +| Keyboard Keypad 5 | - | +| Keyboard Keypad 6 | - | +| Keyboard Keypad 7 | - | +| Keyboard Keypad 8 | - | +| Keyboard Keypad 9 | - | +| Keyboard Keypad Period . | - | +| Keyboard Keypad Divide / | - | +| Keyboard Keypad Multiply * | - | +| Keyboard Keypad Minus - | - | +| Keyboard Keypad Plus + | - | +| Keyboard Keypad Enter | - | +| Keyboard Keypad Equals = | - | +| Keyboard Up | - | +| Keyboard Down | - | +| Keyboard Right | - | +| Keyboard Left | - | +| Keyboard Insert | - | +| Keyboard Home | - | +| Keyboard End | - | +| Keyboard Page Up | - | +| Keyboard Page Down | - | +| Keyboard F1 | - | +| Keyboard F2 | - | +| Keyboard F3 | - | +| Keyboard F4 | - | +| Keyboard F5 | - | +| Keyboard F6 | - | +| Keyboard F7 | - | +| Keyboard F8 | - | +| Keyboard F9 | - | +| Keyboard F10 | - | +| Keyboard F11 | - | +| Keyboard F12 | - | +| Keyboard F13 | - | +| Keyboard F14 | - | +| Keyboard F15 | - | +| Keyboard Num Lock | - | +| Keyboard Caps Lock | - | +| Keyboard Scroll Lock | - | +| Keyboard Right Shift | - | +| Keyboard Left Shift | - | +| Keyboard Right Control | - | +| Keyboard Left Control | - | +| Keyboard Right Alt | - | +| Keyboard Left Alt | - | +| Keyboard Right Meta | - | +| Keyboard Left Meta | - | +| Keyboard Right Super | - | +| Keyboard Left Super | - | +| Keyboard Mode | - | +| Keyboard Compose | - | +| Keyboard Help | - | +| Keyboard Print | - | +| Keyboard Sys Req | - | +| Keyboard Break | - | +| Keyboard Menu | - | +| Keyboard Power | - | +| Keyboard € | - | +| Keyboard Undo | - | +| Keyboard Unmapped | - | +| Keyboard Unknown | - | + +#### Mouse + +| RetroMouse Inputs | (Device name) Inputs | +|-----------------------------------------------------|---------------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Mouse Cursor | - | +| ![](images/RetroMouse/Retro_Left.png) Mouse 1 | - | +| ![](images/RetroMouse/Retro_Right.png) Mouse 2 | - | +| ![](images/RetroMouse/Retro_Middle.png) Mouse 3 | - | +| Mouse 4 | - | +| Mouse 5 | - | +| Wheel Up | - | +| Wheel Down | - | +| Wheel Left | - | +| Wheel Right | - | + +#### Pointer + +| RetroPointer Inputs | (Device name) Inputs | +|----------------------------------------------------------------------------------------------------------------------|---------------------------| +| ![](images/RetroMouse/Retro_Mouse.png) or ![](images/Button_Pack/Gestures/Gesture_Finger_Front.png) Pointer Position | - | +| ![](images/RetroMouse/Retro_Left.png) or ![](images/Button_Pack/Gestures/Gesture_Tap.png) Pointer Pressed | - | + +#### Lightgun + +| RetroLightgun Inputs | (Device name) Inputs | +|------------------------------------------------------|---------------------------| +| ![](images/RetroMouse/Retro_Mouse.png) Gun Crosshair | - | +| Gun Trigger | - | +| Gun Reload | - | +| Gun Aux A | - | +| Gun Aux B | - | +| Gun Aux C | - | +| Gun Start | - | +| Gun Select | - | +| Gun D-pad Up | - | +| Gun D-pad Down | - | +| Gun D-pad Left | - | +| Gun D-pad Right | - | + +// Deprecated Lightgun inputs + +#define RETRO_DEVICE_ID_LIGHTGUN_CURSOR 3 /*Use Aux:A*/ +#define RETRO_DEVICE_ID_LIGHTGUN_TURBO 4 /*Use Aux:B*/ +#define RETRO_DEVICE_ID_LIGHTGUN_PAUSE 5 /*Use Start*/ + +#### Other + +| Inputs | Device name (Inputs) | +|----------------------------------------------------------------------------------------------------------------------|----------------------| +| Input | | + +## Compatibility +// Optional section. + +// Paste in a link to a compatibility list. +- [(Core name) Compatibility List](URL) + +// Or write up a compatibility description. +Awaiting description. + +// Or make a compatibility table. +| Game | Issue | +|------|-------| +| | | + +## External Links +// Put relevant links here. + +- [Official/Original (Core name) Website](https://link) +- [Official/Original (Core name) (Website name) Repository](https://link) +- [Libretro (Core name) Core info file](https://link) +- [Libretro (Core name) (Website name) Repository](https://link) +- [Report Libretro (Core name) Core Issues Here](https://link) + +### See also +// Optional section. + +- [Other Core](https://docs.libretro.com/library/) + +// Add links to related core docs here. +// https://docs.libretro.com/meta/see_also \ No newline at end of file diff --git a/docs/meta/see_also.md b/docs/meta/see_also.md new file mode 100644 index 00000000..3de1ee15 --- /dev/null +++ b/docs/meta/see_also.md @@ -0,0 +1,415 @@ +// This is a list of cores that share databases with each other. + +#### Amstrad - CPC + +- [Amstrad - CPC (Caprice32)](https://docs.libretro.com/library/caprice32/) +- [Amstrad - CPC (CrocoDS)](https://docs.libretro.com/library/crocods/) + +#### Atari - 2600 + +- [Atari - 2600 (Stella)](https://docs.libretro.com/library/stella/) + +#### Atari - 5200 + +- [Atari - 5200 (Atari800)](https://docs.libretro.com/library/atari800/) + +#### Atari - 7800 + +- [Atari - 7800 (ProSystem)](https://docs.libretro.com/library/prosystem/) + +#### Atari - Jaguar + +- [Atari - Jaguar (Virtual Jaguar)](https://docs.libretro.com/library/virtual_jaguar/) + +#### Atari - Lynx + +- [Atari - Lynx (Beetle Handy)](https://docs.libretro.com/library/beetle_handy/) +- [Atari - Lynx (Handy)](https://docs.libretro.com/library/handy/) + +#### Atari - ST + +- [Atari - ST/STE/TT/Falcon (Hatari)](https://docs.libretro.com/library/hatari/) + +#### Bandai - WonderSwan + +- [Bandai - WonderSwan/Color (Beetle Cygne)](https://docs.libretro.com/library/beetle_cygne/) + +#### Bandai - WonderSwan Color + +- [Bandai - WonderSwan/Color (Beetle Cygne)](https://docs.libretro.com/library/beetle_cygne/) + +#### Cave Story + +- [Cave Story (NXEngine)](https://docs.libretro.com/library/nxengine/) + +#### ChaiLove + +- [ChaiLove](https://docs.libretro.com/library/chailove/) + +#### Coleco - ColecoVision + +- [MSX/SVI/ColecoVision/SG-1000 (blueMSX)](https://docs.libretro.com/library/bluemsx/) + +#### Commodore - 64 + +- [Commodore - C64 (VICE C64)](https://docs.libretro.com/library/vice_c64/) + +#### DOOM + +- [Doom (PrBoom)](https://docs.libretro.com/library/prboom/) + +#### DOS + +- [DOS (DOSBox)](https://docs.libretro.com/library/dosbox/) + +#### Dinothawr + +- [Dinothawr](https://docs.libretro.com/library/dinothawr/) + +#### FB Alpha - Arcade Games + +- [Arcade (FB Alpha)](https://docs.libretro.com/library/fb_alpha/) + +#### GCE - Vectrex + +- [GCE - Vectrex (vecx)](https://docs.libretro.com/library/vecx/) + +#### Handheld Electronic Game + +- [Handheld Electronic (GW)](https://docs.libretro.com/library/gw/) + +#### Lutro + +- [Lua Engine (Lutro)](https://docs.libretro.com/library/lutro/) + +#### MAME + +- [Arcade (MAME)](https://docs.libretro.com/library/mame/) + +#### MAME 2000 + +- [Arcade (MAME 2000)](https://docs.libretro.com/library/mame_2000/) + +#### MAME 2003 + +- [Arcade (MAME 2003)](https://docs.libretro.com/library/mame_2003/) +- [Arcade (MAME 2003 Midway)](https://docs.libretro.com/library/mame_2003_midway/) + +#### MAME 2010 + +- [Arcade (MAME 2010)](https://docs.libretro.com/library/mame_2010/) + +#### MAME 2014 + +- [Arcade (MAME 2014)](https://docs.libretro.com/library/mame_2014/) + +#### Magnavox - Odyssey2 + +- [Magnavox - Odyssey2 / Phillips Videopac+ (O2EM)](https://docs.libretro.com/library/o2em/) + +#### Mattel - Intellivision + +- [Mattel - Intellivision (FreeIntv)](https://docs.libretro.com/library/freeintv/) + +#### Microsoft - MSX + +- [Microsoft - MSX (fMSX)](https://docs.libretro.com/library/fmsx/) +- [MSX/SVI/ColecoVision/SG-1000 (blueMSX)](https://docs.libretro.com/library/bluemsx/) + +#### Microsoft - MSX2 + +- [Microsoft - MSX (fMSX)](https://docs.libretro.com/library/fmsx/) +- [MSX/SVI/ColecoVision/SG-1000 (blueMSX)](https://docs.libretro.com/library/bluemsx/) + +#### MrBoom + +- [Mr.Boom (Bomberman)](https://docs.libretro.com/library/mr_boom/) + +#### NEC - PC Engine - TurboGrafx 16 + +- [NEC - PC Engine / CD (Beetle PCE FAST)](https://docs.libretro.com/library/beetle_pce_fast/) + +#### NEC - PC Engine CD - TurboGrafx-CD + +- [NEC - PC Engine / CD (Beetle PCE FAST)](https://docs.libretro.com/library/beetle_pce_fast/) + +#### NEC - PC Engine SuperGrafx + +- [NEC - PC Engine SuperGrafx (Beetle SGX)](https://docs.libretro.com/library/beetle_sgx/) + +#### NEC - PC-FX + +- [NEC - PC-FX (Beetle PC-FX)](https://docs.libretro.com/library/beetle_pc_fx/) + +#### Nintendo - Family Computer Disk System + +- [Nintendo - NES / Famicom (FCEUmm)](https://docs.libretro.com/library/fceumm/) +- [Nintendo - NES / Famicom (Mesen)](https://docs.libretro.com/library/mesen/) +- [Nintendo - NES / Famicom (Nestopia UE)](https://docs.libretro.com/library/nestopia_ue/) + +#### Nintendo - Game Boy + +- [Nintendo - Game Boy / Color (Emux GB)](https://docs.libretro.com/library/emux_gb/) +- [Nintendo - Game Boy / Color (Gambatte)](https://docs.libretro.com/library/gambatte/) +- [Nintendo - Game Boy / Color (Gearboy)](https://docs.libretro.com/library/gearboy/) +- [Nintendo - Game Boy / Color (SameBoy)](https://docs.libretro.com/library/sameboy/) +- [Nintendo - Game Boy / Color (TGB Dual)](https://docs.libretro.com/library/tgb_dual/) +- [Nintendo - Game Boy Advance (mGBA)](https://docs.libretro.com/library/mgba/) +- [Nintendo - SNES / Famicom (higan Accuracy)](https://docs.libretro.com/library/higan_accuracy/) +- [Nintendo - SNES / Famicom (nSide Balanced)](https://docs.libretro.com/library/nside_balanced/) + +#### Nintendo - Game Boy Advance + +- [Nintendo - Game Boy Advance (Beetle GBA)](https://docs.libretro.com/library/beetle_gba/) +- [Nintendo - Game Boy Advance (gpSP)](https://docs.libretro.com/library/gpsp/) +- [Nintendo - Game Boy Advance (Meteor)](https://docs.libretro.com/library/meteor/) +- [Nintendo - Game Boy Advance (mGBA)](https://docs.libretro.com/library/mgba/) +- [Nintendo - Game Boy Advance (TempGBA)](https://docs.libretro.com/library/tempgba/) +- [Nintendo - Game Boy Advance (VBA-M)](https://docs.libretro.com/library/vba_m/) +- [Nintendo - Game Boy Advance (VBA Next)](https://docs.libretro.com/library/vba_next/) + +#### Nintendo - Game Boy Color + +- [Nintendo - Game Boy / Color (Emux GB)](https://docs.libretro.com/library/emux_gb/) +- [Nintendo - Game Boy / Color (Gambatte)](https://docs.libretro.com/library/gambatte/) +- [Nintendo - Game Boy / Color (Gearboy)](https://docs.libretro.com/library/gearboy/) +- [Nintendo - Game Boy / Color (SameBoy)](https://docs.libretro.com/library/sameboy/) +- [Nintendo - Game Boy / Color (TGB Dual)](https://docs.libretro.com/library/tgb_dual/) +- [Nintendo - Game Boy Advance (mGBA)](https://docs.libretro.com/library/mgba/) +- [Nintendo - SNES / Famicom (higan Accuracy)](https://docs.libretro.com/library/higan_accuracy/) +- [Nintendo - SNES / Famicom (nSide Balanced)](https://docs.libretro.com/library/nside_balanced/) + +#### Nintendo - GameCube + +- [Nintendo - GameCube / Wii (Dolphin)](https://docs.libretro.com/library/dolphin/) + +#### Nintendo - Nintendo 3DS + +- [Nintendo - 3DS (Citra)](https://docs.libretro.com/library/citra/) + +#### Nintendo - Nintendo 64 + +- [Nintendo - Nintendo 64 (Mupen64Plus)](https://docs.libretro.com/library/mupen64plus/) +- [Nintendo - Nintendo 64 (Mupen64Plus GLES3)](https://docs.libretro.com/library/mupen64plus_gles3/) +- [Nintendo - Nintendo 64 (ParaLLEl N64)](https://docs.libretro.com/library/parallel_n64/) + +#### Nintendo - Nintendo 64DD + +- [Nintendo - Nintendo 64 (Mupen64Plus)](https://docs.libretro.com/library/mupen64plus/) +- [Nintendo - Nintendo 64 (Mupen64Plus GLES3)](https://docs.libretro.com/library/mupen64plus_gles3/) +- [Nintendo - Nintendo 64 (ParaLLEl N64)](https://docs.libretro.com/library/parallel_n64/) + +#### Nintendo - Nintendo DS (Download Play) + +- [Nintendo - DS (DeSmuME)](https://docs.libretro.com/library/desmume/) +- [Nintendo - DS (melonDS)](https://docs.libretro.com/library/melonds) + +#### Nintendo - Nintendo DS Decrypted + +- [Nintendo - DS (DeSmuME)](https://docs.libretro.com/library/desmume/) +- [Nintendo - DS (melonDS)](https://docs.libretro.com/library/melonds) + +#### Nintendo - Nintendo DS + +- [Nintendo - DS (DeSmuME)](https://docs.libretro.com/library/desmume/) +- [Nintendo - DS (melonDS)](https://docs.libretro.com/library/melonds) + +#### Nintendo - Nintendo Entertainment System + +- [Nintendo - NES / Famicom (bnes)](https://docs.libretro.com/library/bnes/) +- [Nintendo - NES / Famicom (Emux NES)](https://docs.libretro.com/library/emux_nes/) +- [Nintendo - NES / Famicom (FCEUmm)](https://docs.libretro.com/library/fceumm/) +- [Nintendo - NES / Famicom (Mesen)](https://docs.libretro.com/library/mesen/) +- [Nintendo - NES / Famicom (Nestopia UE)](https://docs.libretro.com/library/nestopia_ue/) +- [Nintendo - NES / Famicom (QuickNES)](https://docs.libretro.com/library/quicknes/) + +#### Nintendo - Pokemon Mini + +- [Nintendo - Pokémon Mini (PokeMini)](https://docs.libretro.com/library/pokemini/) + +#### Nintendo - Satellaview + +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) + +#### Nintendo - Sufami Turbo + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) + +#### Nintendo - Super Nintendo Entertainment System + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (higan Accuracy)](https://docs.libretro.com/library/higan_accuracy/) +- [Nintendo - SNES / Famicom (nSide Balanced)](https://docs.libretro.com/library/nside_balanced/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) + +#### Nintendo - Super Nintendo Entertainment System Hacks + +- [Nintendo - SNES / Famicom (Beetle bsnes)](https://docs.libretro.com/library/beetle_bsnes/) +- [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](https://docs.libretro.com/library/bsnes_mercury_accuracy/) +- [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](https://docs.libretro.com/library/bsnes_mercury_balanced/) +- [Nintendo - SNES / Famicom (bsnes-mercury Performance)](https://docs.libretro.com/library/bsnes_mercury_performance/) +- [Nintendo - SNES / Famicom (bsnes Accuracy)](https://docs.libretro.com/library/bsnes_accuracy/) +- [Nintendo - SNES / Famicom (bsnes Balanced)](https://docs.libretro.com/library/bsnes_balanced/) +- [Nintendo - SNES / Famicom (bsnes C++98 (v085))](https://docs.libretro.com/library/bsnes_cplusplus98/) +- [Nintendo - SNES / Famicom (bsnes Performance)](https://docs.libretro.com/library/bsnes_performance/) +- [Nintendo - SNES / Famicom (higan Accuracy)](https://docs.libretro.com/library/higan_accuracy/) +- [Nintendo - SNES / Famicom (nSide Balanced)](https://docs.libretro.com/library/nside_balanced/) +- [Nintendo - SNES / Famicom (Snes9x)](https://docs.libretro.com/library/snes9x/) +- [Nintendo - SNES / Famicom (Snes9x 2002)](https://docs.libretro.com/library/snes9x_2002/) +- [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](https://docs.libretro.com/library/snes9x_2005_plus/) +- [Nintendo - SNES / Famicom (Snes9x 2005)](https://docs.libretro.com/library/snes9x_2005/) +- [Nintendo - SNES / Famicom (Snes9x 2010)](https://docs.libretro.com/library/snes9x_2010/) + +#### Nintendo - Virtual Boy + +- [Nintendo - Virtual Boy (Beetle VB)](https://docs.libretro.com/library/beetle_vb/) + +#### Nintendo - Wii + +- [Nintendo - GameCube / Wii (Dolphin)](https://docs.libretro.com/library/dolphin/) + +#### Quake1 + +- [Quake 1 (TyrQuake)](https://docs.libretro.com/library/tyrquake/) + +#### RPG Maker + +- [RPG Maker 2000/2003 (EasyRPG)](https://docs.libretro.com/library/easyrpg/) + +#### Rick Dangerous + +- [Rick Dangerous (XRick)](https://docs.libretro.com/library/xrick/) + +#### SNK - Neo Geo Pocket + +- [SNK - Neo Geo Pocket / Color (Beetle NeoPop)](https://docs.libretro.com/library/beetle_neopop/) + +#### SNK - Neo Geo Pocket Color + +- [SNK - Neo Geo Pocket / Color (Beetle NeoPop)](https://docs.libretro.com/library/beetle_neopop/) + +#### ScummVM + +- [ScummVM](https://docs.libretro.com/library/scummvm/) + +#### Sega - 32X + +- [Sega - MS/MD/CD/32X (PicoDrive)](https://docs.libretro.com/library/picodrive/) + +#### Sega - Dreamcast + +- [Sega - Dreamcast (Redream)](https://docs.libretro.com/library/redream/) +- [Sega - Dreamcast (Reicast)](https://docs.libretro.com/library/reicast/) + +#### Sega - Game Gear + +- [Sega - MS/GG/MD/CD (Genesis Plus GX)](https://docs.libretro.com/library/genesis_plus_gx/) + +#### Sega - Master System - Mark III + +- [Sega - Master System (Emux SMS)](https://docs.libretro.com/library/emux_sms/) +- [Sega - MS/GG/MD/CD (Genesis Plus GX)](https://docs.libretro.com/library/genesis_plus_gx/) +- [Sega - MS/MD/CD/32X (PicoDrive)](https://docs.libretro.com/library/picodrive/) + +#### Sega - Mega Drive - Genesis + +- [Sega - MS/GG/MD/CD (Genesis Plus GX)](https://docs.libretro.com/library/genesis_plus_gx/) +- [Sega - MS/MD/CD/32X (PicoDrive)](https://docs.libretro.com/library/picodrive/) + +#### Sega - Mega-CD - Sega CD + +- [Sega - MS/GG/MD/CD (Genesis Plus GX)](https://docs.libretro.com/library/genesis_plus_gx/) +- [Sega - MS/MD/CD/32X (PicoDrive)](https://docs.libretro.com/library/picodrive/) + +#### Sega - PICO + +- [Sega - MS/GG/MD/CD (Genesis Plus GX)](https://docs.libretro.com/library/genesis_plus_gx/) +- [Sega - MS/MD/CD/32X (PicoDrive)](https://docs.libretro.com/library/picodrive/) + +#### Sega - Saturn + +- [Sega - Saturn (Beetle Saturn)](https://docs.libretro.com/library/beetle_saturn/) +- [Sega - Saturn (Yabause)](https://docs.libretro.com/library/yabause/) + +#### Sega - SG-1000 + +- [MSX/SVI/ColecoVision/SG-1000 (blueMSX)](https://docs.libretro.com/library/bluemsx/) +- [Sega - MS/GG/MD/CD (Genesis Plus GX)](https://docs.libretro.com/library/genesis_plus_gx/) + +#### Sharp - X68000 + +- [Sharp - X68000 (PX68k)](https://docs.libretro.com/library/px68k/) + +#### Sinclair - ZX 81 + +- [Sinclair - ZX 81 (EightyOne)](https://docs.libretro.com/library/eightyone/) + +#### Sinclair - ZX Spectrum +3 + +- [ZX Spectrum (Fuse)](https://docs.libretro.com/library/fuse/) + +#### Sinclair - ZX Spectrum + +- [ZX Spectrum (Fuse)](https://docs.libretro.com/library/fuse/) + +#### Sony - PlayStation Portable + +- [Sony - PlayStation Portable (PPSSPP)](https://docs.libretro.com/library/ppsspp/) + +#### Sony - PlayStation + +- [Sony - PlayStation (Beetle PSX HW)](https://docs.libretro.com/library/beetle_psx_hw/) +- [Sony - PlayStation (Beetle PSX)](https://docs.libretro.com/library/beetle_psx/) +- [Sony - PlayStation (PCSX ReARMed)](https://docs.libretro.com/library/pcsx_rearmed/) + +#### The 3DO Company - 3DO + +- [The 3DO Company - 3DO (4DO)](https://docs.libretro.com/library/4do/) + +#### Tomb Raider + +- [Tomb Raider (OpenLara)](https://docs.libretro.com/library/openlara/) + +#### Uzebox + +- [Uzebox (Uzem)](https://docs.libretro.com/library/uzem/) + +--- + +// Non-Database relations + +#### Custom Engine + +- [ChaiLove](https://docs.libretro.com/library/chailove/) +- [Lua Engine (Lutro)](https://docs.libretro.com/library/lutro/) + +#### Media + +- [FFmpeg](https://docs.libretro.com/library/ffmpeg/) +- [Game Music Emu](https://docs.libretro.com/library/game_music_emu/) +- [Imageviewer](https://docs.libretro.com/library/imageviewer/) +- [mpv](https://docs.libretro.com/library/mpv/) +- [PocketCDG](https://docs.libretro.com/library/pocketcdg/) \ No newline at end of file diff --git a/docs/meta/todo.md b/docs/meta/todo.md new file mode 100644 index 00000000..f763d16f --- /dev/null +++ b/docs/meta/todo.md @@ -0,0 +1,601 @@ +## Meta + +- Move on to updating the RetroPie wiki when Libretro documentation is finished. https://github.com/RetroPie/RetroPie-Setup/wiki +- Move on to updating the Emulation General when Libretro documentation is finished. http://emulation.gametechwiki.com/index.php/Main_Page +- Setup a way for others to translate Libretro/Docs to other languages. +- Encourage others to submit documentation to Libretro/Docs. +- Spread the word about Libretro/Docs; monitor it's acknowledgement on other sites https://www.google.com/search?source=hp&q=libretro+docs +- Produce and upload official tutorials to the Libretro Youtube channel https://www.youtube.com/user/Libretro/ +- Create a documentation guide for those who are new to the project. +- Improve libretro/docs readability. + +## Specifications / Technical + +- Complete RetroPad documentation https://docs.libretro.com/specs/retropad/ +- Complete controller API documentation https://docs.libretro.com/specs/api/#input-device-abstraction +- Add Subsystem API documentation https://docs.libretro.com/specs/api/ + +## Licenses + +- Add a license file to Neko Project II repository + +## Guide + +- .cue and .m3u guide +- RetroArch cheats guide +- Video and Audio filters guide +- .chd guide +- Logging/Debug guide +- md5 guide +- crc guide +- add icon info to playlist guide + +## Assets needed + +- RetroKeyboard images +- RetroMouse images +- RetroLightgun images +- RetroPointer images (Mouse and Touch) + +## All cores + +- Fully document every libretro core https://github.com/libretro/libretro-super/tree/master/dist/info +- Should core docs also document every BIOS variant? End-users may ask which BIOS revision lets them see a specific screen. (something similar to this http://www.smspower.org/Development/BIOSes) +- All core docs need update-to-date controller diagrams. (like this https://github.com/libretro/docs/blob/master/docs/library/images/Controllers/4do_retropad.png) +- Update all the core docs whenever the Core Template doc has been updated. + +// ✔ = Completed or near completion + +// ️〰️ = Unfinished + +// ✕ = Not started + +// ❗❗❗ = Attention needed + +## Cores + +### [〰️] 3D Engine + +- Fill in the core provided aspect ratio. +- Complete why use this core section. +- Complete core option descriptions. +- Improve the background section. I believe the 3D Engine core is two older libretro core combined? (https://github.com/libretro/instancingviewer-libretro-gl) and (https://github.com/libretro/modelviewer-location-libretro) + +### [✔] 4DO + +### [✔] 2048 + +### [〰️] Atari800 + +### [✔] Beetle bsnes + +### [✔] Beetle Cygne + +### [✔] Beetle GBA + +### [✔] Beetle Handy + +### [✔] Beetle NeoPop + +### [✔] Beetle PC-FX + +### [〰️] Beetle PCE FAST + +- Add BIOS md5s +- Complete Horizontal Overscan (352 Width Mode Only) core option description. +- Complete (CD) CDDA Volume % core option description +- Complete (CD) ADOCM Volume % core option description +- Complete (CD) PSG Volume % core option descriotion +- Complete Turbo Delay core option description +- Complete P1/P2/P3/P4/P5 Turbo I/II core option descriptions. + +### [〰️] Beetle PSX + +- Test Multimouse support. +- Add core provided sample rate. +- Add core provided FPS. +- Add core provided aspect ratio. + +### [〰️] Beetle PSX HW + +- Test Multimouse support. +- Add core provided sample rate. +- Add core provided FPS. +- Add core provided aspect ratio. + +### [〰️] Beetle Saturn + +- Test Multimouse support. +- Test RetroArch cheats support. + +### [〰️] Beetle SGX + +- Improve background section. +- Complete why use this core section. +- Complete and improve core option descriptions. +- Complete controllers table section. +- Add BIOS md5s. +- Complete compatibility section. + +### [〰️] Beetle VB + +- Complete compatibility section. +- Combine the anagylph and palette core option screenshots into one image. + +### [〰️] blueMSX + +- Complete why use this core section. +- Complete compatibility section. +- Test save support. +- Add core provided aspect ratio. +- Add RetroPad Keyboard Map inputs + +### [✔] bnes + +### [〰️] bsnes-mercury Accuracy + +- Needs Crop overscan core option screenshots +- Multi-Mouse support? + +### [〰️] bsnes-mercury Balanced + +- Needs Crop overscan core option screenshots +- Multi-Mouse support? + +### [〰️] bsnes-mercury Performance + +- Needs Crop overscan core option screenshots +- Multi-Mouse support? + +### [〰️] bsnes Accuracy + +- Multi-Mouse support? + +### [〰️] bsnes Balanced + +- Multi-Mouse support? + +### [〰️] bsnes C++98 (v085) + +- Multi-Mouse support? +- Complete compatibility section. +- Add core provided aspect ratio. + +### [〰️] bsnes Peformance + +- Multi-Mouse support? + +### [〰️] Caprice32 + +- Add core provided fps. +- Add core provided sample rate. +- Add core provided aspect ratio. +- Complete Status Bar core option description. +- Complete Drive core option description. +- Complete Retro joy0 core option description. + +### [〰️] ChaiLove + +- Add core provided aspect ratio + +### [〰️] Citra + +### [〰️] Craft + +### [〰️] CrocoDS + +- Complete Speed hack core option description. + +### [〰️] DeSmuME + +- Complete pointer mode l-analog core option description. +- Complete pointer mode r-analog core option description. +- Complete Emulated pointer deadzone percent core option description. +- Complete Emulated pointer acceleration modifier percent core option description. +- Complete Enable Edgemark core option description. + +### [〰️] Dinothawr + +- Add core provided fps. +- Add core provided sample rate. +- Add core provided aspect ratio. + +### [✕] Dolphin + +### [〰️] DOSBox + +- Improve background section +- Complete why use this core section. +- Complete compatibility section. +- Add internal sample rate. +- Improve core otpion descriptions. + +### [✔] Dummy Core + +### [✕] Dungeon Crawl Stone Soup + +### [〰️] EasyRPG + +- Add core provided aspect ratio +- Add core provided fps + +### [〰️] EightyOne + +- Add core provided aspect ratio. +- Add screenshots for the High Resolution core option. + +### [!!!] Emux CHIP-8 + +- Can't complete documentation, core doesn't start. + +### [〰️] Emux GB + +- Complete why use this core section. +- Complete compatibility section. +- Add internal FPS. +- Add internal sample rate. +- Add core provided aspect ratio. + +### [〰️] Emux NES + +- Complete compatibility section. +- Add core provided FPS. +- Add core provided sample rate. +- Add core provided aspect ratio. + +### [〰️] Emux SMS + +- Add core provided fps. +- Add core provided sample rate +- Add provided aspect ratio. + +### [✕] FB Alpha + +### [✕] FB Alpha 2012 + +### [✕] FB Alpha 2012 CPS-1 + +### [✕] FB Alpha 2012 CPS-2 + +### [✕] FB Alpha 2012 CPS-3 + +### [✕] FB Alpha 2012 Neo Geo + +### [〰️] FCEUmm + +- Combine aspect ratio screenshots into one image +- Combine palette core options screenshots into one image like [this](http://emulation.gametechwiki.com/images/thumb/2/2c/5NUrm6U-1-.png/800px-5NUrm6U-1-.png) +- Combine Crop Overscan core options screenshots into one image +- Combine crosshair core option screenshots into one image + +### [✔] FFmpeg + +### [〰️] fMSX + +- Improve background section +- Complete why use this core section. +- Complete compatibility section. +- Add core provided aspect ratio. +- Complete core option descriptions. + +### [〰️] FreeIntv +- First and only standalone libretro emulator core for Mattel Intellivision +- Uses a unique onscreen keyboard to get around the keypad limitations of the RetroPad abstraction +- More information https://sourceforge.net/projects/freeintv/ and http://neocomputer.org/projects/freeintv/ + +### [✕] FreeJ2ME + +### [✕] Frodo + +### [〰️] Fuse + +- Improve background section. +- Complete why use this core section. +- Complete BIOS section +- Complete compatibility section. +- Complete feature table. +- Add core provided aspect ratio. +- Add internal FPS +- Improve core option descriptions. + +### [〰️] Gambatte + +- Complete GameBoy Link Mode core option description. +- Combine palette screenshots into one image. +- Complete Network core option descriptions. +- Add core provided FPS +- Add core provided sample rate +- Add core provided aspect ratio + +### [✔] Game Music Emu + +### [✔] Gearboy + +### [〰️] Genesis Plus GX + +- Complete BIOS md5 +- Test Multi-Mouse support. +- Complete Mega Drive / Genesis FM core option description. +- Complete Audio filter core option description. +- Complete Low-pass filter % core option description. + +### [✔] gpSP + +### [✔] GW + +### [✔] Handy + +### [〰️] Hatari + +- Add Keyboard inputs + +### [〰️] higan Accuracy + +- Multi-Mouse support? +- Add core provided fps +- Add core provided sample rate +- Add core provided aspect ratio + +### [✔] Imageviewer + +### [〰️] Lutro + +- Add core provided aspect ratio. + +### [✕] MAME + +### [✕] MAME 2000 + +### [〰️] MAME 2003 + +### [✕] MAME 2003 Midway + +### [✕] MAME 2009 + +### [✕] MAME 2010 + +### [✕] MAME 2014 + +### [✕] MAME 2016 + +### [✔] melonDS + +### [〰️] Mesen + +- Add HD Pack Before-After screenshots. +- Add NTSC Filter core option screenshots. +- Add Palette core option screenshots. +- Add Vertical Overscan core option screenshots. +- Add Horizontal Overscan core option screenshots. +- Add Aspect Ratio core option screenshots. +- Add Sprite Limit core option screenshots. +- Add Screen Rotation core option screenshots. +- Add Hori Track inputs. + +### [✕] MESS 2014 + +### [〰️] Meteor + +- Complete compatibility section + +### [〰️] mGBA + +- Add core provided FPS. +- Add core provided aspect ratio +- Complete description for Idle loop removal core option. + +### [✕] mpv + +### [〰️] Mr.Boom + +- Complete core option descriptions. +- Add a 'How to join a game' guide +- Add a powerup explanation section. +- Add a endscreen explanation section. + +### [〰️] Mupen64Plus + +- Improve background section. +- Complete why use this core section. +- Add internal sample rate +- Add core provided aspect ratio. +- Complete core option descriptions. +- Complete compatibility section. + +### [✕] Mupen64Plus GLES3 + +### [〰️] Neko Project II + +- Complete background section. +- Complete compatibility section. +- Complete core option descriptions. +- Document np2.cfg +- Add a disk switching guide +- Find out what the .bmp files are. +- Add license info. +- Core info file is missing BIOS info. +- Complete BIOS section. +- Complete joypad section +- Complete keyboard section + +### [〰️] Neko Project II Kai + +- Complete background section. +- Complete compatibility section. +- Complete core option descriptions. +- Document np2.cfg +- Add a disk switching guide +- Find out what the .bmp files are. + +### [〰️] Nestopia UE + +- Complete Game Genie Sound Distortion core option description. +- Complete RAM Power-on State core option description. +- Combine palette screenshots into one image. + +### [〰️] nSide Balanced + +- Multi-Mouse support? +- Add core provided fps +- Add core provided sample rate +- Add core provided aspect ratio + +### [✔] NXEngine + +### [〰️] O2EM + +- Complete why use this core section. +- Complete compatibility section. + +### [✔] OpenLara + +### [!!!] P-UAE + +- Need outside help with the documentation, loading .uae files don't seem to work on Windows x64 + +### [✕] ParaLLEl N64 + +### [✕] PCem + +### [〰️] PCSX ReARMed + +- Complete why use this core section. +- Complete core option descriptions. +- Explain what the default setting for the Pad Type core options does. +- Add negcon inputs to controllers table + +### [✕] PCSX ReARMed [Interpreter] + +### [✔] PicoDrive + +### [✔] PocketCDG + +### [✔] PokeMini + +### [〰️] PPSSPP + +- Improve background section +- Complete why use this core section. +- Complete and improve core option descriptions. + +### [〰️] PrBoom + +### [✔] ProSystem + +### [〰️] PX68k + +- Complete background section. +- Complete compatibility section. +- Find out what sram.dat is. +- Add keyboard inputs. +- Add Joypad inputs. + +### [✔] QuickNES + +### [✔] Redream + +### [〰️] Reicast + +### [〰️] RemoteJoy + +### [〰️] Remote RetroPad + +- Complete background section. +- Complete usage section. +- Complete Port core option description. +- Complete IP address part 1 core option description. +- Complete IP address part 2 core option description. +- Complete IP address part 3 core option description. +- Complete IP address part 4 core option description. + +### [〰️] SameBoy + +- Add core provided fps +- Add core provided aspect ratio +- Complete core option descriptions. + +### [〰️] ScummVM + +- Add keyboard table. + +### [〰️] Snes9x + +- Test Multi-Mouse support. + +### [〰️] Snes9x 2002 + +- Complete compatibility section. + +### [〰️] Snes9x 2005 + +- Complete Video Mode core option description. +- Add core provided aspect ratio FPS. +- Add core provided sample rate. + +### [〰️] Snes9x 2005 Plus + +- Complete Video Mode core option description. +- Add core provided aspect ratio FPS. +- Add core provided sample rate. + +### [〰️] Snes9x 2010 + +- Test Multi-Mouse support. + +### [〰️] Stella + +- Add core provided FPS + +### [✕] TempGBA + +### [〰️] TGB Dual + +- Add core provided aspect ratio. +- Add netplay usage section. +- Explain what the Next Audio Mode/Prev Audio Mode inputs do. +- Complete compatbility section. + +### [〰️] TyrQuake + +- Complete Core option descriptions. +- Complete expansion pack section. + +### [✕] UME 2014 + +### [〰️] Uzem + +- Improve background section. +- Complete why use this core section. +- Add core updater screenshot. +- Add content example screenshot. +- Complete author section. +- Complete compatiblity section. +- Can't complete documentation, core doesn't start. https://github.com/libretro/libretro-uzem/issues/2 + +### [✔] VBA-M + +### [✔] VBA Next + +### [〰️] vecx + +### [✔] VeMUlator + +### [✕] VICE C64 + +### [✕] VICE C128 + +### [✕] VICE PLUS4 + +### [✕] VICE VIC20 + +### [〰️] Video Processor + +- Complete documentation when core is fixed. + +### [✔] Virtual Jaguar + +### [〰️] XRick + +- Core info file does not have an author entry. + +### [〰️] Yabause diff --git a/docs/shader/3dfx.md b/docs/shader/3dfx.md new file mode 100644 index 00000000..89257250 --- /dev/null +++ b/docs/shader/3dfx.md @@ -0,0 +1,16 @@ +# 3dfx + +## Background + +## Preview Image +* 3dfx_4x1 + +![3dfx_4x1](images/3dfx/3dfx_4x1.png) + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/Preview_Template.md b/docs/shader/Preview_Template.md new file mode 100644 index 00000000..6c13febf --- /dev/null +++ b/docs/shader/Preview_Template.md @@ -0,0 +1,14 @@ +# Title + +## Background + +## Preview Image +![Preset Name](images/folder/shader_preview.png) + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/antialiasing.md b/docs/shader/antialiasing.md new file mode 100644 index 00000000..a5da28d0 --- /dev/null +++ b/docs/shader/antialiasing.md @@ -0,0 +1,28 @@ +# antialiasing + +## Background + +## Preview Image +* aa-shader-4.0 + +![aa-shader-4.0](images/antialiasing/aa-shader-4.0.png) + +* advanced-aa + +![advanced-aa](images/antialiasing/advanced-aa.png) + +* fxaa + +![fxaa](images/antialiasing/fxaa.png) + +* smaa + +![smaa](images/antialiasing/smaa.png) + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/border.md b/docs/shader/border.md new file mode 100644 index 00000000..a7ce7cc3 --- /dev/null +++ b/docs/shader/border.md @@ -0,0 +1,30 @@ +# border + +## Description +Shaders that include a border to fill the empty space left when rendering a non widescreen viewport on a widescreen display. + +## Preview Image +* bigblur-crt + +![bigblur-crt](images/border/bigblur-crt.png) + +* bigblur + +![bigblur](images/border/bigblur.png) + +* hexagons + +![hexagons](images/border/hexagons.png) + +* imgborder + +![imgborder](images/border/imgborder.png) + + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/cgp.md b/docs/shader/cgp.md new file mode 100644 index 00000000..847a407c --- /dev/null +++ b/docs/shader/cgp.md @@ -0,0 +1,90 @@ +# cgp + +## Background + +## Preview Image +* 2x2xscalehq + +![2x2xscalehq](images/cgp/2x2xscalehq.png) + +* 2xbr-crt-hyllian + +![2xbr-crt-hyllian](images/cgp/2xbr-crt-hyllian.png) + +* 2xbr-hybrid-crt-hyllian + +![2xbr-hybrid-crt-hyllian](images/cgp/2xbr-hybrid-crt-hyllian.png) + +* 2xbr-jinc2-sharper-hybrid + +![2xbr-jinc2-sharper-hybrid](images/cgp/2xbr-jinc2-sharper-hybrid.png) + +* 2xbr-reverse-aa + +![2xbr-reverse-aa](images/cgp/2xbr-reverse-aa.png) + +* crt-reverse-aa-ddt + +![crt-reverse-aa-ddt](images/cgp/crt-reverse-aa-ddt.png) + +* crt-royale-kurozumi + +![crt-royale-kurozumi](images/cgp/crt-royale-kurozumi.png) + +* gameboy-colors + +![gameboy-colors](images/cgp/gameboy-colors.png) + +* gameboy-scree-n-grid + +![gameboy-scree-n-grid](images/cgp/gameboy-scree-n-grid.png) + +* gameboy-screen-grid+motionblur + +![gameboy-screen-grid+motionblur](images/cgp/gameboy-screen-grid+motionblur.png) + +* lowquality-lcd + +![lowquality-lcd](images/cgp/lowquality-lcd.png) + +* lowquality-lcd+motionblur + +![lowquality-lcd+motionblur](images/cgp/lowquality-lcd+motionblur.png) + +* xbr-dilation-smart-blur-4xsoft + +![xbr-dilation-smart-blur-4xsoft](images/cgp/xbr-dilation-smart-blur-4xsoft.png) + +* xbr-dtt-dilation-soft2-aa-gamma + +![xbr-dtt-dilation-soft2-aa-gamma](images/cgp/xbr-dtt-dilation-soft2-aa-gamma.png) + +* xbr-hybrid-bicubic + +![xbr-hybrid-bicubic](images/cgp/xbr-hybrid-bicubic.png) + +* xbr-hybrid-ddt + +![xbr-hybrid-ddt](images/cgp/xbr-hybrid-ddt.png) + +* xbr-hybrid-lanczos + +![xbr-hybrid-lanczos](images/cgp/xbr-hybrid-lanczos.png) + +* xbr-hybrid-sharp-lanczos + +![xbr-hybrid-sharp-lanczos](images/cgp/xbr-hybrid-sharp-lanczos.png) + +* xbr-smart-blur + +![xbr-smart-blur](images/cgp/xbr-smart-blur.png) + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) + + diff --git a/docs/shader/crt.md b/docs/shader/crt.md new file mode 100644 index 00000000..ee99fcd9 --- /dev/null +++ b/docs/shader/crt.md @@ -0,0 +1,153 @@ +# crt + +## Background + +## Preview Image + +* crt-aperture + +![crt-aperture](images/crt/crt-aperture.png) + +* crt-caligari + +![crt-caligari](images/crt/crt-caligari.png) + +* crt-cgwg-fast + +![crt-cgwg-fast](images/crt/crt-cgwg-fast.png) + +* crt-easymode-halation + +![crt-easymode-halation](images/crt/crt-easymode-halation.png) + +* crt-easymode + +![crt-easymode](images/crt/crt-easymode.png) + +* crt-geom + +![crt-geom](images/crt/crt-geom.png) + +* crt-hyllian-multipass + +![crt-hyllian-multipass](images/crt/crt-hyllian-multipass.png) + +* crt-hyllian + +![crt-hyllian](images/crt/crt-hyllian.png) + +* crt-interlaced-halation + +![crt-interlaced-halation](images/crt/crt-interlaced-halation.png) + +* crt-lottes-fast + +![crt-lottes-fast](images/crt/crt-lottes-fast.png) + +* crt-lottes-multipass-interlace-glow + +![crt-lottes-multipass-interlace-glow](images/crt/crt-lottes-multipass-interlace-glow.png) + +* crt-lottes-multipass + +![crt-lottes-multipass](images/crt/crt-lottes-multipass.png) + +* crt-lottes + +![crt-lottes](images/crt/crt-lottes.png) + +* crt-nes-mini + +![crt-nes-mini](images/crt/crt-nes-mini.png) + +* crt-potato-cool + +![crt-potato-cool](images/crt/crt-potato-cool.png) + +* crt-potato-warm + +![crt-potato-warm](images/crt/crt-potato-warm.png) + +* crt-royale + +![crt-royale](images/crt/crt-royale.png) + +* crt-slangtest-cubic + +![crt-slangtest-cubic](images/crt/crt-slangtest-cubic.png) + +* crt-slangtest-lanczos + +![crt-slangtest-lanczos](images/crt/crt-slangtest-lanczos.png) + +* crtglow_gauss_ntsc_3phase + +![crtglow_gauss_ntsc_3phase](images/crt/crtglow_gauss_ntsc_3phase.png) + +* crtglow_gauss + +![crtglow_gauss](images/crt/crtglow_gauss.png) + +* crtglow_lanczos + +![crtglow_lanczos](images/crt/crtglow_lanczos.png) + +* dotmask + +![dotmask](images/crt/dotmask.png) + +* gtu-famicom + +![gtu-famicom](images/crt/gtu-famicom.png) + +* gtu-v050 + +![gtu-v050](images/crt/gtu-v050.png) + +* gtuv50-radeon + +![gtuv50-radeon](images/crt/gtuv50-radeon.png) + +* gtuv50 + +![gtuv50](images/crt/gtuv50.png) + +* meta-crt + +![meta-crt](images/crt/meta-crt.png) + +* ntsc-shadowmask-interlacing + +![ntsc-shadowmask-interlacing](images/crt/ntsc-shadowmask-interlacing.png) + +* ntsc-shadowmask-noblend + +![ntsc-shadowmask-noblend](images/crt/ntsc-shadowmask-noblend.png) + +* ntsc-shadowmask + +![ntsc-shadowmask](images/crt/ntsc-shadowmask.png) + +* phosphorlut-4k + +![phosphorlut-4k](images/crt/phosphorlut-4k.png) + +* phosphorlut-shadowmask + +![phosphorlut-shadowmask](images/crt/phosphorlut-shadowmask.png) + +* phosphorlut + +![phosphorlut](images/crt/phosphorlut.png) + +* zfast-crt + +![zfast-crt](images/crt/zfast-crt.png) + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/crt_royale.md b/docs/shader/crt_royale.md new file mode 100644 index 00000000..80b558c1 --- /dev/null +++ b/docs/shader/crt_royale.md @@ -0,0 +1,258 @@ +# CRT-Royale + +CRT-Royale is a collection of shaders developed by TroggleMonkey. + +It is quite an advanced shader that requires a bit of documentation in order to get the most out of it. +Contents + +## Basics + +crt-royale is a highly customizable CRT shader for Retroarch and other programs supporting the libretro Cg shader standard. It uses a number of nonstandardized extensions like sRGB FBO's, mipmapping, and runtime shader parameters, but hopefully it will run without much of a fuss on new implementations of the standard as well. + +### Customizable Parameters + +There are a huge number of parameters. Among the things you can customize: + +- Phosphor mask type: An aperture grille, slot mask, and shadow mask are each included, although the latter won't be seeing much usage until 1440p displays and better become more common (4k UHD and 8k UHD are increasingly optimal). +- Phosphor mask dot pitch +- Phosphor mask resampling method: Choose between Lanczos sinc resizing, mipmapped hardware resizing, and no resizing of the input LUT. +- Phosphor bloom softness and type (real or fake ;)) +- Gaussian and generalized Gaussian scanline beam properties/distribution, including convergence offsets +- Screen geometry, including curvature (spherical, alternative spherical, or cylindrical like Trinitrons), tilt, and borders +- Antialiasing level, resampling filter, and sharpness parameters for gracefully combining screen curvature with high-frequency phosphor details, including optionally resampling based on RGB subpixel positions. +- Halation (electrons bouncing under the glass and lighting random phosphors) random phosphors) +- Refractive diffusion (light spreading from the imperfect CRT glass face) +- Interlacing options +- etc. + +### How to Customize + +There are two major ways to customize the shader: + +- Runtime shader parameters allow convenient experimentation with real-time feedback, but they are much slower, because they prevent static evaluation of a lot of math. Disabling them drastically speeds up the shader. +- If runtime shader parameters are disabled (partially or totally), those same settings can be freely altered in the text of the user-settings.h file. There are also a number of other static-only settings, including the #define macros which indicate where and when to allow runtime shader parameters. To disable them entirely, comment out the "#define RUNTIME_SHADER_PARAMS_ENABLE" line by putting a double-slash ("//") at the ginning...your FPS will skyrocket. + +### Preset Versions + +You may also note that there are two major versions of the shader preset: + +- crt-royale.cgh is the "full" version of the shader, which blooms the light from the brighter phosphors to maintain brightness and avoid clipping. +- crt-royale-fake-bloom.cgh is the "cheater's" version of the shader, which only fakes the bloom based on carefully blending in a [potentially blurred] version of the original input. This version is MUCH faster, and you have to strain to see the difference, so people with slower GPU's will prefer it. + +There's a lot to play around with, and I encourage everyone using this shader to read through the user-settings.h file to learn about the parameters. Before loading the shader, be sure to read the next section, entitled... + +## Frequently Asked Questions + +### Why is the shader crashing when I load it!? + +Do you get C6001 or C6002 errors with integrated graphics, like Intel HD 4000? If so, please try one of the following .cgp presets: + +- crt-royale-intel.cgp +- crt-royale-fake-bloom-intel.cgp + +These load .cg wrappers that #define INTEGRATED_GRAPHICS_COMPATIBILITY_MODE (also available in user-settings.h) before loading the main .cg shader files. + +Integrated graphics compatibility mode will disable these three features, which currently require more registers or instructions than Intel GPU's allow: + +- PHOSPHOR_MASK_MANUALLY_RESIZE: The phosphor mask will be softer. (This may be reenabled in a later release.) +- RUNTIME_GEOMETRY_MODE: You must change the screen geometry/curvature using the geom_mode_static setting in user-settings.h. +- The high-quality 4x4 Gaussian resize for the bloom approximation + +Using Intel-specific .cgp files is equivalent to #defining INTEGRATED_GRAPHICS_COMPATIBILITY_MODE in your user-settings.h. Out of the box, user-settings.h is configured for maximum configurability and compatibility with dedicated nVidia and AMD/ATI GPU's. Compatibility mode is disabled by default to avoid silently degrading quality for AMD/ATI and nVidia users, so Intel-specific .cgp's are a convenient way for Intel users to play with the shader without editing text files. + +I've tested this solution on Intel HD 4000 graphics, and it should work for that GPU at least, but please let me know if you're still having problems! + +### Why is everything so slow!? + +Out of the box, this will be a problem for all but monster GPU's. The default user-settings.h file disables any features and optimizations which might cause compilation failure on AMD/ATI GPU's. Despite the name of the options, this is not a problem with your card or drivers; it's a shortcoming in the Cg shader compiler's nVidia-centric profile setups. + +Uncommenting the following #define macros at the top of user-settings.h will help performance a good deal on compatible nVidia cards: + +``` +#define DRIVERS_ALLOW_DERIVATIVES +#define DRIVERS_ALLOW_DYNAMIC_BRANCHES +#define ACCOMODATE_POSSIBLE_DYNAMIC_LOOPS #define DRIVERS_ALLOW_TEX2DLOD +#define DRIVERS_ALLOW_TEX2DBIAS +``` + +A few of these warrant some elaboration. First, derivatives: + +- Derivatives allow the shader to cheaply calculate a tangent-space matrix for correct antialiasing when curvature or overscan are used. Without them, there are two options: + - Cheat, and there will be artifacts with strong cylindrical curvature + - Compute the correct tangent-space matrix analytically. This is used by default, and it's controlled by this option near the bottom: geom_force_correct_tangent_matrix = true + +- Dynamic branches: + +Dynamic branches allow the shader to avoid performing computations that it doesn't need (but might have, given different runtime options). Without them, the shader has to either let the GPU evaluate every possible codepath and select a result, or make a "best guess" ahead of time. The full phosphor bloom suffers most from not having dynamic branches, because the shader doesn't know how big of a blur to use until it knows your phosphor mask dot pitch...which you set at runtime if shader parameters are enabled. + +If RUNTIME_PHOSPHOR_BLOOM_SIGMA is commented out (faster), this won't matter: The shader will just select the blur size and standard deviation suitable for the mask_triad_size_desired_static setting in user-settings.cgp. It will be fast, but larger triads won't blur enough, and smaller triads will blur more than they need to. However, if RUNTIME_PHOSPHOR_BLOOM_SIGMA is enabled, the shader will calculate an optimal standard deviation and *try* to use the right blur size for it...but using an "if standard deviation is such and such" condition would be prohibitively slow without dynamic branches. Instead, the shader uses the largest and slowest blur the user lets it use (to cover the widest range of triad sizes and standard deviations), according to these macros: + +``` +#define PHOSPHOR_BLOOM_TRIADS_LARGER_THAN_3_PIXELS +//#define PHOSPHOR_BLOOM_TRIADS_LARGER_THAN_6_PIXELS +//#define PHOSPHOR_BLOOM_TRIADS_LARGER_THAN_9_PIXELS +//#define PHOSPHOR_BLOOM_TRIADS_LARGER_THAN_12_PIXELS +``` + +The more you have uncommented, the larger the triads you can blur, but the slower runtime sigmas will be if your GPU can't use dynamic branches. By default, triads up to 6 pixels wide will be bloomed perfectly, and a little beyond that (8 should be fine), but going too far beyond that will create blocking artifacts in the blur due to an insufficient support size. + +- tex2Dlod: + +The tex2Dlod function allows the shader to disables anisotropic filtering, which can get confused when we're manually tiling the texture coordinates for a small resized phosphor mask tile (it creates nasty seam artifacts). There are several ways the shader can deal with this: The cheapest is to use tex2Dlod to tile the output of MASK_RESIZE across the screen...and the slower alternatives either require derivatives or force the shader to draw 2 tiles to MASK_RESIZE in each direction, thereby reducing your maximum allowed dot pitch by half. + +- tex2Dbias: + +According to nVidia's Cg language standard library page, tex2Dbias requires the fp30 profile, which doesn't work on ATI/AMD cards...but you might actually have mixed results. This can be used as a substitute for tex2Dlod at times, so it's worth trying even on ATI. + +## #Why is everything still so slow?!? + +For maximum quality and configurability out of the box, almost all shader parameters are enabled by default (except for the disproportionately expensive runtime subpixel offsets). Some are more expensive than others. Commenting the following macro disables all shader parameters: + +``` +#define RUNTIME_SHADER_PARAMS_ENABLE +``` + +Commenting these macros disables selective shader parameters: + +``` +#define RUNTIME_PHOSPHOR_BLOOM_SIGMA +#define RUNTIME_ANTIALIAS_WEIGHTS +//#define RUNTIME_ANTIALIAS_SUBPIXEL_OFFSETS +#define RUNTIME_SCANLINES_HORIZ_FILTER_COLORSPACE +#define RUNTIME_GEOMETRY_TILT +#define RUNTIME_GEOMETRY_MODE +#define FORCE_RUNTIME_PHOSPHOR_MASK_MODE_TYPE_SELECT +``` + +Note that all shader parameters will still show up in your GUI list, and the disabled ones simply won't work. + +Finally, there are a lot of other options enabled by default that carry serious performance penalties. For instance, the default antialiasing filter is a cubic filter, because it's the most configurable, but it's also quite slow if RUNTIME_ANTIALIAS_WEIGHTS is #defined. A lot of the static true/false options have a significant influence, and the shader is faster if the red subpixel offset (from which the blue one is calculated as well) is zero...even if it's a static value, because RUNTIME_ANTIALIAS_SUBPIXEL_OFFSETS is commented out. To avoid any confusion, I should also clarify now that subpixel offsets are separate from scanline beam convergence offsets. + +To quickly see how much performance you can get from other settings, you can temporarily replace your user-settings.h with one of: + +- crt-royale-settings-files/user-settings-fast-static-ati.h +- crt-royale-settings-files/user-settings-fast-static-nvidia.h, then load crt-royale-fake-bloom.cgp. It should be far more playable. + +### Why won't my shader bloom my phosphors enough? + +First, see the discussion about dynamic branching above, in 1. If you don't have dynamic branches, you can either uncomment the lines that let the shader pessimistically use larger blurs than it's guaranteed to need (which is slow), or...you can just use crt-royale-fake-bloom.cgp, which doesn't have this problem. :) + +### Why can't I make my phosphors any bigger? + +By default, the phosphor mask is Lanczos-resized in earlier passes to your specified dot pitch (mask_sample_mode = 0). This gives a much sharper result than mipmapped hardware sampling (mask_sample_mode = 1), but it can be much slower without taking proper care: If the input mask tile (containing 8 phosphor triads by default) is large, like 512x512, and you try to resize it to 24x24 for 3x3 pixel triads, the resizer has to take 128 samples in each pass/direction (the max allowed) for a 3-lobe Lanczos filter. This can be very slow, so I made the output of MASK_RESIZE very small by default: Just 1/16th of the viewport size in each direction. The exact limit scales with your viewport size, and it *should* be reasonable, but the restrictions can get tighter if we can't use tex2Dlod and have to fit two whole tiles (16 phosphor triads with default 8-triad tiles) into the MASK_RESIZE pass for compatibility with anisotropic filtering (long story). + +If you want bigger phosphor triads, you have two options: + +- Set mask_sample_mode to 1 in your shader params (if enabled) or set mask_sample_mode_static to 1 in your user-settings.h file. This will use hardware sampling, which is softer but has no limitations. +- To increase the limit with manual mask-resizing (best quality), you need to do five things: + - Go into your .cgp file and find the MASK_RESIZE pass (the horizontal mask resizing pass) and the one before it (the vertical mask resizing pass). Find the viewport-relative scales, which should say 0.0625, and change them to 0.125 or even 0.25. + - Still in your .cgp file, also make sure your mask_*_texture_small filenames point to LUT textures that are larger than your final desired onscreen size (upsizing is not currently permitted). + - Go into user-cgp-constants.h and change mask_resize_viewport_scale from 0.0625 to the new value you changed it to in step 1. This is necessary, because we can't pass that value from the .cgp file to the shader, and the shader can't compute the viewport size (necessary) without it. + - Still in user-cgp-constants.h, update mask_texture_small_size and mask_triads_per_tile appropriately if you changed your LUT texture in step 2. + - Reload your .cgp file. I REALLY wish there was an easier way to do that, but my hands are tied until + +.cgp files are allowed to pass more information to .cg shaders (which would require major updates to the cg2glsl script). + +### Why can't I make my phosphors any smaller than 2 pixels per triad? + +This is controlled by mask_min_allowed_triad_size in your user-settings.h file. Set it to 1.0 instead of 2.0 (anything lower than 1 is pointless), and you're set. It defaults to 2.0 to make mask resizing twice as fast when dynamic branches aren't allowed. Some people may want to be able to fade the phosphors away entirely to get a more PVM-like scanlined image though, so change it to 1.0 for that (or get a higher-resolution display ;)). + +Note: This setting should be obsolete soon. I have some ideas for more sophisticated mask resampling that I just don't have a spare few hours to implement yet. + +### I am not running integrated graphics. Why am I getting errors? + +First recheck the top of your user-settings.h to make sure incompatible driver options are commented out (disabled). If they're all disabled and you're still having problems, you've probably found a bug. There are bound to be a number of them with certain setting combinations, and there might even be a few individual settings I broke more recently than I tested them. My contact information is up top, so let me know! + +### Why am I getting banding in dark colors? Or, why won't mipmapping work? + +crt-royale uses features like sRGB and mipmapping, which are not available in the latest Retroarch release (1.0.0.2) at the time of this writing. + +You may get banding in dark colors if your platform or Retroarch version doesn't support sRGB FBO's, and mask_sample_mode 1 will look awful without mipmapping. I expect most platforms capable of running this shader at full speed will support sRGB FBO's, but if yours doesn't, please let me know, and I'll include a note about it. + +Alternately, setting levels_autodim_temp too low will cause precision loss and banding. + +### How do I set geometry/curvature/etc.? + +If RUNTIME_SHADER_PARAMS_ENABLE and RUNTIME_GEOMETRY_MODE are both #defined (not commented out) in user-settings.cgp, you can find these options in your shader parameters (in Retroarch's RGUI for instance) under e.g. geom_mode. Otherwise, you can set the corresponding e.g. geom_mode_static options in user-settings.h. + +### Why don't my shader parameters stick? + +This is a bit confusing, at least in the version of Retroarch I'm using. In the Shader Options menu, Parameters (Current) controls what's on your screen right now, whereas Parameters (RGUI) seems to control what gets saved to a shader preset (in your base shaders directory) with Save As Shader Preset. + +### Why did you slow the shader down with all of these features I don't want? Why didn't you make the defaults more to my liking? + +The default settings tend to best match flat ~13" slot mask TV's with sharp scanlines. Real CRT's however vary a lot in their characteristics (and many are softer in more ways than one), so it's impossible to make the default settings look like everyone's favorite CRT. Moreover, it's impossible to decide which of the slower features and options are superfluous: + +Some people love curvature, and some people hate it. Some people love scanlines, and some people hate them. Some people love phosphors, and some people hate them. Some people love interlacing support, and some people hate it. Some people love sharpness, and some people hate it. Some people love convergence error, and some people hate it. The one thing you hate the most is probably someone else's most critical feature. This is why there are so many options, why the shader is so complicated, and why it's impossible to please everyone out of the box...unfortunately. + +That said, if you spend some time tweaking the settings, you're bound to get a picture you like. Once you've made up your mind, you can save the settings to a user-settings.h file and disable shader parameters and other slow options to get the kind of performance you want. + +### Why didn't you include a shader preset with NTSC support? Why didnt' you include more canned presets with different options? Why can't I select from one of several user settings files without manual file renaming? + +I do plan on adding a version that uses the NTSC shader for the first two passes, but it will take a bit of work, because there are several NTSC shader versions as it is. It's easy enough to combine the HALATION_BLUR passes into a one-pass blur from blurs/blur9x9fast.cg, but I'm not sure yet just how much modification the NTSC shader passes themselves might need for best results. + +I originally wanted NTSC support to be included out-of-the-box, but I'd also like to release the shader ASAP, so it'll have to wait. + +As for other canned presets, that's a little more complicated: I DO intend on creating more canned presets, but the combinatorial explosion of major codepath options in this shader is too overwhelming to be as exhaustive as I'd like. When I get the time, I'll add what I can to make this more user-friendly. In the meantime, I'll start adding a few different default versions of the user settings file and put them in a subdirectory for people to manually place in the main directory and rename to "user-settings.h." + +However, the libretro Cg shader specification (and the Cg to GLSL compiler) does not currently allow .cgp files to pass any static settings to the source files. This presents a huge problem, because it means that in order to create a new preset with different options, I also have to create duplicate files for EVERY single .cg pass for every permutation, not just the .cgp. I plan on creating a number of skeleton wrapper .cg files in a subdirectory (which set a few options and then include the main .cg file for the pass), but it'll be a while yet. In the meantime, I'd rather let people play with what's already done than keep it hidden on my hard drive. + +### Why do so many values in user_settings.h have a _static suffix? + +The "_static" suffix is there to prevent naming conflicts with runtime shader parameters: The shader usually uses a version without the suffix, which is assigned either the value of the "_static" version or the runtime shader parameter version. If a value in user-settings.h doesn't have a "_static" suffix, it's usually because it's a static compile-time option only, with no corresponding runtime version. Basically, you can ignore the suffix. :) + +### Are there any broken settings I should be aware of? What if I want to change settings in the .cgp file? + +As far as I know, all of the options in user-settings.h and the runtime shader parameters are pretty robust, with a few caveats: + +- As noted above, there are some tradeoffs between runtime and compile-time options. If runtime blur sigmas are disabled for instance, the phosphor bloom (and to a lesser extent, the fake bloom) may not blur the right amount. +- If you set your aspect ratio incorrectly, and mask_specify_num_triads == 1.0 (i.e. true, as opposed to 0.0, which is false), the shader will misinterpret the number of triads you want by the same proportion. +- Disabled shader parameters will do nothing, including either: + - mask_triad_size_desired + - mask_num_triads_desired, depending on the value of mask_specify_num_triads. + +There is a broken and unimplemented option in derived-settings-and-constants.h, but users shouldn't need to mess around in there anyway. (It's related to the more efficient phosphor mask resampling I want to implement.) + +However, the .cgp files are another story: They are pretty brittle, especially when it comes to their interaction with user-cgp-constants.h. Be aware that the shader passes rely on scale types and sizes in your .cgp file being exactly what they expect. Do not change any scale types from the defaults, or you'll get artifacts under certain conditions. You can change the BLOOM_APPROX and MASK_RESIZE scale values (not scale types), but you must update the associated constant in user-cgp-constants.h to let the .cg shader files know about it, and the implications may reach farther than you expect. Similarly, if you plan on changing an LUT texture, make sure you update the associated constants in user-cgp-constants.h. In short, if you plan on changing anything in a .cgp file, you'll want to read it thoroughly first, especially the "IMPORTANT" section at the top. + +### What are the most common dot pitches for CRT televisions? What kind of resolution would I need for a real shadow mask? + +The most demanding CRT we're ever likely to emulate is a Sony PVM-20M4U: + +- Width: 450mm +- Aperture Grille Pitch: 0.31mm +- Triads in 4:3 frame: 1451, assuming little to no overscan + +For 3-pixel triads, we would need about 6k UHD resolution. A BVM-20F1U has similar requirements. + +However, common slot masks are far more similar to the kind of image this shader will produce at 900p, 1080p, 1200p, and 1440p: + +- A typical 13" diagonal CRT might have a 0.60mm slot pitch, for a total of 440.26666666666665 or so phosphor triads horizontally. +- A typical 19" diagonal CRT might have a 0.75mm slot pitch, for a total of 514.7733333333333 or so phosphor triads horizontally. +- According to http://repairfaq.ece.drexel.edu/REPAIR/F_crtfaq.html, a typical 25" diagonal CRT might have a 0.9mm slot pitch, for a total of 564.4444444444445 or so phosphor triads horizontally. +- A 21" Samsung SMC210N CCTV monitor (450 TV lines) has a 0.7mm stripe pitch, for a total of 609.6 or so phosphor triads horizontally. + +The included EDP shadow mask starts looking very good with ~6-pixel triads, so it may take nearly 4k resolution to make it a particularly compelling option. However, it's possible to make smaller shadow masks on a pixel-by-pixel basis and tile them at a 1:1 ratio (mask_sample_mode = 2). I may include a mask like this in a future update. + +### Is this phosphor bloom realistic? + +Probably not: + +Realistically, the "phosphor bloom" blurs bright phosphors significantly more than your eyes would bloom the brighter phosphors on a real CRT. This extra blurring however is necessary to distribute enough brightness to nearby pixels that we can amplify the overall brightness to that of the original source after applying the phosphor mask. If you're interested, there are more comments on the subject at the top of the fragment shader in crt-royale-bloom-approx.cg. + +On the subject of the phosphor bloom: I intended to include some exposition about the math behind the brightpass calculation (and the much more complex and thorough calculation I originally used to blur the minimal amount necessary, which turned out to be inferior in practice), but that document isn't release-ready at the moment. Sorry Hyllian. ;) +So what do you plan on adding in the future? + +I'd like to add these relatively soon: + +- A combined ntsc-crt-royale.cgp and ntsc-crt-royale-fake-bloom.cgp. +- More presets, especially if maister or squarepusher find a way to make the Cg to GLSL compiler process .cgp files (which will allows .cgp's to pass arbitrary #defines to the .cg shader passes). +- More efficient and flexible phosphor mask resampling. Hopefully, this will make it possible to manually resize the mask on Intel HD Graphics as well. +- Make it more easy and convenient to use and experiment with mask_sample_mode 2 (direct 1:1 tiling of an input texture) by using a separate LUT texture with its own parameters in user-cgp-constants.h, etc. I haven't done this yet because it requires yet another texture sample that could hurt other codepaths, and I'm waiting until I have time to optimize it. +- Refine the runtime shader parameters: Some of them are probably too fine-grained and slow to change. + +Maybe's: + +- I've had trouble getting LUT's from subdirectories to work consistently across platforms, but I'd like to get around that and include more mask textures I've made. +- If you're using spherical curvature with a small radius, the edges of the sphere are blocky due to the pixel discards being done in 2x2 fragment blocks. I'd like to fix this if it can be done without a performance hit. +- I have some ideas for procedural mask generation with a fast, closed-form low-pass filter, but I don't know if I'll ever get around to it. \ No newline at end of file diff --git a/docs/shader/cubic.md b/docs/shader/cubic.md new file mode 100644 index 00000000..2a87980f --- /dev/null +++ b/docs/shader/cubic.md @@ -0,0 +1,20 @@ +# cubic + +## Background + +## Preview Image +* cubic-gamma-correct + +![cubic-gamma-correct](images/cubic/cubic-gamma-correct.png) + +* cubic + +![cubic](images/cubic/cubic.png) + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/ddt.md b/docs/shader/ddt.md new file mode 100644 index 00000000..e0f76613 --- /dev/null +++ b/docs/shader/ddt.md @@ -0,0 +1,16 @@ +# ddt + +## Background + +## Preview Image +* ddt + +![ddt](images/ddt/ddt.png) + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/dithering.md b/docs/shader/dithering.md new file mode 100644 index 00000000..889ab129 --- /dev/null +++ b/docs/shader/dithering.md @@ -0,0 +1,50 @@ +# dithering + +## Background + +## Preview Image + +* bayer-matrix-dithering + +![bayer-matrix-dithering](images/dithering/bayer-matrix-dithering.png) + +* cbod-v1 + +![cbod-v1](images/dithering/cbod-v1.png) + +* gdapt + +![gdapt](images/dithering/gdapt.png) + +* gdapt+xbr-hybrid+aa + +![gdapt+xbr-hybrid+aa](images/dithering/gdapt+xbr-hybrid+aa.png) + +* gdapt+xbr-hybrid+ddt + +![gdapt+xbr-hybrid+ddt](images/dithering/gdapt+xbr-hybrid+ddt.png) + +* gendither + +![gendither](images/dithering/gendither.png) + +* mdapt + +![mdapt](images/dithering/mdapt.png) + +* mdapt+xbr-hybrid+aa + +![mdapt+xbr-hybrid+aa](images/dithering/mdapt+xbr-hybrid+aa.png) + +* mdapt+xbr-hybrid+ddt + +![mdapt+xbr-hybrid+ddt](images/dithering/mdapt+xbr-hybrid+ddt.png) + + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/eagle.md b/docs/shader/eagle.md new file mode 100644 index 00000000..ecd5f49d --- /dev/null +++ b/docs/shader/eagle.md @@ -0,0 +1,16 @@ +# eagle + +## Background + +## Preview Image +* supereagle + +![supereagle](images/eagle/supereagle.png) + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/handheld-border.md b/docs/shader/handheld-border.md new file mode 100644 index 00000000..780fa462 --- /dev/null +++ b/docs/shader/handheld-border.md @@ -0,0 +1,183 @@ +# handheld console borders + +## Description +Shaders that apply a handheld console border image, at different scale factors, +for various handheld consoles. + +## Preview Image +* dmg-2x + +![dmg-2x](images/handheld/console-border/dmg-2x.png) + +* dmg-3x + +![dmg-3x](images/handheld/console-border/dmg-3x.png) + +* dmg-4x + +![dmg-4x](images/handheld/console-border/dmg-4x.png) + +* dmg-5x + +![dmg-5x](images/handheld/console-border/dmg-5x.png) + +* dmg-5x + +![dmg-5x](images/handheld/console-border/dmg-5x.png) + +* gb-pocket-2x + +![gb-pocket-2x](images/handheld/console-border/gb-pocket-2x.png) + +* gb-pocket-3x + +![gb-pocket-3x](images/handheld/console-border/gb-pocket-3x.png) + +* gb-pocket-4x + +![gb-pocket-4x](images/handheld/console-border/gb-pocket-4x.png) + +* gb-pocket-5x + +![gb-pocket-5x](images/handheld/console-border/gb-pocket-5x.png) + +* gb-pocket-6x + +![gb-pocket-6x](images/handheld/console-border/gb-pocket-6x.png) + +* gb-pocket-6x + +![gb-pocket-6x](images/handheld/console-border/gb-pocket-6x.png) + +* gba-3x + +![gba-3x](images/handheld/console-border/gba-3x.png) + +* gba-4x + +![gba-4x](images/handheld/console-border/gba-4x.png) + +* gba-5x + +![gba-5x](images/handheld/console-border/gba-5x.png) + +* gba-6x + +![gba-6x](images/handheld/console-border/gba-6x.png) + +* gbc-2x + +![gbc-2x](images/handheld/console-border/gbc-2x.png) + +* gbc-3x + +![gbc-3x](images/handheld/console-border/gbc-3x.png) + +* gbc-4x + +![gbc-4x](images/handheld/console-border/gbc-4x.png) + +* gb-pocket-5x + +![gb-pocket-5x](images/handheld/console-border/gb-pocket-5x.png) + +* gb-pocket-6x + +![gb-pocket-6x](images/handheld/console-border/gb-pocket-6x.png) + +* gba-2x + +![gba-2x](images/handheld/console-border/gba-2x.png) + +* gba-3x + +![gba-3x](images/handheld/console-border/gba-3x.png) + +* gba-4x + +![gba-4x](images/handheld/console-border/gba-4x.png) + +* gba-5x + +![gba-5x](images/handheld/console-border/gba-5x.png) + +* gba-6x + +![gba-6x](images/handheld/console-border/gba-6x.png) + +* gbc-2x + +![gbc-2x](images/handheld/console-border/gbc-2x.png) + +* gbc-3x + +![gbc-3x](images/handheld/console-border/gbc-3x.png) + +* gbc-4x + +![gbc-4x](images/handheld/console-border/gbc-4x.png) + +* gbc-5x + +![gbc-5x](images/handheld/console-border/gbc-5x.png) + +* gbc-6x + +![gbc-6x](images/handheld/console-border/gbc-6x.png) + +* gg-2x + +![gg-2x](images/handheld/console-border/gg-2x.png) + +* gg-3x + +![gg-3x](images/handheld/console-border/gg-3x.png) + +* gg-4x + +![gg-4x](images/handheld/console-border/gg-4x.png) + + +* gg-5x + +![gg-5x](images/handheld/console-border/gg-5x.png) + + +* gg-6x + +![gg-6x](images/handheld/console-border/gg-6x.png) + + +* ngp-2x + +![ngp-2x](images/handheld/console-border/ngp-2x.png) + + +* ngp-3x + +![ngp-3x](images/handheld/console-border/ngp-3x.png) + + +* ngp-4x + +![ngp-4x](images/handheld/console-border/ngp-4x.png) + + +* ngp-5x + +![ngp-5x](images/handheld/console-border/ngp-5x.png) + +* ngp-6x + +![ngp-6x](images/handheld/console-border/ngp-6x.png) + + + + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/handheld.md b/docs/shader/handheld.md new file mode 100644 index 00000000..60c7d06f --- /dev/null +++ b/docs/shader/handheld.md @@ -0,0 +1,66 @@ +# handheld + +## Description +Collection of handheld specific shaders. + +## Preview Image +* dot + +![dot](images/handheld/dot.png) + +* gameboy-light + +![gameboy-light](images/handheld/gameboy-light.png) + +* gameboy-pocket + +![gameboy-pocket](images/handheld/gameboy-pocket.png) + +* gameboy + +![gameboy](images/handheld/gameboy.png) + +* gba-color + +![gba-color](images/handheld/gba-color.png) + +* lcd-3x + +![lcd-3x](images/handheld/lcd-3x.png) + +* lcd-grid-v2-gba-color-motionblur + +![lcd-grid-v2-gba-color-motionblur](images/handheld/lcd-grid-v2-gba-color-motionblur.png) + +* lcd-grid-v2 + +![lcd-grid-v2](images/handheld/lcd-grid-v2.png) + +* lcd-grid-v2 + +![lcd-grid-v2](images/handheld/lcd-grid-v2.png) + +* nds-color + +![nds-color](images/handheld/nds-color.png) + +* psp-color + +![psp-color](images/handheld/psp-color.png) + +* vba-color + +![vba-color](images/handheld/vba-color.png) + +* zfast-lcd + +![zfast-lcd](images/handheld/zfast-lcd.png) + + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/hqx.md b/docs/shader/hqx.md new file mode 100644 index 00000000..06339b49 --- /dev/null +++ b/docs/shader/hqx.md @@ -0,0 +1,24 @@ +# hqx + +## Background + +## Preview Image +* hq2x + +![hq2x](images/hqx/hq2x.png) + +* hq3x + +![hq3x](images/hqx/hq3x.png) + +* hq4x + +![hq4x](images/hqx/hq4x.png) + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/images/3dfx/3dfx_4x1.png b/docs/shader/images/3dfx/3dfx_4x1.png new file mode 100644 index 00000000..d15ea829 Binary files /dev/null and b/docs/shader/images/3dfx/3dfx_4x1.png differ diff --git a/docs/shader/images/antialiasing/aa-shader-4.0.png b/docs/shader/images/antialiasing/aa-shader-4.0.png new file mode 100644 index 00000000..4410d908 Binary files /dev/null and b/docs/shader/images/antialiasing/aa-shader-4.0.png differ diff --git a/docs/shader/images/antialiasing/advanced-aa.png b/docs/shader/images/antialiasing/advanced-aa.png new file mode 100644 index 00000000..3b656800 Binary files /dev/null and b/docs/shader/images/antialiasing/advanced-aa.png differ diff --git a/docs/shader/images/antialiasing/fxaa.png b/docs/shader/images/antialiasing/fxaa.png new file mode 100644 index 00000000..02bb8e89 Binary files /dev/null and b/docs/shader/images/antialiasing/fxaa.png differ diff --git a/docs/shader/images/antialiasing/smaa.png b/docs/shader/images/antialiasing/smaa.png new file mode 100644 index 00000000..5a049e49 Binary files /dev/null and b/docs/shader/images/antialiasing/smaa.png differ diff --git a/docs/shader/images/border/bigblur-crt.png b/docs/shader/images/border/bigblur-crt.png new file mode 100644 index 00000000..ad350b24 Binary files /dev/null and b/docs/shader/images/border/bigblur-crt.png differ diff --git a/docs/shader/images/border/bigblur.png b/docs/shader/images/border/bigblur.png new file mode 100644 index 00000000..ca15cfb2 Binary files /dev/null and b/docs/shader/images/border/bigblur.png differ diff --git a/docs/shader/images/border/hexagons.png b/docs/shader/images/border/hexagons.png new file mode 100644 index 00000000..d5de4038 Binary files /dev/null and b/docs/shader/images/border/hexagons.png differ diff --git a/docs/shader/images/border/imgborder.png b/docs/shader/images/border/imgborder.png new file mode 100644 index 00000000..44b63444 Binary files /dev/null and b/docs/shader/images/border/imgborder.png differ diff --git a/docs/shader/images/cgp/2x2xscalehq.png b/docs/shader/images/cgp/2x2xscalehq.png new file mode 100644 index 00000000..719beaed Binary files /dev/null and b/docs/shader/images/cgp/2x2xscalehq.png differ diff --git a/docs/shader/images/cgp/2xbr-crt-hyllian.png b/docs/shader/images/cgp/2xbr-crt-hyllian.png new file mode 100644 index 00000000..276b5e9d Binary files /dev/null and b/docs/shader/images/cgp/2xbr-crt-hyllian.png differ diff --git a/docs/shader/images/cgp/2xbr-hybrid-crt-hyllian.png b/docs/shader/images/cgp/2xbr-hybrid-crt-hyllian.png new file mode 100644 index 00000000..45a05d9c Binary files /dev/null and b/docs/shader/images/cgp/2xbr-hybrid-crt-hyllian.png differ diff --git a/docs/shader/images/cgp/2xbr-jinc2-sharper-hybrid.png b/docs/shader/images/cgp/2xbr-jinc2-sharper-hybrid.png new file mode 100644 index 00000000..03bab168 Binary files /dev/null and b/docs/shader/images/cgp/2xbr-jinc2-sharper-hybrid.png differ diff --git a/docs/shader/images/cgp/2xbr-reverse-aa.png b/docs/shader/images/cgp/2xbr-reverse-aa.png new file mode 100644 index 00000000..c6bb6d3b Binary files /dev/null and b/docs/shader/images/cgp/2xbr-reverse-aa.png differ diff --git a/docs/shader/images/cgp/crt-reverse-aa-ddt.png b/docs/shader/images/cgp/crt-reverse-aa-ddt.png new file mode 100644 index 00000000..73139b32 Binary files /dev/null and b/docs/shader/images/cgp/crt-reverse-aa-ddt.png differ diff --git a/docs/shader/images/cgp/crt-royale-kurozumi.png b/docs/shader/images/cgp/crt-royale-kurozumi.png new file mode 100644 index 00000000..a1874a56 Binary files /dev/null and b/docs/shader/images/cgp/crt-royale-kurozumi.png differ diff --git a/docs/shader/images/cgp/gameboy-colors.png b/docs/shader/images/cgp/gameboy-colors.png new file mode 100644 index 00000000..30500aec Binary files /dev/null and b/docs/shader/images/cgp/gameboy-colors.png differ diff --git a/docs/shader/images/cgp/gameboy-scree-n-grid.png b/docs/shader/images/cgp/gameboy-scree-n-grid.png new file mode 100644 index 00000000..7605c701 Binary files /dev/null and b/docs/shader/images/cgp/gameboy-scree-n-grid.png differ diff --git a/docs/shader/images/cgp/gameboy-screen-grid+motionblur.png b/docs/shader/images/cgp/gameboy-screen-grid+motionblur.png new file mode 100644 index 00000000..f9083108 Binary files /dev/null and b/docs/shader/images/cgp/gameboy-screen-grid+motionblur.png differ diff --git a/docs/shader/images/cgp/lowquality-lcd+motionblur.png b/docs/shader/images/cgp/lowquality-lcd+motionblur.png new file mode 100644 index 00000000..2d9b8224 Binary files /dev/null and b/docs/shader/images/cgp/lowquality-lcd+motionblur.png differ diff --git a/docs/shader/images/cgp/lowquality-lcd.png b/docs/shader/images/cgp/lowquality-lcd.png new file mode 100644 index 00000000..6eb9dc45 Binary files /dev/null and b/docs/shader/images/cgp/lowquality-lcd.png differ diff --git a/docs/shader/images/cgp/xbr-dilation-smart-blur-4xsoft.png b/docs/shader/images/cgp/xbr-dilation-smart-blur-4xsoft.png new file mode 100644 index 00000000..4f354c14 Binary files /dev/null and b/docs/shader/images/cgp/xbr-dilation-smart-blur-4xsoft.png differ diff --git a/docs/shader/images/cgp/xbr-dtt-dilation-soft2-aa-gamma.png b/docs/shader/images/cgp/xbr-dtt-dilation-soft2-aa-gamma.png new file mode 100644 index 00000000..cfa52457 Binary files /dev/null and b/docs/shader/images/cgp/xbr-dtt-dilation-soft2-aa-gamma.png differ diff --git a/docs/shader/images/cgp/xbr-hybrid-bicubic.png b/docs/shader/images/cgp/xbr-hybrid-bicubic.png new file mode 100644 index 00000000..c27590e4 Binary files /dev/null and b/docs/shader/images/cgp/xbr-hybrid-bicubic.png differ diff --git a/docs/shader/images/cgp/xbr-hybrid-ddt.png b/docs/shader/images/cgp/xbr-hybrid-ddt.png new file mode 100644 index 00000000..c7a2bf67 Binary files /dev/null and b/docs/shader/images/cgp/xbr-hybrid-ddt.png differ diff --git a/docs/shader/images/cgp/xbr-hybrid-lanczos.png b/docs/shader/images/cgp/xbr-hybrid-lanczos.png new file mode 100644 index 00000000..810dfc0b Binary files /dev/null and b/docs/shader/images/cgp/xbr-hybrid-lanczos.png differ diff --git a/docs/shader/images/cgp/xbr-hybrid-sharp-lanczos.png b/docs/shader/images/cgp/xbr-hybrid-sharp-lanczos.png new file mode 100644 index 00000000..ec57bf09 Binary files /dev/null and b/docs/shader/images/cgp/xbr-hybrid-sharp-lanczos.png differ diff --git a/docs/shader/images/cgp/xbr-smart-blur.png b/docs/shader/images/cgp/xbr-smart-blur.png new file mode 100644 index 00000000..792ea288 Binary files /dev/null and b/docs/shader/images/cgp/xbr-smart-blur.png differ diff --git a/docs/shader/images/crt/crt-aperture.png b/docs/shader/images/crt/crt-aperture.png new file mode 100644 index 00000000..91a3f813 Binary files /dev/null and b/docs/shader/images/crt/crt-aperture.png differ diff --git a/docs/shader/images/crt/crt-caligari.png b/docs/shader/images/crt/crt-caligari.png new file mode 100644 index 00000000..8edcd63d Binary files /dev/null and b/docs/shader/images/crt/crt-caligari.png differ diff --git a/docs/shader/images/crt/crt-cgwg-fast.png b/docs/shader/images/crt/crt-cgwg-fast.png new file mode 100644 index 00000000..fd5f23c2 Binary files /dev/null and b/docs/shader/images/crt/crt-cgwg-fast.png differ diff --git a/docs/shader/images/crt/crt-easymode-halation.png b/docs/shader/images/crt/crt-easymode-halation.png new file mode 100644 index 00000000..7d0db3b7 Binary files /dev/null and b/docs/shader/images/crt/crt-easymode-halation.png differ diff --git a/docs/shader/images/crt/crt-easymode.png b/docs/shader/images/crt/crt-easymode.png new file mode 100644 index 00000000..f13b8e1e Binary files /dev/null and b/docs/shader/images/crt/crt-easymode.png differ diff --git a/docs/shader/images/crt/crt-geom.png b/docs/shader/images/crt/crt-geom.png new file mode 100644 index 00000000..d4a03de7 Binary files /dev/null and b/docs/shader/images/crt/crt-geom.png differ diff --git a/docs/shader/images/crt/crt-hyllian-multipass.png b/docs/shader/images/crt/crt-hyllian-multipass.png new file mode 100644 index 00000000..4f9e7b74 Binary files /dev/null and b/docs/shader/images/crt/crt-hyllian-multipass.png differ diff --git a/docs/shader/images/crt/crt-hyllian.png b/docs/shader/images/crt/crt-hyllian.png new file mode 100644 index 00000000..fa39e1fc Binary files /dev/null and b/docs/shader/images/crt/crt-hyllian.png differ diff --git a/docs/shader/images/crt/crt-interlaced-halation.png b/docs/shader/images/crt/crt-interlaced-halation.png new file mode 100644 index 00000000..0377d5f0 Binary files /dev/null and b/docs/shader/images/crt/crt-interlaced-halation.png differ diff --git a/docs/shader/images/crt/crt-lottes-fast.png b/docs/shader/images/crt/crt-lottes-fast.png new file mode 100644 index 00000000..1b6cf0ee Binary files /dev/null and b/docs/shader/images/crt/crt-lottes-fast.png differ diff --git a/docs/shader/images/crt/crt-lottes-multipass-interlace-glow.png b/docs/shader/images/crt/crt-lottes-multipass-interlace-glow.png new file mode 100644 index 00000000..b894c9ca Binary files /dev/null and b/docs/shader/images/crt/crt-lottes-multipass-interlace-glow.png differ diff --git a/docs/shader/images/crt/crt-lottes-multipass.png b/docs/shader/images/crt/crt-lottes-multipass.png new file mode 100644 index 00000000..7c4d6b9f Binary files /dev/null and b/docs/shader/images/crt/crt-lottes-multipass.png differ diff --git a/docs/shader/images/crt/crt-lottes.png b/docs/shader/images/crt/crt-lottes.png new file mode 100644 index 00000000..b0cd0a17 Binary files /dev/null and b/docs/shader/images/crt/crt-lottes.png differ diff --git a/docs/shader/images/crt/crt-nes-mini.png b/docs/shader/images/crt/crt-nes-mini.png new file mode 100644 index 00000000..7bac80d8 Binary files /dev/null and b/docs/shader/images/crt/crt-nes-mini.png differ diff --git a/docs/shader/images/crt/crt-potato-cool.png b/docs/shader/images/crt/crt-potato-cool.png new file mode 100644 index 00000000..53fa9559 Binary files /dev/null and b/docs/shader/images/crt/crt-potato-cool.png differ diff --git a/docs/shader/images/crt/crt-potato-warm.png b/docs/shader/images/crt/crt-potato-warm.png new file mode 100644 index 00000000..5ec740ee Binary files /dev/null and b/docs/shader/images/crt/crt-potato-warm.png differ diff --git a/docs/shader/images/crt/crt-royale.png b/docs/shader/images/crt/crt-royale.png new file mode 100644 index 00000000..266fd3e2 Binary files /dev/null and b/docs/shader/images/crt/crt-royale.png differ diff --git a/docs/shader/images/crt/crt-slangtest-cubic.png b/docs/shader/images/crt/crt-slangtest-cubic.png new file mode 100644 index 00000000..a6a17e73 Binary files /dev/null and b/docs/shader/images/crt/crt-slangtest-cubic.png differ diff --git a/docs/shader/images/crt/crt-slangtest-lanczos.png b/docs/shader/images/crt/crt-slangtest-lanczos.png new file mode 100644 index 00000000..cb7e64e1 Binary files /dev/null and b/docs/shader/images/crt/crt-slangtest-lanczos.png differ diff --git a/docs/shader/images/crt/crtglow_gauss.png b/docs/shader/images/crt/crtglow_gauss.png new file mode 100644 index 00000000..0e35d640 Binary files /dev/null and b/docs/shader/images/crt/crtglow_gauss.png differ diff --git a/docs/shader/images/crt/crtglow_gauss_ntsc_3phase.png b/docs/shader/images/crt/crtglow_gauss_ntsc_3phase.png new file mode 100644 index 00000000..7d8acd38 Binary files /dev/null and b/docs/shader/images/crt/crtglow_gauss_ntsc_3phase.png differ diff --git a/docs/shader/images/crt/crtglow_lanczos.png b/docs/shader/images/crt/crtglow_lanczos.png new file mode 100644 index 00000000..91d08482 Binary files /dev/null and b/docs/shader/images/crt/crtglow_lanczos.png differ diff --git a/docs/shader/images/crt/dotmask.png b/docs/shader/images/crt/dotmask.png new file mode 100644 index 00000000..21583a74 Binary files /dev/null and b/docs/shader/images/crt/dotmask.png differ diff --git a/docs/shader/images/crt/gtu-famicom.png b/docs/shader/images/crt/gtu-famicom.png new file mode 100644 index 00000000..1ec7e636 Binary files /dev/null and b/docs/shader/images/crt/gtu-famicom.png differ diff --git a/docs/shader/images/crt/gtu-v050.png b/docs/shader/images/crt/gtu-v050.png new file mode 100644 index 00000000..02461d20 Binary files /dev/null and b/docs/shader/images/crt/gtu-v050.png differ diff --git a/docs/shader/images/crt/gtuv50-radeon.png b/docs/shader/images/crt/gtuv50-radeon.png new file mode 100644 index 00000000..b73f3869 Binary files /dev/null and b/docs/shader/images/crt/gtuv50-radeon.png differ diff --git a/docs/shader/images/crt/gtuv50.png b/docs/shader/images/crt/gtuv50.png new file mode 100644 index 00000000..02461d20 Binary files /dev/null and b/docs/shader/images/crt/gtuv50.png differ diff --git a/docs/shader/images/crt/meta-crt.png b/docs/shader/images/crt/meta-crt.png new file mode 100644 index 00000000..f053465b Binary files /dev/null and b/docs/shader/images/crt/meta-crt.png differ diff --git a/docs/shader/images/crt/ntsc-shadowmask-interlacing.png b/docs/shader/images/crt/ntsc-shadowmask-interlacing.png new file mode 100644 index 00000000..4ce5409f Binary files /dev/null and b/docs/shader/images/crt/ntsc-shadowmask-interlacing.png differ diff --git a/docs/shader/images/crt/ntsc-shadowmask-noblend.png b/docs/shader/images/crt/ntsc-shadowmask-noblend.png new file mode 100644 index 00000000..3255e0fb Binary files /dev/null and b/docs/shader/images/crt/ntsc-shadowmask-noblend.png differ diff --git a/docs/shader/images/crt/ntsc-shadowmask.png b/docs/shader/images/crt/ntsc-shadowmask.png new file mode 100644 index 00000000..2389b2a5 Binary files /dev/null and b/docs/shader/images/crt/ntsc-shadowmask.png differ diff --git a/docs/shader/images/crt/phosphorlut-4k.png b/docs/shader/images/crt/phosphorlut-4k.png new file mode 100644 index 00000000..772f4429 Binary files /dev/null and b/docs/shader/images/crt/phosphorlut-4k.png differ diff --git a/docs/shader/images/crt/phosphorlut-shadowmask.png b/docs/shader/images/crt/phosphorlut-shadowmask.png new file mode 100644 index 00000000..0fa329f2 Binary files /dev/null and b/docs/shader/images/crt/phosphorlut-shadowmask.png differ diff --git a/docs/shader/images/crt/phosphorlut.png b/docs/shader/images/crt/phosphorlut.png new file mode 100644 index 00000000..a3a3ae2d Binary files /dev/null and b/docs/shader/images/crt/phosphorlut.png differ diff --git a/docs/shader/images/crt/zfast-crt.png b/docs/shader/images/crt/zfast-crt.png new file mode 100644 index 00000000..98f9fd44 Binary files /dev/null and b/docs/shader/images/crt/zfast-crt.png differ diff --git a/docs/shader/images/cubic/cubic-gamma-correct.png b/docs/shader/images/cubic/cubic-gamma-correct.png new file mode 100644 index 00000000..91f606be Binary files /dev/null and b/docs/shader/images/cubic/cubic-gamma-correct.png differ diff --git a/docs/shader/images/cubic/cubic.png b/docs/shader/images/cubic/cubic.png new file mode 100644 index 00000000..29edc6dc Binary files /dev/null and b/docs/shader/images/cubic/cubic.png differ diff --git a/docs/shader/images/ddt/ddt.png b/docs/shader/images/ddt/ddt.png new file mode 100644 index 00000000..f051af87 Binary files /dev/null and b/docs/shader/images/ddt/ddt.png differ diff --git a/docs/shader/images/dithering/bayer-matrix-dithering.png b/docs/shader/images/dithering/bayer-matrix-dithering.png new file mode 100644 index 00000000..1b1e1ccd Binary files /dev/null and b/docs/shader/images/dithering/bayer-matrix-dithering.png differ diff --git a/docs/shader/images/dithering/cbod-v1.png b/docs/shader/images/dithering/cbod-v1.png new file mode 100644 index 00000000..9ebaae08 Binary files /dev/null and b/docs/shader/images/dithering/cbod-v1.png differ diff --git a/docs/shader/images/dithering/gdapt+xbr-hybrid+aa.png b/docs/shader/images/dithering/gdapt+xbr-hybrid+aa.png new file mode 100644 index 00000000..63213f96 Binary files /dev/null and b/docs/shader/images/dithering/gdapt+xbr-hybrid+aa.png differ diff --git a/docs/shader/images/dithering/gdapt+xbr-hybrid+ddt.png b/docs/shader/images/dithering/gdapt+xbr-hybrid+ddt.png new file mode 100644 index 00000000..187d0561 Binary files /dev/null and b/docs/shader/images/dithering/gdapt+xbr-hybrid+ddt.png differ diff --git a/docs/shader/images/dithering/gdapt.png b/docs/shader/images/dithering/gdapt.png new file mode 100644 index 00000000..8d0fb9b9 Binary files /dev/null and b/docs/shader/images/dithering/gdapt.png differ diff --git a/docs/shader/images/dithering/gendither.png b/docs/shader/images/dithering/gendither.png new file mode 100644 index 00000000..5bb0397b Binary files /dev/null and b/docs/shader/images/dithering/gendither.png differ diff --git a/docs/shader/images/dithering/mdapt+xbr-hybrid+aa.png b/docs/shader/images/dithering/mdapt+xbr-hybrid+aa.png new file mode 100644 index 00000000..3ae6af7c Binary files /dev/null and b/docs/shader/images/dithering/mdapt+xbr-hybrid+aa.png differ diff --git a/docs/shader/images/dithering/mdapt+xbr-hybrid+ddt.png b/docs/shader/images/dithering/mdapt+xbr-hybrid+ddt.png new file mode 100644 index 00000000..d58ab785 Binary files /dev/null and b/docs/shader/images/dithering/mdapt+xbr-hybrid+ddt.png differ diff --git a/docs/shader/images/dithering/mdapt.png b/docs/shader/images/dithering/mdapt.png new file mode 100644 index 00000000..4f1ceb01 Binary files /dev/null and b/docs/shader/images/dithering/mdapt.png differ diff --git a/docs/shader/images/eagle/supereagle.png b/docs/shader/images/eagle/supereagle.png new file mode 100644 index 00000000..90d6295e Binary files /dev/null and b/docs/shader/images/eagle/supereagle.png differ diff --git a/docs/shader/images/handheld/console-border/dmg-2x.png b/docs/shader/images/handheld/console-border/dmg-2x.png new file mode 100644 index 00000000..15ebbdb3 Binary files /dev/null and b/docs/shader/images/handheld/console-border/dmg-2x.png differ diff --git a/docs/shader/images/handheld/console-border/dmg-3x.png b/docs/shader/images/handheld/console-border/dmg-3x.png new file mode 100644 index 00000000..15ebbdb3 Binary files /dev/null and b/docs/shader/images/handheld/console-border/dmg-3x.png differ diff --git a/docs/shader/images/handheld/console-border/dmg-4x.png b/docs/shader/images/handheld/console-border/dmg-4x.png new file mode 100644 index 00000000..15ebbdb3 Binary files /dev/null and b/docs/shader/images/handheld/console-border/dmg-4x.png differ diff --git a/docs/shader/images/handheld/console-border/dmg-5x.png b/docs/shader/images/handheld/console-border/dmg-5x.png new file mode 100644 index 00000000..15ebbdb3 Binary files /dev/null and b/docs/shader/images/handheld/console-border/dmg-5x.png differ diff --git a/docs/shader/images/handheld/console-border/dmg-6x.png b/docs/shader/images/handheld/console-border/dmg-6x.png new file mode 100644 index 00000000..15ebbdb3 Binary files /dev/null and b/docs/shader/images/handheld/console-border/dmg-6x.png differ diff --git a/docs/shader/images/handheld/console-border/gb-pocket-2x.png b/docs/shader/images/handheld/console-border/gb-pocket-2x.png new file mode 100644 index 00000000..da99992a Binary files /dev/null and b/docs/shader/images/handheld/console-border/gb-pocket-2x.png differ diff --git a/docs/shader/images/handheld/console-border/gb-pocket-3x.png b/docs/shader/images/handheld/console-border/gb-pocket-3x.png new file mode 100644 index 00000000..da99992a Binary files /dev/null and b/docs/shader/images/handheld/console-border/gb-pocket-3x.png differ diff --git a/docs/shader/images/handheld/console-border/gb-pocket-4x.png b/docs/shader/images/handheld/console-border/gb-pocket-4x.png new file mode 100644 index 00000000..da99992a Binary files /dev/null and b/docs/shader/images/handheld/console-border/gb-pocket-4x.png differ diff --git a/docs/shader/images/handheld/console-border/gb-pocket-5x.png b/docs/shader/images/handheld/console-border/gb-pocket-5x.png new file mode 100644 index 00000000..da99992a Binary files /dev/null and b/docs/shader/images/handheld/console-border/gb-pocket-5x.png differ diff --git a/docs/shader/images/handheld/console-border/gb-pocket-6x.png b/docs/shader/images/handheld/console-border/gb-pocket-6x.png new file mode 100644 index 00000000..da99992a Binary files /dev/null and b/docs/shader/images/handheld/console-border/gb-pocket-6x.png differ diff --git a/docs/shader/images/handheld/console-border/gba-2x.png b/docs/shader/images/handheld/console-border/gba-2x.png new file mode 100644 index 00000000..ed72cc94 Binary files /dev/null and b/docs/shader/images/handheld/console-border/gba-2x.png differ diff --git a/docs/shader/images/handheld/console-border/gba-3x.png b/docs/shader/images/handheld/console-border/gba-3x.png new file mode 100644 index 00000000..ed72cc94 Binary files /dev/null and b/docs/shader/images/handheld/console-border/gba-3x.png differ diff --git a/docs/shader/images/handheld/console-border/gba-4x.png b/docs/shader/images/handheld/console-border/gba-4x.png new file mode 100644 index 00000000..ed72cc94 Binary files /dev/null and b/docs/shader/images/handheld/console-border/gba-4x.png differ diff --git a/docs/shader/images/handheld/console-border/gba-5x.png b/docs/shader/images/handheld/console-border/gba-5x.png new file mode 100644 index 00000000..ed72cc94 Binary files /dev/null and b/docs/shader/images/handheld/console-border/gba-5x.png differ diff --git a/docs/shader/images/handheld/console-border/gba-6x.png b/docs/shader/images/handheld/console-border/gba-6x.png new file mode 100644 index 00000000..ed72cc94 Binary files /dev/null and b/docs/shader/images/handheld/console-border/gba-6x.png differ diff --git a/docs/shader/images/handheld/console-border/gbc-2x.png b/docs/shader/images/handheld/console-border/gbc-2x.png new file mode 100644 index 00000000..139df8b8 Binary files /dev/null and b/docs/shader/images/handheld/console-border/gbc-2x.png differ diff --git a/docs/shader/images/handheld/console-border/gbc-3x.png b/docs/shader/images/handheld/console-border/gbc-3x.png new file mode 100644 index 00000000..139df8b8 Binary files /dev/null and b/docs/shader/images/handheld/console-border/gbc-3x.png differ diff --git a/docs/shader/images/handheld/console-border/gbc-4x.png b/docs/shader/images/handheld/console-border/gbc-4x.png new file mode 100644 index 00000000..139df8b8 Binary files /dev/null and b/docs/shader/images/handheld/console-border/gbc-4x.png differ diff --git a/docs/shader/images/handheld/console-border/gbc-5x.png b/docs/shader/images/handheld/console-border/gbc-5x.png new file mode 100644 index 00000000..139df8b8 Binary files /dev/null and b/docs/shader/images/handheld/console-border/gbc-5x.png differ diff --git a/docs/shader/images/handheld/console-border/gbc-6x.png b/docs/shader/images/handheld/console-border/gbc-6x.png new file mode 100644 index 00000000..139df8b8 Binary files /dev/null and b/docs/shader/images/handheld/console-border/gbc-6x.png differ diff --git a/docs/shader/images/handheld/console-border/gg-2x.png b/docs/shader/images/handheld/console-border/gg-2x.png new file mode 100644 index 00000000..1c0b63cd Binary files /dev/null and b/docs/shader/images/handheld/console-border/gg-2x.png differ diff --git a/docs/shader/images/handheld/console-border/gg-3x.png b/docs/shader/images/handheld/console-border/gg-3x.png new file mode 100644 index 00000000..1c0b63cd Binary files /dev/null and b/docs/shader/images/handheld/console-border/gg-3x.png differ diff --git a/docs/shader/images/handheld/console-border/gg-4x.png b/docs/shader/images/handheld/console-border/gg-4x.png new file mode 100644 index 00000000..1c0b63cd Binary files /dev/null and b/docs/shader/images/handheld/console-border/gg-4x.png differ diff --git a/docs/shader/images/handheld/console-border/gg-5x.png b/docs/shader/images/handheld/console-border/gg-5x.png new file mode 100644 index 00000000..1c0b63cd Binary files /dev/null and b/docs/shader/images/handheld/console-border/gg-5x.png differ diff --git a/docs/shader/images/handheld/console-border/gg-6x.png b/docs/shader/images/handheld/console-border/gg-6x.png new file mode 100644 index 00000000..1c0b63cd Binary files /dev/null and b/docs/shader/images/handheld/console-border/gg-6x.png differ diff --git a/docs/shader/images/handheld/console-border/ngp-2x.png b/docs/shader/images/handheld/console-border/ngp-2x.png new file mode 100644 index 00000000..cf374286 Binary files /dev/null and b/docs/shader/images/handheld/console-border/ngp-2x.png differ diff --git a/docs/shader/images/handheld/console-border/ngp-3x.png b/docs/shader/images/handheld/console-border/ngp-3x.png new file mode 100644 index 00000000..cf374286 Binary files /dev/null and b/docs/shader/images/handheld/console-border/ngp-3x.png differ diff --git a/docs/shader/images/handheld/console-border/ngp-4x.png b/docs/shader/images/handheld/console-border/ngp-4x.png new file mode 100644 index 00000000..cf374286 Binary files /dev/null and b/docs/shader/images/handheld/console-border/ngp-4x.png differ diff --git a/docs/shader/images/handheld/console-border/ngp-5x.png b/docs/shader/images/handheld/console-border/ngp-5x.png new file mode 100644 index 00000000..cf374286 Binary files /dev/null and b/docs/shader/images/handheld/console-border/ngp-5x.png differ diff --git a/docs/shader/images/handheld/console-border/ngp-6x.png b/docs/shader/images/handheld/console-border/ngp-6x.png new file mode 100644 index 00000000..cf374286 Binary files /dev/null and b/docs/shader/images/handheld/console-border/ngp-6x.png differ diff --git a/docs/shader/images/handheld/dot.png b/docs/shader/images/handheld/dot.png new file mode 100644 index 00000000..e41f340e Binary files /dev/null and b/docs/shader/images/handheld/dot.png differ diff --git a/docs/shader/images/handheld/gameboy-light.png b/docs/shader/images/handheld/gameboy-light.png new file mode 100644 index 00000000..17bcd71a Binary files /dev/null and b/docs/shader/images/handheld/gameboy-light.png differ diff --git a/docs/shader/images/handheld/gameboy-pocket.png b/docs/shader/images/handheld/gameboy-pocket.png new file mode 100644 index 00000000..a30f73ff Binary files /dev/null and b/docs/shader/images/handheld/gameboy-pocket.png differ diff --git a/docs/shader/images/handheld/gameboy.png b/docs/shader/images/handheld/gameboy.png new file mode 100644 index 00000000..8b2a81df Binary files /dev/null and b/docs/shader/images/handheld/gameboy.png differ diff --git a/docs/shader/images/handheld/gba-color.png b/docs/shader/images/handheld/gba-color.png new file mode 100644 index 00000000..83810cdb Binary files /dev/null and b/docs/shader/images/handheld/gba-color.png differ diff --git a/docs/shader/images/handheld/lcd-3x.png b/docs/shader/images/handheld/lcd-3x.png new file mode 100644 index 00000000..c271fd66 Binary files /dev/null and b/docs/shader/images/handheld/lcd-3x.png differ diff --git a/docs/shader/images/handheld/lcd-grid-v2-gba-color-motionblur.png b/docs/shader/images/handheld/lcd-grid-v2-gba-color-motionblur.png new file mode 100644 index 00000000..da893954 Binary files /dev/null and b/docs/shader/images/handheld/lcd-grid-v2-gba-color-motionblur.png differ diff --git a/docs/shader/images/handheld/lcd-grid-v2.png b/docs/shader/images/handheld/lcd-grid-v2.png new file mode 100644 index 00000000..6538ca10 Binary files /dev/null and b/docs/shader/images/handheld/lcd-grid-v2.png differ diff --git a/docs/shader/images/handheld/lcd-grid.png b/docs/shader/images/handheld/lcd-grid.png new file mode 100644 index 00000000..f74da6ca Binary files /dev/null and b/docs/shader/images/handheld/lcd-grid.png differ diff --git a/docs/shader/images/handheld/nds-color.png b/docs/shader/images/handheld/nds-color.png new file mode 100644 index 00000000..9682de4b Binary files /dev/null and b/docs/shader/images/handheld/nds-color.png differ diff --git a/docs/shader/images/handheld/psp-color.png b/docs/shader/images/handheld/psp-color.png new file mode 100644 index 00000000..c11190a8 Binary files /dev/null and b/docs/shader/images/handheld/psp-color.png differ diff --git a/docs/shader/images/handheld/vba-color.png b/docs/shader/images/handheld/vba-color.png new file mode 100644 index 00000000..bd7e11f7 Binary files /dev/null and b/docs/shader/images/handheld/vba-color.png differ diff --git a/docs/shader/images/handheld/zfast-lcd.png b/docs/shader/images/handheld/zfast-lcd.png new file mode 100644 index 00000000..966f031b Binary files /dev/null and b/docs/shader/images/handheld/zfast-lcd.png differ diff --git a/docs/shader/images/hqx/hq2x.png b/docs/shader/images/hqx/hq2x.png new file mode 100644 index 00000000..3d61931d Binary files /dev/null and b/docs/shader/images/hqx/hq2x.png differ diff --git a/docs/shader/images/hqx/hq3x.png b/docs/shader/images/hqx/hq3x.png new file mode 100644 index 00000000..a7a2deb8 Binary files /dev/null and b/docs/shader/images/hqx/hq3x.png differ diff --git a/docs/shader/images/hqx/hq4x.png b/docs/shader/images/hqx/hq4x.png new file mode 100644 index 00000000..461dc238 Binary files /dev/null and b/docs/shader/images/hqx/hq4x.png differ diff --git a/docs/shader/images/linear/linear-gamma-correct.png b/docs/shader/images/linear/linear-gamma-correct.png new file mode 100644 index 00000000..4bd39650 Binary files /dev/null and b/docs/shader/images/linear/linear-gamma-correct.png differ diff --git a/docs/shader/images/motionblur/feedback.png b/docs/shader/images/motionblur/feedback.png new file mode 100644 index 00000000..365ff568 Binary files /dev/null and b/docs/shader/images/motionblur/feedback.png differ diff --git a/docs/shader/images/motionblur/motionblur-simple.png b/docs/shader/images/motionblur/motionblur-simple.png new file mode 100644 index 00000000..8247b948 Binary files /dev/null and b/docs/shader/images/motionblur/motionblur-simple.png differ diff --git a/docs/shader/images/mudlord/bloom.png b/docs/shader/images/mudlord/bloom.png new file mode 100644 index 00000000..d538cc56 Binary files /dev/null and b/docs/shader/images/mudlord/bloom.png differ diff --git a/docs/shader/images/mudlord/blur.png b/docs/shader/images/mudlord/blur.png new file mode 100644 index 00000000..b8834673 Binary files /dev/null and b/docs/shader/images/mudlord/blur.png differ diff --git a/docs/shader/images/mudlord/emboss.png b/docs/shader/images/mudlord/emboss.png new file mode 100644 index 00000000..a15f992f Binary files /dev/null and b/docs/shader/images/mudlord/emboss.png differ diff --git a/docs/shader/images/mudlord/oldtv.png b/docs/shader/images/mudlord/oldtv.png new file mode 100644 index 00000000..b0f2199d Binary files /dev/null and b/docs/shader/images/mudlord/oldtv.png differ diff --git a/docs/shader/images/mudlord/toon.png b/docs/shader/images/mudlord/toon.png new file mode 100644 index 00000000..a477bce2 Binary files /dev/null and b/docs/shader/images/mudlord/toon.png differ diff --git a/docs/shader/images/mudlord/waterpaint-mudlord.png b/docs/shader/images/mudlord/waterpaint-mudlord.png new file mode 100644 index 00000000..cb46a9e6 Binary files /dev/null and b/docs/shader/images/mudlord/waterpaint-mudlord.png differ diff --git a/docs/shader/images/nedi/fast-bilateral-nedi.png b/docs/shader/images/nedi/fast-bilateral-nedi.png new file mode 100644 index 00000000..10c6ee8b Binary files /dev/null and b/docs/shader/images/nedi/fast-bilateral-nedi.png differ diff --git a/docs/shader/images/nedi/nedi.png b/docs/shader/images/nedi/nedi.png new file mode 100644 index 00000000..af61c3f4 Binary files /dev/null and b/docs/shader/images/nedi/nedi.png differ diff --git a/docs/shader/images/nnedi3/nnedi3-nns16-2x-luma.png b/docs/shader/images/nnedi3/nnedi3-nns16-2x-luma.png new file mode 100644 index 00000000..21d75ba5 Binary files /dev/null and b/docs/shader/images/nnedi3/nnedi3-nns16-2x-luma.png differ diff --git a/docs/shader/images/nnedi3/nnedi3-nns16-2x-rgb.png b/docs/shader/images/nnedi3/nnedi3-nns16-2x-rgb.png new file mode 100644 index 00000000..075d7c20 Binary files /dev/null and b/docs/shader/images/nnedi3/nnedi3-nns16-2x-rgb.png differ diff --git a/docs/shader/images/nnedi3/nnedi3-nns16-4x-luma.png b/docs/shader/images/nnedi3/nnedi3-nns16-4x-luma.png new file mode 100644 index 00000000..03e68b44 Binary files /dev/null and b/docs/shader/images/nnedi3/nnedi3-nns16-4x-luma.png differ diff --git a/docs/shader/images/nnedi3/nnedi3-nns32-2x-rgb-nns32-4x-luma.png b/docs/shader/images/nnedi3/nnedi3-nns32-2x-rgb-nns32-4x-luma.png new file mode 100644 index 00000000..5e3fa9c0 Binary files /dev/null and b/docs/shader/images/nnedi3/nnedi3-nns32-2x-rgb-nns32-4x-luma.png differ diff --git a/docs/shader/images/nnedi3/nnedi3-nns32-4x-rgb.png b/docs/shader/images/nnedi3/nnedi3-nns32-4x-rgb.png new file mode 100644 index 00000000..ab6aee39 Binary files /dev/null and b/docs/shader/images/nnedi3/nnedi3-nns32-4x-rgb.png differ diff --git a/docs/shader/images/nnedi3/nnedi3-nns64-2x-nns32-4x-nns16-8x-rgb.png b/docs/shader/images/nnedi3/nnedi3-nns64-2x-nns32-4x-nns16-8x-rgb.png new file mode 100644 index 00000000..f9af47a0 Binary files /dev/null and b/docs/shader/images/nnedi3/nnedi3-nns64-2x-nns32-4x-nns16-8x-rgb.png differ diff --git a/docs/shader/images/nnedi3/nnedi3-nns64-2x-nns32-4x-rgb.png b/docs/shader/images/nnedi3/nnedi3-nns64-2x-nns32-4x-rgb.png new file mode 100644 index 00000000..ee8ce6df Binary files /dev/null and b/docs/shader/images/nnedi3/nnedi3-nns64-2x-nns32-4x-rgb.png differ diff --git a/docs/shader/images/ntsc/mame-ntsc.png b/docs/shader/images/ntsc/mame-ntsc.png new file mode 100644 index 00000000..f1a29145 Binary files /dev/null and b/docs/shader/images/ntsc/mame-ntsc.png differ diff --git a/docs/shader/images/ntsc/ntsc-256px-gauss-scanline.png b/docs/shader/images/ntsc/ntsc-256px-gauss-scanline.png new file mode 100644 index 00000000..c4f5dc1f Binary files /dev/null and b/docs/shader/images/ntsc/ntsc-256px-gauss-scanline.png differ diff --git a/docs/shader/images/ntsc/ntsc-256px-svideo-gauss-scanline.png b/docs/shader/images/ntsc/ntsc-256px-svideo-gauss-scanline.png new file mode 100644 index 00000000..059ba3e0 Binary files /dev/null and b/docs/shader/images/ntsc/ntsc-256px-svideo-gauss-scanline.png differ diff --git a/docs/shader/images/ntsc/ntsc-256px-svideo.png b/docs/shader/images/ntsc/ntsc-256px-svideo.png new file mode 100644 index 00000000..048c7496 Binary files /dev/null and b/docs/shader/images/ntsc/ntsc-256px-svideo.png differ diff --git a/docs/shader/images/ntsc/ntsc-256px.png b/docs/shader/images/ntsc/ntsc-256px.png new file mode 100644 index 00000000..bc9f1c51 Binary files /dev/null and b/docs/shader/images/ntsc/ntsc-256px.png differ diff --git a/docs/shader/images/ntsc/ntsc-320px-gauss-scanline.png b/docs/shader/images/ntsc/ntsc-320px-gauss-scanline.png new file mode 100644 index 00000000..d8c39bdc Binary files /dev/null and b/docs/shader/images/ntsc/ntsc-320px-gauss-scanline.png differ diff --git a/docs/shader/images/ntsc/ntsc-320px-svideo-gauss-scanline.png b/docs/shader/images/ntsc/ntsc-320px-svideo-gauss-scanline.png new file mode 100644 index 00000000..6bde4ef3 Binary files /dev/null and b/docs/shader/images/ntsc/ntsc-320px-svideo-gauss-scanline.png differ diff --git a/docs/shader/images/ntsc/ntsc-320px-svideo.png b/docs/shader/images/ntsc/ntsc-320px-svideo.png new file mode 100644 index 00000000..55a2c72a Binary files /dev/null and b/docs/shader/images/ntsc/ntsc-320px-svideo.png differ diff --git a/docs/shader/images/ntsc/ntsc-320px.png b/docs/shader/images/ntsc/ntsc-320px.png new file mode 100644 index 00000000..c8be140b Binary files /dev/null and b/docs/shader/images/ntsc/ntsc-320px.png differ diff --git a/docs/shader/images/ntsc/ntsc-svideo.png b/docs/shader/images/ntsc/ntsc-svideo.png new file mode 100644 index 00000000..3039e3b4 Binary files /dev/null and b/docs/shader/images/ntsc/ntsc-svideo.png differ diff --git a/docs/shader/images/ntsc/ntsc-vcr.png b/docs/shader/images/ntsc/ntsc-vcr.png new file mode 100644 index 00000000..e91e68dd Binary files /dev/null and b/docs/shader/images/ntsc/ntsc-vcr.png differ diff --git a/docs/shader/images/ntsc/ntsc.png b/docs/shader/images/ntsc/ntsc.png new file mode 100644 index 00000000..c36afbe9 Binary files /dev/null and b/docs/shader/images/ntsc/ntsc.png differ diff --git a/docs/shader/images/presets/crt-royale-kurozumi.png b/docs/shader/images/presets/crt-royale-kurozumi.png new file mode 100644 index 00000000..a1874a56 Binary files /dev/null and b/docs/shader/images/presets/crt-royale-kurozumi.png differ diff --git a/docs/shader/images/presets/ntsc-phosphorlut.png b/docs/shader/images/presets/ntsc-phosphorlut.png new file mode 100644 index 00000000..74f7674a Binary files /dev/null and b/docs/shader/images/presets/ntsc-phosphorlut.png differ diff --git a/docs/shader/images/presets/scalefx9-aa-blur-hazy-ntsc-sh1nra358.png b/docs/shader/images/presets/scalefx9-aa-blur-hazy-ntsc-sh1nra358.png new file mode 100644 index 00000000..ab85caa1 Binary files /dev/null and b/docs/shader/images/presets/scalefx9-aa-blur-hazy-ntsc-sh1nra358.png differ diff --git a/docs/shader/images/presets/scalefx9-aa-blur-hazy-vibrance-sh1nra358.png b/docs/shader/images/presets/scalefx9-aa-blur-hazy-vibrance-sh1nra358.png new file mode 100644 index 00000000..786c08ab Binary files /dev/null and b/docs/shader/images/presets/scalefx9-aa-blur-hazy-vibrance-sh1nra358.png differ diff --git a/docs/shader/images/retro/aann.png b/docs/shader/images/retro/aann.png new file mode 100644 index 00000000..d93ad43b Binary files /dev/null and b/docs/shader/images/retro/aann.png differ diff --git a/docs/shader/images/retro/ascii.png b/docs/shader/images/retro/ascii.png new file mode 100644 index 00000000..42d01cf0 Binary files /dev/null and b/docs/shader/images/retro/ascii.png differ diff --git a/docs/shader/images/retro/bead.png b/docs/shader/images/retro/bead.png new file mode 100644 index 00000000..5e7a94a7 Binary files /dev/null and b/docs/shader/images/retro/bead.png differ diff --git a/docs/shader/images/retro/bevel.png b/docs/shader/images/retro/bevel.png new file mode 100644 index 00000000..b6e7a726 Binary files /dev/null and b/docs/shader/images/retro/bevel.png differ diff --git a/docs/shader/images/retro/pixellate.png b/docs/shader/images/retro/pixellate.png new file mode 100644 index 00000000..eb493b3d Binary files /dev/null and b/docs/shader/images/retro/pixellate.png differ diff --git a/docs/shader/images/retro/retro-v2.png b/docs/shader/images/retro/retro-v2.png new file mode 100644 index 00000000..08a56c76 Binary files /dev/null and b/docs/shader/images/retro/retro-v2.png differ diff --git a/docs/shader/images/retro/sharp-bilinear.png b/docs/shader/images/retro/sharp-bilinear.png new file mode 100644 index 00000000..36ef8fbd Binary files /dev/null and b/docs/shader/images/retro/sharp-bilinear.png differ diff --git a/docs/shader/images/retro/smootheststep.png b/docs/shader/images/retro/smootheststep.png new file mode 100644 index 00000000..538b2367 Binary files /dev/null and b/docs/shader/images/retro/smootheststep.png differ diff --git a/docs/shader/images/sabr/sabr-hybrid-deposterize.png b/docs/shader/images/sabr/sabr-hybrid-deposterize.png new file mode 100644 index 00000000..30891a04 Binary files /dev/null and b/docs/shader/images/sabr/sabr-hybrid-deposterize.png differ diff --git a/docs/shader/images/sabr/sabr-v1.1.png b/docs/shader/images/sabr/sabr-v1.1.png new file mode 100644 index 00000000..11c7e748 Binary files /dev/null and b/docs/shader/images/sabr/sabr-v1.1.png differ diff --git a/docs/shader/images/sabr/sabr-v3.0.png b/docs/shader/images/sabr/sabr-v3.0.png new file mode 100644 index 00000000..8eff131e Binary files /dev/null and b/docs/shader/images/sabr/sabr-v3.0.png differ diff --git a/docs/shader/images/sabr/sabr.png b/docs/shader/images/sabr/sabr.png new file mode 100644 index 00000000..8eff131e Binary files /dev/null and b/docs/shader/images/sabr/sabr.png differ diff --git a/docs/shader/images/scalefx/scalefx-hybrid.png b/docs/shader/images/scalefx/scalefx-hybrid.png new file mode 100644 index 00000000..e2e6b353 Binary files /dev/null and b/docs/shader/images/scalefx/scalefx-hybrid.png differ diff --git a/docs/shader/images/scalefx/scalefx.png b/docs/shader/images/scalefx/scalefx.png new file mode 100644 index 00000000..72b395ea Binary files /dev/null and b/docs/shader/images/scalefx/scalefx.png differ diff --git a/docs/shader/images/scalefx/shaders/old/scalefx-9x.png b/docs/shader/images/scalefx/shaders/old/scalefx-9x.png new file mode 100644 index 00000000..bd6ff5e4 Binary files /dev/null and b/docs/shader/images/scalefx/shaders/old/scalefx-9x.png differ diff --git a/docs/shader/images/scalefx/shaders/old/scalefx.png b/docs/shader/images/scalefx/shaders/old/scalefx.png new file mode 100644 index 00000000..e7be99ce Binary files /dev/null and b/docs/shader/images/scalefx/shaders/old/scalefx.png differ diff --git a/docs/shader/images/scalefx/shaders/old/scalefx9.png b/docs/shader/images/scalefx/shaders/old/scalefx9.png new file mode 100644 index 00000000..bd6ff5e4 Binary files /dev/null and b/docs/shader/images/scalefx/shaders/old/scalefx9.png differ diff --git a/docs/shader/images/scalefx/shaders/old/scalefx_hybrid.png b/docs/shader/images/scalefx/shaders/old/scalefx_hybrid.png new file mode 100644 index 00000000..ab6842ba Binary files /dev/null and b/docs/shader/images/scalefx/shaders/old/scalefx_hybrid.png differ diff --git a/docs/shader/images/scalefx/shaders/old/xsoft+scalefx+sharpsmoother.png b/docs/shader/images/scalefx/shaders/old/xsoft+scalefx+sharpsmoother.png new file mode 100644 index 00000000..c4612257 Binary files /dev/null and b/docs/shader/images/scalefx/shaders/old/xsoft+scalefx+sharpsmoother.png differ diff --git a/docs/shader/images/scalefx/shaders/old/xsoft+scalefx.png b/docs/shader/images/scalefx/shaders/old/xsoft+scalefx.png new file mode 100644 index 00000000..d913c26b Binary files /dev/null and b/docs/shader/images/scalefx/shaders/old/xsoft+scalefx.png differ diff --git a/docs/shader/images/scalefx/shaders/old/xsoft+scalefx_hybrid.png b/docs/shader/images/scalefx/shaders/old/xsoft+scalefx_hybrid.png new file mode 100644 index 00000000..425fbe5e Binary files /dev/null and b/docs/shader/images/scalefx/shaders/old/xsoft+scalefx_hybrid.png differ diff --git a/docs/shader/images/scalefx/shaders/old/xsofter+scalefx.png b/docs/shader/images/scalefx/shaders/old/xsofter+scalefx.png new file mode 100644 index 00000000..24426957 Binary files /dev/null and b/docs/shader/images/scalefx/shaders/old/xsofter+scalefx.png differ diff --git a/docs/shader/images/scalefx/shaders/old/xsofter+scalefx_hybrid.png b/docs/shader/images/scalefx/shaders/old/xsofter+scalefx_hybrid.png new file mode 100644 index 00000000..79ad2dd0 Binary files /dev/null and b/docs/shader/images/scalefx/shaders/old/xsofter+scalefx_hybrid.png differ diff --git a/docs/shader/images/scalehq/2x-scalehq.png b/docs/shader/images/scalehq/2x-scalehq.png new file mode 100644 index 00000000..22960f49 Binary files /dev/null and b/docs/shader/images/scalehq/2x-scalehq.png differ diff --git a/docs/shader/images/scalehq/2xScaleHQ.png b/docs/shader/images/scalehq/2xScaleHQ.png new file mode 100644 index 00000000..22960f49 Binary files /dev/null and b/docs/shader/images/scalehq/2xScaleHQ.png differ diff --git a/docs/shader/images/scalehq/4x-scalehq.png b/docs/shader/images/scalehq/4x-scalehq.png new file mode 100644 index 00000000..9492aacb Binary files /dev/null and b/docs/shader/images/scalehq/4x-scalehq.png differ diff --git a/docs/shader/images/scalehq/4xScaleHQ.png b/docs/shader/images/scalehq/4xScaleHQ.png new file mode 100644 index 00000000..9492aacb Binary files /dev/null and b/docs/shader/images/scalehq/4xScaleHQ.png differ diff --git a/docs/shader/images/scalenx/scale2x.png b/docs/shader/images/scalenx/scale2x.png new file mode 100644 index 00000000..102a2df5 Binary files /dev/null and b/docs/shader/images/scalenx/scale2x.png differ diff --git a/docs/shader/images/scalenx/scale2xSFX.png b/docs/shader/images/scalenx/scale2xSFX.png new file mode 100644 index 00000000..cb021530 Binary files /dev/null and b/docs/shader/images/scalenx/scale2xSFX.png differ diff --git a/docs/shader/images/scalenx/scale2xplus.png b/docs/shader/images/scalenx/scale2xplus.png new file mode 100644 index 00000000..d752e494 Binary files /dev/null and b/docs/shader/images/scalenx/scale2xplus.png differ diff --git a/docs/shader/images/scalenx/scale3x.png b/docs/shader/images/scalenx/scale3x.png new file mode 100644 index 00000000..29754878 Binary files /dev/null and b/docs/shader/images/scalenx/scale3x.png differ diff --git a/docs/shader/images/sharpen/adaptive-sharpen.png b/docs/shader/images/sharpen/adaptive-sharpen.png new file mode 100644 index 00000000..09bab4cb Binary files /dev/null and b/docs/shader/images/sharpen/adaptive-sharpen.png differ diff --git a/docs/shader/images/upscale-test.png b/docs/shader/images/upscale-test.png new file mode 100644 index 00000000..8b7579e4 Binary files /dev/null and b/docs/shader/images/upscale-test.png differ diff --git a/docs/shader/images/windowed/jinc2-sharp.png b/docs/shader/images/windowed/jinc2-sharp.png new file mode 100644 index 00000000..fd98615a Binary files /dev/null and b/docs/shader/images/windowed/jinc2-sharp.png differ diff --git a/docs/shader/images/windowed/jinc2-sharper.png b/docs/shader/images/windowed/jinc2-sharper.png new file mode 100644 index 00000000..fb548454 Binary files /dev/null and b/docs/shader/images/windowed/jinc2-sharper.png differ diff --git a/docs/shader/images/windowed/jinc2.png b/docs/shader/images/windowed/jinc2.png new file mode 100644 index 00000000..28406481 Binary files /dev/null and b/docs/shader/images/windowed/jinc2.png differ diff --git a/docs/shader/images/windowed/lanczos16.png b/docs/shader/images/windowed/lanczos16.png new file mode 100644 index 00000000..f844ac1b Binary files /dev/null and b/docs/shader/images/windowed/lanczos16.png differ diff --git a/docs/shader/images/xbr/2xbr-lv1-multipass.png b/docs/shader/images/xbr/2xbr-lv1-multipass.png new file mode 100644 index 00000000..e3a3d5ad Binary files /dev/null and b/docs/shader/images/xbr/2xbr-lv1-multipass.png differ diff --git a/docs/shader/images/xbr/super-xbr-2p.png b/docs/shader/images/xbr/super-xbr-2p.png new file mode 100644 index 00000000..f48b10fe Binary files /dev/null and b/docs/shader/images/xbr/super-xbr-2p.png differ diff --git a/docs/shader/images/xbr/super-xbr-3p-smoother.png b/docs/shader/images/xbr/super-xbr-3p-smoother.png new file mode 100644 index 00000000..a83f0a73 Binary files /dev/null and b/docs/shader/images/xbr/super-xbr-3p-smoother.png differ diff --git a/docs/shader/images/xbr/super-xbr-6p.png b/docs/shader/images/xbr/super-xbr-6p.png new file mode 100644 index 00000000..06248d4b Binary files /dev/null and b/docs/shader/images/xbr/super-xbr-6p.png differ diff --git a/docs/shader/images/xbr/super-xbr-fast-3p.png b/docs/shader/images/xbr/super-xbr-fast-3p.png new file mode 100644 index 00000000..e0c0d9ea Binary files /dev/null and b/docs/shader/images/xbr/super-xbr-fast-3p.png differ diff --git a/docs/shader/images/xbr/super-xbr-fast-6p.png b/docs/shader/images/xbr/super-xbr-fast-6p.png new file mode 100644 index 00000000..dc2f005b Binary files /dev/null and b/docs/shader/images/xbr/super-xbr-fast-6p.png differ diff --git a/docs/shader/images/xbr/xbr-hybrid.png b/docs/shader/images/xbr/xbr-hybrid.png new file mode 100644 index 00000000..9771460d Binary files /dev/null and b/docs/shader/images/xbr/xbr-hybrid.png differ diff --git a/docs/shader/images/xbr/xbr-lv1-noblend.png b/docs/shader/images/xbr/xbr-lv1-noblend.png new file mode 100644 index 00000000..93cd4251 Binary files /dev/null and b/docs/shader/images/xbr/xbr-lv1-noblend.png differ diff --git a/docs/shader/images/xbr/xbr-lv2-fast.png b/docs/shader/images/xbr/xbr-lv2-fast.png new file mode 100644 index 00000000..ecc22cea Binary files /dev/null and b/docs/shader/images/xbr/xbr-lv2-fast.png differ diff --git a/docs/shader/images/xbr/xbr-lv2-multipass.png b/docs/shader/images/xbr/xbr-lv2-multipass.png new file mode 100644 index 00000000..57a023f4 Binary files /dev/null and b/docs/shader/images/xbr/xbr-lv2-multipass.png differ diff --git a/docs/shader/images/xbr/xbr-lv2-noblend.png b/docs/shader/images/xbr/xbr-lv2-noblend.png new file mode 100644 index 00000000..acc2e418 Binary files /dev/null and b/docs/shader/images/xbr/xbr-lv2-noblend.png differ diff --git a/docs/shader/images/xbr/xbr-lv2.png b/docs/shader/images/xbr/xbr-lv2.png new file mode 100644 index 00000000..050f9f38 Binary files /dev/null and b/docs/shader/images/xbr/xbr-lv2.png differ diff --git a/docs/shader/images/xbr/xbr-lv3-multipass.png b/docs/shader/images/xbr/xbr-lv3-multipass.png new file mode 100644 index 00000000..d67ddc94 Binary files /dev/null and b/docs/shader/images/xbr/xbr-lv3-multipass.png differ diff --git a/docs/shader/images/xbr/xbr-lv3-noblend.png b/docs/shader/images/xbr/xbr-lv3-noblend.png new file mode 100644 index 00000000..9d790e2f Binary files /dev/null and b/docs/shader/images/xbr/xbr-lv3-noblend.png differ diff --git a/docs/shader/images/xbr/xbr-lv3.png b/docs/shader/images/xbr/xbr-lv3.png new file mode 100644 index 00000000..a24023a0 Binary files /dev/null and b/docs/shader/images/xbr/xbr-lv3.png differ diff --git a/docs/shader/images/xbr/xbr-mlv4-dilation.png b/docs/shader/images/xbr/xbr-mlv4-dilation.png new file mode 100644 index 00000000..334dcac3 Binary files /dev/null and b/docs/shader/images/xbr/xbr-mlv4-dilation.png differ diff --git a/docs/shader/images/xbr/xbr-mlv4-multipass.png b/docs/shader/images/xbr/xbr-mlv4-multipass.png new file mode 100644 index 00000000..d234c129 Binary files /dev/null and b/docs/shader/images/xbr/xbr-mlv4-multipass.png differ diff --git a/docs/shader/images/xbrz/4xbrz.png b/docs/shader/images/xbrz/4xbrz.png new file mode 100644 index 00000000..6c3d8d75 Binary files /dev/null and b/docs/shader/images/xbrz/4xbrz.png differ diff --git a/docs/shader/images/xbrz/5xbrz.png b/docs/shader/images/xbrz/5xbrz.png new file mode 100644 index 00000000..274f2473 Binary files /dev/null and b/docs/shader/images/xbrz/5xbrz.png differ diff --git a/docs/shader/images/xbrz/6xbrz.png b/docs/shader/images/xbrz/6xbrz.png new file mode 100644 index 00000000..08e4eea5 Binary files /dev/null and b/docs/shader/images/xbrz/6xbrz.png differ diff --git a/docs/shader/images/xsal/2xsal-level2-crt.png b/docs/shader/images/xsal/2xsal-level2-crt.png new file mode 100644 index 00000000..3e45caec Binary files /dev/null and b/docs/shader/images/xsal/2xsal-level2-crt.png differ diff --git a/docs/shader/images/xsal/2xsal.png b/docs/shader/images/xsal/2xsal.png new file mode 100644 index 00000000..bef78fc2 Binary files /dev/null and b/docs/shader/images/xsal/2xsal.png differ diff --git a/docs/shader/images/xsal/4xsal-level2-crt.png b/docs/shader/images/xsal/4xsal-level2-crt.png new file mode 100644 index 00000000..2c186644 Binary files /dev/null and b/docs/shader/images/xsal/4xsal-level2-crt.png differ diff --git a/docs/shader/images/xsal/4xsal-level2-hq.png b/docs/shader/images/xsal/4xsal-level2-hq.png new file mode 100644 index 00000000..d8adfe1f Binary files /dev/null and b/docs/shader/images/xsal/4xsal-level2-hq.png differ diff --git a/docs/shader/images/xsal/4xsal-level2.png b/docs/shader/images/xsal/4xsal-level2.png new file mode 100644 index 00000000..5c204458 Binary files /dev/null and b/docs/shader/images/xsal/4xsal-level2.png differ diff --git a/docs/shader/images/xsoft/4xsoft.png b/docs/shader/images/xsoft/4xsoft.png new file mode 100644 index 00000000..dfaf435c Binary files /dev/null and b/docs/shader/images/xsoft/4xsoft.png differ diff --git a/docs/shader/images/xsoft/4xsoftSdB.png b/docs/shader/images/xsoft/4xsoftSdB.png new file mode 100644 index 00000000..2771c31b Binary files /dev/null and b/docs/shader/images/xsoft/4xsoftSdB.png differ diff --git a/docs/shader/introduction.md b/docs/shader/introduction.md new file mode 100644 index 00000000..2c765130 --- /dev/null +++ b/docs/shader/introduction.md @@ -0,0 +1,17 @@ +# Shader Preview Introduction + +## Background +A section to display thumbnail previews for RetroArch's many shaders. + +Its structured to reflect the common-shaders and slang-shaders repos and it includes previews of the shader presets (i.e., not individual shaders unless they have an accompanying preset). + +When possible, preview shots were created by opening the upscale-test image in RetroArch's built-in image-viewer core at 8x scale. Some shaders require additional settings or images to capture their effects and those are handled on a case-by-case basis. When additional settings are required, notes should be added to the preview comments. + +## Upscale Test Image +![Base Image](images/upscale-test.png) + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/linear.md b/docs/shader/linear.md new file mode 100644 index 00000000..6ca66039 --- /dev/null +++ b/docs/shader/linear.md @@ -0,0 +1,14 @@ +# linear + +## Background + +## Preview Image +![linear-gamma-correct](images/linear/linear-gamma-correct.png) + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/motionblur.md b/docs/shader/motionblur.md new file mode 100644 index 00000000..0a697382 --- /dev/null +++ b/docs/shader/motionblur.md @@ -0,0 +1,19 @@ +# motionblur + +## Background + +## Preview Image +* feedback + +![feedback](images/motionblur/feedback.png) + +* motionblur-simple + +![motionblur-simple](images/motionblur/motionblur-simple.png) +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/mudlord.md b/docs/shader/mudlord.md new file mode 100644 index 00000000..76e0a556 --- /dev/null +++ b/docs/shader/mudlord.md @@ -0,0 +1,37 @@ +# mudlord + +## Description +A collection of shader presets by community member Mudlord. + +## Preview Image +* bloom + +![bloom](images/mudlord/bloom.png) + +* blur + +![blur](images/mudlord/blur.png) + +* emboss + +![emboss](images/mudlord/emboss.png) + +* oldtv + +![oldtv](images/mudlord/oldtv.png) + +* toon + +![toon](images/mudlord/toon.png) + +* waterpaint-mudlord + +![waterpaint-mudlord](images/mudlord/waterpaint-mudlord.png) + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/nedi.md b/docs/shader/nedi.md new file mode 100644 index 00000000..3b69ba75 --- /dev/null +++ b/docs/shader/nedi.md @@ -0,0 +1,20 @@ +# nedi + +## Background + +## Preview Image +* fast-bilateral-nedi + +![fast-bilateral-nedi](images/nedi/fast-bilateral-nedi.png) + +* nedi + +![nedi](images/nedi/nedi.png) + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/nnedi3.md b/docs/shader/nnedi3.md new file mode 100644 index 00000000..3dce2d6b --- /dev/null +++ b/docs/shader/nnedi3.md @@ -0,0 +1,42 @@ +# nnedi3 + +## Background + +## Preview Image + +* nnedi3-nns16-2x-luma + +![nnedi3-nns16-2x-luma](images/nnedi3/nnedi3-nns16-2x-luma.png) + +* nnedi3-nns16-2x-rgb + +![nnedi3-nns16-2x-rgb](images/nnedi3/nnedi3-nns16-2x-rgb.png) + +* nnedi3-nns16-4x-luma + +![nnedi3-nns16-4x-luma](images/nnedi3/nnedi3-nns16-4x-luma.png) + +* nnedi3-nns32-2x-rgb-nns32-4x-luma + +![nnedi3-nns32-2x-rgb-nns32-4x-luma](images/nnedi3/nnedi3-nns32-2x-rgb-nns32-4x-luma.png) + +* nnedi3-nns32-4x-rgb + +![nnedi3-nns32-4x-rgb](images/nnedi3/nnedi3-nns32-4x-rgb.png) + +* nnedi3-nns64-2x-nns32-4x-nns16-8x-rgb + +![nnedi3-nns64-2x-nns32-4x-nns16-8x-rgb](images/nnedi3/nnedi3-nns64-2x-nns32-4x-nns16-8x-rgb.png) + +* nnedi3-nns64-2x-nns32-4x-rgb + +![nnedi3-nns64-2x-nns32-4x-rgb](images/nnedi3/nnedi3-nns64-2x-nns32-4x-rgb.png) + + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/ntsc.md b/docs/shader/ntsc.md new file mode 100644 index 00000000..e5889497 --- /dev/null +++ b/docs/shader/ntsc.md @@ -0,0 +1,63 @@ +# ntsc + +## Background + +## Preview Image + + +* ntsc + +![ntsc](images/ntsc/ntsc.png) + +* mame-ntsc + +![mame-ntsc](images/ntsc/mame-ntsc.png) + +* ntsc-256px-gauss-scanline + +![ntsc-256px-gauss-scanline](images/ntsc/ntsc-256px-gauss-scanline.png) + +* ntsc-256px-svideo-gauss-scanline + +![ntsc-256px-svideo-gauss-scanline](images/ntsc/ntsc-256px-svideo-gauss-scanline.png) + +* ntsc-256px-svideo + +![ntsc-256px-svideo](images/ntsc/ntsc-256px-svideo.png) + +* ntsc-256px + +![ntsc-256px](images/ntsc/ntsc-256px.png) + +* ntsc-320px-gauss-scanline + +![ntsc-320px-gauss-scanline](images/ntsc/ntsc-320px-gauss-scanline.png) + +* ntsc-320px-svideo-gauss-scanline + +![ntsc-320px-svideo-gauss-scanline](images/ntsc/ntsc-320px-svideo-gauss-scanline.png) + +* ntsc-320px-svideo + +![ntsc-320px-svideo](images/ntsc/ntsc-320px-svideo.png) + +* ntsc-320px + +![ntsc-320px](images/ntsc/ntsc-320px.png) + +* ntsc-svideo + +![ntsc-svideo](images/ntsc/ntsc-svideo.png) + +* ntsc-vcr + +![ntsc-vcr](images/ntsc/ntsc-vcr.png) + + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/presets.md b/docs/shader/presets.md new file mode 100644 index 00000000..35dc8181 --- /dev/null +++ b/docs/shader/presets.md @@ -0,0 +1,29 @@ +# presets + +## Background + +## Preview Image + +* crt-royale-kurozumi + +![crt-royale-kurozumi](images/presets/crt-royale-kurozumi.png) + +* ntsc-phosphorlut + +![ntsc-phosphorlut](images/presets/ntsc-phosphorlut.png) + +* scalefx9-aa-blur-hazy-ntsc-sh1nra358 + +![scalefx9-aa-blur-hazy-ntsc-sh1nra358](images/presets/scalefx9-aa-blur-hazy-ntsc-sh1nra358.png) + +* scalefx9-aa-blur-hazy-vibrance-sh1nra358 + +![scalefx9-aa-blur-hazy-vibrance-sh1nra358](images/presets/scalefx9-aa-blur-hazy-vibrance-sh1nra358.png) + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/retro.md b/docs/shader/retro.md new file mode 100644 index 00000000..7f25370e --- /dev/null +++ b/docs/shader/retro.md @@ -0,0 +1,45 @@ +# retro + +## Background + +## Preview Image + +* aann + +![aann](images/retro/aann.png) + +* ascii + +![ascii](images/retro/ascii.png) + +* bead + +![bead](images/retro/bead.png) + +* bevel + +![bevel](images/retro/bevel.png) + +* pixellate + +![pixellate](images/retro/pixellate.png) + +* retro-v2 + +![retro-v2](images/retro/retro-v2.png) + +* sharp-bilinear + +![sharp-bilinear](images/retro/sharp-bilinear.png) + +* smootheststep + +![smootheststep](images/retro/smootheststep.png) + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/sabr.md b/docs/shader/sabr.md new file mode 100644 index 00000000..8b52be1f --- /dev/null +++ b/docs/shader/sabr.md @@ -0,0 +1,33 @@ +# sabr + +## Background + +## Preview Image + +* sabr-hybrid-deposterize + +![sabr-hybrid-deposterize](images/sabr/sabr-hybrid-deposterize.png) + +* sabr-v1.1 + +![sabr-v1.1](images/sabr/sabr-v1.1.png) + + +* sabr-v3.0 + +![sabr-v3.0](images/sabr/sabr-v3.0.png) + + +* sabr + +![sabr](images/sabr/sabr.png) + + + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/scalefx-OLD-shaders.md b/docs/shader/scalefx-OLD-shaders.md new file mode 100644 index 00000000..5b36edb8 --- /dev/null +++ b/docs/shader/scalefx-OLD-shaders.md @@ -0,0 +1,49 @@ +# Old scalefx shaders + +## Background + +## Preview Image + +* scalefx_hybrid + +![scalefx_hybrid](images/scalefx/shaders/old/scalefx_hybrid.png) + +* scalefx-9x + +![scalefx-9x](images/scalefx/shaders/old/scalefx-9x.png) + +* scalefx + +![scalefx](images/scalefx/shaders/old/scalefx.png) + +* scalefx9 + +![scalefx9](images/scalefx/shaders/old/scalefx9.png) + +* xsoft+scalefx_hybrid + +![xsoft+scalefx_hybrid](images/scalefx/shaders/old/xsoft+scalefx_hybrid.png) + +* xsoft+scalefx + +![xsoft+scalefx](images/scalefx/shaders/old/xsoft+scalefx.png) + +* xsoft+scalefx+sharpsmoother + +![xsoft+scalefx+sharpsmoother](images/scalefx/shaders/old/xsoft+scalefx+sharpsmoother.png) + +* xsofter+scalefx_hybrid + +![xsofter+scalefx_hybrid](images/scalefx/shaders/old/xsofter+scalefx_hybrid.png) + +* xsofter+scalefx + +![xsofter+scalefx](images/scalefx/shaders/old/xsofter+scalefx.png) + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/scalefx.md b/docs/shader/scalefx.md new file mode 100644 index 00000000..8b1726ae --- /dev/null +++ b/docs/shader/scalefx.md @@ -0,0 +1,21 @@ +# scalefx + +## Background + +## Preview Image + +* scalefx + +![scalefx](images/scalefx/scalefx.png) + +* scalefx-hybrid + +![scalefx-hybrid](images/scalefx/scalefx-hybrid.png) + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/scalehq.md b/docs/shader/scalehq.md new file mode 100644 index 00000000..6ef11f68 --- /dev/null +++ b/docs/shader/scalehq.md @@ -0,0 +1,30 @@ +# scalehq + +## Background + +## Preview Image + +* 2x-scalehq + +![2x-scalehq](images/scalehq/2x-scalehq.png) + +* 2xScaleHQ + +![2xScaleHQ](images/scalehq/2xScaleHQ.png) + +* 4x-scalehq + +![4x-scalehq](images/scalehq/4x-scalehq.png) + +* 4xScaleHQ + +![4xScaleHQ](images/scalehq/4xScaleHQ.png) + + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/scalenx.md b/docs/shader/scalenx.md new file mode 100644 index 00000000..e653c201 --- /dev/null +++ b/docs/shader/scalenx.md @@ -0,0 +1,29 @@ +# scalenx + +## Background + +## Preview Image + +* scale2x + +![scale2x](images/scalenx/scale2x.png) + +* scale2xplus + +![scale2xplus](images/scalenx/scale2xplus.png) + +* scale2xSFX + +![scale2xSFX](images/scalenx/scale2xSFX.png) + +* scale3x + +![scale3x](images/scalenx/scale3x.png) + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/sharpen.md b/docs/shader/sharpen.md new file mode 100644 index 00000000..42662595 --- /dev/null +++ b/docs/shader/sharpen.md @@ -0,0 +1,17 @@ +# sharpen + +## Background + +## Preview Image + +* adaptive-sharpen + +![adaptive-sharpen](images/sharpen/adaptive-sharpen.png) + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/windowed.md b/docs/shader/windowed.md new file mode 100644 index 00000000..bbb13bcb --- /dev/null +++ b/docs/shader/windowed.md @@ -0,0 +1,29 @@ +# windowed + +## Background + +## Preview Image + +* jinc2-sharp + +![jinc2-sharp](images/windowed/jinc2-sharp.png) + +* jinc2-sharper + +![jinc2-sharper](images/windowed/jinc2-sharper.png) + +* jinc2 + +![jinc2](images/windowed/jinc2.png) + +* lanczos16 + +![lanczos16](images/windowed/lanczos16.png) + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/xbr.md b/docs/shader/xbr.md new file mode 100644 index 00000000..c4b0250f --- /dev/null +++ b/docs/shader/xbr.md @@ -0,0 +1,82 @@ +# xbr + +## Background + +## Preview Image + +* 2xbr-lv1-multipass + +![2xbr-lv1-multipass](images/xbr/2xbr-lv1-multipass.png) + +* super-xbr-2p + +![super-xbr-2p](images/xbr/super-xbr-2p.png) + +* super-xbr-3p-smoother + +![super-xbr-3p-smoother](images/xbr/super-xbr-3p-smoother.png) + +* super-xbr-6p + +![super-xbr-6p](images/xbr/super-xbr-6p.png) + +* super-xbr-fast-3p + +![super-xbr-fast-3p](images/xbr/super-xbr-fast-3p.png) + +* super-xbr-fast-6p + +![super-xbr-fast-6p](images/xbr/super-xbr-fast-6p.png) + +* xbr-hybrid + +![xbr-hybrid](images/xbr/xbr-hybrid.png) + +* xbr-lv1-noblend + +![xbr-lv1-noblend](images/xbr/xbr-lv1-noblend.png) + +* xbr-lv2-fast + +![xbr-lv2-fast](images/xbr/xbr-lv2-fast.png) + +* xbr-lv2-multipass + +![xbr-lv2-multipass](images/xbr/xbr-lv2-multipass.png) + +* xbr-lv2-noblend + +![xbr-lv2-noblend](images/xbr/xbr-lv2-noblend.png) + +* xbr-lv2 + +![xbr-lv2](images/xbr/xbr-lv2.png) + +* xbr-lv3-multipass + +![xbr-lv3-multipass](images/xbr/xbr-lv3-multipass.png) + +* xbr-lv3-noblend + +![xbr-lv3-noblend](images/xbr/xbr-lv3-noblend.png) + +* xbr-lv3 + +![xbr-lv3](images/xbr/xbr-lv3.png) + +* xbr-mlv4-dilation + +![xbr-mlv4-dilation](images/xbr/xbr-mlv4-dilation.png) + +* xbr-mlv4-multipass + +![xbr-mlv4-multipass](images/xbr/xbr-mlv4-multipass.png) + + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/xbrz.md b/docs/shader/xbrz.md new file mode 100644 index 00000000..96c5655e --- /dev/null +++ b/docs/shader/xbrz.md @@ -0,0 +1,25 @@ +# xbrz + +## Background + +## Preview Image + +* 4xbrz + +![4xbrz](images/xbrz/4xbrz.png) + +* 5xbrz + +![5xbrz](images/xbrz/5xbrz.png) + +* 6xbrz + +![6xbrz](images/xbrz/6xbrz.png) + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/xsal.md b/docs/shader/xsal.md new file mode 100644 index 00000000..084348eb --- /dev/null +++ b/docs/shader/xsal.md @@ -0,0 +1,33 @@ +# xsal + +## Background + +## Preview Image + +* 2xsal-level2-crt + +![2xsal-level2-crt](images/xsal/2xsal-level2-crt.png) + +* 2xsal + +![2xsal](images/xsal/2xsal.png) + +* 4xsal-level2-crt + +![4xsal-level2-crt](images/xsal/4xsal-level2-crt.png) + +* 4xsal-level2-hq + +![4xsal-level2-hq](images/xsal/4xsal-level2-hq.png) + +* 4xsal-level2 + +![4xsal-level2](images/xsal/4xsal-level2.png) + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/shader/xsoft.md b/docs/shader/xsoft.md new file mode 100644 index 00000000..b28236b9 --- /dev/null +++ b/docs/shader/xsoft.md @@ -0,0 +1,21 @@ +# xsoft + +## Background + +## Preview Image + +* 4xsoft + +![4xsoft](images/xsoft/4xsoft.png) + +* 4xsoftSdB + +![4xsoftSdB](images/xsoft/4xsoftSdB.png) + +## Comments + +## External Links + +* [Slang Shaders](https://github.com/libretro/slang-shaders) +* [GLSL Shaders](https://github.com/libretro/glsl-shaders) +* [CG Shaders](https://github.com/libretro/common-shaders) diff --git a/docs/specs/api.md b/docs/specs/api.md new file mode 100644 index 00000000..f4238155 --- /dev/null +++ b/docs/specs/api.md @@ -0,0 +1,215 @@ +# Libretro API + +The Libretro API is a lightweight C-based Application Programming Interface. + +Libretro is an API that exposes generic audio/video/input callbacks. You therefore don’t have to worry about writing different video drivers for Direct3D, OpenGL or worrying about catering to all possible input APIs/sound APIs/supporting all known joypads/etc. A frontend for libretro (such as RetroArch) handles video output, audio output, input and application lifecycle. A libretro core written in portable C or C++ can run seamlessly on many platforms with very little/no porting effort. + +When you choose to use the libretro API, your program gets turned into a single library file (called a ‘libretro core’). A frontend that supports the libretro API can then load that library file and run the app. While RetroArch is the reference frontend for libretro, several other projects have used the libretro interface to include support for emulators and/or game engines. libretro is completely open and free for anyone to use. + +## Implementing the API + +The libretro API consists of several functions outlined in libretro.h, found in the RetroArch source package. + +A libretro implementation should be compiled into a dynamically loadable executable (.dll/.so/.dylib) or a +static library (.a/.lib) that exports all the functions outlined in libretro.h. These will be called by the +frontend. Implementations are designed to be single-instance, so global state is allowed. Should the frontend +call these functions in wrong order, undefined behavior occurs. + +The API header is compatible with C99 and C++. From C99, the bool type and `` are used. The latest version of this file can be found [here](https://github.com/libretro/RetroArch/blob/master/libretro-common/include/libretro.h). + +### Libretro GL +Aside from retro-style games and emulators that depend on software rendering and where you’d typically need nothing more than the ability to render to a framebuffer, the Libretro API also allows you to target OpenGL. This subset of GL functionality (that we call libretro GL) allows you to create libretro ports that use OpenGL as part of their internal rendering. There are two subsets that can be targeted – either OpenGL 2.0 or OpenGL ES 2.0. + +From a portability perspective, we highly recommend that you try to target both so that your libretro GL port will work on both mobile and desktop computers. + + +## Program flow + +The program flow of a frontend using the libretro API can be expressed as follows: + +### Startup + +#### retro_api_version() + +This function should return RETRO_API_VERSION, defined in libretro.h. It is used by the frontend to determine if +ABI/API are mismatched. The version will be bumped should there be any non- compatible changes to the API. + +Changes to retro_* structures, as well as changes in publically visible functions and/or their arguments will +warrant a bump in API version. + +Libretro is a simple API that allows for the creation of games, emulators and multimedia applications. + +Popular examples of implementations for this API includes videogame system emulators and game engines, but also +more generalized 3D programs. These programs are instantiated as dynamic libraries. We refer to these as +"libretro cores". + +#### retro_init() + +This function is called once, and gives the implementation a chance to initialize +data structures. This is sometimes implemented as a no-op. + +#### retro_set_*() + +Libretro is callback based. The frontend will set all callbacks at this stage, +and the implementation must store these function pointers somewhere. The +frontend can, at a later stage, call these. + +### Environment callback + +While libretro has callbacks for video, audio and input, there's a callback type dubbed the environment callback. +This callback (retro_environment_t) is a generic way for the libretro implementation to access features of +the API that are considered too obscure to deserve its own symbols. It can be extended without breaking ABI. + +The callback has a return type of bool which tells if the frontend recognized the request given to it. +Most implementations of libretro will not use this callback at all. + +#### retro_set_controller_port_device() + +By default, joypads will be assumed to be inserted into the implementation. If the engine is sensitive +to which type of input device is plugged in, the frontend may call this function to set the device to +be used for a certain player. The implementation should try to auto-detect this if possible. + +#### retro_get_system_info() + +The frontend will typically request statically known information about the core such as the name of +the implementation, version number, etc. The information returned should be stored statically. If +dynamic allocation must take place, the implementation must make sure to free this storage in +retro_deinit() later. + +### Running + +#### retro_run() + +After a game has been loaded successfully, retro_run() will be called repeatedly as long as the +user desires. When called, the implementation will perform its inner functionality for one video frame. + +During this time, the implementation is free to call callbacks for video frames, audio samples, +as well as polling input, and querying current input state. The requirements for the callbacks are that +video callback is called exactly once, i.e. it does not have to come last. Also, input polling +must be called at least once. + +### Video/Audio synchronization considerations + +Libretro is based on fixed rates. Video FPS and audio sampling rates are always assumed to be +constant. Frontends will have control of the speed of playing, typically using VSync to obtain +correct speed. The frontend is free to "fast-forward", i.e. play as fast as possible without +waiting, or slow- motion. + +For this reason, the engine should not rely on system timers to perform arbitrary +synchronization. This is common and often needed in 3D games to account for +varying frame rates while still maintaining a playable game. However, libretro targets classic +systems where one can assume that 100 % real-time performance will always be met, +thus avoiding the need for careful timing code. + +By default, the libretro implementation should replace any arbitrary sleep()/time() +patterns with simply calling video/audio callbacks. The frontend will make sure +to apply the proper synchronization. + +This is mostly a problem with game ports, such as PrBoom. For the libretro +port of PrBoom, which heavily relied on timers and sleeping patterns, sleeping +was replaced with simply running for one frame, and calling the video callback. +After that, enough audio was rendered to correspond to one frames worth of +time, 1 / fps seconds. All sleeping and timing patterns could be removed, and +synchronization was correct. + +### Audio callback considerations + +The libretro API has two different audio callbacks. Only one of these should be +used; the implementation must choose which callback is best suited. + +The first audio callback is per-sample, and has the type void (*)(int16_t, +int16_t). This should be used if the implementation outputs audio on a per- +sample basis. The frontend will make sure to partition the audio data into +suitable chunks to avoid incurring too much syscall overhead. + +If audio is output in a "batch" fashion, i.e. 1 / fps seconds worth of audio +data at a time, the batch approach should be considered. Rather than looping +over all samples and calling per-sample callback every time, the batch callback +should be used instead, size_t (*)(const int16_t *, size_t). + +Using the batch callback, audio will not be copied in a temporary buffer, +which can buy a slight performance gain. Also, all data will be pushed to audio +driver in one go, saving some slight overhead. It is not recommended to use the +batch callback for very small (< 32 frames) amounts of data. +The data passed to the batch callback should, if possible, be aligned to 16 +bytes (depends on platform), to allow accelerated SIMD operations on audio. +RetroArch implements SSE/AltiVec optimized audio processing for conversions +and resampling. + +### Input device abstraction + +Abstracting input devices is the hardest part of defining a multi-system API as +it differs across every system. The common input devices are: + +- Joypad (with or without analogs) +- Mouse +- Keyboard (e.g. Commodore, Amiga) +- Lightguns (e.g. SNES SuperScope) + +The joypad abstraction is the most interesting. Rather than complicating things +by mapping input arbitrarily in terms of the implementation, which would make input +configuration very complex with careful configuration on a per- +implementation basis, an abstract joypad device, the RetroPad, was devised. +This joypad is essentially the Super Nintendo controller, widely considered +the pinnacle of retro game controllers. + +To account for more modern systems with additional buttons, additions from the +PlayStation DualShock are incorporated, with extra shoulder buttons (L2/R2), +as well as depressable analogs (L3/R3). + +In addition, the RETRO_DEVICE_ANALOG is used for analog stick data. +An implementation should map its idea of a joypad in terms of the RetroPad, +which is what most users will have to use with their frontend. + +### State + +#### retro_serialize_size() + +#### retro_serialize() + +#### retro_unserialize() + +Serialization is optional to implement. Serialization is better known as "save +states" in emulators, and these functions are certainly more useful in emulators +which have a fixed amount of state. It allows the frontend to take a snapshot of +all internal state, and later restore it. This functionality is used to implement +e.g. rewind and netplay. Some important considerations must be taken to +implement these functions well. + +If serialization is not supported, retro_serialize_size() should return 0. If +retro_serialize_size() returns non-zero, it is assumed that serialization is prop- +erly implemented. + +The frontend should call retro_serialize_size() before calling retro_serialize() +to determine the amount of memory needed to correctly serialize. The size even- +tually passed to retro_serialize() must be at least the size of the value returned +in retro_serialize_size(). If too large a buffer is passed to retro_serialize(), the +extra data should be ignored (or memset to 0). + +It is valid for the value returned by retro_serialize_size() to vary over time, +however, it cannot ever increase over time. If it should ever change, it must +decrease. This is rationaled by the ability to pre- determined a fixed save state +size right after retro_load_game() that will always be large enough to hold any +following serialization. This certainty is fundamental to the rewind implemen- +tation. This requirement only holds between calls to retro_load_game() and +retro_unload_game(). + +If possible, the implementation should attempt to serialize data at consistent +offsets in the memory buffer. This will greatly help the rewind implementation +in RetroArch to use less memory. + +Both retro_serialize() and retro_unserialize() return a boolean value to let +the frontend know if the implementation succeeded in serializing or unserializing. + +### Tear-down + +#### retro_unload_game() + +After the user desired to stop playing, retro_unload_game() will be called. This +should free any internal data related to the game, and allow retro_load_game() +to be called again. + +#### retro_deinit() + +This function should free all state that was initialized during retro_init(). After +calling this function, the frontend can again call retro_init(). diff --git a/docs/specs/overlay.md b/docs/specs/overlay.md new file mode 100644 index 00000000..4bed0e45 --- /dev/null +++ b/docs/specs/overlay.md @@ -0,0 +1,164 @@ +# Overlays + +RetroArch supports overlay images for use with hardware accelerated drivers. The purpose of this is to allow some kind of input interface that is mouse/touch oriented. The overlay images are displayed with transparency over the regular game image, and the +user is able to trigger input by pressing on certain parts of the overlay. + +Since the overlay is a series of images, the user should be able to fully configure the look and functionality of this overlay. This allows skinners and themers to go wild. + +### Libretro overlay repositories +The Libretro Organization hosts a repositories on Github that contains a compilation of overlays made with the Overlay Specification. + +* Interactive overlays are managed within: https://github.com/libretro/common-overlays +* Decorative border overlays are managed within: https://github.com/libretro/overlay-borders + +![RetroArch dinothawr overlay example](https://wiki.libretro.com/images/5/5c/Retroarch-dinothawr-overlay.jpg "RetroArch dinothawr overlay example") + +## Configuration + +The overlay is described in a config file (.cfg). The config file uses the same config +file syntax as RetroArch itself. + +The overlay system supports use of multiple overlays that can be switched out on the fly. +Input is not only restricted to gamepad input, but can also work with any input that is +bindable in RetroArch, e.g. save states, rewind, load state, etc. + +The config file describes: + +- Which full-screen overlay images to use (.png, .tga, etc). +- The hitbox for each input event, i.e. "size" of the button. +- Which image should be shown over the input descriptors individually (optional). +- Where on the screen the entire overlay should be displayed. + +## Overlay images + +First we configure how many overlays we use. Every overlay can have one overlay which fills +the entire rectangle (overlay%u_rect), but is optional. The full-rect overlay is supported +for compatibility with older format. It is less flexible than per-button overlays and +is discouraged. + + overlays = 2 + overlay0_overlay = overlay_img0.png # Optional + overlay1_overlay = overlay_img1.png # Optional + +The paths are relative to where the overlay config is loaded from. If the path is absolute, +absolute paths will be used. On Unix-like systems ~/ is recognized as $HOME/. + +## Screen placement + +By default, the overlay image will be stretched out to fill the whole game image. However, +for some overlays, this is not practical. + +It is possible to set the placement using for example: + + overlay0_rect = "0.2,0.3,0.5,0.4" + +We assume that the game screen has normalized coordinates in X and Y that span from [0, 0] in +the top-left corner to [1, 1] in the lower-right corner. + +This will render the overlay to x = 0.2, y = 0.3 with size width = 0.5, height = 0.4. The +default (stretch to full screen) could be described as such: + + overlay0_rect = "0.0,0.0,1.0,1.0" + +## Full-screen vs. full-viewport overlays + +By default, overlays will be stretched out to fill game viewport. However, in some cases the +aspect ratio of the game causes there to remain large black borders around the game image. + +It is possible to stretch the overlay to full screen (instead of viewport) by specifying this option: + + overlay0_full_screen = true + +## Coordinate descriptors + +We must also describe where on the overlay image buttons can be found for each overlay. E.g.: + + overlay0_descs = 3 # Three buttons for this overlay in total + overlay0_desc0 = "a,32,64,radial,10,20" + overlay0_desc1 = "start,100,50,rect,80,10" + overlay0_desc2 = "overlay_next,200,180,radial,40,40" + +The format is: + + "button,position_x,position_y,hitbox_type,range_x,range_y" + +button corresponds to the input event being generated. The names are the same as in the +general input config, e.g. input_player1_start would translate to start here. overlay_next is a +special bind designed to swap to the next overlay, or wrap around to the first one. +Button nul means no input. + +For an up-to-date view of what buttons are called, check the input_config_key_map variable in: +[https://github.com/libretro/RetroArch/blob/master/input/input_keymaps.c](https://github.com/libretro/RetroArch/blob/master/input/input_keymaps.c). + +position_x and position_y are the x and y coordinates in pixels of the source image for the +center of the button. It is possible to use normalized coordinates as well. This is necessary +when a full-screen overlay is not used. overlay0_desc0_normalized = true will force normalized +coordinates. overlay0_normalized = true sets all descriptors to true unless overridden specifically. + +hitbox_type describes which type of shape the button has. radial (circle, ellipsis) and +rect (rectangular) shapes are supported. + +range_x and range_y describe the size of the button. The semantics differ slightly for radial +and rect hitbox types. For radial shape, range_x and range_y describe the radius in x and y +directions in pixels of the source image. For rect shape, the range_x and range_y values represent +the distance from center to the edge of the rect in terms of pixels of the source image. + +E.g. a range_x of 20 would mean the width of the rectangular is 40 pixels in total. + +A special type of button is analog_left and analog_right. These translate to analog sticks. +These buttons must have hitbox type radial. It is possible to configure where saturation kicks in +using overlay%u_desc%u_saturate_pct. E.g. a value of 0.75 means the 75% inner part contains the +entire analog range. Outside the 75% it will be fully saturated. + +## Using per-button overlays + +It is possible to use individual overlays per button. The given image will be displayed with +same size as the hitbox in the input descriptor. + + overlay0_desc0_overlay = button.png + +## Let overlay buttons move around when pressed + +For especially overlay buttons which map to analogs, it is useful to allow an image to follow +the movement of the finger. To enable an overlay to follow the finger movement within its +bounding area use the movable attribute: + + overlay0_desc0_overlay = analog.png # Need some per-descriptor overlay + overlay0_desc0_movable = true # Overlay image will now move around + +## Let buttons light up when they are pressed + +When using individial overlays per button it will make sense to have buttons light up +when they are pressed. To do this, the alpha value per-button will be multiplied by a factor. + + overlay0_desc0_alpha_mod = 2.0 # Alpha is multiplied 2x when pressed. + +To set a default across all descriptors for an overlay, you can do so: + + overlay0_alpha_mod = 2.0 + +## Let buttons have bigger hitbox when they are pressed + +When pressed, you can make the hitboxes larger while the button is pressed: + + overlay0_desc0_range_mod = 1.5 # For the particular descriptor + overlay0_range_mod = 1.5 # Default for all descriptors + +## Triggering multiple buttons with one desc + +It's possible to trigger multiple buttons (e.g. diagonals) with one overlay desc. + + overlay0_desc0 = "left|up,32,64,radial,10,20" + +will trigger both left and up at same time. + +## Go to arbitrary overlay index + +To build some kind of menu system, one would need the ability for overlay_next to +refer to any overlay. To do this, two extra things must be configured: + + overlay2_overlay = "some_overlay.png" + overlay2_name = "overview_overlay" # A name which can be referred to. Must be set if it is to be refered to. + + overlay0_desc0 = "overlay_next,200,180,radial,40,40" + overlay0_desc0_next_target = "overview_overlay" # When this overlay_next is pressed, it will go to index 2 directly, instead of the default 1. diff --git a/docs/specs/retropad.md b/docs/specs/retropad.md new file mode 100644 index 00000000..b6188c1b --- /dev/null +++ b/docs/specs/retropad.md @@ -0,0 +1,43 @@ +# The RetroPad Abstraction + +The **RetroPad** is a joypad abstraction interface defined by the Libretro API. It is the primary input device for a libretro frontend. Unless a core absolutely requires the use of a keyboard with no possible fallback for gamepad-type controls, a [[Libretro core]] should always be implemented as such that it is directly controllable by the RetroPad. + +In terms of button layout and functionality, the RetroPad is based on a PlayStation/Super Nintendo joypad. + +![RetroPad mapping for an XBox 360 gamepad](https://wiki.libretro.com/images/6/68/Retropad_360pad.png) + +Above: An example of the RetroPad joypad abstraction mapped to the Xbox 360 gamepad. + +## Definition/Criteria +A joypad must fulfill the following criteria to meet the requirements of the RetroPad joypad abstraction: + +* It must have at least two shoulder buttons - two additional extra shoulder buttons are also supported. +* It must have at least four face buttons. +* It must have at least one D-pad. +* It must have at least one analogue stick - two analogue sticks are most common. +* It must have at least a Start button and a Select/Back button. + +### Parallel port joypads in Linux +RetroArch supports parallel port joypads on Linux via the "parport" joypad driver. It uses an extended version of the Linux Multisystem 2-button joystick protocol. + +| Function | Pin | Register | Bit | Active | +|----------|-----|----------|-----|--------| +| Up | 2 | Data | 0 | Low | +| Down | 3 | Data | 1 | Low | +| Left| 4 | Data | 2 | Low | +| Right| 5 | Data | 3 | Low | +| A | 6 | Data | 4 | Low | +| B | 7 | Data | 5 | Low | +| Start | 8 | Data | 6 | Low | +| Select | 9 | Data | 7 | Low | +| Menu toggle | 10 | Status | 6 | Low | +| X | 11 | Status | 7 | Low* | +| Y | 12 | Status | 5 | Low | +| L1 | 13 | Status | 4 | Low | +| R1 | 15 | Status | 3 | Low | + +(*) Pin is hardware inverted, but RetroArch inverts it back again so the same pullup scheme may be used for all pins. Pin 1 is set high so it can be used for pullups. + +RetroArch does not perform debouncing, and so long as the button settling time is less than the frame time no bouncing will be observed. This replicates the latching behavior common in old games consoles. For optimum latency and jitter a high performance debouncing routine should be implemented in the controller hardware. + +Parallel port hardware does not provide a way to detect non-connected pins. To avoid rendering the menu usable with spurious button presses, RetroArch checks each pin on startup and assumes any active pin is not connected. Avoid holding joypad buttons while starting RetroArch or those buttons will be disabled. diff --git a/docs/specs/shader.md b/docs/specs/shader.md new file mode 100644 index 00000000..7ae26ab2 --- /dev/null +++ b/docs/specs/shader.md @@ -0,0 +1,410 @@ +# Shaders +Libretro has created this Shader Specification in order to facilitate the implementation of cross-platform video shaders. + +#### Available shader types: + +* **Cg shaders**: The Cg shader spec used in RetroArch and other libretro frontends supports both single-pass Cg shaders as well as multi-pass shaders. It uses a custom Cg preset format (.cgp). +* **GLSL shaders**: GLSL support exists for platforms which do not support Cg shaders, which is the case for OpenGL ES, and EGL contexts including KMS mode in Linux. + +#### Shader file format: + + # are treated as comments. Rest of the line is ignored. + Format is: key = value. There can be as many spaces as you like in-between. + Value can be wrapped inside "" for multiword strings. (foo = "hai u") + #include includes a config file in-place. + Path is relative to where config file was loaded unless an absolute path is chosen. + Key/value pairs from an #include are read-only, and cannot be modified. + +## Cg shader spec +Cg is a shader specification from nVidia. It has the advantage that shaders written in Cg are compatible with both OpenGL and Direct3D, as well as PlayStation3. They are also compatible with basic HLSL if some considerations are taken into account. They can even be automatically compiled into GLSL shaders, which makes Cg shaders a true “write once, run everywhere” shader format. We encourage new shaders targeting Libretro frontends to be written in this format. + +### Example Cg shader + + void main_vertex + ( + float4 position : POSITION, + out float4 oPosition : POSITION, + uniform float4x4 modelViewProj, + float2 tex : TEXCOORD, + out float2 oTex : TEXCOORD + ) + { + oPosition = mul(modelViewProj, position); + oTex = tex; + } + + float4 main_fragment (float2 tex : TEXCOORD, uniform sampler2D s0 : TEXUNIT0) : COLOR + { + return tex2D(s0, tex); + } + +### Cg shader presets + +#### Example Cg preset + shaders = 2 + shader0 = 4xBR-v3.9.cg + scale_type0 = source + scale0 = 4.0 + filter_linear0 = false + shader1 = dummy.cg + filter_linear1 = true + +## GLSL shader spec +Like Cg shaders, GLSL shaders represents a single pass, and requires a preset file to describe how multiple shaders are combined. The extension is .glsl. + +As GLSL shaders are normally placed in two different files (vertex, fragment), making it very impractical to select in a menu. This is worked around by using compiler defines in order to be equivalent to Cg shaders. + +### Example GLSL shader +Note: GLSL shaders must be modern style, and using ruby prefix is discouraged. + + varying vec2 tex_coord; + #if defined(VERTEX) + attribute vec2 TexCoord; + attribute vec2 VertexCoord; + uniform mat4 MVPMatrix; + void main() + { + gl_Position = MVPMatrix * vec4(VertexCoord, 0.0, 1.0); + tex_coord = TexCoord; + } + #elif defined(FRAGMENT) + uniform sampler2D Texture; + void main() + { + gl_FragColor = texture2D(Texture, tex_coord); + } + #endif + +### GLSL presets + +Like Cg shaders, there is a preset format. Instead of .cgp extension, .glslp extension is used. The format is exactly the same, just replace .cg shaders with .glsl. To convert a .cgp preset, rename to .glslp and replace all references to .cg shaders with .glsl. + +## Converting from Cg shaders + +GLSL shaders are mostly considered a compatibility format. It is possible to compile Cg shaders into GLSL shaders automatically using our [cg2glsl script](https://github.com/libretro/RetroArch/blob/master/tools/cg2glsl.py). It can convert single shaders as well as batch conversion. Shader converstion relies on nVidia's cgc tool found in the `nvidia-cg-toolkit` package. + +## Common Shaders Repository + +The Libretro organization hosts a [repository](https://github.com/libretro/common-shaders) on Github that contains a compilation of shaders. Users can contribute their own shaders to this repository by doing a Pull Request. + +## Detailed Cg Shader Specification + +Entry points: + Vertex: main_vertex + Fragment: main_fragment + +Texture unit: + All shaders work on texture unit 0 (the default). 2D textures must be used. + Power-of-two sized textures are recommended for optimal visual quality. + The shaders must deal with the actual picture data not + filling out the entire texture. + Incoming texture coordinates and uniforms provide this information. + + The texture coordinate origin is defined to be top-left oriented, i.e. + a texture coordinate of (0, 0) will always refer to the top-left pixel of + the visible frame. This is opposite of what most graphical APIs expect. + The implementation must always ensure that this ordering is held for any + texture that the shader has access to. + + Every texture bound for a shader must have black border mode set. + I.e. sampling a texel outside the given texture coordinates must always return a pixel + with RGBA values (0, 0, 0, 0). + +Uniforms: + Some parameters will need to be passed to all shaders, + both vertex and fragment program. + A generic entry point for fragment shader will look like: + + float4 main_fragment (float2 tex : TEXCOORD0, + uniform input IN, uniform sampler2D s_p : TEXUNIT0) : COLOR + {} + + The input is a struct looking like: + struct input + { + float2 video_size; + float2 texture_size; + float2 output_size; + float frame_count; + float frame_direction; + }; + + TEXCOORD0: Texture coordinates for the current input frame will be passed in TEXCOORD0. + (TEXCOORD is a valid alias for TEXCOORD0). + + COLOR0: Although legal, no data of interest is passed here. + You cannot assume anything about data in this stream. + + IN.video_size: The size of the actual video data in the texture, + e.g for a SNES this will be generally + (256, 224) for normal resolution frames. + + IN.texture_size: This is the size of the texture itself. + Optimally power-of-two sized. + + IN.output_size: The size of the video output. + This is the size of the viewport shown on screen. + + IN.frame_count: A counter of the frame number. + This increases with 1 every frame. + This value is really an integer, + but needs to be float for CGs lack of integer uniforms. + + IN.frame_direction: A number telling which direction + the frames are flowing. For regular playing, this value should be 1.0. + While the game is rewinding, this value should be -1.0. + + modelViewProj: This uniform needs to be set in vertex shader. + It is a uniform for the current MVP transform. + +Pre-filtering: + Most of these shaders are intended to be used with a non-filtered input. + Nearest-neighbor filtering on the textures themselves are preferred. + Some shaders, like scanline will most likely + prefer bilinear texture filtering. + +## Cg meta-shader format + +Rationale: +The .cg files themselves contain no metadata necessary to perform advanced +filtering. They also cannot process an effect in multiple passes, which +is necessary for some effects. The CgFX format does exist, but it would +need current shaders to be rewritten to a HLSL-esque format. +It also suffers a problem mentioned below. + +Rather than putting everything into one file (XML shader format), this +format is config file based. This greatly helps testing shader combinations +as there is no need to rearrange code in one big file. Another plus with +this approach is that a large library of .cg files can be used to combine +many shaders without needing to redundantly copy code over. It also +helps testing as it is possible to unit-test every pass separately +completely seamless. + +Format: + +The meta-shader format is based around the idea of a config file with the +format: key = value. Values with spaces need to be wrapped in quotes: +key = "value stuff". No .ini sections or similar are allowed. Meta-shaders +may include comments, prefixed by the "#" character, both on their own in +an otherwise empty line or at the end of a key = value pair. + +The meta-format has four purposes: +- Combine several standalone .cg shaders into a multipass shader. +- Define scaling parameters for each pass. I.e., a HQ2x shader + might want to output with a scale of exactly 2x. +- Control filtering of textures. Many shaders will want nearest-neighbor + filtering, and some will want linear. +- Define external lookup textures. Shaders can access external textures + found in .tga files. + +Parameters: + +- shaders (int): This param defines how many .cg shaders will be loaded. + This value must be at least one. + The path to these shaders will be found as a string in parameters + shader0, shader1, ... shaderN, and so on. + The path is relative to the directory the meta-shader + was loaded from. + +- filter_linearN (boolean): This parameter defines how the texture of the + result of pass N will be filtered. + N = 0 (pass 0) is the raw input frame, + N = 1 is result of the first pass, etc. + (A boolean value here might be true/false/1/0). + Should this value not be defined, the filtering option is + implementation defined. + +- float_framebufferN (boolean): This parameters defines if shader N + should render to a 32-bit floating point buffer. + This only takes effect if shaderN is actually rendered to an FBO. + This is useful for shaders which have to store FBO values outside [0, 1] range. + +- frame_count_modN (int): This positive parameter defines + which modulo to apply to IN.frame_count. + IN.frame_count will take the value frame_count % frame_count_modN. + +- scale_typeN (string): This can be set to one of these values: + "source": Output size of shader pass N is relative to the input size + as found in IN.video_size. Value is float. + "viewport": Output size of shader pass N is relative to the size of the + window viewport. Value is float. + This value can change over time if the user + resizes his/her window! + "absolute": Output size is statically defined to a certain size. + Useful for hi-res blenders or similiar. + + If no scale type is assumed, it is assumed that it is set to "source" + with scaleN set to 1.0. + + It is possible to set scale_type_xN and scale_type_yN to specialize + the scaling type in either direction. scale_typeN however + overrides both of these. + + Exceptions: + If no scale_type is set for the very last shader, + it is assumed to output at the full resolution rather than assuming + a scale of 1.0x, and bypasses any frame-buffer object rendering. + If there is only one shader, it is + also considered to be the very last shader. If any scale option + is defined, it has to go through a frame-buffer object, and + subsequently rendered to screen. The filtering option used when stretching + is implementation defined. It is encouraged to not have any + scaling parameters in last pass if you care about the filtering + option here. + + In first pass, should no scaling factor be defined, the implementation + is free to choose a fitting scale. This means, that for a single pass + shader, it is allowed for the implementation to set a scale, + render to FBO, and stretch. (Rule above). + +- scaleN, scale_xN, scale_yN (float/int): + These values control the scaling params from scale_typeN. + The values may be either floating or int depending on the type. + scaleN controls both scaling type in horizontal and vertical directions. + + If scaleN is defined, scale_xN and scale_yN have no effect. + scale_xN and scale_yN controls scaling properties for the directions + separately. Should only one of these be defined, the other direction + will assume a "source" scale with value 1.0, i.e. no change in resolution. + + Should scale_type_xN and scale_type_yN be set to different values, + the use of scaleN is undefined (i.e. if X-type is absolute (takes int), + and Y-type is source (takes float).) + +- textures (multiple strings): + The textures param defines one or more lookup textures IDs. + Several IDs are delimited with ';'. I.e. textures = "foo;bar" + These IDs serves as the names for a Cg sampler uniform. I.e. + uniform sampler2D foo; + uniform sampler2D bar; + + The path of the textures can be found in the IDs, i.e. + foo = image0.tga + bar = image1.tga + The paths of these textures are relative to the directory + the meta-shader was loaded from. + + It is also possible to control the filtering options of the + lookup texture as a boolean option in ID_linear = true/false. + I.e. foo_linear = false, will force nearest neighbor filtering + for texture "foo". If this param is not set, it is assumed to be + linearily filtered. + + The textures will be loaded "as-is", + and coordinates (0, 0), (0, 1), (1, 0), (1, 1) will correspond + to the corners of the texture. Since the texture coordinates + of the texture in TEXUNIT0 might not be as convenient, + the texture coordinates for all lookup textures will be found + in TEXCOORD1. (Note: You cannot assume which texture unit the + lookup textures will be bound to however!) + + The implementation only guarantees to be able to + load plain top-left non-RLE .tga files. + It may provide possibilities to load i.e. .png and other popular formats. + +Multi-pass uniforms: + + During multi-pass rendering, some additional uniforms are available. + + With multi-pass rendering, it is possible to utilize the resulting output + for every pass that came before it, including the unfiltered input. + This allows for an additive approach to shading rather than + serial style. + + The unfiltered input can be found in the ORIG struct: + + uniform sampler2D ORIG.texture: Texture handle. + Must not be set to a predefined texture unit. + uniform float2 ORIG.video_size: The video size of original frame. + uniform float2 ORIG.texture_size: The texture size of original frame. + in float2 ORIG.tex_coord: An attribute input holding the texture + coordinates of original frame. + + PASS%u: This struct holds the same data as the ORIG struct, + although the result of passes {1, 2, 3 ...}, i.e. + PASS1.texture holds the result of the first shader pass. + If rendering pass N, passes {1, ..., N-2} are available. + (N-1 being input in the regular IN structure). + + PREV: + This struct holds the same data as the ORIG struct, + and corresponds to the raw input image from the previous frame. + Useful for motion blur. + + PREV1..6: + Similar struct as PREV, but holds the data for passes further back in time. + PREV1 is the frame before PREV, PREV2 the frame before that again, and so on. + This allows up to 8-tap motion blur. + +For backend implementers: + +## Rendering the shader chain + +With all these options, the rendering pipeline can become somewhat complex. +The meta-shader format greatly utilizes the possibility of offscreen +rendering to achieve its effects. +In OpenGL usually this is referred to as frame-buffer objects, +and in HLSL as render targets (?). This feature will be referred to as +FBO from here. FBO texture is assumed to be a texture bound to the FBO. + +As long as the visual result is approximately identical, +the implementation does not have +to employ FBO. + +With multiple passes our chain looks like this conceptually: + +|Source image| ---> |Shader 0| ---> |FBO 0| ---> |Shader 1| ---> +|FBO 1| ---> |Shader 2| ---> (Back buffer) + +In the case that Shader 2 has set some scaling params, we need to first render +to an FBO before stretching it to the back buffer. + +|Source image| ---> ... |Shader 2| ---> |FBO 2| ---> (Back buffer) + +Scaling parameters determine the sizes of the FBOs. For visual fidelity it +is recommended that power-of-two sized textures are bound to them. This +is due to floating point inaccuracies that become far more apparent when not +using power-of-two textures. If the absolute maximum size of the source image +is known, then it is possible to preallocate the FBOs. + +Do note that the size of FBOn is determined by dimensions of FBOn-1 +when "source" scale is used, _not_ the source image size! +Of course, FBO0 would use source image size, as there is no FBO-1 ;) + +I.e., with SNES there is a maximum width of 512 and height of 478. +If a source relative scale of 3.0x is desired for first pass, it is thus safe to +allocate a FBO with size of 2048x2048. However, most frames will just use a +tiny fraction of this texture. + +With "viewport" scale it might be necessary to reallocate the FBO in run-time +if the user resizes the window. + + +## Compatibility of shader types with context drivers + +In RetroArch, the following table specifies which shader types work with what video contexts: + +CONTEXT DRIVER | GLSL | CG | HLSL | SLANG +-----------------------|------------|---------|----------------|-------------- +Android | Y | N | N | Y (Possible) +CGL | Y | N | N | N +D3D | N | Y | N (Possible)| N +DRM | Y | N | N | N +Emscripten | Y | N | N | N +GDI | N | N | N | N +KHR | N | N | N | Y +Mali | Y | N | N | N +Opendingux | Y | N | N | N +OSMesa | Y | N | N | N +PS3 | N | Y | N | N +QNX | Y | N | N | N +SDL | N | N | N | N +VC | Y | N | N | N +Vivante | Y | N | N | N +Wayland | Y | N | N | Y +WGL | Y | N | N | Y +X | Y | Y | N | Y +XEGL | Y | N | N | N + +Attempting to load unsupported shader types may result in segmentation faults because the context drivers currently do not have the behavior to declare which types of shaders it supports +~~~~ diff --git a/docs/tech/debugging.md b/docs/tech/debugging.md new file mode 100644 index 00000000..f27f551d --- /dev/null +++ b/docs/tech/debugging.md @@ -0,0 +1,67 @@ +# Debugging + +## GDB (All platforms) + +The [GNU Debugger](https://www.gnu.org/software/gdb/) is the most widely available debugging tool for many platforms. + +!!! note "Windows users" + This guide assumes you have already installed the MSYS2/MinGW environment as detailed [here](../../compilation/windows/) and that you are running in the appropriate "MSYS2 MinGW" (32 or 64-bit) shell (not "MSYS2 MSYS"). + +If you observe a crash with RetroArch and would like to get more information, navigate to the folder where your RetroArch installation is and run: + +> gdb retroarch + +!!! note "Windows users" + If you have not compiled RetroArch yourself with debugging enabled (`make DEBUG=1`), please specify `retroarch_debug.exe` here instead of `retroarch` to use the debug version that ships with our binary package. + +After gdb has started, you can then start up RetroArch with `run`. If RetroArch crashes, gdb should show you a prompt with a message such as: + +`Program received signal SIGSEGV, Segmentation fault.` + +From here, type `bt full` to get a full backtrace of the crash. You can copy/paste this information to a pastebin site such as [dpaste](http://www.dpaste.com/) to get a link that you can provide to developers to help with your problem. Run `quit` when you are done to exit gdb. + +For more information on using GDB, please see their online documentation [here](https://sourceware.org/gdb/current/onlinedocs/gdb/). + +## ASAN (Linux/Mac/BSD/Android) + +AddressSanitizer (ASAN) is a very fast memory error detector and an indispensable tool for finding issues with improper memory handling such as use-after-free, buffer overflows and general memory leaks. It is available since GCC 4.8 and Clang 3.1 for Linux (x64 and ARM) systems. Typical slowdown of runtime performance is around 2x. + +There are several ways to use RetroArch in conjunction with ASAN and there are many different options that can be combined with each other. The first step is that you need to compile ASAN directly into the RetroArch binary. Here are some simple examples: + +**For detecting memory errors/leaks and undefined behavior:** +> make DEBUG=1 SANITIZER=address,undefined + +**For detecting threading errors such as race conditions:** +> make DEBUG=1 SANITIZER=thread + +Then you can run the RetroArch binary normally with `./retroarch`. As problems are detected, they will be printed to the console either at runtime or when the program exits or crashes, depending on the type of error. + +For more information, see the [gcc](https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html), [Google](https://github.com/google/sanitizers/wiki/AddressSanitizer) and [clang](https://clang.llvm.org/docs/) documentation. + +## Dr. Memory (Windows/Linux/Mac/Android) + +Dr. Memory is another tool for detecting memory errors similar to ASAN. Its website can be found here: [http://www.drmemory.org/](http://www.drmemory.org/) + +After installation, the simplest way to use Dr. Memory with RetroArch is to open the start menu shortcut under "Dr. Memory" called "Explore Dr. Memory", and then drag the `retroarch_debug.exe` file onto the `drmemory.exe` file there. No re-compilation is necessary to use this tool. Any errors encountered will be displayed in a notepad window after the program exits or crashes. + +## VulnScan (Windows/Linux) + +Also known as Microsoft Security Risk Detection, is a new memory error detection tool that is (at the time of writing) in closed beta status. For more information, please see its website [here](https://www.microsoft.com/en-us/security-risk-detection/). + +## Valgrind (Linux) + +[Valgrind](http://valgrind.org/) is probably the oldest and most well known memory error and leak detector available. Here is an example command-line usage to run valgrind with RetroArch to check for memory or threading errors: + +> valgrind -v --tool=memcheck --leak-check=yes --track-origins=yes --show-reachable=yes ./retroarch + +No recompilation is necessary to use this tool, but make sure to run it using a debug build of RetroArch (built with `make DEBUG=1`). Some users have reported a large number of false positives with this tool, as well as much slower runtime performance, so in general we typically recommend to use ASAN instead if that is an option for you. + +## rr (Linux) + +[rr](http://rr-project.org/) is a deterministic debugger that enhances gdb by supporting the recording and replay (and even reverse-replay) of your program's execution. Very useful for accurately reproducing a hard-to-trigger issue such as a race condition or crash that only occurs under certain conditions. + +For more information on using rr, please see their usage guide [here](https://github.com/mozilla/rr/wiki/Usage). + +## Time Travel Debugging (Windows) + +[Time Travel Debugging](https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/time-travel-debugging-overview) is a Windows tool for recording and replaying a program's execution, similar to [rr](http://rr-project.org/). For more information, please visit their website. diff --git a/docs/tech/frontends.md b/docs/tech/frontends.md new file mode 100644 index 00000000..b0fd881c --- /dev/null +++ b/docs/tech/frontends.md @@ -0,0 +1,21 @@ +# Frontends + +Libretro frontends are programs that have implemented the [libretro API](../specs/api.md) specification. If fully implemented, this allows the program to run any libretro core that has been developed. + +Name | Author(s) | Last Release | Description +------|-----------|--------------|------------ +[RetroArch](http://retroarch.com) | [libretro](http://libretro.com) | 2017-11-21 1.6.9 | Official reference libretro frontend, developed in-house. It is usually the first in implementing new features added to the libretro API. Written almost entirely in C, targets a large amount of platforms. +[minir](https://github.com/Alcaro/minir) | Alcaro | | WIMP interface (Windows, Icons, Menus and Pointers), and only cares about the major desktop OSes. Drops flexibility in favor of improved out-of-the-box experience. +[Arcan](https://github.com/letoram/arcan) | Letoram | | Powerful development framework for creating virtually anything from user interfaces for specialized embedded applications all the way to full-blown standalone desktop environments. +[GNOME Games](https://wiki.gnome.org/Apps/Games) | GNOME | | Games is a GNOME application to browse your video games library and to easily pick and play a game from it. +[BizHawk](http://tasvideos.org/BizHawk.html) | BizHawk | | Experimental libretro player support for the BizHawk multi-platform emulator. +[Phoenix](http://phoenix.vg/) | Phoenix | | Upcoming libretro frontend written with the Qt5 cross-platform application framework. +[Anarchy Arcade](http://store.steampowered.com/app/266430/Anarchy_Arcade/) | Elijah Newman-Gomez | | AArcade is a virtual reality 3D desktop that launches shortcuts to absolutely anything you like. +[ZMZ](https://github.com/Alcaro/ZMZ) | Alcaro | Abandoned | Fork of [ZSNES](http://www.zsnes.com/) that rips out its emulation code, using libretro instead. Due to ZSNES being inflexible, ZMZ became quite a bit of a mess. +[retro_frontend](https://github.com/genodelabs/genode-world/tree/master/src/app/retro_frontend) | Genodelabs | | Minimal frontend for the [Genode](http://genode.org) operating system framework. No features intended, but is extensible via abstraction of operating system services. +[RetroPlayer](https://forum.kodi.tv/forumdisplay.php?fid=194) | Kodi-Game | | Also known as [Kodi-Game](https://github.com/kodi-game/), RetroPlayer is a libretro compatibility layer for [Kodi](https://kodi.tv/). +einweggerät | mudlord | | Debugging tool for libretro cores. +[nanoarch](https://github.com/heuripedes/nanoarch) | heuripedes | | Small frontend providing video, audio and basic input features to run non-libretro-GL cores. Built on GLFW. +[sdlarch](https://github.com/heuripedes/sdlarch) | heuripedes | | Small frontend providing video, audio and basic input to run basic libretro cores. Built on SDL. +[noarch](https://github.com/robloach/noarch) | RobLoach | | Minimalist frontend which does not provide video, audio or even basic input. It loads a libretro core, runs an iteration, and then exits. Good for unit testing. +[minir test fronts](https://github.com/Alcaro/minir/tree/master/subproj) | Alcaro | | Three different fronts, none of which has IO drivers: retroprofile just runs the core, intended for performance tests and PGO; retrorepeat runs the core twice, expecting identical output; retrostateverify traces the entire core and verifies whether its savestates are perfect. diff --git a/docs/tech/licenses.md b/docs/tech/licenses.md new file mode 100644 index 00000000..a24991db --- /dev/null +++ b/docs/tech/licenses.md @@ -0,0 +1,190 @@ +# Licenses + +There is software behind RetroArch and Lakka that is protected by Non-Commercial licenses. + +It is important to respect the wishes of the developers and people behind the respective projects. + +See below for a summary of the licenses behind RetroArch and its cores: + +## Non-commercial + +**SOFTWARE LISTED IN THE TABLE BELOW ARE PROTECTED BY NON-COMMERCIAL LICENSES. EVERY ENTRY HAS A HYPERLINK FOR PROOF OF THE SOFTWARE'S LICENSE** + +**SOFTWARE LISTED IN THE TABLE BELOW MAY NOT BE SOLD, NOR MAY THEY BE USED IN A COMMERCIAL PRODUCT OR ACTIVITY WITHOUT COPYRIGHT HOLDERS' APPROVAL.** + +| Software | License | Non-commercial | +|----------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------|----------------| +| [Lakka](http://www.lakka.tv/) | [Non-commercial](http://www.lakka.tv/doc/FAQ/) | Non-commercial | +| [4DO](../library/4do.md) | [Non-commercial](https://github.com/libretro/4do-libretro/blob/master/libfreedo/freedocore.h) | Non-commercial | +| [Dinothawr](../library/dinothawr.md) | [Non-commercial](https://github.com/libretro/Dinothawr/blob/master/LICENSE) | Non-commercial | +| FB Alpha | [Non-commercial](https://github.com/libretro/fbalpha/blob/master/src/license.txt) | Non-commercial | +| FB Alpha 2012 | [Non-commercial](https://github.com/libretro/fbalpha2012/blob/master/docs/license.txt) | Non-commercial | +| FB Alpha 2012 CPS-1 | [Non-commercial](https://github.com/libretro/fbalpha2012_cps1/blob/master/src/license.txt) | Non-commercial | +| FB Alpha 2012 CPS-2 | [Non-commercial](https://github.com/libretro/fbalpha2012_cps2/blob/master/src/license.txt) | Non-commercial | +| FB Alpha 2012 CPS-3 | [Non-commercial](https://github.com/libretro/fbalpha2012_cps3/blob/master/docs/license.txt) | Non-commercial | +| FB Alpha 2012 Neo Geo | [Non-commercial](https://github.com/libretro/fbalpha2012_neogeo/blob/master/src/license.txt) | Non-commercial | +| fMSX | [Non-commercial](https://github.com/libretro/fmsx-libretro/blob/master/LICENSE) | Non-commercial | +| [Genesis Plus GX](../library/genesis_plus_gx.md) | [Non-commercial](https://github.com/libretro/Genesis-Plus-GX/blob/master/LICENSE.txt) | Non-commercial | +| MAME 2000 | [MAME (Non-commercial)](https://github.com/libretro/mame2000-libretro/blob/master/readme.txt) | Non-commercial | +| [MAME 2003](../library/mame_2003.md) | [MAME (Non-commercial)](https://github.com/libretro/mame2003-libretro/blob/master/docs/mame.txt) | Non-commercial | +| MAME 2003 Midway | [MAME (Non-commercial)](https://github.com/libretro/mame2003_midway/blob/master/docs/mame.txt) | Non-commercial | +| MAME 2009 | [MAME (Non-commercial)](https://github.com/r-type/mame2009/blob/master/docs/mame.txt) | Non-commercial | +| MAME 2010 | [MAME (Non-commercial)](https://github.com/libretro/mame2010-libretro/blob/master/docs/mame.txt) | Non-commercial | +| MAME 2014 | [MAME (Non-commercial)](https://github.com/libretro/mame2014-libretro/blob/master/docs/license.txt) | Non-commercial | +| MESS 2014 | [MAME (Non-commercial)](https://github.com/libretro/mame2014-libretro/blob/master/docs/license.txt) | Non-commercial | +| [PicoDrive](../library/picodrive.md) | [MAME (Non-commercial)](https://github.com/libretro/picodrive/blob/master/COPYING) | Non-commercial | +| [Snes9x](../library/snes9x.md) | [Non-commercial](https://github.com/libretro/snes9x/blob/master/docs/snes9x-license.txt) | Non-commercial | +| [Snes9x 2002](../library/snes9x_2002.md) | [Non-commercial](https://github.com/libretro/snes9x/blob/master/docs/snes9x-license.txt) | Non-commercial | +| [Snes9x 2005](../library/snes9x_2005.md) | [Non-commercial](https://github.com/libretro/snes9x/blob/master/docs/snes9x-license.txt) | Non-commercial | +| [Snes9x 2005 Plus](../library/snes9x_2005_plus.md) | [Non-commercial](https://github.com/libretro/snes9x/blob/master/docs/snes9x-license.txt) | Non-commercial | +| [Snes9x 2010](../library/snes9x_2010.md) | [Non-commercial](https://github.com/libretro/snes9x/blob/master/docs/snes9x-license.txt) | Non-commercial | +| UME 2014 | [MAME (Non-commercial)](https://github.com/libretro/mame2014-libretro/blob/master/docs/license.txt) | Non-commercial | + +## Libretro + +| Libretro | License | Non-commercial | +|---------------------------------------------------------|--------------------------------------------------------------------|----------------| +| [LibRetro API](https://www.libretro.com/index.php/api/) | [MIT](https://www.libretro.com/index.php/api/) | | +| [RetroArch](http://www.retroarch.com/) | [GPLv3](https://github.com/libretro/RetroArch/blob/master/COPYING) | | +| [Lakka](http://www.lakka.tv/) | [Non-commercial](http://www.lakka.tv/doc/FAQ/) | Non-commercial | +| [libretro/docs](https://docs.libretro.com/) | [MIT](https://github.com/libretro/docs/blob/master/LICENSE) | | +| [libretro/retroarch-assets](https://github.com/libretro/retroarch-assets) | [Attribution 4.0 International (CC BY 4.0)](https://github.com/libretro/retroarch-assets/blob/master/COPYING) | | + +## Cores + +| Core | License | Non-commercial | +|----------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------|----------------| +| [3D Engine](../library/3d_engine.md) | [GPLv3](https://github.com/libretro/libretro-3dengine/blob/master/license) | | +| [4DO](../library/4do.md) | [Non-commercial](https://github.com/libretro/4do-libretro/blob/master/libfreedo/freedocore.h) | Non-commercial | +| [2048](../library/2048.md) | [Public Domain](https://github.com/libretro/libretro-2048/blob/master/COPYING) | | +| [Atari800](../library/atari800.md) | [GPLv2](https://github.com/atari800/atari800/blob/master/COPYING) | | +| [Beetle bsnes](../library/beetle_bsnes.md) | [GPLv2](https://github.com/libretro/beetle-bsnes-libretro/blob/master/COPYING) | | +| [Beetle Cygne](../library/beetle_cygne.md) | [GPLv2](https://github.com/libretro/beetle-wswan-libretro/blob/master/COPYING) | | +| [Beetle GBA](../library/beetle_gba.md) | [GPLv2](https://github.com/libretro/beetle-gba-libretro/blob/master/COPYING) | | +| [Beetle Handy](../library/beetle_handy.md) | [zlib](https://github.com/libretro/beetle-lynx-libretro/blob/master/mednafen/lynx/license.txt), [GPLv2](https://github.com/libretro/beetle-lynx-libretro/blob/master/COPYING) | | +| [Beetle NeoPop](../library/beetle_neopop.md) | [GPLv2](https://github.com/libretro/beetle-ngp-libretro/blob/master/COPYING) | | +| [Beetle PC-FX](../library/beetle_pc_fx.md) | [GPLv2](https://github.com/libretro/beetle-pcfx-libretro/blob/master/COPYING) | | +| [Beetle PCE FAST](../library/beetle_pce_fast.md) | [GPLv2](https://github.com/libretro/beetle-pce-fast-libretro/blob/master/COPYING) | | +| [Beetle PSX](../library/beetle_psx.md) | [GPLv2](https://github.com/libretro/beetle-psx-libretro/blob/master/COPYING) | | +| [Beetle PSX HW](../library/beetle_psx_hw.md) | [GPLv2](https://github.com/libretro/beetle-psx-libretro/blob/master/COPYING) | | +| [Beetle Saturn](../library/beetle_saturn.md) | [GPLv2](https://github.com/libretro/beetle-saturn-libretro/blob/master/COPYING) | | +| [Beetle SGX](../library/beetle_sgx.md) | [GPLv2](https://github.com/libretro/beetle-supergrafx-libretro/blob/master/COPYING) | | +| [Beetle VB](../library/beetle_vb.md) | [GPLv2](https://github.com/libretro/beetle-vb-libretro/blob/master/COPYING) | | +| [blueMSX](../library/bluemsx.md) | [GPLv2](https://github.com/libretro/blueMSX-libretro/blob/master/license.txt) | | +| [bnes](../library/bnes.md) | [GPLv3](https://github.com/libretro/bnes-libretro/blob/master/license) | | +| [bsnes-mercury Accuracy](../library/bsnes_mercury_accuracy.md) | [GPLv3](https://github.com/libretro/bsnes-mercury/blob/master/LICENSE) | | +| [bsnes-mercury Balanced](../library/bsnes_mercury_balanced.md) | [GPLv3](https://github.com/libretro/bsnes-mercury/blob/master/LICENSE) | | +| [bsnes-mercury Performance](../library/bsnes_mercury_performance.md) | [GPLv3](https://github.com/libretro/bsnes-mercury/blob/master/LICENSE) | | +| [bsnes Accuracy](../library/bsnes_accuracy.md) | [GPLv3](https://github.com/libretro/bsnes-libretro/blob/libretro/COPYING) | | +| [bsnes Balanced](../library/bsnes_balanced.md) | [GPLv3](https://github.com/libretro/bsnes-libretro/blob/libretro/COPYING) | | +| [bsnes C++98 (v085)](../library/bsnes_cplusplus98.md) | [GPLv3](https://github.com/libretro/bsnes-libretro/blob/libretro/COPYING) | | +| [bsnes Performance](../library/bsnes_performance.md) | [GPLv3](https://github.com/libretro/bsnes-libretro/blob/libretro/COPYING) | | +| [Caprice32](../library/caprice32.md) | [GPLv2](https://github.com/ColinPitrat/caprice32/blob/master/COPYING.txt) | | +| [ChaiLove](../library/chailove.md) | [MIT](https://github.com/libretro/libretro-chailove/blob/master/LICENSE.md) | | +| [Citra](../library/citra.md) | [GPLv2](https://github.com/citra-emu/citra/blob/master/license.txt) | | +| [Craft](../library/craft.md) | [MIT](https://github.com/libretro/Craft/blob/master/LICENSE.md) | | +| [CrocoDS](../library/crocods.md) | [MIT](https://github.com/libretro/libretro-crocods/blob/master/LICENSE) | | +| [DeSmuME](../library/desmume.md) | [GPLv2](https://github.com/TASVideos/desmume/blob/master/license.txt) | | +| [Dinothawr](../library/dinothawr.md) | [Non-commercial](https://github.com/libretro/Dinothawr/blob/master/LICENSE) | Non-commercial | +| Dolphin | [GPLv2](https://github.com/dolphin-emu/dolphin/blob/master/license.txt) | | +| DOSBox | [GPLv2](https://github.com/libretro/dosbox-libretro/blob/master/COPYING) | | +| Dummy Core | MIT | | +| Dungeon Crawl Stone Soup | [GPLv2+](https://github.com/libretro/crawl-ref/blob/master/crawl-ref/licence.txt) | | +| EasyRPG | [GPLv3](https://github.com/libretro/easyrpg-libretro/blob/master/COPYING) | | +| [EightyOne](../library/eightyone.md) | [GPLv3](https://github.com/libretro/81-libretro/blob/master/LICENSE) | | +| [Emux CHIP-8](../library/emux_chip8.md) | [GPLv2](https://github.com/libretro/emux/blob/master/COPYING) | | +| [Emux GB](../library/emux_gb.md) | [GPLv2](https://github.com/libretro/emux/blob/master/COPYING) | | +| [Emux NES](../library/emux_nes.md) | [GPLv2](https://github.com/libretro/emux/blob/master/COPYING) | | +| [Emux SMS](../library/emux_sms.md) | [GPLv2](https://github.com/libretro/emux/blob/master/COPYING) | | +| FB Alpha | [Non-commercial](https://github.com/libretro/fbalpha/blob/master/src/license.txt) | Non-commercial | +| FB Alpha 2012 | [Non-commercial](https://github.com/libretro/fbalpha2012/blob/master/docs/license.txt) | Non-commercial | +| FB Alpha 2012 CPS-1 | [Non-commercial](https://github.com/libretro/fbalpha2012_cps1/blob/master/src/license.txt) | Non-commercial | +| FB Alpha 2012 CPS-2 | [Non-commercial](https://github.com/libretro/fbalpha2012_cps2/blob/master/src/license.txt) | Non-commercial | +| FB Alpha 2012 CPS-3 | [Non-commercial](https://github.com/libretro/fbalpha2012_cps3/blob/master/docs/license.txt) | Non-commercial | +| FB Alpha 2012 Neo Geo | [Non-commercial](https://github.com/libretro/fbalpha2012_neogeo/blob/master/src/license.txt) | Non-commercial | +| [FCEUmm](../library/fceumm.md) | [GPLv2](https://github.com/libretro/libretro-fceumm/blob/master/Copying) | | +| [FFmpeg](../library/ffmpeg.md) | [LGPLv2, GPLv2](https://github.com/libretro/FFmpeg/blob/master/LICENSE.md) | | +| fMSX | [Non-commercial](https://github.com/libretro/fmsx-libretro/blob/master/LICENSE) | Non-commercial | +| FreeIntv | [GPLv3](https://github.com/libretro/FreeIntv/blob/master/LICENSE) | | +| FreeJ2ME | [GPLv3](https://github.com/hex007/freej2me/blob/master/LICENSE) | | +| Frodo | [GPLv2](https://github.com/r-type/frodo-libretro/blob/master/COPYING) | | +| Fuse | [GPLv3](https://github.com/libretro/fuse-libretro/blob/master/LICENSE) | | +| [Gambatte](../library/gambatte.md) | [GPLv2](https://github.com/libretro/gambatte-libretro/blob/master/COPYING) | | +| [Game Music Emu](../library/game_music_emu.md) | [GPLv3](https://github.com/libretro/libretro-gme/blob/master/LICENSE) | | +| [Gearboy](../library/gearboy.md) | [GPLv3](https://github.com/libretro/Gearboy/blob/master/LICENSE) | | +| [Genesis Plus GX](../library/genesis_plus_gx.md) | [Non-commercial](https://github.com/libretro/Genesis-Plus-GX/blob/master/LICENSE.txt) | Non-commercial | +| [gpSP](../library/gpsp.md) | [GPLv2](https://github.com/libretro/gpsp/blob/master/COPYING) | | +| [GW](../library/gw.md) | [zlib](https://github.com/libretro/gw-libretro/blob/master/LICENSE) | | +| [Handy](../library/handy.md) | [zlib](https://github.com/libretro/libretro-handy/blob/master/lynx/license.txt) | | +| [Hatari](../library/hatari.md) | [GPLv2](https://github.com/libretro/hatari/blob/master/readme.txt) | | +| [higan Accuracy](../library/higan_accuracy.md) | [GPLv3](https://gitlab.com/higan/higan/blob/master/LICENSE.txt) | | +| [Imageviewer](../library/imageviewer.md) | [MIT](https://github.com/libretro/RetroArch/blob/master/cores/libretro-imageviewer/LICENSE) | | +| [Lutro](../library/lutro.md) | [MIT](https://github.com/libretro/libretro-lutro/blob/master/LICENSE) | | +| MAME | [BSD-3-Clause & GNU GPLv2](http://mamedev.org/legal.html) | | +| MAME 2000 | [MAME (Non-commercial)](https://github.com/libretro/mame2000-libretro/blob/master/readme.txt) | Non-commercial | +| [MAME 2003](../library/mame_2003.md) | [MAME (Non-commercial)](https://github.com/libretro/mame2003-libretro/blob/master/docs/mame.txt) | Non-commercial | +| MAME 2003 Midway | [MAME (Non-commercial)](https://github.com/libretro/mame2003_midway/blob/master/docs/mame.txt) | Non-commercial | +| MAME 2009 | [MAME (Non-commercial)](https://github.com/r-type/mame2009/blob/master/docs/mame.txt) | Non-commercial | +| MAME 2010 | [MAME (Non-commercial)](https://github.com/libretro/mame2010-libretro/blob/master/docs/mame.txt) | Non-commercial | +| MAME 2014 | [MAME (Non-commercial)](https://github.com/libretro/mame2014-libretro/blob/master/docs/license.txt) | Non-commercial | +| MAME 2016 | [BSD-3-Clause & GNU GPLv2](http://mamedev.org/legal.html) | | +| [melonDS](../library/melonds.md) | [GPLv3](https://github.com/libretro/melonDS/blob/master/LICENSE) | | +| [Mesen](../library/mesen.md) | [GPLv3](https://github.com/SourMesen/Mesen/blob/master/README.md) | | +| MESS 2014 | [MAME (Non-commercial)](https://github.com/libretro/mame2014-libretro/blob/master/docs/license.txt) | Non-commercial | +| [Meteor](../library/meteor.md) | [GPLv3](https://github.com/libretro/meteor-libretro/blob/master/COPYING) | | +| [mGBA](../library/mgba.md) | [MPLv2.0](https://github.com/libretro/mgba/blob/master/LICENSE) | | +| mpv | [GPLv3](https://github.com/libretro/libretro-mpv/blob/master/LICENSE) | | +| [Mr.Boom](../library/mr_boom.md) | [MIT](https://github.com/libretro/mrboom-libretro/blob/master/LICENSE) | | +| Mupen64Plus | [GPLv3](https://github.com/libretro/mupen64plus-libretro/blob/master/LICENSE) | | +| Mupen64Plus GLES3 | [GPLv3](https://github.com/libretro/mupen64plus-libretro/blob/master/LICENSE) | | +| Neko Project II | | | +| Neko Project II Kai | [MIT](https://github.com/AZO234/NP2kai/blob/master/LICENSE) | | +| [Nestopia UE](../library/nestopia_ue.md) | [GPLv2](https://github.com/libretro/nestopia/blob/master/COPYING) | | +| nSide Balanced | [GPLv3](https://github.com/hex-usr/nSide/blob/master/gpl-3.0.txt) | | +| [NXEngine](../library/nxengine.md) | [GPLv3](https://github.com/gameblabla/nxengine-nspire/blob/master/LICENSE) | | +| O2EM | [Artistic License](https://sourceforge.net/projects/o2em/) | | +| [OpenLara](../library/openlara.md) | [BSD-2-Clause](https://github.com/XProger/OpenLara/blob/master/LICENSE) | | +| P-UAE | [GPLv2](https://github.com/libretro/PUAE/blob/master/COPYING) | | +| ParaLLEl N64 | [GPLv3](https://github.com/libretro/mupen64plus-libretro/blob/master/LICENSE) | | +| PCem | [GPLv2](https://github.com/libretro/libretro-pcem/blob/master/COPYING) | | +| [PCSX ReARMed](../library/pcsx_rearmed.md) | [GPLv2](https://github.com/libretro/pcsx_rearmed/blob/master/COPYING) | | +| PCSX ReARMed [Interpreter] | [GPLv2](https://github.com/libretro/pcsx_rearmed/blob/master/COPYING) | | +| [PicoDrive](../library/picodrive.md) | [MAME (Non-commercial)](https://github.com/libretro/picodrive/blob/master/COPYING) | Non-commercial | +| [PocketCDG](../library/pocketcdg.md) | [MIT](https://github.com/libretro/libretro-pocketcdg/blob/master/LICENSE) | | +| [PokeMini](../library/pokemini.md) | [GPLv3](https://github.com/libretro/PokeMini/blob/master/LICENSE) | | +| [PPSSPP](../library/ppsspp.md) | [GPLv2](https://github.com/libretro/ppsspp/blob/master/LICENSE.TXT) | | +| [PrBoom](../library/prboom.md) | [GPLv2](https://github.com/libretro/libretro-prboom/blob/master/COPYING) | | +| [ProSystem](..//library/prosystem.md) | [GPLv2](https://github.com/libretro/prosystem-libretro/blob/master/License.txt) | | +| PX68k | [kero_src.txt](https://github.com/libretro/px68k-libretro/blob/master/doc/kero_src.txt) | | | | +| [QuickNES](../library/quicknes.md) | [LGPLv2.1+](https://github.com/kode54/QuickNES/blob/master/COPYING) | | +| [Redream (libretro fork)](../library/redream.md) | [GPLv3](https://github.com/libretro/redream/blob/master/LICENSE.txt) | | +| [Reicast](../library/reicast.md) | [GPLv2](https://github.com/libretro-mirrors/reicast-emulator/blob/master/LICENSE) | | +| RemoteJoy | [GPLv2](https://github.com/libretro/libretro-remotejoy/blob/master/LICENSE) | | +| Remote RetroPad | [MIT](https://github.com/libretro/libretro-samples/blob/master/license) | | +| [SameBoy](../library/sameboy.md) | [MIT](https://github.com/libretro/SameBoy/blob/master/LICENSE) | | +| [ScummVM](../library/scummvm.md) | [GPLv2](https://github.com/libretro/scummvm/blob/master/COPYING) | | +| [Snes9x](../library/snes9x.md) | [Non-commercial](https://github.com/libretro/snes9x/blob/master/docs/snes9x-license.txt) | Non-commercial | +| [Snes9x 2002](../library/snes9x_2002.md) | [Non-commercial](https://github.com/libretro/snes9x/blob/master/docs/snes9x-license.txt) | Non-commercial | +| [Snes9x 2005](../library/snes9x_2005.md) | [Non-commercial](https://github.com/libretro/snes9x/blob/master/docs/snes9x-license.txt) | Non-commercial | +| [Snes9x 2005 Plus](../library/snes9x_2005_plus.md) | [Non-commercial](https://github.com/libretro/snes9x/blob/master/docs/snes9x-license.txt) | Non-commercial | +| [Snes9x 2010](../library/snes9x_2010.md) | [Non-commercial](https://github.com/libretro/snes9x/blob/master/docs/snes9x-license.txt) | Non-commercial | +| [Stella](../library/stella.md) | [GPLv2](https://github.com/stella-emu/stella/blob/master/License.txt) | | +| TempGBA | [GPLv2](https://github.com/libretro/TempGBA-libretro/blob/master/copyright) | | +| [TGB Dual](../library/tgb_dual.md) | [GPLv2](https://github.com/libretro/tgbdual-libretro/blob/master/docs/COPYING-2.0.txt) | | +| [TyrQuake](../library/tyrquake.md) | [GPLv2](https://github.com/libretro/tyrquake/blob/master/gnu.txt) | | +| UME 2014 | [MAME (Non-commercial)](https://github.com/libretro/mame2014-libretro/blob/master/docs/license.txt) | Non-commercial | +| [Uzem](../library/uzem.md) | [GPLv3](https://github.com/Uzebox/uzebox/blob/master/gpl-3.0.txt) | | +| [VBA-M](../library/vba_m.md) | [GPLv2](https://github.com/libretro/vbam-libretro/blob/master/doc/gpl.txt) | | +| [VBA Next](../library/vba_next.md) | [GPLv2](https://github.com/libretro/vba-next/blob/master/LICENSE) | | +| [vecx](../library/vecx.md) | [GPLv3](https://github.com/libretro/libretro-vecx/blob/master/LICENSE.md) | | +| [VeMUlator](../library/vemulator.md) | [GPLv3](https://github.com/MJaoune/vemulator-libretro/blob/master/COPYING) | | +| VICE C64 | [GPLv2](https://github.com/r-type/vice3.0-libretro/blob/master/vice/COPYING) | | +| VICE C128 | [GPLv2](https://github.com/r-type/vice3.0-libretro/blob/master/vice/COPYING) | | +| VICE PLUS4 | [GPLv2](https://github.com/r-type/vice3.0-libretro/blob/master/vice/COPYING) | | +| VICE VIC20 | [GPLv2](https://github.com/r-type/vice3.0-libretro/blob/master/vice/COPYING) | | +| Video Processor | [BSD-2-Clause](https://github.com/jaredmcneill/libretro-v4l2/blob/master/LICENSE) | | +| [Virtual Jaguar](../library/virtual_jaguar.md) | [GPLv3](https://github.com/libretro/virtualjaguar-libretro/blob/master/docs/GPLv3) | | +| [XRick](../library/xrick.md) | [GPLv3](https://github.com/libretro/xrick-libretro/blob/master/README) | | +| [Yabause](../library/yabause.md) | [GPLv2](https://github.com/libretro/yabause/blob/master/yabause/COPYING) | | + + diff --git a/docs/tech/netplay.md b/docs/tech/netplay.md new file mode 100644 index 00000000..bc4b8b89 --- /dev/null +++ b/docs/tech/netplay.md @@ -0,0 +1,450 @@ +# Netplay + +RetroArch allows a second (or further) player, or spectators, to be connected +via the Internet. + +RetroArch's netplay code is based on replay, and provides netplay over +unreliable networks free of input latency in the default configuration. Netplay +supports up to 16 players and many spectators. Netplay in RetroArch is +guaranteed¹ to work with perfect synchronization given a few minor constraints: + +1. The core is deterministic, +2. The only input devices the core interacts with are the joypad and analog sticks, and +3. Both the core and the loaded content are identical on host and client. + +Cores are expected to support serialization for proper netplay behavior, but +netplay will work in limited fashion with cores that do not support +serialization. The experience will be far more smooth with serialization. + +Netplay in RetroArch works by expecting input to come delayed from the network, +then rewinding and re-playing with the delayed input to get a consistent state. +At any given time, all netplay clients may be in inconsistent states, but once +they receive each other's delayed data, they invisibly rewind to the last time +they were consistent, replay with the new input, and reach a new state, +notionally closer to the "correct", canonical state than the previous one. So +long as both sides agree on which frame is which, it should be impossible for +them to become de-synced, since each input event always happens at the correct +frame. + +¹ Guarantee not actually a guarantee. + +## Behavior + +Netplay's protocol uses TCP, as reliability and in-order delivery are both +mandatory for correct behavior. + +A single netplay server may have connections from multiple netplay clients. For +most behavior, the server and client are equal participants, but for operations +which require global synchronization, the server is canonical. In normal, +running behavior, each playing client simply sends the input state of their +controller every frame, and the server forwards input data between clients. +Every client and the server is aware of which player slots are in use (i.e., +which controllers are plugged in), and the server is aware of which client +corresponds to which player slot. + +It is crucial that every player send their input data in order for every frame, +and thus every client keeps in mind the frame counter for every player. If +input data is received with an unexpectedly low frame number, it is ignored, +and if input data is received with an unexpectedly high frame number, the +connection is terminated. It is also crucial that every player agree on which +frame is which, and so during initial connection the server gives a canonical +frame count and a serialized save state, allowing the client to join +mid-stream. + +Spectators send no input data. + +When new input data is received from a player, if it is before the currently +executing frame, RetroArch will invisibly rewind and replay with the new input +data, arriving at the original frame so that the local player's own input is +always seemless. + +A typical, playing client sends no data other than its own input every frame. +During normal play, the server sends its own input data. If the server is not +playing, but spectating, it sends a special "no input" packet, so that clients +may nonetheless no its frame count. Other spectators send no data. + +Other events coordinate on the server's frame counter, and most may therefore +only be performed by the server. For instance, for a client to switch from +spectating to playing, it cannot simply start sending input data, but must send +a request to change modes, which the server will honor at its present frame +count. The client may have to rewind to send data from earlier frames, or wait +to send input data until its local frame count has reached the server's. + +In particular, resets and savestate loads are always synchronized to the +server's frame count, and thus only the server may reset the core or load a +savestate. Because input preceeding a savestate load is irrelevant, upon +receiving a savestate load command, all frame counts are updated to be at least +the server's frame count, including the local frame count if applicable. This +is the only condition under which the frame count will skip at a rate greater +than one frame per executed frame. + +## Implementation + +Netplay is in effect a buffer of input states (implemented as a ring of +buffers) and some pre- and post-frame behaviors. + +There are three important locations, each of which : self, other and unread. +Each refers to a frame, and a state buffer corresponding to that frame. The +state buffer contains the savestate for the frame, and the input from both the +local and remote players. + +Self is where RetroArch believes itself to be, which may be ahead or behind of +what it's read from the peer. Self progresses at a rate of one frame per +executed frame, except when the local frame count is forced to skip ahead due +to loading a state. + +Unread is the first frame at which not all players' data has been read. +Typically unread is less than self, but it is possible for one client to get +ahead of others. + +Other is where it was most recently in perfect sync: i.e., other-1 is the last +frame from which all local and remote input have been actioned. It is never +necessary to rewind farther than other in order to attain synchronization, and +other is always less than or equal to both self and unread. Since the state +buffer is a ring, other is the first frame that it's unsafe to overwrite. + +The server has a slightly more complicated job as it can handle multiple +clients, however it is not vastly more complicated: For each connection which +is playing (i.e., has a controller), it maintains a per-player unread frame, +and the global unread frame is the earliest of each player unread frame. The +server forwards input data: When input data is received from an earlier frame +than the server's current frame, it forwards it immediately. Otherwise, it +forwards it when the frame is reached. i.e., during frame n, the server may +send its own and any number of other players' data for frame n, but will never +send frame n+1. This is because the server's clock is the arbiter of all +synchronization-related events, such as flipping players, players joining and +parting, and saving/loading states. + +Pre-frame, netplay serializes the core's state, polls for local input, and +polls for input from the network. If the input from the network is too far +behind (i.e., unread is too far behind self), it stalls to allow the other side +to catch up. To assure that this stalling does not block the UI thread, it is +implemented similarly to pausing, rather than by blocking on the socket. + +If input has not been received for the other side up to the current frame (the +usual case), the remote input is simulated in a simplistic manner. Each +frame's local serialized state and simulated or real input goes into the frame +buffers. + +During the frame of execution, when the core requests input, it receives the +input from the state buffer, both local and real or simulated remote. + +Post-frame, it checks whether it's read more than it's actioned, i.e. If +read > other and self > other. If so, it first checks whether its simulated +remote data was correct. If it was, it simply moves other up. If not, it +rewinds to other (by loading the serialized state there) and runs the core in +replay mode with the real data up to the least of self and read, then sets +other to that. To avoid latency building up, if the input from the network is +too far ahead (i.e., unread is too far ahead of self), the frame limiter is +momentarily disabled to catch up. Note that since network latency is expected, +the normal case is the opposite: unread is behind self. + +When in netplay mode, the callback for receiving input is replaced by +input_state_net. It is the role of input_state_net to combine the true local +input (whether live or replay) with the remote input (whether true or +simulated). + +Some thoughts about "frame counts": The frame counters act like indexes into a +0-indexed array; i.e., they refer to the first unactioned frame. So, when +read_frame_count is 23, we've read 23 frames, but the last frame we read is +frame 22. With self_frame_count it's slightly more complicated, since there are +two relevant actions: Reading the data and emulating with the data. The frame +count is only incremented after the latter, so there is a period of time during +which we've actually read self_frame_count+1 frames of local input. + +Clients may come and go, and may start or stop playing even as they're +connected. A client that is not playing is said to be spectating: It receives +all the same data but sends none. A client may switch from spectating to +playing by sending the appropriate request, at which point it is allotted a +player number (see the SPECTATE, PLAY and MODE commands below). + +The server may also be in spectator mode, but as the server never sends data +early (i.e., it only forwards data on the frame it's reached), it must also +inform all clients of its own current frame even if it has no input. The +NOINPUT command is provided for that purpose. + +## Protocol + +A netplay connection involves a handshake, which assures that client and server +are running the same software and brings the client to synchronization, and +then an exchange of input packets. + +The handshake procedure (this part is done by both server and client): +1. Send connection header +2. Receive and verify connection header +3. Send nickname +4. Receive nickname + +For the client: +5. Send PASSWORD if applicable +4. Receive INFO +5. Send INFO +6. Receive SYNC + +For the server: +5. Receive PASSWORD if applicable +6. Send INFO +7. Receive INFO +8. Send SYNC + +Note that both the server and the client send the connection header before +reading it. This is intentional. It allows either servers or clients (but not +both) to generalize, by echoing the connection header of the other side. + +## Other features + +Typically, it is assumed that input latency is not desired. However, input +latency is an option. The benefit of input latency is that the actual execution +lags behind one's frame count, and thus it is more usual that remote data is +available, and rewinding is both less frequent and less expensive. There is an +additional location in the state buffer, run, used when input latency is +enabled. In that case, self points to where input is being read, and run points +to the frame actually being executed. Run is purely local. + +## Command format + +Netplay commands consist of a 32-bit command identifier, followed by a 32-bit +payload size, both in network byte order, followed by a payload. The command +identifiers are listed in netplay.h. The commands are described below. Unless +specified otherwise, all payload values are in network byte order. + +**Command**: ACK +Payload: None +Description: +> Acknowledgement. Not used. + +**Command**: NAK +Payload: None +Description: +> Negative Acknowledgement. If received, the connection is terminated. Sent +> whenever a command is malformed or otherwise not understood. + +**Command**: DISCONNECT +Payload: None +Description: +> Gracefully disconnect. Not used. + +**Command**: INPUT +Payload: + + { + frame number: uint32 + is server data: 1 bit + player: 31 bits + joypad input: uint32 + analog 1 input: uint32 + analog 2 input: uint32 + } + +Description: +> Input state for each frame. Netplay must send an INPUT command for every +> frame in order to function at all. Client's player value is ignored. Server +> indicates which frames are its own input data because INPUT is a +> synchronization point: No synchronization events from the given frame may +> arrive after the server's input for the frame. + +**Command**: NOINPUT +Payload: + + { + frame number: uint32 + } + +Description: +> Sent by the server to indicate a frame has passed when the server is not +> otherwise sending data. + +**Command**: NICK +Payload: + + { + nickname: char[32] + } + +Description: +> Send nickname. Mandatory handshake command. + +**Command**: PASSWORD +Payload: + + { + password hash: char[64] + } + +Description: +> Send hashed password to server. Mandatory handshake command for clients if +> the server demands a password. + +**Command**: INFO +Payload + + { + core name: char[32] + core version: char[32] + content CRC: uint32 + } + +Description: +> Send core/content info. Mandatory handshake command. Sent by server first, +> then by client, and must match. Server may send INFO with no payload, in +> which case the client sends its own info and expects the server to load the +> appropriate core and content then send a new INFO command. If mutual +> agreement cannot be achieved, the correct solution is to simply disconnect. + +**Command**: SYNC +Payload: + + { + frame number: uint32 + paused?: 1 bit + connected players: 31 bits + flip frame: uint32 + controller devices: uint32[16] + client nick: char[32] + sram: variable + } + +Description: +> Initial state synchronization. Mandatory handshake command from server to +> client only. Connected players is a bitmap with the lowest bit being player +> 0. Flip frame is 0 if players aren't flipped. Controller devices are the +> devices plugged into each controller port, and 16 is really MAX_USERS. +> Client is forced to have a different nick if multiple clients have the same +> nick. + +**Command**: SPECTATE +Payload: None +Description: +> Request to enter spectate mode. The client should immediately consider itself +> to be in spectator mode and send no further input. + +**Command**: PLAY +Payload: + + { + reserved: 31 bits + as slave?: 1 bit + } + +Description: +> Request to enter player mode. The client must wait for a MODE command before +> sending input. Server may refuse or force slave connections, so the request +> is not necessarily honored. Payload may be elided if zero. + +**Command**: MODE +Payload: + + { + frame number: uint32 + reserved: 13 bits + slave: 1 bit + playing: 1 bit + you: 1 bit + player number: uint16 + } + +Description: +> Inform of a connection mode change (possibly of the receiving client). Only +> server-to-client. Frame number is the first frame in which player data is +> expected, or the first frame in which player data is not expected. In the +> case of new players the frame number must be later than the last frame of the +> server's own input that has been sent, and in the case of leaving players the +> frame number must be later than the last frame of the relevant player's input +> that has been transmitted. + +**Command**: MODE_REFUSED +Payload: + + { + reason: uint32 + } + +Description: +> Inform a client that its request to change modes has been refused. + +**Command**: CRC +Payload: + + { + frame number: uint32 + hash: uint32 + } + +Description: +> Informs the peer of the correct CRC hash for the specified frame. If the +> receiver's hash doesn't match, they should send a REQUEST_SAVESTATE command. + +**Command**: REQUEST_SAVESTATE +Payload: None +Description: + Requests that the peer send a savestate. + +**Command**: LOAD_SAVESTATE +Payload: + + { + frame number: uint32 + uncompressed size: uint32 + serialized save state: blob (variable size) + } + +Description: +> Cause the other side to load a savestate, notionally one which the sending +> side has also loaded. If both sides support zlib compression, the serialized +> state is zlib compressed. Otherwise it is uncompressed. + +**Command**: PAUSE +Payload: + + { + nickname: char[32] + } + +Description: +> Indicates that the core is paused. The receiving peer should also pause. The +> server should pass it on, using the known correct name rather than the +> provided name. + +**Command**: RESUME +Payload: None +Description: +> Indicates that the core is no longer paused. + +**Command**: STALL +Payload: + + { + frames: uint32 + } + +Description: +> Request that a client stall for the given number of frames. + +**Command**: RESET +Payload: + + { + frame number: uint32 + } + +Description: +> Indicate that the core was reset at the beginning of the given frame. + +**Command**: CHEATS +Unused + +**Command**: FLIP_PLAYERS +Payload: + + { + frame number: uint32 + } + +Description: +> Flip players at the requested frame. + +**Command**: CFG +Unused + +**Command**: CFG_ACK +Unused diff --git a/docs/tech/network-control-interface.md b/docs/tech/network-control-interface.md new file mode 100644 index 00000000..a1121fff --- /dev/null +++ b/docs/tech/network-control-interface.md @@ -0,0 +1,50 @@ +# RetroArch Network Control Interface + +## Purpose +Network Commands allow the control of certain parts of RetroArch over UDP. + + +## Enabling +Enable network commands in the settings menu, or ensure that `network_cmd_enable = "true"` is set in retroarch.cfg. +RetroArch will listen on port 55355 by default. + +## Sending commands +On Linux, network commands may be sent from the command line like so: + +```` +echo -n "QUIT" | nc -u -w1 127.0.0.1 55355 +```` + +## Commands +The following commands are supported: + +* FAST_FORWARD +* FAST_FORWARD_HOLD +* LOAD_STATE +* SAVE_STATE +* FULLSCREEN_TOGGLE +* QUIT +* STATE_SLOT_PLUS +* STATE_SLOT_MINUS +* REWIND +* MOVIE_RECORD_TOGGLE +* PAUSE_TOGGLE +* FRAMEADVANCE +* RESET +* SHADER_NEXT +* SHADER_PREV +* CHEAT_INDEX_PLUS +* CHEAT_INDEX_MINUS +* CHEAT_TOGGLE +* SCREENSHOT +* MUTE +* NETPLAY_FLIP +* SLOWMOTION +* VOLUME_UP +* VOLUME_DOWN +* OVERLAY_NEXT +* DISK_EJECT_TOGGLE +* DISK_NEXT +* DISK_PREV +* GRAB_MOUSE_TOGGLE +* MENU_TOGGLE diff --git a/docs/tech/new-menu-options.md b/docs/tech/new-menu-options.md new file mode 100644 index 00000000..e3056a2c --- /dev/null +++ b/docs/tech/new-menu-options.md @@ -0,0 +1,65 @@ +# Adding a RetroArch menu option + +## Files you need to change + +msg_hash_us.c +msg_hash_us.h +msg_hash_\*\*.c (If you speak more than one language) +msg_hash_\*\*.h (If you speak more than one language) +msg_hash_lbl.h +msg_hash.h +menu_cbs_sublabel.c +menu_setting.c +menu_displaylist.c +configuration.c +configuration.h +config.def.h + +## Creating the menu variable + +For this example the variable will be an int named test_menu_option. + + 1. Open config.def.h + 2. Add `static const int test_menu_option = 0;` the 0 can be any number, this is just the default value, the user will change it later. + 3. Open configuration.h + 4. There are sections for each variable type(string, float, int, uint and bool) go to "ints" and add `int test_menu_option;` + 5. Open configuration.c + 6. Add `SETTING_INT("test_menu_option", &settings->ints.test_menu_option, true, test_menu_option, false);` to populate_settings_int. + +The variable is now setup but the menu still doesnt know it exists. + +## Making the menu read the variable + +The variables name must now be configured + + 1. Open msg_hash.h + 2. Add `MENU_LABEL(TEST_MENU_OPTION)` to `enum msg_hash_enums` + 3. Open msg_hash_lbl.h + 4. Add `MSG_HASH(MENU_ENUM_LABEL_TEST_MENU_OPTION, "test_menu_option")` in the `MENU_ENUM_LABEL_` section this is how RetroArch identifys the option. + 5. Open msg_hash_us.h + 6. Add `MSG_HASH(MENU_ENUM_LABEL_VALUE_TEST_MENU_OPTION, "Test Menu Option")` in the `MENU_ENUM_LABEL_VALUE_` section this is what the user actually sees. + 7. Add `MSG_HASH(MENU_ENUM_SUBLABEL_TEST_MENU_OPTION, "Unused Text")` in the `MENU_ENUM_SUBLABEL_` section, sublabels are only used by xmb and glui, they are unused by rgui. + 8. Open msg_hash_us.c + 9. Add `case MENU_ENUM_LABEL_TEST_MENU_OPTION: snprintf(s, len, "Help text"); break;` to `menu_hash_get_help_us_enum` this is the variable info that is shown when you push rshift. + +The option is now defined but the menu has still not been told to display it. + +## Displaying your option + +Now the menu has to be told how to display the option. + + 1. Open menu_cbs_sublabel.c + 2. Add `default_sublabel_macro(action_bind_sublabel_test_menu_option, MENU_ENUM_SUBLABEL_TEST_MENU_OPTION)` to the block of `default_sublabel_macro` functions. + 3. Add `case MENU_ENUM_LABEL_TEST_MENU_OPTION: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_test_menu_option); break;` to the `menu_cbs_init_bind_sublabel` function. + 4. Open menu_setting.c + 5. Find your variables section(saving, netplay, video, ...) and add `CONFIG_INT(list, list_info, &settings->ints.test_menu_option, MENU_ENUM_LABEL_TEST_MENU_OPTION, MENU_ENUM_LABEL_VALUE_TEST_MENU_OPTION, test_menu_option, &group_info, &subgroup_info, parent_group, general_write_handler, general_read_handler);` the menu knows everything it needs now. + 6. Open menu_displaylist.c + 7. Find your variables section and add `menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_TEST_MENU_OPTION, PARSE_ONLY_INT, false);` the position of this command in the list is what determines the order of the menu entries, the first run is at the top of the list. + +# Finishing + +There may be slight differences between variable types but for the most part if you want a string or bool just swap where ever you saw int for string or bool. + +The variables name always follows the same format just replace test_menu_option, TEST_MENU_OPTION and "Test Menu Option" with your variables actual name in the same format of uppercase, lowercase or string. + +This guide only effects the menu variables and the english name, if you speak another language do what you did to msg_hash_us.c/h to your language files as well. diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 00000000..0d511c3a --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,259 @@ +site_name: Libretro Docs +repo_name: 'libretro/docs' +repo_url: 'https://github.com/libretro/docs' +edit_uri: 'tree/master/docs' +pages: + - About: 'index.md' + - For Developers: + - Compilation: + - Apple: + - 'OSX/PowerPC': 'compilation/osxppc.md' + - 'OSX/macOS': 'compilation/osx.md' + - 'iOS': 'compilation/ios.md' + - 'Android': 'compilation/android.md' + - Linux and BSD: + - 'Overview for Linux/BSD': 'compilation/linux-and-bsd.md' + - 'Ubuntu': 'compilation/ubuntu.md' + - 'Haiku': 'compilation/haiku.md' + - Microsoft: + - 'DOS': 'compilation/dos.md' + - Windows NT3.51: + - 'MSVC Commandline': 'compilation/windowsNT351-msvc-cmdline.md' + - Windows 95/98/NT4: + - 'MSVC Commandline': 'compilation/windows95-msvc-cmdline.md' + - Windows 98SE/ME/2000: + - 'MSVC Commandline': 'compilation/windows98-msvc-cmdline.md' + - 'MSVC IDE': 'compilation/windows98.md' + - Windows XP and later: + - 'MSVC Commandline': 'compilation/windowsXP-msvc-cmdline.md' + - 'MSVC IDE': 'compilation/windowsXP.md' + - 'Windows Vista and later (MSYS2)': 'compilation/windows.md' + - Nintendo: + - 'Nintendo 3DS': 'compilation/3ds.md' + - 'Nintendo GameCube': 'compilation/gamecube.md' + - 'Nintendo Wii': 'compilation/wii.md' + - 'Nintendo Wii U': 'compilation/wiiu.md' + - Sony: + - 'PlayStation Portable': 'compilation/psp.md' + - 'PlayStation Vita/TV': 'compilation/psvita.md' + - Meta: + - 'Core List': 'meta/core_list.md' + - 'To Do': 'meta/todo.md' + - 'Core Template': 'meta/core_template.md' + - 'See Also': 'meta/see_also.md' + - Technical: + - 'Debugging': 'tech/debugging.md' + - 'Adding Menu Entries': 'tech/new-menu-options.md' + - 'Licenses': 'tech/licenses.md' + - Protocols: + - 'Netplay': 'tech/netplay.md' + - 'Network Control Interface': 'tech/network-control-interface.md' + - Specifications: + - 'Libretro': 'specs/api.md' + - 'RetroPad': 'specs/retropad.md' + - 'Shaders': 'specs/shader.md' + - 'Overlays': 'specs/overlay.md' + - For Users: + - Core Documentation: + - Core Compatibility: + - '3DO': 'library/compatibility/3do.md' + - 'Atari Jaguar': 'library/compatibility/jaguar.md' + - 'Atari Lynx': 'library/compatibility/lynx.md' + - 'Bandai Wonderswan': 'library/compatibility/wswan.md' + - 'NEC PC-FX': 'library/compatibility/pcfx.md' + - 'Nintendo DS': 'library/compatibility/ds.md' + - 'Nintendo Game Boy Advance': 'library/compatibility/gba.md' + - 'Nintendo Game Boy Color': 'library/compatibility/gbc.md' + - 'Nintendo NES': 'library/compatibility/nes.md' + - 'Nintendo SNES': 'library/compatibility/snes.md' + - 'Sega 32X': 'library/compatibility/32x.md' + - 'Sega Dreamcast': 'library/compatibility/dc.md' + - 'Sega Saturn': 'library/compatibility/saturn.md' + - 'Sony Playstation': 'library/compatibility/psx.md' + - Atari Cores: + - 'Atari - 2600 (Stella)': 'library/stella.md' + - 'Atari - 7800 (ProSystem)': 'library/prosystem.md' + - 'Atari - 5200 (Atari800)': 'library/atari800.md' + - 'Atari - Jaguar (Virtual Jaguar)': 'library/virtual_jaguar.md' + - 'Atari - Lynx (Beetle Handy)': 'library/beetle_handy.md' + - 'Atari - Lynx (Handy)': 'library/handy.md' + - 'Atari - ST/STE/TT/Falcon (Hatari)': 'library/hatari.md' + - Game Cores: + - '2048': 'library/2048.md' + - 'Cave Story (NXEngine)': 'library/nxengine.md' + - 'Dinothawr': 'library/dinothawr.md' + - 'Doom (PrBoom)': 'library/prboom.md' + - 'Handheld Electronic (GW)': 'library/gw.md' + - 'Minecraft (Craft)': 'library/craft.md' + - 'Mr.Boom (Bomberman)': 'library/mr_boom.md' + - 'Quake 1 (TyrQuake)': 'library/tyrquake.md' + - 'Rick Dangerous (XRick)': 'library/xrick.md' + - 'Tomb Raider (OpenLara)': 'library/openlara.md' + - Multi System Cores: + - 'Arcade (MAME 2003)': 'library/mame_2003.md' + - Misc Cores: + - '3D Engine': 'library/3d_engine.md' + - 'The 3DO Company - 3DO (4DO)': 'library/4do.md' + - 'Amstrad - CPC (Caprice32)': 'library/caprice32.md' + - 'Amstrad - CPC (CrocoDS)': 'library/crocods.md' + - 'ChaiLove': 'library/chailove.md' + - 'CHIP-8 (Emux CHIP-8)': 'library/emux_chip8.md' + - 'DOS (DOSBox)': 'library/dosbox.md' + - 'Dummy core': 'library/dummy.md' + - 'RPG Maker 2000/2003 (EasyRPG)': 'library/easyrpg.md' + - 'FFmpeg': 'library/ffmpeg.md' + - 'Game Music Emu': 'library/game_music_emu.md' + - 'Imageviewer': 'library/imageviewer.md' + - 'Mattel - Intellivision (FreeIntv)': 'library/freeintv.md' + - 'Lua Engine (Lutro)': 'library/lutro.md' + - 'Microsoft - MSX (fMSX)': 'library/fmsx.md' + - 'MSX/SVI/ColecoVision/SG-1000 (blueMSX)': 'library/bluemsx.md' + - 'SNK - Neo Geo Pocket / Color (Beetle NeoPop)': 'library/beetle_neopop.md' + - 'Magnavox - Odyssey2 / Phillips Videopac+ (O2EM)': 'library/o2em.md' + - 'PocketCDG': 'library/pocketcdg.md' + - 'Remote RetroPad': 'library/remote_retropad.md' + - 'Sharp - X68000 (PX68k)': 'library/px68k.md' + - 'ScummVM': 'library/scummvm.md' + - 'Uzebox (Uzem)': 'library/uzem.md' + - 'GCE - Vectrex (vecx)': 'library/vecx.md' + - 'Video Processor': 'library/video_processor.md' + - 'Bandai - WonderSwan/Color (Beetle Cygne)': 'library/beetle_cygne.md' + - 'ZX Spectrum (Fuse)': 'library/fuse.md' + - 'Sinclair - ZX 81 (EightyOne)': 'library/eightyone.md' + - Nintendo Cores: + - 'Nintendo - Game Boy / Color (Emux GB)': 'library/emux_gb.md' + - 'Nintendo - Game Boy / Color (Gambatte)': 'library/gambatte.md' + - 'Nintendo - Game Boy / Color (SameBoy)': 'library/sameboy.md' + - 'Nintendo - Game Boy / Game Boy Color (TGB Dual)': 'library/tgb_dual.md' + - 'Nintendo - Game Boy / Color (Gearboy)': 'library/gearboy.md' + - 'Nintendo - Game Boy Advance (Beetle GBA)': 'library/beetle_gba.md' + - 'Nintendo - Game Boy Advance (gpSP)': 'library/gpsp.md' + - 'Nintendo - Game Boy Advance (Meteor)': 'library/meteor.md' + - 'Nintendo - Game Boy Advance (mGBA)': 'library/mgba.md' + - 'Nintendo - Game Boy Advance (VBA Next)': 'library/vba_next.md' + - 'Nintendo - Game Boy Advance (VBA-M)': 'library/vba_m.md' + - 'Nintendo - NES (bnes)': 'library/bnes.md' + - 'Nintendo - NES / Famicom (Emux NES)': 'library/emux_nes.md' + - 'Nintendo - NES / Famicom (FCEUmm)': 'library/fceumm.md' + - 'Nintendo - NES / Famicom (Mesen)': 'library/mesen.md' + - 'Nintendo - NES / Famicom (Nestopia UE)': 'library/nestopia_ue.md' + - 'Nintendo - NES / Famicom (QuickNES)': 'library/quicknes.md' + - 'Nintendo - 3DS (Citra)': 'library/citra.md' + - 'Nintendo - Nintendo 64 (Mupen64Plus)': 'library/mupen64plus.md' + - 'Nintendo - DS (DeSmuME)': 'library/desmume.md' + - 'Nintendo - DS (melonDS)': 'library/melonds.md' + - 'Nintendo - Pokémon Mini (PokeMini)': 'library/pokemini.md' + - 'Nintendo - SNES / Famicom (Beetle bsnes)': 'library/beetle_bsnes.md' + - 'Nintendo - SNES / Famicom (bsnes Accuracy)': 'library/bsnes_accuracy.md' + - 'Nintendo - SNES / Famicom (bsnes Balanced)': 'library/bsnes_balanced.md' + - 'Nintendo - SNES / Famicom (bsnes C++98 (v085))': 'library/bsnes_cplusplus98.md' + - 'Nintendo - SNES / Famicom (bsnes Performance)': 'library/bsnes_performance.md' + - 'Nintendo - SNES / Famicom (bsnes-mercury Accuracy)': 'library/bsnes_mercury_accuracy.md' + - 'Nintendo - SNES / Famicom (bsnes-mercury Balanced)': 'library/bsnes_mercury_balanced.md' + - 'Nintendo - SNES / Famicom (bsnes-mercury Performance)': 'library/bsnes_mercury_performance.md' + - 'Nintendo - SNES / Famicom (higan Accuracy)': 'library/higan_accuracy.md' + - 'Nintendo - SNES / Famicom (nSide Balanced)': 'library/nside_balanced.md' + - 'Nintendo - SNES / Famicom (Snes9x 2002)': 'library/snes9x_2002.md' + - 'Nintendo - SNES / Famicom (Snes9x 2005 Plus)': 'library/snes9x_2005_plus.md' + - 'Nintendo - SNES / Famicom (Snes9x 2005)': 'library/snes9x_2005.md' + - 'Nintendo - SNES / Famicom (Snes9x 2010)': 'library/snes9x_2010.md' + - 'Nintendo - SNES / Famicom (Snes9x)': 'library/snes9x.md' + - 'Nintendo - Virtual Boy (Beetle VB)': 'library/beetle_vb.md' + - NEC Cores: + - 'NEC - PC-98 (Neko Project II)': 'library/neko_project_ii.md' + - 'NEC - PC-98 (Neko Project II Kai)': 'library/neko_project_ii_kai.md' + - 'NEC - PC Engine SuperGrafx (Beetle SGX)': 'library/beetle_sgx.md' + - 'NEC - PC Engine / CD (Beetle PCE FAST)': 'library/beetle_pce_fast.md' + - 'NEC - PC-FX (Beetle PC-FX)': 'library/beetle_pc_fx.md' + - Sega Cores: + - 'Sega - Dreamcast (Redream)': 'library/redream.md' + - 'Sega - Dreamcast (Reicast)': 'library/reicast.md' + - 'Sega - Master System (Emux SMS)': 'library/emux_sms.md' + - 'Sega - MS/GG/MD/CD (Genesis Plus GX)': 'library/genesis_plus_gx.md' + - 'Sega - MS/MD/CD/32X (PicoDrive)': 'library/picodrive.md' + - 'Sega - Saturn (Beetle Saturn)': 'library/beetle_saturn.md' + - 'Sega - Saturn (Yabause)': 'library/yabause.md' + - 'VeMUlator': 'library/vemulator.md' + - Sony Cores: + - 'Sony - PlayStation (Beetle PSX)': 'library/beetle_psx.md' + - 'Sony - PlayStation (Beetle PSX HW)': 'library/beetle_psx_hw.md' + - 'Sony - PlayStation (PCSX ReARMed)': 'library/pcsx_rearmed.md' + - 'Sony - PlayStation Portable (PPSSPP)': 'library/ppsspp.md' + - Shader Previews: + - 'Introduction': 'shader/introduction.md' + - '3dfx': 'shader/3dfx.md' + - 'antialiasing': 'shader/antialiasing.md' + - 'border': 'shader/border.md' + - 'cgp': 'shader/cgp.md' + - 'crt': 'shader/crt.md' + - 'cubic': 'shader/cubic.md' + - 'ddt': 'shader/ddt.md' + - 'dithering': 'shader/dithering.md' + - 'eagle': 'shader/eagle.md' + - 'handheld': 'shader/handheld.md' + - 'handheld-border': 'shader/handheld-border.md' + - 'hqx': 'shader/hqx.md' + - 'linear': 'shader/linear.md' + - 'motionblur': 'shader/motionblur.md' + - 'mudlord': 'shader/mudlord.md' + - 'nedi': 'shader/nedi.md' + - 'nnedi3': 'shader/nnedi3.md' + - 'ntsc': 'shader/ntsc.md' + - 'presets': 'shader/presets.md' + - 'retro': 'shader/retro.md' + - 'sabr': 'shader/sabr.md' + - 'scalefx-OLD-shaders': 'shader/scalefx-OLD-shaders.md' + - 'scalefx': 'shader/scalefx.md' + - 'scalehq': 'shader/scalehq.md' + - 'scalenx': 'shader/scalenx.md' + - 'sharpen': 'shader/sharpen.md' + - 'windowed': 'shader/windowed.md' + - 'xbr': 'shader/xbr.md' + - 'xbrz': 'shader/xbrz.md' + - 'xsal': 'shader/xsal.md' + - 'xsoft': 'shader/xsoft.md' + - Installing and Updating RetroArch: + - 'Windows': 'guides/install-windows.md' + - Getting Started: + - 'Keyboard Controls': 'guides/retroarch-keyboard-controls.md' + - 'Windows': 'guides/windows.md' + - 'Command-line interface (CLI)': 'guides/cli-intro.md' + - 'Generating Logs': 'guides/generating-retroarch-logs.md' + - 'Troubleshooting': 'guides/troubleshooting-retroarch.md' + - Interface Customization: + - 'Creating a Theme': 'guides/themes.md' + - 'RGUI Interface': 'guides/RGUI.md' + - Feature Specific: + - 'Input and Joypad Drivers': 'guides/input-joypad-drivers.md' + - 'Linux KMS Mode': 'guides/kms-mode.md' + - 'Netplay Getting Started / FAQ': 'guides/netplay-faq.md' + - 'ROMs, Playlists, and Thumbnails': 'guides/roms-playlists-thumbnails.md' + - 'RetroAchievements': 'guides/retroachievements.md' + - 'Video Recording and Streaming': 'guides/recording-and-streaming.md' + - Advanced Topics: + - 'Libretro Frontends': 'tech/frontends.md' + - 'Custom Settings': 'guides/overrides.md' + - 'Optimal Vsync Performance': 'guides/optimal-vsync.md' + - 'Softpatching ROMs': 'guides/softpatching.md' + - Contributing: + - 'How to Contribute to the Docs': 'guides/how-to-contribute.md' +extra: + version: '0.1.0' + font: + text: 'Roboto' + code: 'Roboto Mono' + i18n: + prev: 'Previous' + next: 'Next' + palette: + primary: 'blue' + accent: 'blue' +theme: + name: 'material' + logo: 'images/invader.png' + favicon: 'images/invader.png' +markdown_extensions: + - admonition + - codehilite(linenums=true) + - toc(permalink=Link) + - pymdownx.details \ No newline at end of file