Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
fb755b5
wip
mkalkbrenner Feb 8, 2026
af0cfea
Merge branch 'vpinball:master' into master
mkalkbrenner Feb 24, 2026
e70b78a
updated libserum
mkalkbrenner Feb 24, 2026
108f9a1
updated libserum
mkalkbrenner Feb 25, 2026
7f8d0e1
fixed external PUP Trigger handling, fixed line endings
mkalkbrenner Feb 27, 2026
fac2849
allow diabling VNI
mkalkbrenner Feb 27, 2026
adee13a
let dmdserver transport serum commands
mkalkbrenner Feb 27, 2026
63d4291
hardening: safer memcpy
mkalkbrenner Feb 27, 2026
6ee1622
include dmdutil-play-dump in the macos universal package
mkalkbrenner Feb 27, 2026
807ab50
use local miniz
mkalkbrenner Feb 27, 2026
f6f5ce2
added miniz
mkalkbrenner Feb 27, 2026
b0983a7
destructor logging
mkalkbrenner Mar 3, 2026
999fd09
added crash trace handlers for dump-play
mkalkbrenner Mar 3, 2026
01e892c
dont't always start vni thread
mkalkbrenner Mar 4, 2026
7069f10
robust version detection
mkalkbrenner Mar 4, 2026
9d850b0
updated deps
mkalkbrenner Mar 4, 2026
b921f5b
added logging to dump-player
mkalkbrenner Mar 5, 2026
a327a88
added colorization exceludes for specific devices, more entropy on raspi
mkalkbrenner Mar 5, 2026
8a29165
added more entropy
mkalkbrenner Mar 5, 2026
35c24b7
updated libserum
mkalkbrenner Mar 12, 2026
49c0b0b
updated libserum
mkalkbrenner Mar 12, 2026
63cdf01
updated libserum
mkalkbrenner Mar 12, 2026
07902da
updated libserum
mkalkbrenner Mar 12, 2026
b18d8ab
updaeted libserum
mkalkbrenner Mar 15, 2026
0b8dd37
updated libserum
mkalkbrenner Mar 15, 2026
cddc50f
added dmdutil-convert-serum and profiling dump support
mkalkbrenner Mar 16, 2026
bc42885
fixed build
mkalkbrenner Mar 16, 2026
8c86c19
checkout v6
mkalkbrenner Mar 16, 2026
0a35089
fixed build
mkalkbrenner Mar 16, 2026
f0950d1
upload v7 and download v8 actions
mkalkbrenner Mar 16, 2026
77b8bd8
fixed windows build
mkalkbrenner Mar 16, 2026
aaccf6b
added compare dumps
mkalkbrenner Mar 16, 2026
d7bf86f
play dumps can now create performance data. A compare tool can find r…
mkalkbrenner Mar 26, 2026
12ed6e5
added missing header
mkalkbrenner Mar 26, 2026
e7343a6
fixed windows build
mkalkbrenner Mar 26, 2026
bc1962b
Merge branch 'master' into zip_dumps
mkalkbrenner Mar 26, 2026
fa09fe3
misc: enable VNI
jsm174 Mar 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .github/workflows/libdmdutil.yml
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,8 @@ jobs:
cp build/Release/dmdutil_test.exe tmp
cp build/Release/dmdutil-generate-scenes.exe tmp
cp build/Release/dmdutil-play-dump.exe tmp
cp build/Release/dmdutil-convert-serum.exe tmp
cp build/Release/dmdutil-compare-dumps.exe tmp
cp -r test tmp/
cd tmp && 7z a -r ../libdmdutil-${{ needs.version.outputs.tag }}-${{ matrix.platform }}-${{ matrix.arch }}.zip *
- if: (matrix.platform == 'win-mingw')
Expand All @@ -239,6 +241,8 @@ jobs:
cp build/dmdutil_test tmp
cp build/dmdutil-generate-scenes tmp
cp build/dmdutil-play-dump tmp
cp build/dmdutil-convert-serum tmp
cp build/dmdutil-compare-dumps tmp
cp -r test tmp/
cd tmp && tar -czvf ../libdmdutil-${{ needs.version.outputs.tag }}-${{ matrix.platform }}-${{ matrix.arch }}.tar.gz *
- if: (matrix.platform == 'linux')
Expand All @@ -254,6 +258,8 @@ jobs:
cp build/dmdutil_test tmp
cp build/dmdutil-generate-scenes tmp
cp build/dmdutil-play-dump tmp
cp build/dmdutil-convert-serum tmp
cp build/dmdutil-compare-dumps tmp
cp -r test tmp/
cd tmp && tar -czvf ../libdmdutil-${{ needs.version.outputs.tag }}-${{ matrix.platform }}-${{ matrix.arch }}.tar.gz *
- if: (matrix.platform == 'ios' || matrix.platform == 'ios-simulator' || matrix.platform == 'tvos')
Expand Down Expand Up @@ -315,7 +321,7 @@ jobs:
"macos-x64/$filename"
fi
done
for filename in dmdserver dmdserver_test dmdutil_test_s dmdutil_test dmdutil-generate-scenes dmdutil-play-dump; do
for filename in dmdserver dmdserver_test dmdutil_test_s dmdutil_test dmdutil-generate-scenes dmdutil-play-dump dmdutil-convert-serum dmdutil-compare-dumps; do
lipo -create -output "tmp/$filename" \
"macos-arm64/$filename" \
"macos-x64/$filename"
Expand Down
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,14 @@ third-party/include/TimeUtils.h
third-party/include/vni.h
third-party/include/libusb-1.0
.DS_Store

