├── .github ├── ISSUE_TEMPLATE │ └── bug_report.md ├── linux │ ├── Goemon64Recompiled.desktop │ └── appimage.sh └── workflows │ ├── update-pr-artifacts.yml │ ├── validate-external.yml │ ├── validate-internal.yml │ └── validate.yml ├── .gitignore ├── .gitmodules ├── BUILDING.md ├── CMakeLists.txt ├── CMakeSettings.json ├── COPYING ├── N64ModernRuntime.patch ├── README.md ├── aspMain.us.toml ├── assets ├── ChiaroBold.otf ├── ChiaroNormal.otf ├── LatoLatin-Bold.ttf ├── LatoLatin-BoldItalic.ttf ├── LatoLatin-Italic.ttf ├── LatoLatin-Regular.ttf ├── NotoEmoji-Regular.ttf ├── components │ └── prompt.rml ├── config_menu.rml ├── config_menu │ ├── controls.rml │ ├── debug.rml │ ├── general.rml │ ├── graphics.rml │ └── sound.rml ├── goemon-clipped.svg ├── icons │ ├── Arrow.svg │ ├── Plus.svg │ ├── Quit.svg │ ├── RecordBorder.svg │ ├── Reset.svg │ ├── Trash.svg │ ├── VizMap │ │ ├── ButtonLarge.svg │ │ ├── ButtonMedium.svg │ │ ├── ButtonSmall.svg │ │ ├── DPad.svg │ │ ├── DPadArrow.svg │ │ ├── Map.svg │ │ ├── Shield.svg │ │ └── Target.svg │ └── X.svg ├── launcher.rml ├── promptfont │ ├── LICENSE.txt │ ├── README.md │ ├── promptfont.css │ └── promptfont.ttf ├── recomp.rcss ├── rml.rcss └── scss │ ├── .nvmrc │ ├── .stylelintrc │ ├── main.scss │ ├── package-lock.json │ ├── package.json │ └── styles │ ├── base.scss │ ├── components │ ├── BottomLeft.scss │ ├── Button.scss │ ├── CenteredPage.scss │ ├── Config.scss │ ├── ControlOption.scss │ ├── IconButton.scss │ ├── InputConfig.scss │ ├── Launcher.scss │ ├── MenuListItem.scss │ ├── Prompt.scss │ ├── SubtitleTitle.scss │ ├── Tabs.scss │ ├── Toggle.scss │ └── _components.scss │ ├── functions │ └── _spacing.scss │ ├── global.scss │ ├── globals │ ├── _old.scss │ └── _scrollbars.scss │ ├── mixins │ ├── _helpers.scss │ ├── _transitions.scss │ └── _typography.scss │ ├── pages │ ├── _pages.scss │ └── config │ │ ├── _config.scss │ │ └── debug.scss │ └── vars │ ├── _animations.scss │ ├── _borders.scss │ ├── _colors.scss │ ├── _gradients.scss │ ├── _spacing.scss │ └── _transitions.scss ├── build_debug.bat ├── build_release.bat ├── build_relwithdebinfo.bat ├── docs └── deck_gyro_1.jpg ├── icons ├── 128.ico ├── 16.ico ├── 256.ico ├── 32.ico ├── 512.ico ├── 512.png ├── 64.ico └── app.rc ├── include ├── goemon_config.h ├── goemon_debug.h ├── goemon_game.h ├── goemon_recomp.h ├── goemon_render.h ├── goemon_sound.h ├── ovl_patches.hpp ├── promptfont.h ├── recomp_files.h ├── recomp_input.h └── recomp_ui.h ├── launch.vs.json ├── lib ├── FindFreetype.cmake ├── GamepadMotionHelpers │ ├── .gitignore │ ├── CMakeLists.txt │ ├── GamepadMotion.hpp │ ├── LICENSE │ └── README.md ├── concurrentqueue │ ├── blockingconcurrentqueue.h │ ├── concurrentqueue.h │ └── lightweightsemaphore.h └── dxc │ ├── bin │ └── dxc │ └── lib │ └── libdxcompiler.so ├── mnsg.us.toml ├── patches.toml ├── patches ├── .gitignore ├── Makefile ├── anime.c ├── custom_syms.toml ├── file.c ├── game_funcs.h ├── game_vars.h ├── keep │ ├── player.c │ └── skybox.c ├── libultra │ ├── PR │ │ ├── PRimage.h │ │ ├── R4300.h │ │ ├── abi.h │ │ ├── gbi.h │ │ ├── gs2dex.h │ │ ├── gt.h │ │ ├── gu.h │ │ ├── libaudio.h │ │ ├── mbi.h │ │ ├── os.h │ │ ├── os_internal.h │ │ ├── ramrom.h │ │ ├── rcp.h │ │ ├── rdb.h │ │ ├── region.h │ │ ├── rmon.h │ │ ├── sched.h │ │ ├── sp.h │ │ ├── sptask.h │ │ ├── ucode.h │ │ ├── ultraerror.h │ │ ├── ultralog.h │ │ ├── ultratypes.h │ │ └── uportals.h │ ├── make │ │ └── PRdefs │ ├── sys │ │ ├── u64driver.h │ │ └── u64gio.h │ ├── tinymon.h │ ├── ultra64.h │ └── ultrahost.h ├── macros.h ├── main.c ├── patch_api_funcs.h ├── patch_helpers.h ├── patches.h ├── patches.ld ├── pic.c ├── syms.ld ├── tagging.c ├── types.h └── widescreen.c ├── rsp └── .gitignore ├── rt64.patch ├── shadercache └── .gitkeep ├── shaders ├── InterfacePS.hlsl └── InterfaceVS.hlsl └── src ├── game ├── config.cpp ├── controls.cpp ├── debug.cpp ├── input.cpp ├── patch_api.cpp ├── quicksaving.cpp ├── recomp_api.cpp ├── scene_table.cpp ├── tlb.cpp └── unknown_symbols.cpp ├── main ├── main.cpp ├── register_overlays.cpp ├── register_patches.cpp └── rt64_render_context.cpp └── ui ├── ui_color_hack.cpp ├── ui_config.cpp ├── ui_launcher.cpp ├── ui_renderer.cpp ├── ui_rml_hacks.cpp └── ui_rml_hacks.hpp /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Report a bug in the project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | ## If you have a crash on startup, please make sure your graphics drivers are up to date before submitting a bug report. 11 | 12 | **What is your GPU driver version? Old drivers, particularly on Nvidia, are known to cause crashes on boot on 1.1.0. If you are on Nvidia and the game is crashing on boot, please update to driver version 555.85 or newer before opening an issue.** 13 | 14 | **Have you checked whether this issue is vanilla behavior? In other words, does it occur on original hardware?** 15 | 16 | **Were you playing with intended mechanics, or using glitches? If it's the latter, which glitches?** 17 | 18 | **Describe the bug** 19 | A clear and concise description of what the bug is. 20 | 21 | **To Reproduce** 22 | Steps to reproduce the behavior: 23 | 1. Go to '...' 24 | 2. etc. 25 | 26 | **Expected behavior** 27 | A clear and concise description of what you expected to happen. 28 | 29 | **Screenshots** 30 | Please attach a screenshot of the bug. 31 | 32 | **Desktop (please complete the following information):** 33 | - OS: [Windows 10, Windows 11, Linux distro] 34 | - Version: [e.g. 1.0.0] 35 | - CPU: [e.g. Intel Core ..., AMD Ryzen ..., etc.] 36 | - GPU: [e.g. NVIDIA GeForce .../Radeon RX .../Intel UHD .../etc.] 37 | - GPU driver: [e.g Nvidia driver 545.XX, AMD driver 24.X.X, etc] 38 | 39 | **Additional context** 40 | Add any other context about the problem here. 41 | -------------------------------------------------------------------------------- /.github/linux/Goemon64Recompiled.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=Goemon64Recompiled 3 | Type=Application 4 | Terminal=false 5 | Icon=Goemon64Recompiled 6 | Exec=Goemon64Recompiled 7 | GenericName=Goemon64Recompiled 8 | Categories=Game; 9 | 10 | -------------------------------------------------------------------------------- /.github/linux/appimage.sh: -------------------------------------------------------------------------------- 1 | ARCH=$(uname -m) 2 | LINUX_DEPLOY_ARCH=$(uname -m) 3 | 4 | if [ "$ARCH" = "x86_64" ]; then 5 | ARCH="x86_64" 6 | LINUX_DEPLOY_ARCH="x86_64" 7 | elif [ "$ARCH" = "aarch64" ]; then 8 | ARCH="arm_aarch64" 9 | LINUX_DEPLOY_ARCH="aarch64" 10 | else 11 | echo "Unsupported architecture: $ARCH" 12 | exit 1 13 | fi 14 | 15 | curl -sSfLO "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-$LINUX_DEPLOY_ARCH.AppImage" 16 | curl -sSfLO "https://github.com/linuxdeploy/linuxdeploy-plugin-gtk/raw/master/linuxdeploy-plugin-gtk.sh" 17 | 18 | chmod a+x linuxdeploy* 19 | 20 | mkdir -p AppDir/usr/bin 21 | cp Goemon64Recompiled AppDir/usr/bin/ 22 | cp -r assets/ AppDir/usr/bin/ 23 | cp gamecontrollerdb.txt AppDir/usr/bin/ 24 | cp icons/512.png AppDir/Goemon64Recompiled.png 25 | cp .github/linux/Goemon64Recompiled.desktop AppDir/ 26 | 27 | "./linuxdeploy-$LINUX_DEPLOY_ARCH.AppImage" --appimage-extract 28 | mv squashfs-root/ deploy 29 | ./deploy/AppRun --appdir=AppDir/ -d AppDir/Goemon64Recompiled.desktop -i AppDir/Goemon64Recompiled.png -e AppDir/usr/bin/Goemon64Recompiled --plugin gtk 30 | sed -i 's/exec/#exec/g' AppDir/AppRun 31 | echo 'if [ -f "portable.txt" ]; then' >> AppDir/AppRun 32 | echo ' APP_FOLDER_PATH=$PWD' >> AppDir/AppRun 33 | echo ' cd "$this_dir"/usr/bin/' >> AppDir/AppRun 34 | echo ' APP_FOLDER_PATH=$APP_FOLDER_PATH ./Goemon64Recompiled' >> AppDir/AppRun 35 | echo 'else' >> AppDir/AppRun 36 | echo ' cd "$this_dir"/usr/bin/' >> AppDir/AppRun 37 | echo ' ./Goemon64Recompiled' >> AppDir/AppRun 38 | echo 'fi' >> AppDir/AppRun 39 | 40 | # Remove conflicting libraries 41 | rm -rf AppDir/usr/lib/libgmodule* 42 | rm -rf AppDir/usr/lib/gio/modules/*.so 43 | rm -rf AppDir/usr/lib/libwayland* 44 | 45 | ./deploy/usr/bin/linuxdeploy-plugin-appimage --appdir=AppDir 46 | -------------------------------------------------------------------------------- /.github/workflows/update-pr-artifacts.yml: -------------------------------------------------------------------------------- 1 | name: update-pr-artifacts 2 | on: 3 | workflow_run: 4 | workflows: [validate-external, validate-internal] 5 | types: 6 | - completed 7 | jobs: 8 | update-pr-artifacts: 9 | runs-on: ubuntu-latest 10 | if: (github.event.workflow_run.event == 'pull_request' || github.event.workflow_run.event == 'pull_request_target') && github.event.workflow_run.conclusion == 'success' 11 | name: Update PR Artifacts 12 | steps: 13 | - name: Get PR Number 14 | id: pr-number 15 | uses: actions/github-script@v6 16 | with: 17 | result-encoding: string 18 | script: | 19 | const { owner, repo } = context.repo; 20 | 21 | const findPRNumber = async () => { 22 | const pulls = await github.rest.pulls.list({ owner, repo }); 23 | for await (const { data } of github.paginate.iterator(pulls)) { 24 | for (const pull of data) { 25 | if (pull.head.sha === '${{ github.event.workflow_run.head_sha }}' && pull.user.id === ${{ github.event.sender.id }}) { 26 | return pull.number; 27 | } 28 | } 29 | } 30 | 31 | return null; 32 | }; 33 | 34 | const prNumber = await findPRNumber(); 35 | if (!prNumber) { 36 | core.error(`No matching pull request found`); 37 | } else { 38 | return prNumber; 39 | } 40 | - name: Create Artifacts Content 41 | id: artifacts-content 42 | uses: actions/github-script@v6 43 | with: 44 | result-encoding: string 45 | script: | 46 | const artifacts = await github.rest.actions.listWorkflowRunArtifacts({ 47 | owner: context.repo.owner, 48 | repo: context.repo.repo, 49 | run_id: context.payload.workflow_run.id, 50 | }); 51 | 52 | const nightlyLinks = artifacts.data.artifacts.reduce((acc, item) => { 53 | acc += `- [${item.name}.zip](https://nightly.link/${context.repo.owner}/${context.repo.repo}/actions/artifacts/${item.id}.zip)\n`; 54 | return acc; 55 | }, '### Build Artifacts\n'); 56 | 57 | return nightlyLinks; 58 | - name: Update PR Description 59 | uses: garrettjoecox/pr-section@3.1.0 60 | with: 61 | section-name: 'artifacts' 62 | repo-token: '${{ secrets.GITHUB_TOKEN }}' 63 | pr-number: ${{ steps.pr-number.outputs.result }} 64 | section-value: '${{ steps.artifacts-content.outputs.result }}' 65 | -------------------------------------------------------------------------------- /.github/workflows/validate-external.yml: -------------------------------------------------------------------------------- 1 | name: validate-external 2 | on: 3 | pull_request_target: 4 | types: [opened, synchronize] 5 | jobs: 6 | authorize: 7 | if: github.repository != github.event.pull_request.head.repo.full_name 8 | environment: 9 | ${{ github.event_name == 'pull_request_target' && 10 | github.event.pull_request.head.repo.full_name != github.repository && 11 | 'external' || 'internal' }} 12 | runs-on: ubuntu-latest 13 | steps: 14 | - run: echo ✓ 15 | build: 16 | needs: authorize 17 | uses: ./.github/workflows/validate.yml 18 | secrets: 19 | ZRE_REPO_WITH_PAT: ${{ secrets.ZRE_REPO_WITH_PAT }} 20 | -------------------------------------------------------------------------------- /.github/workflows/validate-internal.yml: -------------------------------------------------------------------------------- 1 | name: validate-internal 2 | on: 3 | push: 4 | branches: 5 | - dev 6 | pull_request: 7 | types: [opened, synchronize] 8 | jobs: 9 | build: 10 | if: github.event_name == 'push' || github.repository == github.event.pull_request.head.repo.full_name 11 | uses: ./.github/workflows/validate.yml 12 | secrets: inherit 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # VSCode file settings 2 | .vscode/settings.json 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | 6 | # Input elf and rom files 7 | *.elf 8 | *.z64 9 | 10 | # Output C files 11 | RecompiledFuncs/ 12 | RecompiledPatches/ 13 | 14 | # Linux build output 15 | build/ 16 | *.o 17 | 18 | # Windows build output 19 | *.exe 20 | *.dll 21 | *.lib 22 | *.pdb 23 | 24 | # User-specific files 25 | *.rsuser 26 | *.suo 27 | *.user 28 | *.userosscache 29 | *.sln.docstates 30 | 31 | # Build results 32 | [Dd]ebug/ 33 | [Dd]ebugPublic/ 34 | [Rr]elease/ 35 | [Rr]eleases/ 36 | x64/ 37 | x86/ 38 | [Ww][Ii][Nn]32/ 39 | [Aa][Rr][Mm]/ 40 | [Aa][Rr][Mm]64/ 41 | bld/ 42 | [Bb]in/ 43 | [Oo]bj/ 44 | [Ll]og/ 45 | [Ll]ogs/ 46 | out/ 47 | cmake-build/ 48 | 49 | # Visual Studio 2015/2017 cache/options directory 50 | .vs/ 51 | vcpkg_installed/ 52 | 53 | # Runtime files 54 | imgui.ini 55 | rt64.log 56 | 57 | node_modules/ 58 | 59 | # Recompiler Linux binary 60 | N64Recomp 61 | RSPRecomp 62 | .DS_Store 63 | 64 | # Controller mappings file 65 | gamecontrollerdb.txt 66 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "lib/RmlUi"] 2 | path = lib/RmlUi 3 | url = https://github.com/mikke89/RmlUi/ 4 | [submodule "lib/rt64"] 5 | path = lib/rt64 6 | url = https://github.com/rt64/rt64 7 | [submodule "lib/freetype-windows-binaries"] 8 | path = lib/freetype-windows-binaries 9 | url = https://github.com/ubawurinna/freetype-windows-binaries 10 | [submodule "lib/lunasvg"] 11 | path = lib/lunasvg 12 | url = https://github.com/sammycage/lunasvg 13 | [submodule "lib/N64ModernRuntime"] 14 | path = lib/N64ModernRuntime 15 | url = https://github.com/N64Recomp/N64ModernRuntime.git 16 | [submodule "Goemon64RecompSyms"] 17 | path = Goemon64RecompSyms 18 | url = https://github.com/klorfmorf/Goemon64RecompSyms 19 | [submodule "lib/mnsg"] 20 | path = lib/mnsg 21 | url = https://github.com/klorfmorf/mnsg 22 | -------------------------------------------------------------------------------- /BUILDING.md: -------------------------------------------------------------------------------- 1 | # Building Guide 2 | 3 | This guide will help you build the project on your local machine. The process will require you to provide a decompressed ROM of the US version of the game. 4 | 5 | These steps cover: decompressing the ROM, running the recompiler and finally building the project. 6 | 7 | ## 1. Clone the Goemon64Recomp Repository 8 | This project makes use of submodules so you will need to clone the repository with the `--recurse-submodules` flag. 9 | 10 | ```bash 11 | git clone --recurse-submodules 12 | # if you forgot to clone with --recurse-submodules 13 | # cd /path/to/cloned/repo && git submodule update --init --recursive 14 | ``` 15 | 16 | ## 2. Install Dependencies 17 | 18 | ### Linux 19 | For Linux the instructions for Ubuntu are provided, but you can find the equivalent packages for your preferred distro. 20 | 21 | ```bash 22 | # For Ubuntu, simply run: 23 | sudo apt-get install cmake ninja-build libsdl2-dev libgtk-3-dev lld llvm clang 24 | ``` 25 | 26 | ### Windows 27 | You will need to install [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/). 28 | In the setup process you'll need to select the following options and tools for installation: 29 | - Desktop development with C++ 30 | - C++ Clang Compiler for Windows 31 | - C++ CMake tools for Windows 32 | 33 | The other tool necessary will be `make` which can be installe via [Chocolatey](https://chocolatey.org/): 34 | ```bash 35 | choco install make 36 | ``` 37 | 38 | ## 3. Decompressing the target ROM 39 | You will need to decompress the NTSC-U Mystical Ninja Starring Goemon ROM (sha1: df8083a54296b8c151917c5333e1c85f014a2a66) before running the recompiler. 40 | 41 | Follow the build instructions for the [Mystical Ninja Starring Goemon Decompilation Project](https://github.com/klorfmorf/mnsg) in order to generate a decompressed ROM. 42 | 43 | Copy the decompressed ROM with the name `baserom.us.decompressed.z64` from the root of the decompilation project to the root of the Goemon64Recomp repository and rename it to `mnsg.us.decompressed.z64`. 44 | 45 | ## 4. Generating the C code 46 | 47 | Now that you have the required files, you must build [N64Recomp](https://github.com/Mr-Wiseguy/N64Recomp) and run it to generate the C code to be compiled. The building instructions can be found [here](https://github.com/Mr-Wiseguy/N64Recomp?tab=readme-ov-file#building). That will build the executables: `N64Recomp` and `RSPRecomp` which you should copy to the root of the Goemon64Recomp repository. 48 | 49 | After that, go back to the repository root, and run the following commands: 50 | ```bash 51 | ./N64Recomp mnsg.us.toml 52 | ./RSPRecomp aspMain.us.toml 53 | ``` 54 | 55 | ## 5. Apply Patches 56 | Copy `N64ModernRuntime.patch` to the root of the `lib/N64ModernRuntime` directory and apply the patch: 57 | ```bash 58 | cp N64ModernRuntime.patch lib/N64ModernRuntime 59 | cd lib/N64ModernRuntime 60 | git apply N64ModernRuntime.patch 61 | ``` 62 | 63 | After that, copy `rt64.patch` to the root of the `lib/rt64` directory and apply the patch: 64 | ```bash 65 | cp rt64.patch lib/rt64 66 | cd lib/rt64 67 | git apply rt64.patch 68 | ``` 69 | 70 | ## 6. Building the Project 71 | 72 | Finally, you can build the project! :rocket: 73 | 74 | On Windows, you can open the repository folder with Visual Studio, and you'll be able to `[build / run / debug]` the project from there. 75 | 76 | If you prefer the command line or you're on a Unix platform you can build the project using CMake: 77 | 78 | ```bash 79 | cmake -S . -B build-cmake -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -G Ninja -DCMAKE_BUILD_TYPE=Release # or Debug if you want to debug 80 | cmake --build build-cmake --target Goemon64Recompiled -j$(nproc) --config Release # or Debug 81 | ``` 82 | 83 | ## 7. Success 84 | 85 | Voilà! You should now have a `Goemon64Recompiled` executable in the build directory! If you used Visual Studio this will be `out/build/x64-[Configuration]` and if you used the provided CMake commands then this will be `build-cmake`. You will need to run the executable out of the root folder of this project or copy the assets folder to the build folder to run it. 86 | 87 | > [!IMPORTANT] 88 | > In the game itself, you should be using a standard ROM, not the decompressed one. 89 | -------------------------------------------------------------------------------- /CMakeSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "configurations": [ 3 | { 4 | "name": "x64-Debug", 5 | "generator": "Ninja", 6 | "configurationType": "Debug", 7 | "inheritEnvironments": [ "clang_cl_x64" ], 8 | "buildRoot": "${projectDir}\\out\\build\\${name}", 9 | "installRoot": "${projectDir}\\out\\install\\${name}", 10 | "cmakeCommandArgs": "", 11 | "buildCommandArgs": "", 12 | "ctestCommandArgs": "" 13 | }, 14 | { 15 | "name": "x64-Release", 16 | "generator": "Ninja", 17 | "configurationType": "Release", 18 | "buildRoot": "${projectDir}\\out\\build\\${name}", 19 | "installRoot": "${projectDir}\\out\\install\\${name}", 20 | "cmakeCommandArgs": "", 21 | "buildCommandArgs": "", 22 | "ctestCommandArgs": "", 23 | "inheritEnvironments": [ "clang_cl_x64" ] 24 | }, 25 | { 26 | "name": "x64-ReleaseWithDebInfo", 27 | "generator": "Ninja", 28 | "configurationType": "RelWithDebInfo", 29 | "buildRoot": "${projectDir}\\out\\build\\${name}", 30 | "installRoot": "${projectDir}\\out\\install\\${name}", 31 | "cmakeCommandArgs": "", 32 | "buildCommandArgs": "", 33 | "ctestCommandArgs": "", 34 | "inheritEnvironments": [ "clang_cl_x64" ], 35 | "variables": [] 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /aspMain.us.toml: -------------------------------------------------------------------------------- 1 | text_offset = 0x546B0 2 | text_size = 0xE20 3 | text_address = 0x04001080 4 | rom_file_path = "mnsg.us.decompressed.z64" 5 | output_file_path = "rsp/aspMain.cpp" 6 | output_function_name = "aspMain" 7 | extra_indirect_branch_targets = [ 8 | 0x1118, 0x1470, 0x11DC, 0x1B38, 0x1214, 0x187C, 0x1254, 0x12D0, 9 | 0x12EC, 0x1328, 0x140C, 0x1294, 0x1E24, 0x138C, 0x170C, 0x144C, 10 | ] -------------------------------------------------------------------------------- /assets/ChiaroBold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/klorfmorf/Goemon64Recomp/a7d8582559192637486a63c860eea60e24281c6c/assets/ChiaroBold.otf -------------------------------------------------------------------------------- /assets/ChiaroNormal.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/klorfmorf/Goemon64Recomp/a7d8582559192637486a63c860eea60e24281c6c/assets/ChiaroNormal.otf -------------------------------------------------------------------------------- /assets/LatoLatin-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/klorfmorf/Goemon64Recomp/a7d8582559192637486a63c860eea60e24281c6c/assets/LatoLatin-Bold.ttf -------------------------------------------------------------------------------- /assets/LatoLatin-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/klorfmorf/Goemon64Recomp/a7d8582559192637486a63c860eea60e24281c6c/assets/LatoLatin-BoldItalic.ttf -------------------------------------------------------------------------------- /assets/LatoLatin-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/klorfmorf/Goemon64Recomp/a7d8582559192637486a63c860eea60e24281c6c/assets/LatoLatin-Italic.ttf -------------------------------------------------------------------------------- /assets/LatoLatin-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/klorfmorf/Goemon64Recomp/a7d8582559192637486a63c860eea60e24281c6c/assets/LatoLatin-Regular.ttf -------------------------------------------------------------------------------- /assets/NotoEmoji-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/klorfmorf/Goemon64Recomp/a7d8582559192637486a63c860eea60e24281c6c/assets/NotoEmoji-Regular.ttf -------------------------------------------------------------------------------- /assets/components/prompt.rml: -------------------------------------------------------------------------------- 1 | 31 | -------------------------------------------------------------------------------- /assets/config_menu.rml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Inventory 6 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 |
36 |
37 |
38 | 39 | 40 |
General
41 |
42 |
43 | 44 |