Go to file
Callum Parsey 0df67fc7d9 Support "wb" mode for opening files
Hachihachi (the Nintendo DS emulator used in Virtual Console) crashes
when its save data is redirected to the SD card. It tries to open the
save-state files in "wb" mode which is currently rejected by the
ContentRedirectionModule. This causes the emulator's `SAVEOpenFile()`
call to fail, and the emulator immediately panics.

I am operating under the assumption that the Wii U's I/O system
doesn't differentiate between text and binary modes, like most other
operating systems. This is evidenced by the fact that the module
already supports "rb" mode and treats it in the same way as "r".
2023-11-17 11:15:25 +01:00
.github Create dependabot.yml 2023-07-23 10:11:56 +02:00
src Support "wb" mode for opening files 2023-11-17 11:15:25 +01:00
.clang-format first commit 2022-04-14 22:41:41 +02:00
.gitignore first commit 2022-04-14 22:41:41 +02:00
Dockerfile Remove romfs usage 2023-11-17 11:15:05 +01:00
LICENSE Add LICENSE 2022-09-04 18:44:06 +02:00
Makefile Use the latest libfunctionpatcher version 2023-01-07 10:38:40 +01:00
README.md Change docker registry to ghcr.io 2023-03-18 16:25:22 +01:00

CI-Release

Usage

([ENVIRONMENT] is a placeholder for the actual environment name.)

  1. Copy the file ContentRedirectionModule.wms into sd:/wiiu/environments/[ENVIRONMENT]/modules.
  2. Requires the WUMSLoader in sd:/wiiu/environments/[ENVIRONMENT]/modules/setup.
  3. Use libcontentredirection.

Buildflags

Logging

Building via make only logs errors (via OSReport). To enable logging via the LoggingModule set DEBUG to 1 or VERBOSE.

make Logs errors only (via OSReport).
make DEBUG=1 Enables information and error logging via LoggingModule.
make DEBUG=VERBOSE Enables verbose information and error logging via LoggingModule.

If the LoggingModule is not present, it'll fallback to UDP (Port 4405) and CafeOS logging.

Building using the Dockerfile

It's possible to use a docker image for building. This way you don't need anything installed on your host system.

# Build docker image (only needed once)
docker build . -t contentredirectionmodule-builder

# make 
docker run -it --rm -v ${PWD}:/project contentredirectionmodule-builder make

# make clean
docker run -it --rm -v ${PWD}:/project contentredirectionmodule-builder make clean

Format the code via docker

docker run --rm -v ${PWD}:/src ghcr.io/wiiu-env/clang-format:13.0.0-2 -r ./src -i