Emulator collection for Nintendo® Game & Watch™

Overview

Emulator collection for Nintendo® Game & Watch™

This is a port of the retro-go emulator collection that runs on the Nintendo® Game & Watch™: Super Mario Bros. system.

Supported emulators:

  • ColecoVision (col)
  • Gameboy / Gameboy Color (gb/gbc)
  • Game & Watch / LCD Games (gw)
  • Nintendo Entertainment System (nes)
  • PC Engine / TurboGrafx-16 (pce)
  • Sega Game Gear (gg)
  • Sega Master System (sms)
  • Sega SG-1000 (sg)

Table of Contents

Controls

Buttons are mapped as you would expect for each emulator. GAME is mapped to START, and TIME is mapped to SELECT. PAUSE/SET brings up the emulator menu.

By default, pressing the power-button while in a game will automatically trigger a save-state prior to putting the system to sleep. Note that this WILL overwrite the previous save-state for the current game.

Macros

Holding the PAUSE/SET button while pressing other buttons have the following actions:

Button combination Action
PAUSE/SET + GAME Store a screenshot. (Disabled by default on 1MB flash builds)
PAUSE/SET + TIME Toggle speedup between 1x and the last non-1x speed. Defaults to 1.5x.
PAUSE/SET + UP Brightness up.
PAUSE/SET + DOWN Brightness down.
PAUSE/SET + RIGHT Volume up.
PAUSE/SET + LEFT Volume down.
PAUSE/SET + B Load state.
PAUSE/SET + A Save state.
PAUSE/SET + POWER Poweroff WITHOUT save-stating.

Troubleshooting / FAQ

  • Run make help to get a list of options to configure the build, and targets to perform various actions.
  • Add STATE_SAVING=0 as a parameter to make to disable save state support if more space is required.
  • Do you have any changed files, even if you didn't intentionally change them? Please run git reset --hard to ensure an unchanged state.
  • Did you run git pull but forgot to update the submodule? Run git submodule update --init --recursive to ensure that the submodules are in sync or run git pull --recurse-submodules instead.
  • Run make clean and then build again. The makefile should handle incremental builds, but please try this first before reporting issues.
  • If you have limited resources on your computer, remove the -j$(nproc) flag from the make command, i.e. run make flash.
  • If you have changed the external flash and are having problems:
    • Run make flash_test to test it. This will erase the flash, write, read and verify the data.
    • If your chip was bought from e.g. ebay, aliexpress or similar places, you might have gotten a fake or bad clone chip. You can set EXTFLASH_FORCE_SPI=1 to disable quad mode which seems to help for some chips.
  • It is still not working? Try the classic trouble shooting methods: Disconnect power to your debugger and G&W and connect again. Try programming the Base project first to ensure you can actually program your device.
  • Still not working? Ok, head over to #support on the discord and let's see what's going on.

How to build

Prerequisites

  • You will need version 10 or later of arm-gcc-none-eabi toolchain. 10.2.0 and later are known to work well. Please make sure it's installed either in your PATH, or set the environment variable GCC_PATH to the bin directory inside the extracted directory (e.g. /opt/gcc-arm-none-eabi-10-2020-q4-major/bin, /Applications/ARM/bin for macOS).
  • In order to run this on a Nintendo® Game & Watch™ you need to first unlock it.

Building

Note: make -j8 is used as an example. You may use make -j$(nproc) on Linux or make -j$(sysctl -n hw.logicalcpu) on Mac, or just write the number of threads you want to use, e.g. make -j8.

# Configure the debug adapter you want to use.
# stlink is also the default, but you may set it to something else:
# export ADAPTER=jlink
# export ADAPTER=rpi
export ADAPTER=stlink

# Clone this repo with submodules:

git clone --recurse-submodules https://github.com/kbeckmann/game-and-watch-retro-go

cd game-and-watch-retro-go

# Install python dependencies, this is optional for basic uses (but recommended!)
python3 -m pip install -r requirements.txt

# Place roms in the appropriate folders:
# cp /path/to/rom.gb ./roms/gb/
# cp /path/to/rom.nes ./roms/nes/
# etc. for each rom-emulator combination.

# On a Mac running make < v4 you have to manually download the HAL package by running:
# make download_sdk

# Build and program external and internal flash.
# Notes:
#     * If you are using a modified unit with a larger external flash,
#       set the EXTFLASH_SIZE_MB to its size in megabytes (MB) (16MB used in the example):
#           make -j8 EXTFLASH_SIZE_MB=16 flash

