Fixed an issue whereby minigb_apu was being compiled even though sound support was disabled. This was somehow causing the LCD to become corrupted. Additionally added sleep routines during DMA transfer to LCD. Additionally made sound support an option within cmake. Signed-off-by: Mahyar Koshkouei <mk@deltabeard.com>
52 lines
2.0 KiB
CMake
52 lines
2.0 KiB
CMake
cmake_minimum_required(VERSION 3.13...3.23)
|
|
|
|
# initialize the SDK based on PICO_SDK_PATH
|
|
include(pico_sdk_import.cmake)
|
|
|
|
project(RP2040_GB C CXX)
|
|
|
|
# Initialize the Raspberry Pi Pico SDK
|
|
pico_sdk_init()
|
|
|
|
add_executable(RP2040_GB src/main.c src/rom.c src/mk_ili9225.c)
|
|
target_include_directories(RP2040_GB PRIVATE inc)
|
|
|
|
SET(ENABLE_SOUND FALSE CACHE BOOL "Enable Sound emulation")
|
|
if(ENABLE_SOUND)
|
|
ADD_COMPILE_DEFINITIONS(ENABLE_SOUND=1)
|
|
target_sources(RP2040_GB PRIVATE ext/minigb_apu/minigb_apu.c)
|
|
target_include_directories(RP2040_GB PRIVATE ext/minigb_apu)
|
|
else()
|
|
ADD_COMPILE_DEFINITIONS(ENABLE_SOUND=0)
|
|
endif()
|
|
|
|
target_link_libraries(RP2040_GB
|
|
pico_stdlib pico_stdio pico_bootrom pico_multicore pico_stdio pico_multicore
|
|
hardware_clocks hardware_pio hardware_vreg hardware_pio
|
|
hardware_sync hardware_pll hardware_spi hardware_irq hardware_dma
|
|
pico_binary_info)
|
|
target_compile_definitions(RP2040_GB PRIVATE
|
|
PARAM_ASSERTIONS_DISABLE_ALL=1
|
|
PICO_ENTER_USB_BOOT_ON_EXIT=1
|
|
PICO_STDIO_ENABLE_CRLF_SUPPORT=0
|
|
PICO_STDIO_DEFAULT_CRLF=0
|
|
PICO_PRINTF_SUPPORT_FLOAT=0
|
|
PICO_PRINTF_SUPPORT_EXPONENTIAL=0
|
|
PICO_PRINTF_SUPPORT_LONG_LONG=1
|
|
PICO_PRINTF_SUPPORT_PTRDIFF_T=0)
|
|
|
|
function(pico_add_verbose_dis_output TARGET)
|
|
add_custom_command(TARGET ${TARGET} POST_BUILD
|
|
COMMAND ${CMAKE_OBJDUMP} -h $<TARGET_FILE:${TARGET}> >$<IF:$<BOOL:$<TARGET_PROPERTY:${TARGET},OUTPUT_NAME>>,$<TARGET_PROPERTY:${TARGET},OUTPUT_NAME>,$<TARGET_PROPERTY:${TARGET},NAME>>.dis
|
|
COMMAND ${CMAKE_OBJDUMP} -drwCSl $<TARGET_FILE:${TARGET}> >>$<IF:$<BOOL:$<TARGET_PROPERTY:${TARGET},OUTPUT_NAME>>,$<TARGET_PROPERTY:${TARGET},OUTPUT_NAME>,$<TARGET_PROPERTY:${TARGET},NAME>>.dis
|
|
)
|
|
endfunction()
|
|
|
|
pico_set_binary_type(RP2040_GB copy_to_ram)
|
|
#pico_set_binary_type(RP2040_GB no_flash)
|
|
pico_enable_stdio_usb(RP2040_GB 1)
|
|
pico_enable_stdio_uart(RP2040_GB 0)
|
|
pico_add_verbose_dis_output(RP2040_GB)
|
|
pico_add_bin_output(RP2040_GB)
|
|
pico_add_uf2_output(RP2040_GB)
|