Files
dspico-firmware/CMakeLists.txt
2025-11-23 17:03:31 +01:00

91 lines
2.5 KiB
CMake

cmake_minimum_required(VERSION 3.13)
#set(PICO_SDK_PATH "../FIRMWARE/pico-sdk") # enable this if vscode or cmake complains about PICO_SDK_PATH not being set
include(pico_sdk_import.cmake)
project(DSpico_project C CXX ASM)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)
pico_sdk_init()
add_compile_definitions(DSpico
PICO_STACK_SIZE=0x600
PICO_CORE1_STACK_SIZE=0x400
ENABLE_R4_MODE
#DSPICO_ENABLE_WRFUXXED # This macro enables the WRFUXXED exploit to work.
# ENABLE_PREVENT_DSI_AUTOBOOT # meant to be used with WRFU, doesn't work properly on the 3ds
)
add_executable(DSpico
src/main.cpp
src/common.h
src/romData.S
src/romData.h
src/blowfish.c
src/blowfish.h
src/powerSaving.c
src/powerSaving.h
src/scrambler.c
src/scrambler.h
src/scramblerRing.c
src/scramblerRing.h
src/ntrCardRom.c
src/ntrCardRom.h
src/ntrCardRomNorm.c
src/ntrCardRomSecure.c
src/ntrCardRomGame.c
src/ntrCardRomGame.h
src/ntrCardRomGameNoScramble.c
src/ntrCardRomGameNoScramble.h
src/ntrCardRomGameSd.cpp
src/ntrCardRomGameR4.cpp
src/ntrCardRomGameUsb.cpp
src/ntrCardRomGameUsb.h
src/usbEventQueue.c
src/usbEventQueue.h
src/tinyusb/dcd_rp2040.c
src/tinyusb/rp2040_usb.c
src/tinyusb/rp2040_usb.h
src/tinyusb/dcd.h
src/tinyusb/tusb_option.h
src/tinyusb/tusb_compiler.h
src/tinyusb/tusb_common.h
src/tinyusb/tusb_config.h
src/tinyusb/tusb_mcu.h
src/tinyusb/tusb_verify.h
src/tinyusb/tusb_types.h
src/tinyusb/tusb_debug.h
src/tinyusb/osal.h
src/tinyusb/osal_none.h
src/ntrCardSpiUart.c
src/ntrCardSpiUart.h
src/wrfuxxed.h
src/wrfuxxed.S
src/xor.S
src/xor.h
src/ntrCardIrq.S
src/r4.h
src/sd/rp2040_sdio.cpp
src/sd/rp2040_sdio.h
src/sd/SdCardInfo.h
src/sd/SdCardInfo.h
src/sd/SdCard.cpp
src/sd/fatfs/diskio.cpp
src/sd/fatfs/diskio.h
src/sd/fatfs/ff.c
src/sd/fatfs/ff.h
src/sd/fatfs/ffconf.h
src/sd/fatfs/ffunicode.c
src/sd/fatfs/ffsystem.c
)
if(EXISTS "${CMAKE_SOURCE_DIR}/roms/default.nds" AND EXISTS "${CMAKE_SOURCE_DIR}/roms/dsimode.nds")
target_compile_definitions(DSpico PRIVATE
DETECT_CONSOLE_TYPE # This macro enables the firmware to switch the rom based on which console is detected. You shouldn't change this.
)
endif()
pico_generate_pio_header(DSpico ${CMAKE_CURRENT_LIST_DIR}/src/ntrCard.pio)
pico_generate_pio_header(DSpico ${CMAKE_CURRENT_LIST_DIR}/src/sd/rp2040_sdio.pio)
pico_enable_stdio_uart(DSpico 1)
pico_add_extra_outputs(DSpico)
target_link_libraries(DSpico pico_stdlib hardware_pio hardware_dma pico_multicore)