make -j8 flash

Information for developers

If you need to change the project settings and generate c-code from stm32cubemx, make sure to not have a dirty working copy as the tool will overwrite files that will need to be perhaps partially reverted. Also update Makefile.common in case new drivers are used.

Build and flash using Docker

If you are familiar with Docker and prefer a solution where you don't have to manually install toolchains and so on, expand this section and read on.

To reduce the number of potential pitfalls in installation of various software, a Dockerfile is provided containing everything needed to compile and flash retro-go to your Nintendo® Game & Watch™: Super Mario Bros. system. This Dockerfile is written tageting an x86-64 machine running Linux.

Steps to build and flash from a docker container (running on Linux, e.g. Archlinux or Ubuntu):

# Clone this repo
git clone --recursive https://github.com/kbeckmann/game-and-watch-retro-go

# cd into it
cd game-and-watch-retro-go

# Place roms in the appropriate directory inside ./roms/

# Build the docker image (takes a while)
make docker_build

# Run the container.
# The current directory will be mounted into the container and the current user/group will be used.
# In order to be able to flash the device, the container is started with --priviliged and also mounts
# in /dev/bus/usb. See Makefile.common for the exact command line that is executed if curious.
make docker

# Build and flash from inside the container:
[email protected]:/opt/workdir$ make ADAPTER=stlink EXTFLASH_SIZE_MB=1 -j$(nproc) flash

Backing up and restoring save state files

Save states can be backed up using ./scripts/saves_backup.sh build/gw_retro_go.elf. Make sure to use the elf file that matches what is running on your device! It is a good idea to keep this elf file in case you want to back up at a later time. This can also be achieved with make flash_saves_backup.

This downloads all save states to the local directory ./save_states. Each save state will be located in ./save_states/<emu>/<rom name>.save.

After this, it's safe to change roms, pull new code and build & flash the device.

Save states can then be programmed to the device using a newer elf file with new code and roms. To do this, run ./scripts/saves_restore.sh build/gw_retro_go.elf - this time with the new elf file that matches what's running on the device. Save this elf file for backup later on. This can also be achieved with make flash_saves_restore.

saves_restore.sh will upload all save state files that you have backed up that are also included in the elf file. E.g Let's say you back up saves for rom A, B and C. Later on, you add a new rom D but remove A, then build and flash. When running the script, the save states for B and C will be programmed and nothing else.

You can also erase all of the save slots by running make flash_saves_erase.

Screenshots

Screenshots can be captured by pressing PAUSE/SET + GAME. This feature is disabled by default if the external flash is 1MB (stock units), because it takes up 150kB in the external flash.

Screenshots can be downloaded by running make dump_screenshot, and will be saved as a 24-bit RGB PNG.

Upgrading the flash

The Nintendo® Game & Watch™ comes with a 1MB external flash. This can be upgraded.

The flash operates at 1.8V so make sure the one you change to also matches this.

The recommended flash to upgrade to is MX25U12835FM2I-10G. It's 16MB, the commands are compatible with the stock firmware and it's also the largest flash that comes in the same package as the original.

Make sure to backup and unlock your device before changing the external flash. The backup process requires the external flash to contain the original data.

Advanced Flash Examples

Custom Firmware (CFW)

In order to install both the CFW (modified stock rom) and retro-go at the same time, a patched version of openocd needs to be installed and used.

In this example, we'll be compiling retro-go to be used with a 64MB (512Mb) MX25U51245GZ4I00 flash chip and custom firmware. The internal custom firmware will be located at 0x08000000, which corresponds to INTFLASH_BANK=1. The internal retro-go firmware will be flashed to 0x08100000, which corresponds to INTFLASH_BANK=2. The configuration of custom firmware described below won't use any extflash, so no EXTFLASH_OFFSET is specified. We can now build and flash the firmware with the following command:

make clean
make -j8 EXTFLASH_SIZE_MB=64 INTFLASH_BANK=2 flash

To flash the custom firmware, follow the CFW README. But basically, after you install the dependencies and place the correct files in the directory, run:

# In the game-and-watch-patch folder
make PATCH_PARAMS="--internal-only" flash_patched_int

Discord, support and discussion

Please join the Discord.

LICENSE

