Lorenzooone / cc3dsfs

A multi-platform capture and display program for the https://3dscapture.com/ N3DSXL, 3DS and DS (old) Capture Cards written in C++
MIT License
9 stars 0 forks source link

cc3dsfs

cc3dsfs is a multi-platform capture and display program for 3dscapture's N3DSXL, 3DS and DS (old) capture boards written in C++. The main goal is to offer the ability to use the Capture Card with a TV, via fullscreen mode.

Features

Note: On 3DS, DS, GBA, GBC and GB games boot in scaled resolution mode by default. Holding START or SELECT while launching these games will boot in native resolution mode.

Note: Make sure the 3DS audio is not set to Surround.

Dependencies

cc3dsfs has three build dependencies: CMake, g++ and git. Make sure all are installed. On MacOS, Homebrew can be used to install both CMake and git. An automatic popup should appear to install g++ at Compile time.

cc3dsfs has four library dependencies: FTDI's D3XX driver, FTDI's D2XX driver, libusb and SFML. All of them should get downloaded automatically via CMake during the building process.

Linux users will also need to install the SFML dependencies. Different distributions will require slightly different processes. Below, the command for Debian-based distributions, which also lists the required libraries.

sudo apt update
sudo apt install \
    g++ \
    git \
    cmake \
    libxrandr-dev \
    libxcursor-dev \
    libudev-dev \
    libopenal-dev \
    libflac-dev \
    libvorbis-dev \
    libgl1-mesa-dev \
    libegl1-mesa-dev \
    libdrm-dev \
    libgbm-dev \
    libfreetype-dev

Additionally, when compiling for a Raspberry Pi, install gpiod and libgpiod-dev.

On Windows, you may need to install the Visual C++ Redistributable set of libraries. They are available here: Official Microsoft VC Redist Link.

Compilation

To compile the program, assuming CMake, git and g++ are installed on the system, this is the command which should be launched:

cmake -B build ; cmake --build build --config Release

This will download FTD3XX, FTD2XX, libusb and SFML, which may take a while during the first execution of the command. Later runs should be much faster. On MacOS, you may also be prompted to install the Apple Command Line Developer Tools first.

When compiling on a Raspberry Pi, to enable usage of GPIO, use:

cmake -B build -DRASPBERRY_PI_COMPILATION=TRUE ; cmake --build build --config Release

Controls

The software has a GUI which exposes all of the available settings. There are also various available keyboard shortcuts which allow quicker access to the options. Most of the settings are explained in Keyboard shortcuts.

Keyboard controls

Mouse controls

Joystick controls

Note: Currently only tested using a PS5 controller.

Keyboard shortcuts

Note: The volume is independent of the actual volume level set with the physical slider on the console.

Profiles/Layouts

When starting the program for the first time, a message indicating a load failure for the cc3dsfs.cfg file will be displayed, and the same will occur when attempting to load from any given layout file if it hasn't been saved to before. That is normal. These files must be created by the program first before they can be loaded from. The program saves its current configuration to the cc3dsfs.cfg file when the program is successfully closed, creating the file if it doesn't already exist, and loading from it every time at startup.

The current configuration can be saved to various extra profiles, creating the given file if it doesn't already exist. Changing settings after a layout is loaded will not automatically overwrite its file. To make the changes permanent, saving the profile again is required.

The name of profiles can be changed by altering the name field in its file.

On Linux and MacOS, the profiles can be found at the "${HOME}/.config/cc3dsfs" folder. By default, "/home//.config/cc3dsfs".

On Windows, the profiles can be found in the ".config/cc3dsfs" folder inside the directory in which the program runs from.

Notes