• Stars
    star
    113
  • Rank 310,115 (Top 7 %)
  • Language
    C++
  • License
    MIT License
  • Created over 1 year ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A script-like system module that patches fs, es, ldr and nifm on boot

sys-patch

A script-like system module that patches fs, es, ldr and nifm on boot.


Config

sys-patch features a simple config. This can be manually edited or updated using the overlay.

The configuration file can be found in /config/sys-patch/config.ini. The file is generated once the module is ran for the first time.

[options]
patch_sysmmc=1   ; 1=(default) patch sysmmc, 0=don't patch sysmmc
patch_emummc=1   ; 1=(default) patch emummc, 0=don't patch emummc
enable_logging=1 ; 1=(default) output /config/sys-patch/log.ini 0=no log
version_skip=1   ; 1=(default) skips out of date patterns, 0=search all patterns

Overlay

The overlay can be used to change the config options and to see what patches are applied.

  • Unpatched means the patch wasn't applied (likely not found).
  • Patched (green) means it was patched by sys-patch.
  • Patched (yellow) means it was already patched, likely by sigpatches or a custom Atmosphere build.


Building

prerequisites

  • Install devkitpro
  • Run the following:
    git clone --recurse-submodules https://github.com/ITotalJustice/sys-patch.git
    cd ./sys-patch
    make

The output of out/ can be copied to your SD card. To activate the sys-module, reboot your switch, or, use sysmodules overlay with the accompanying overlay to activate it.


What is being patched?

Here's a quick run down of what's being patched:

  • fs
  • es
  • ldr
  • nifm

fs and es need new patches after every new firmware version. ldr needs new patches after every new Atmosphere release. nifm ctest patch allows the device to connect to a network without needing to make a connection to a server.

The patches are applied on boot. Once done, the sys-module stops running. The memory footprint (16kib) and the binary size (~50kib) are both very small.


FAQ:

If I am using sigpatches already, is there any point in using this?

Yes, in 3 situations.

  1. A new ldr patch needs to be created after every Atmosphere update. Sometimes, a new silent Atmosphere update is released. This tool will always patch ldr without having to update patches.

  2. Building Atmosphere from src will require you to generate a new ldr patch for that custom built Atmosphere. This is easy enough due to the public scripts / tools that exist out there, however this will always be able to patch ldr.

  3. If you forget to update your patches when you update your firmware / Atmosphere, this sys-module should be able to patch everything. So it can be used as a fall back.

Does this mean that I should stop downloading / using sigpatches?

No, I would personally recommend continuing to use sigpatches. Reason being is that should this tool ever break, i likely wont be quick to fix it.


Credits / Thanks

Software is built on the shoulders of giants. This tool wouldn't be possible without these people:

More Repositories

1

patches

1,583
star
2

Gamecard-Installer-NX

A way to install your gamecards directly to the switch!
C
144
star
3

atmosphere-updater

WIP atmosphere (switch cfw) updater!
C
85
star
4

notorious_beeg

gba emulator written in c++23
C++
41
star
5

Reset-Parental-Controls-NX

An easy way to change the pin for parental controls for the Nintendo Switch! (cfw required)
Makefile
41
star
6

untitled

Batch title uninstaller for the Nintendo Switch
C
34
star
7

TotalSMS

Sega Master System emulator
C
23
star
8

TotalGB

Simple, fast, very inaccurate GB / GBC emulator!
C
17
star
9

mmpx

MMPX - pixel art scaling (c99 - MIT)
C
10
star
10

gb_apu

implementation of the Gameboy apu in ~1k lines of code.
C
9
star
11

librewind

a simple rewind lib for emulators, written in c89
C
8
star
12

TotalNES

WIP nes emulator
C
7
star
13

Off-Switch

A simple tool to power off or reboot the switch without pressing the power buttons!
Makefile
7
star
14

pokemon-gen4-fps-unlocker

Unlock / Lock the framerate in the gen 4 pokemon games!
C
7
star
15

LR35902

gameboy cpu written in c89
C
6
star
16

TotalCH8

Zero dependency chip8 interpreter written in c99.
C
6
star
17

NX-DeviceID-Viewer

Displays deviceID, with option to dump to file.
Makefile
5
star
18

6502

c89 zero dependency 6502 implementation
C
4
star
19

gba-emu

WIP constexpr tested gba-emu written in modern c++
C++
4
star
20

TotalGBA

WIP gba emulator
C
4
star
21

nxusb

WIP usb lib for the Nintendo Switch
C
4
star
22

TotalCH8-gui

simple frontend builtin-romloader for my chip8 core
C
3
star
23

android-cmake-only

build your android project only using cmake
CMake
3
star
24

tinfoil-updater

not finished yet
C
3
star
25

FManNX

An extremely basic file manager for the Nintendo Switch. Not useable yet, please don't compile.
C
2
star
26

SDL-easy

It's SDL, but made even easier! A sdl wrapper library for the Nintendo Switch
C
2
star
27

gci

C++
2
star
28

Yati

WIP title installer for the Nintendo Switch
C
2
star
29

args

Simple c99 argv parser with zero memory allocation
C
2
star
30

libpatch

simple patcher for ips, ups and bps files! (written in c99)
C
1
star
31

threaded_test

C
1
star
32

nand-dumper

A tool to dump the NAND (partitions) for the Nintendo Switch.
C
1
star
33

simp

SIMPle sdl2 c++ wrapper
C
1
star
34

File_splitter

A small script to split files for fat32
C
1
star
35

nxusb-pc

WIP pc client for nxusb
Python
1
star
36

TotalVB

WIP Virtual Boy emulator, this is going to take me a while, check back later!
C
1
star
37

MusicNX

A very work-in-progress music player for the switch
C
1
star
38

scheduler

simple-ish, fast-ish, generic-ish scheduler implementation (for emulators)
C
1
star
39

connect-4

WIP connect-4 for the Nintendo Switch
C
1
star
40

nca_content_dumper

quick script that dumps the contents of a decrypted nca.
C
1
star
41

Flappy-Bird

A flappy bird clone: made with Godot
GDScript
1
star