Open staringstar opened 7 months ago
I second this, have the exact same issue, also using Windows 10 (22H2 19045.4651 if it matters) with MSYS2 GCC in the MSYS environment. I also tried with WSL2 Ubuntu, and a Debian Docker built from this libretro-build-devkitpro repo https://gitlab.incom.co/libretro-infrastructure/libretro-build-devkitpro, though I am unsure if this is still used.
All required packages to my knowledge are up to date in each environment (MSYS, WSL Ubuntu, Debian Docker), which might be reason why it doesn't compile, might need older versions of packages. In addition, all RetroArch sources are up to date at commit 571ae9f. I compared all the logs for each environment and the WSL2 Ubuntu and Debian Docker were identical, and the MSYS2 log was also identical except for line breaks. I compared both of our logs and everything matched except for the flag for optimisation -O0 -g being -O3, -std=gnu2x being -std=gnu99, and a warning being interpreted as an error in my build log.
This may be unnecessary information but the libretro core that was being statically compiled into the RetroArch 3DS executable was libretro-fbneo but only compiled with the NeoGeo driver included, following the steps here https://github.com/libretro/FBNeo/issues/1075. In addition, I tried again with the libretro-2048 core, and nothing changed. However, I don't know if the build even got far enough to include the core for it to matter.
Attached are the logs for each environment. Debian_Docker_RetroArch_3DS_Log.txt MSYS_RetroArch_3DS_Log.txt WSL2_Ubuntu_RetroArch_3DS_Log.txt
I managed to build RetroArch using an Ubuntu Docker from https://git.libretro.com/libretro-infrastructure/libretro-build-devkitpro, specifically using the 'Dockerfile.ctr-legacy' Dockerfile, built a Docker, then followed all the steps in the Wiki and was able to compile RetroArch. I compiled it with the libretro-2048 core for testing purposes, though I assume other cores will work fine. I tested the retroarch_3ds.3dsx and retroarch_3ds.cia files built with it on my Old 3DS XL, and both worked.
Here's line-by-line each command I used: (Make sure you have Git and Docker or Docker Desktop installed and running) (I used PowerShell on Windows though it shouldn't be much different on other Operating Systems) git clone https://git.libretro.com/libretro-infrastructure/libretro-build-devkitpro.git docker build libretro-build-devkitpro -f libretro-build-devkitpro\Dockerfile.ctr-legacy docker image ls (this allows you to see what the Image ID of the Docker image is) docker tag INSERT-IMAGE-ID INSERT-WANTED-IMAGE-NAME (to change the Docker image name to something more memorable) docker run -it INSERT-WANTED-IMAGE-NAME /bin/bash (creates and runs container using Docker image for the first time and puts you at a bash shell)
From here you can simply follow the steps on the Wiki and build any Libretro cores and RetroArch. The home directory for the Docker container is the directory /developer (this is not in the /home directory). In addition, since this is an older version of the toolchain with ctrulib 1.1.0, you do not need to type USE_CTRULIB_2=1 when using make.
Once RetroArch has been built with any cores, said cia and 3dsx files can be moved out of the container and onto your actual computer using these commands: (The container must still be running) (Can also use Docker Desktop and go to the 'Files' tab in the container) docker ps (this allows you to see what the container's Container ID or Name is, as long as it is still running) docker container rename INSERT-CONTAINER-ID-OR-NAME INSERT-NEW-CONTAINER-NAME (to change the container name to something more memorable) docker cp INSERT-NEW-CONTAINER-NAME:/path/to/file/on/docker/image "X:\path\to\target\folder\on\actual\computer"
Exiting the container's shell from a first-time run will stop it. To access your container again (which contains all the files you have made and downloaded) after it has been exited, run these commands: docker start INSERT-NEW-CONTAINER-NAME docker exec -it INSERT-NEW-CONTAINER-NAME /bin/bash
To stop the container when run like this, run this command: docker stop INSERT-NEW-CONTAINER-NAME
I hope this helps you and anyone else who is struggling with compiling RetroArch for 3DS.
Description
Having done all the steps outlined in the wiki for compiling Retroarch, it always errors at the last step for compiling it. Here is the error.
It must be noted that this is on Windows 10 using MSYS2.
Expected behavior
The app to compile successfully.
Actual behavior
It fails to compile with the afromentioned errors.
Version/Commit
You can find this information under Information/System Information
Environment information