This project is licensed under the GPLv2. Some components are also available under the MIT license. Respective copyrights apply to each component.

Comments
  • Sounds for Gameboy not working properly when flashing from macOS

    Sounds for Gameboy not working properly when flashing from macOS

    I am having an issue with [GB] when running [tobu.gb]. Git hash of main repo [heads/main-0-g1670080] and submodule [remotes/origin/nintendogw-main2-0-g982dfa1].

    When flashing Gameboy roms (I've tried several and they all have issues) the sound does not work correctly. On the same device with NES the sound works perfectly well.

    To Reproduce Steps to reproduce the behavior:

    1. Flash any GB rom to the device.
    2. Start the game and compare the audio to an actual Gameboy (Tetris is one that is immediately obvious).

    Expected behavior Sounds would be the same as from the original Gameboy, instead they are nearly unrecognizable from their original.

    Desktop (please complete the following information):

    • OS: MacOS
    • Debugger: ST-Link v2 (original)

    Additional context Prior to around December 26th the sound on Gameboy was working perfectly well so something changed between then and around January 9th (I was on holiday so wasn't keeping up with builds).

    bug 
    opened by djbriane 26
  • Long hold pause/set to toggle speedup

    Long hold pause/set to toggle speedup

    This is a PoC for long-holding (0.5 seconds) the pause/set button to toggle speedup between 1x and the last non-1x selected speed. If you're fine with this approach, i'll apply the same logic to the other emulators.

    Based on https://github.com/kbeckmann/game-and-watch-retro-go/pull/113 since I'm assuming you'll be fine with that PR and didn't want to deal with merge conflicts afterwards.

    opened by BrianPugh 12
  • GCC 10 not found on RPi 3

    GCC 10 not found on RPi 3

    This is not really a bug, more of a setup problem. I've tried REAL hard to have GCC 10 be detected while compiling the project on a Raspberry Pi 3, but I never get past the compiler check.

    More specifically:

    Please use GCC Version 10
    
    You are using:
    -e
    

    I've tried downloading and setting GCC_PATH manually (to no avail), as described here: https://github.com/kbeckmann/game-and-watch-retro-go/issues/90

    bug-triage 
    opened by rablador 10
  • Zopfli (DEFLATE) NES Support

    Zopfli (DEFLATE) NES Support

    Note: the other parse_roms.py related PRs should probably be merged in first, which will make this PR look much smaller.

    Summary:

    • Added the zopfli compression to parse_roms.py. This is a high compression ratio algorithm that outputs DEFLATE encoded data.
    • I added an optional progressbar to parse_roms.py since zopfli takes longer to compress data.
    • Updates miniz in retro-go-stm32 via cherry-picks. This originally was primarily used for encoding/decoding save-state screenshots as well as game artwork via lupng. We don't use that at all in this project, so I disabled compilation and linking of lupng.
    • Added zlib/DEFLATE decompression support for NES roms. I detect to do this based on the ROM file extension.

    Current downside of this PR as is:

    • It will also apply zopfli compression to GB/GBC games. While the compression should be correct, I haven't coded up the pairing decoder (however thats my next task).
    • Its now pointing retro-go-stm32 to my fork, we should merge in those cherry-picks to your fork

    For completeness, here are some comparisons on NES games:

    Name          Size (Uncompressed)      Size (lz4)    Size (zopfli)   Ratio (lz4)  Ratio (zopfli)
    StarTropics   524,304                  291,322       251,186         55.6%        47.9%
    SMB           40,976                   36,248        30,432          88.5%        74.3%
    SMB3          393,232                  250,828       220,336         63.8%        56.0%
    
    opened by BrianPugh 10
  • Makefile: Add -U_FORTIFY_SOURCE to disable memcpy checks

    Makefile: Add -U_FORTIFY_SOURCE to disable memcpy checks

    On some toolchains, GCC will insert bounds checks in memcpy and friends by default which erroneously trip in main() as it loads the contents of flash into ram.

    Passing -U_FORTIFY_SOURCE to GCC prevents these checks from being emitted and fixes the issue.

    opened by shawnanastasio 9
  • Having problems.

    Having problems.

    [email protected]:~/game-and-watch-retro-go$ make Cannot find arm-none-eabi-gdb -e

    Please use GCC version 10 You are using: gcc version 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] (15:9-2019-q4-0ubuntu1) -e make: *** [Makefile.common:414: CheckTools] Error 1

    How can i fix this issue. Trying for my self, but no success.

    opened by lowskill32 7
  • can't make

    can't make

    HI~ OS:MACOS 11.5 DEBUGGER :ST-LINK arm-none-eabi-gcc (GNU Arm Embedded Toolchain 10.3-2021.07) 10.3.1 20210621 (release)

    game-and-watch-retro-go wumengjia$ make -j$(sysctl -n hw.logicalcpu) flash [ WGET ] stm32h7xx.h [ WGET ] stm32h7b0xx.h [ WGET ] system_stm32h7xx.h [ WGET ] cmsis_compiler.h make[1]: *** [Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7b0xx.h] Error 3 make[1]: *** Waiting for unfinished jobs.... make[1]: *** [Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h] Error 3 make[1]: *** [Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h] Error 3 make[1]: *** [Drivers/CMSIS/Include/cmsis_compiler.h] Error 3 make: *** [flash] Error 2 game-and-watch-retro-go wumengjia$ make clean [ RM ] build game-and-watch-retro-go wumengjia$ make LARGE_FLASH=1 flash [ WGET ] stm32h7b0xx.h make[1]: *** [Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7b0xx.h] Error 3 make: *** [flash] Error 2

    bug-triage 
    opened by chen010311 7
  • STM32 RTC Hardware Support & User Interface for Watch and Calendar

    STM32 RTC Hardware Support & User Interface for Watch and Calendar

    Here is an implementation of the STM32 RTC Hardware Support for the retro-go Game and Watch fork. The time can be viewed when pressing the "TIME" button on the main retro-go menu and by selecting Time or Date the aforementioned can be adjusted.

    opened by northskysl 7
  • Parse roms refactor

    Parse roms refactor

    Main things:

    • uses pathlib.Path instead of os.path
    • No longer shells out to split/gsplit
    • Adds easy future expandability for different compression algorithms
    • attempts to use python's lz4. If unavailable, fallsback to shelling it out
    • change all subprocess.run to subprocess.check_output

    I tested this on 34 GB/GBC and 31 NES games and the files produces by the python lz4 bindings are identical to the files produces by the lz4 CLI.

    Current drawbacks:

    • Due to the restructuring, if python lz4 isn't installed, then each individual gameboy bank is being shelled out to lz4, which is significantly slower when compared to passing all the banks into a single lz4 command. Across those 34 GB/GBC games, this takes ~35s (as opposed to near-instantaneous). If we feel like this is too long, I can make a workaround, but then the code will be less clean
    opened by BrianPugh 7
  • fix GB speedup, add 1.25x and 1.5x options

    fix GB speedup, add 1.25x and 1.5x options

    This PR fixes the speedup option in the gameboy emulator and adds both 1.25x and 1.5x options. #110

    Looking to see if you like this approach before I propagate it to the other emulators. They should all be done at once since they share the same speedup attribute.

    In the retro-go-stm32 submodule I add the following enum in components/odroid/odroid_system.h, pasted here to avoid all the submodule hassle:

    enum
    {
        SPEEDUP_1x,
        SPEEDUP_1_25x,
        SPEEDUP_1_5x,
        SPEEDUP_2x,
        SPEEDUP_3x,
        SPEEDUP_MAX,
    };
    typedef int32_t emu_speedup_t;
    
    opened by BrianPugh 6
  • Use objcopy to convert roms to .o files

    Use objcopy to convert roms to .o files

    Converting the rom files to .c files with char arrays is very heavy on the memory usage of the compiler. By converting them directly to .o files this step is no longer needed.

    The Makefile dependencies of generating the rom files has been fixed. Parsing the rom files will now only happen once when -j is used.

    opened by jan2642 6
  • Major slowdowns on The Guardian Legend [NES]

    Major slowdowns on The Guardian Legend [NES]

    Please don't attach or link to game ROMs and similar files unless the license explicitly allows this.

    Please include the following:

    • Which console (NES, GB, ...) NES

    • The full name of the ROM you are running, e.g. "Super_Tilt_Bro_(E).nes" Guardian Legend, The (USA).nes, Guardian Legend, The (Europe).nes MD5 43cce874046a0850bf62eb6452e89e6b

    • The git hash of this repo and the submodule. Run the following: git describe --all --long --dirty=-dirty; cd retro-go-stm32; git describe --all --long --dirty=-dirty Can't do this for now, hope it's not required. I have problems even with olderzeus's fork as well Edit:

    heads/main-0-ga5a9b8b
    heads/main-0-g5f1dd2b
    

    Describe the bug When a lot of enemies are on screen (which on this game happens most of the time), the performance tanks a lot, until they go away. This does not happen on real hardware (proof: https://www.youtube.com/watch?v=ImwZBSo8Rvo)

    To Reproduce Simply boot up the game and start a new game, in less than a minute, when the blue meteorites start appearing and then chasing you, the framerate drops tremendously, while the audio is virtually unchanged.

    Expected behavior It should not slow down, like the real NES

    Screenshots I'm not really sure how to export a performance graph, so I can't help here

    Desktop environment:

    • Host device OS: Artix Linux
    • Debugger: ST-Link v2 clone

    Additional context Clearly a nofrendo problem, probably with the mappers (or with the rendering)?

    bug 
    opened by SantX27 3
  • Add Game Genie Support for NES

    Add Game Genie Support for NES

    Add Game Genie support for NES

    To add Game Genie codes, create a .ggcodes file next to the .nes you want to add game genie codes for. The file is a simple CSV with each line containing "code(s), comment", like this example for Super Mario Bros 1:

    SXIOPO, Inf lives APZLGG+APZLTG+GAZUAG, Mega jump YAZULG+YAZUIG+YAZUYG, Moon Gravity OZTLLX+AATLGZ+SZLIVO, Always fire YSAOPE+YEAOZA+YEAPYA, World 8-1 YSAOPE+YEAOZA+AOAPYA, World H-1 YSAOPE+YEAOZA+LXAPYA, World -1 TVVOAE, Circus music PIGPOG, All sorts of fun GOZSXX, Invincibility NPEPNY, Bullet bills 1-1 PINAOO, Cool colors

    You can also comment out a line by putting // or # in front of a line.

    These codes are collected by parse_roms and put in a static array in nes_roms.c. You can have a max of 16 codes (triple codes, like the World 8-1 code above, count as 1). Each rom is assigned a unique monotonically increasing id which references a rom structure in persistent_config_ram containing a 16 bit variable, each bit identifying which codes is currently active.

    Before loading a rom, the user can select which game genie codes are active. When the rom is started, the set of game genie codes are converted into a list of addresses, values, and compares stored statically in game_genie.c. When a new PRG ROM bank is loaded into memory (in mmc_bankrom), the memory in that space is patched by calling into gameGeniePatchRom. A special function was added in nes_mem.c to allow writes to PRG memory.

    To compile with game-genie support, add GAME_GENIE=1 to your make line.

    Depends on https://github.com/kbeckmann/retro-go-stm32/pull/17

    opened by martaaay 1
  • Change select / start button to be turbos for B / A respectively

    Change select / start button to be turbos for B / A respectively

    A suggestion for swapping select / start to be turbo buttons for B / A. Could also be put behind a compile flag. Or, I also have a patch that's part-way complete that would put it behind a menu option.

    opened by martaaay 1
  • [zelda´s version] [retro-go] [LCD-Game-Emulator][START and SELECT as extra buttons]

    [zelda´s version] [retro-go] [LCD-Game-Emulator][START and SELECT as extra buttons]

    is it possibe use START and SELECT button as extra one instead of mapped to GAME and TIME buttons respectively?¿.
    It could be used to correctly emulate those games that have 4 actions

    Thanks in advance.

    opened by xhottam 1
  • Only set `set DUAL_BANK 1` if needed

    Only set `set DUAL_BANK 1` if needed

    When INTFLASH_BANK=2 is set, we need the second bank which requires a patched openocd. If not, it will work just fine with an unmodified openocd build.

    opened by kbeckmann 0
Owner
Konrad Beckmann
Konrad Beckmann
Nintellivision - an Intellivision Emulator for the Nintendo DS/DSi

NINTV-DS NINTV-DS is an Intellivision console emulator running on the DS/DSi. Install : To make this work, place NINTV-DS.NDS on your flashcart or SD

null 21 Dec 25, 2022
Nintendo Switch Emulator

yuzu yuzu is the world's most popular, open-source, Nintendo Switch emulator — started by the creators of Citra. It is written in C++ with portability

null 23.3k Dec 31, 2022
The Sensor Watch is a board replacement for the classic Casio F-91W wristwatch.

The Sensor Watch is a board replacement for the classic Casio F-91W wristwatch.

null 660 Dec 29, 2022
A Smart Watch Project that uses RTL8722DM_MINI

AmebaWatch A Smart Watch Project that uses RTL8722DM_MINI Connection The pin connection to the GC9A01 SPI IPS LCD display is in the sketch code @Line

SimonXI 1 Oct 6, 2021
Multi watch-face solution for Watchy

watchy999 A Multi watch-face solution for Watchy What started out as a way to have more than one watch face on the Watchy by SQFMI, has turned into so

null 32 Dec 18, 2022
STM32+LVGL ==> WATCH

HWatch STM32+LVGL ==> WATCH 网盘链接: 源码: 链接:https://pan.baidu.com/s/1h0YSe5Ja6y8xVL-h4-vCUg 提取码:8pxz 参考资料: 链接:https://pan.baidu.com/s/13PEog4OyJ0LQ3oz

null 67 Oct 6, 2022
Simulation framework for Watchy watch faces

watchysim Watchy is an exciting Open Source E-Paper Watch, based on Arduino and the ESP32 micro controller. WatchySim is a simulation framework for it

Lee Holmes 36 Dec 27, 2022
"the French term for a watch movement that is not completely assembled yet."

Chablon "the French term for a watch movement that is not completely assembled yet." Today it's a program to draw rectangles on the display of a PineT

Daniel Barlow 3 Jan 3, 2022
Watch TV channels on your device via internet from all over the world for free. IPTV API Implemented with QT C++

IPTV Desktop Description IPTV-Desktop is GUI application made with Qt C++ using IPTV API, which was developed by iptv-org. Watch free tv channels via

Not Your Surya 4 Oct 24, 2022
Game Boy and Game Boy Color Emulator

SkyBoy A simple game boy emulator written to keep my skills sharp. The majority of the code was written in a 7 day sprint. It supports most common Gam

Sky 325 Jan 8, 2023
A personal collection of Windows CVE I have turned in to exploit source, as well as a collection of payloads I've written to be used in conjunction with these exploits.

This repository contains a personal collection of Windows CVE I have turned in to exploit source, as well as a collection of payloads I've written to

null 85 Dec 28, 2022
Block Cipher Reverse Engineering: A Challenge by Nintendo European Research & Development

My algorithm cracks NERD HireMe for any output within 1 Second without Brute-Force! Read more if you want to find out how this was accomplished or execute this algorithm yourself on Wandbox - Online C++ Compiler

Alexander Töpfer 58 Nov 15, 2021
A Nintendo Switch homebrew for importing and exporting Miis.

MiiPort A Nintendo Switch homebrew for importing and exporting Miis. Installation Download a release and then place the .nro file at sd:/switch/MiiPor

null 22 Aug 23, 2022
Moonlight port for Nintendo Switch

Moonlight-Switch Moonlight-Switch is a port of Moonlight Game Streaming Project for Nintendo Switch. Thanks a lot to Rock88 and his Moonlight-NX, lots

Vinogradov Daniil 313 Jan 5, 2023
Mario Kart 7 semi-primary exploit for the Nintendo 3DS.

kartdlphax kartdlphax is a semiprimary exploit for the download play mode of Mario Kart 7. It can be used to run an userland payload in an unmodified

PabloMK7 44 Jan 3, 2023
A presentation about Nintendo 64 development, given at Inércia 2021

Reflective Regret This repository contains a lot of stuff regarding the "Reflective Regret: Adventures in N64 Homebrew Development" presentation I gav

Buu342 10 Oct 21, 2022
Gamepad firmware for RP2040 microcontrollers supporting Nintendo Switch, XInput and DirectInput

GP2040 Firmware GP2040 is a gamepad firmware for the RP2040 microcontroller that provides high performance and a rich feature set across multiple plat

null 386 Jan 8, 2023
Tesla cheat trainers for Grand Theft Auto: The Trilogy - The Definitive Edition for the Nintendo Switch.

nxGTA-Trainers This is a set of tools for cheating in Grand Theft Auto: The Trilogy - The Definitive Edition for the Nintendo Switch. While I will try

null 26 Oct 4, 2022
English Translation Mod for Air Nintendo Switch version

AIR-ENX English translation mod for Nintendo Switch version of "Air" 1.0.1 Current status: Alpha Chapters translation status: Dream 100% Summer 100% A

MasaGratoR 6 Sep 6, 2022