# Local dump/debug artifacts
*.565.txt
*.888.txt
*_dump.json
*_coverage.json
*_coverage_*.json
dump*.txt
dump*.txt.zip
test*.raw
test*.txt
44 changes: 33 additions & 11 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,20 @@ elseif(PLATFORM STREQUAL "android")
endif()

file(READ include/DMDUtil/DMDUtil.h version)
string(REGEX MATCH "DMDUTIL_VERSION_MAJOR[ ]+([0-9]+)" _tmp ${version})
string(REGEX MATCH "#[ \t]*define[ \t]+DMDUTIL_VERSION_MAJOR[ \t]+([0-9]+)" _tmp "${version}")
if("${CMAKE_MATCH_1}" STREQUAL "")
message(FATAL_ERROR "Failed to parse DMDUTIL_VERSION_MAJOR from include/DMDUtil/DMDUtil.h")
endif()
set(VERSION_MAJOR "${CMAKE_MATCH_1}")
string(REGEX MATCH "DMDUTIL_VERSION_MINOR[ ]+([0-9]+)" _tmp ${version})
string(REGEX MATCH "#[ \t]*define[ \t]+DMDUTIL_VERSION_MINOR[ \t]+([0-9]+)" _tmp "${version}")
if("${CMAKE_MATCH_1}" STREQUAL "")
message(FATAL_ERROR "Failed to parse DMDUTIL_VERSION_MINOR from include/DMDUtil/DMDUtil.h")
endif()
set(VERSION_MINOR "${CMAKE_MATCH_1}")
string(REGEX MATCH "DMDUTIL_VERSION_PATCH[ ]+([0-9]+)" _tmp ${version})
string(REGEX MATCH "#[ \t]*define[ \t]+DMDUTIL_VERSION_PATCH[ \t]+([0-9]+)" _tmp "${version}")
if("${CMAKE_MATCH_1}" STREQUAL "")
message(FATAL_ERROR "Failed to parse DMDUTIL_VERSION_PATCH from include/DMDUtil/DMDUtil.h")
endif()
set(VERSION_PATCH "${CMAKE_MATCH_1}")

project(dmdutil VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}"
Expand Down Expand Up @@ -86,6 +95,12 @@ if(CMAKE_BUILD_TYPE STREQUAL "Debug")
endif()
endif()

set(MINIZ_SOURCE "third-party/include/miniz/miniz.c")
set(MINIZ_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third-party/include")
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${MINIZ_SOURCE}")
message(FATAL_ERROR "Could not find required local miniz source: ${MINIZ_SOURCE}")
endif()

set(DMDUTIL_SOURCES
src/Config.cpp
src/DMD.cpp
Expand All @@ -95,10 +110,9 @@ set(DMDUTIL_SOURCES
src/Logger.cpp
src/AlphaNumeric.cpp
src/DMDServer.cpp
${MINIZ_SOURCE}
)

set(DMDUTIL_COMPILE_DEFINITIONS "")

if(PLATFORM STREQUAL "win" OR PLATFORM STREQUAL "win-mingw" OR PLATFORM STREQUAL "macos" OR PLATFORM STREQUAL "linux")
list(APPEND DMDUTIL_SOURCES
src/PixelcadeDMD.cpp
Expand All @@ -109,15 +123,13 @@ endif()
set(DMDUTIL_INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/include
third-party/include
${MINIZ_INCLUDE_DIR}
)

if(BUILD_SHARED)
add_library(dmdutil_shared SHARED ${DMDUTIL_SOURCES})

target_include_directories(dmdutil_shared PUBLIC ${DMDUTIL_INCLUDE_DIRS})
if(DMDUTIL_COMPILE_DEFINITIONS)
target_compile_definitions(dmdutil_shared PUBLIC ${DMDUTIL_COMPILE_DEFINITIONS})
endif()

if(PLATFORM STREQUAL "win")
target_link_directories(dmdutil_shared PUBLIC
Expand Down Expand Up @@ -206,15 +218,28 @@ if(BUILD_SHARED)

add_executable(dmdutil-play-dump
src/playDump.cpp
${MINIZ_SOURCE}
)
target_link_libraries(dmdutil-play-dump PUBLIC dmdutil_shared)

add_executable(dmdutil-convert-serum
src/convertSerum.cpp
)
target_link_libraries(dmdutil-convert-serum PUBLIC dmdutil_shared)

add_executable(dmdutil-compare-dumps
src/compareJsonDumps.cpp
)
target_link_libraries(dmdutil-compare-dumps PUBLIC dmdutil_shared)

if(POST_BUILD_COPY_EXT_LIBS)
add_dependencies(dmdserver copy_ext_libs)
add_dependencies(dmdserver_test copy_ext_libs)
add_dependencies(dmdutil_test copy_ext_libs)
add_dependencies(dmdutil-generate-scenes copy_ext_libs)
add_dependencies(dmdutil-play-dump copy_ext_libs)
add_dependencies(dmdutil-convert-serum copy_ext_libs)
add_dependencies(dmdutil-compare-dumps copy_ext_libs)
endif()
endif()
endif()
Expand All @@ -223,9 +248,6 @@ if(BUILD_STATIC)
add_library(dmdutil_static STATIC ${DMDUTIL_SOURCES})

target_include_directories(dmdutil_static PUBLIC ${DMDUTIL_INCLUDE_DIRS})
if(DMDUTIL_COMPILE_DEFINITIONS)
target_compile_definitions(dmdutil_static PUBLIC ${DMDUTIL_COMPILE_DEFINITIONS})
endif()

if(PLATFORM STREQUAL "win" OR PLATFORM STREQUAL "win-mingw")
set_target_properties(dmdutil_static PROPERTIES
Expand Down
Loading
Loading