if (PICO_SDK)
set(BINARIES doom)
else()
# comment out heretic/hexen/strife for now, as whilst they may build, how well they work is unclear
# set(BINARIES doom heretic hexen strife setup)
set(BINARIES doom setup)
endif()
add_subdirectory(adpcm-xq)
foreach(SUBDIR ${BINARIES})
add_subdirectory("${SUBDIR}")
endforeach()
# Common source files used by absolutely everything:
cmake_policy(SET CMP0076 NEW)
if (NOT PICO_SDK)
set(I_PLATFORM sdl)
else()
set(I_PLATFORM pico)
endif()
add_library(common INTERFACE)
target_sources(common INTERFACE
i_main.c
i_system.h
m_argv.c m_argv.h
m_misc.c m_misc.h)
target_compile_definitions(common INTERFACE
#HACK_FINALE_E1M1=1
#HACK_FINALE_SHAREWARE=1
# DEBUG_MOBJ=1
)
if (NOT PICO_SDK)
add_library(common_sdl INTERFACE)
target_sources(common_sdl INTERFACE
i_system.c
)
else()
add_subdirectory(pico)
endif()
target_link_libraries(common INTERFACE common_${I_PLATFORM})
# todo chocolate-server also doesn't currently build
if (NOT PICO_SDK)
# Dedicated server (chocolate-server):
set(DEDSERV_FILES
d_dedicated.c
d_mode.c d_mode.h
i_timer.c i_timer.h
net_common.c net_common.h
net_dedicated.c net_dedicated.h
net_io.c net_io.h
net_packet.c net_packet.h
net_sdl.c net_sdl.h
net_query.c net_query.h
net_server.c net_server.h
net_structrw.c net_structrw.h
z_native.c z_zone.h)
add_executable("${PROGRAM_PREFIX}server" WIN32 ${COMMON_SOURCE_FILES} ${DEDSERV_FILES})
target_include_directories("${PROGRAM_PREFIX}server"
PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/../")
target_link_libraries("${PROGRAM_PREFIX}server" common SDL2::SDL2main SDL2::net)
endif()
# Source files used by the game BINARIES (chocolate-doom, etc.)
add_library(game INTERFACE)
target_sources(game INTERFACE
aes_prng.c aes_prng.h
d_event.c d_event.h
doomkeys.h
doomtype.h
d_iwad.c d_iwad.h
d_loop.c d_loop.h
d_mode.c d_mode.h
d_ticcmd.h
deh_str.c deh_str.h
gusconf.c gusconf.h
i_cdmus.h
i_endoom.h
i_glob.h
i_input.h
i_joystick.h
i_swap.h
i_midipipe.h
i_sound.h
i_timer.h
i_video.h
i_videohr.h
midifile.c midifile.h
mus2mid.c mus2mid.h
m_bbox.c m_bbox.h
m_cheat.c m_cheat.h
m_config.c m_config.h
m_controls.c m_controls.h
m_fixed.c m_fixed.h
net_client.c net_client.h
sha1.c sha1.h
memio.c memio.h
tables.c tables.h
v_diskicon.c v_diskicon.h
v_video.c v_video.h
v_patch.h
w_checksum.c w_checksum.h
w_main.c w_main.h
w_wad.c w_wad.h
w_file.c w_file.h
w_file_posix.c
w_file_memory.c
w_merge.c w_merge.h
z_zone.c z_zone.h
i_oplmusic.c
i_sound.c
)
if (NOT PICO_SDK)
add_library(game_sdl INTERFACE)
target_sources(game_sdl INTERFACE
# todo maybe a separate network library
net_common.c net_common.h
net_dedicated.c net_dedicated.h
net_defs.h
net_gui.c net_gui.h
net_io.c net_io.h
net_loop.c net_loop.h
net_packet.c net_packet.h
net_query.c net_query.h
net_sdl.c net_sdl.h
net_server.c net_server.h
net_structrw.c net_structrw.h
w_file_stdc.c
w_file_win32.c
i_cdmus.c
i_endoom.c
i_glob.c
i_input.c
i_joystick.c
i_midipipe.c
i_musicpack.c
i_pcsound.c
i_sdlmusic.c
i_sdlsound.c
i_timer.c
i_video.c
i_videohr.c
)
else()
add_library(game_pico INTERFACE)
endif()
target_link_libraries(game INTERFACE game_${I_PLATFORM})
if(MSVC)
target_sources(game INTERFACE
"../win32/win_opendir.c" "../win32/win_opendir.h")
endif()
target_link_libraries(game INTERFACE common opl)
add_library(game_deh INTERFACE)
target_sources(game_deh INTERFACE
deh_defs.h
deh_io.c deh_io.h
deh_main.c deh_main.h
deh_mapping.c deh_mapping.h
deh_text.c)
target_link_libraries(game_deh INTERFACE game)
if (NOT PICO_SDK)
set(EXTRA_LIBS SDL2::SDL2main SDL2::SDL2 SDL2::mixer SDL2::net textscreen pcsound)
if(SAMPLERATE_FOUND)
list(APPEND EXTRA_LIBS samplerate::samplerate)
endif()
if(PNG_FOUND)
list(APPEND EXTRA_LIBS PNG::PNG)
endif()
if ("doom" IN_LIST BINARIES)
if(WIN32)
add_executable("${PROGRAM_PREFIX}doom" WIN32 "${CMAKE_CURRENT_BINARY_DIR}/resource.rc")
else()
add_executable("${PROGRAM_PREFIX}doom")
endif()
target_link_libraries("${PROGRAM_PREFIX}doom" PRIVATE game_deh)
target_include_directories("${PROGRAM_PREFIX}doom"
PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/../")
target_link_libraries("${PROGRAM_PREFIX}doom" PRIVATE doom ${EXTRA_LIBS})
if(MSVC)
set_target_properties("${PROGRAM_PREFIX}doom" PROPERTIES
LINK_FLAGS "/MANIFEST:NO")
endif()
endif()
if ("heretic" IN_LIST BINARIES)
if(WIN32)
add_executable("${PROGRAM_PREFIX}heretic" WIN32 "${CMAKE_CURRENT_BINARY_DIR}/resource.rc")
else()
add_executable("${PROGRAM_PREFIX}heretic" )
endif()
target_link_libraries("${PROGRAM_PREFIX}heretic" PRIVATE game_deh)
target_include_directories("${PROGRAM_PREFIX}heretic"
PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/../")
target_link_libraries("${PROGRAM_PREFIX}heretic" PRIVATE heretic ${EXTRA_LIBS})
if(MSVC)
set_target_properties("${PROGRAM_PREFIX}heretic" PROPERTIES
LINK_FLAGS "/MANIFEST:NO")
endif()
endif()
if ("hexen" IN_LIST BINARIES)
if(WIN32)
add_executable("${PROGRAM_PREFIX}hexen" WIN32 "${CMAKE_CURRENT_BINARY_DIR}/resource.rc")
else()
add_executable("${PROGRAM_PREFIX}hexen")
endif()
target_link_libraries("${PROGRAM_PREFIX}hexen" PRIVATE game)
target_include_directories("${PROGRAM_PREFIX}hexen"
PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/../")
target_link_libraries("${PROGRAM_PREFIX}hexen" PRIVATE hexen ${EXTRA_LIBS})
if(MSVC)
set_target_properties("${PROGRAM_PREFIX}hexen" PROPERTIES
LINK_FLAGS "/MANIFEST:NO")
endif()
endif()
if ("strife" IN_LIST BINARIES)
if(WIN32)
add_executable("${PROGRAM_PREFIX}strife" WIN32 ${SOURCE_FILES_WITH_DEH} "${CMAKE_CURRENT_BINARY_DIR}/resource.rc")
else()
add_executable("${PROGRAM_PREFIX}strife" ${SOURCE_FILES_WITH_DEH})
endif()
target_link_libraries("${PROGRAM_PREFIX}strife" PRIVATE game_deh)
target_include_directories("${PROGRAM_PREFIX}strife"
PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/../")
target_link_libraries("${PROGRAM_PREFIX}strife" PRIVATE strife ${EXTRA_LIBS})
if(MSVC)
set_target_properties("${PROGRAM_PREFIX}strife" PROPERTIES
LINK_FLAGS
没有合适的资源?快使用搜索试试~ 我知道了~
用于 Raspberry Pi RP2040微控制器 的全功能 Doom 端口_C语言_代码_相关文件_下载
共779个文件
c:350个
h:256个
in:20个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 159 浏览量
2022-07-07
01:57:20
上传
评论
收藏 4.4MB ZIP 举报
温馨提示
这是 RP2040 设备的 Doom 端口,源自Chocolate Doom。 已经进行了重大更改以支持在 RP2040 设备上运行,但特别是支持在DOOM1.WAD只有 2M 闪存的 Raspberry Pi Pico 上运行 4M 大的整个共享软件! 您可以在此处的博客文章中阅读有关此端口的许多详细信息。 请注意,可以chocolate-doom从这个 RP2040 代码库构建一个有希望的功能齐全的可执行文件,作为验证一切仍然有效的一种手段,但是虽然它们仍然可以构建,但 Hexen、Strife 和 Heretic 几乎肯定会被破坏,因此默认情况下不会构建. 这个代码分支的巧克力末日提交可以在upstream分支中找到。 更多详情、使用方法,请下载后阅读README.md文件
资源推荐
资源详情
资源评论
收起资源包目录
用于 Raspberry Pi RP2040微控制器 的全功能 Doom 端口_C语言_代码_相关文件_下载
(779个子文件)
configure.ac 5KB
Makefile.am 9KB
Makefile.am 9KB
Makefile.am 3KB
Makefile.am 2KB
Makefile.am 2KB
Makefile.am 2KB
Makefile.am 2KB
Makefile.am 2KB
Makefile.am 2KB
Makefile.am 1KB
Makefile.am 1KB
Makefile.am 662B
Makefile.am 549B
Makefile.am 448B
Makefile.am 394B
Makefile.am 277B
Makefile.am 262B
Makefile.am 153B
AUTHORS 217B
info.c 663KB
info.c 409KB
info.c 267KB
setup_icon.c 205KB
icon.c 205KB
info.c 144KB
p_enemy.c 140KB
tables.c 127KB
p_enemy.c 79KB
sv_save.c 74KB
p_pspr.c 70KB
p_mobj.c 69KB
p_enemy.c 67KB
p_map.c 66KB
p_saveg.c 66KB
emu8950.c 65KB
p_inter.c 65KB
r_main.c 63KB
g_game.c 62KB
g_game.c 61KB
sb_bar.c 55KB
d_main.c 54KB
m_config.c 54KB
p_pspr.c 54KB
m_menu.c 53KB
g_game.c 53KB
m_menu.c 53KB
i_video.c 51KB
d_main.c 50KB
p_spec.c 50KB
i_oplmusic.c 49KB
net_server.c 48KB
g_game.c 48KB
mn_menu.c 47KB
p_saveg.c 46KB
p_acs.c 46KB
p_user.c 45KB
p_map.c 45KB
po_man.c 44KB
p_mobj.c 43KB
p_inter.c 43KB
mn_menu.c 43KB
st_stuff.c 43KB
aes_prng.c 41KB
am_map.c 41KB
am_map.c 41KB
piconet.c 40KB
p_map.c 40KB
p_enemy.c 40KB
p_dialog.c 40KB
p_saveg.c 39KB
p_inter.c 38KB
wi_stuff.c 38KB
a_action.c 38KB
opl3.c 38KB
i_musicpack.c 38KB
p_spec.c 37KB
i_video.c 37KB
p_spec.c 37KB
st_stuff.c 35KB
p_doors.c 35KB
sb_bar.c 34KB
deh_htext.c 34KB
i_sdlsound.c 34KB
p_mobj.c 33KB
v_video.c 33KB
wi_stuff.c 33KB
p_map.c 33KB
joystick.c 32KB
p_switch.c 32KB
r_things.c 31KB
p_spec.c 31KB
p_setup.c 31KB
multiplayer.c 30KB
midifile.c 30KB
am_map.c 30KB
p_floor.c 30KB
r_segs.c 29KB
adpcm-xq.c 29KB
net_client.c 29KB
共 779 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
快撑死的鱼
- 粉丝: 2w+
- 资源: 9148
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功