From 82cb218befcca8225d64d3c28d3c1d6ab741a4f9 Mon Sep 17 00:00:00 2001 From: Willem Date: Fri, 28 Jun 2024 22:29:37 +0200 Subject: [PATCH] Moved all openMSX data to local bin to enable video recorder. --- README.md | 11 ++++++----- lib/make/mb_openmsx.mk | 5 +++-- lib/openmsx/share/scripts/boot_env.tcl | 5 ++++- test/0module.mk | 15 +++++++++++++-- 4 files changed, 26 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 76280a5..4640697 100644 --- a/README.md +++ b/README.md @@ -33,10 +33,11 @@ The files in this repro try to handle these steps for you. * make + wget + tar + dos2unix * sdcc * openmsx +* ffmpeg (optional, see `test/0module.mk` howto merge videos) For debian use; - apt-get install make wget tar dos2unix sdcc openmsx + apt-get install make wget tar dos2unix sdcc openmsx ffmpeg ## Usage @@ -60,10 +61,10 @@ When you want to see whats happening do a debug run; debug run real msx speed; time MB_OPENMSX_RENDERER=on MB_OPENMSX_THROTTLE=on MB_OPENMSX_SPEED=100 make assert-all real 2m37.379s - - debug run with video recorder; - time MB_OPENMSX_RENDERER=on MB_OPENMSX_RECORDER=on make -s -j4 assert-all - real 0m4.479s + + debug run with video recorder and merge to one video file; + time MB_OPENMSX_RENDERER=on MB_OPENMSX_RECORDER=on make -s assert-all-video + real 0m7.136s build parallel; time make -s -j4 assert-all diff --git a/lib/make/mb_openmsx.mk b/lib/make/mb_openmsx.mk index 576a57a..343865b 100644 --- a/lib/make/mb_openmsx.mk +++ b/lib/make/mb_openmsx.mk @@ -43,7 +43,7 @@ define _mb_openmsx_run FAIL_AFTER_PATH=$(MB_OPENMSX_PATH_BIN) \ BOOT_HDD_PATH="$(1)" \ BOOT_HDD_SIZE=$(MB_OPENMSX_HDD_SIZE) \ - BOOT_HDD_IMAGE="$(1)-omsx/disk-ide-hda.img" \ + BOOT_HDD_IMAGE="$(1)-omsx/persistent/ide-nextor/untitled1/hd.dsk" \ JOYPORTA=$(MB_OPENMSX_JOYPORTA) \ JOYPORTB=$(MB_OPENMSX_JOYPORTB) \ SCALE_FACTOR=$(MB_OPENMSX_SCALE_FACTOR) \ @@ -51,7 +51,8 @@ define _mb_openmsx_run RENDERER=$(MB_OPENMSX_RENDERER) \ RENDERER_TYPE=$(MB_OPENMSX_RENDERER_TYPE) \ THROTTLE=$(MB_OPENMSX_THROTTLE) \ - RECORDER=$(if $(filter on,$(MB_OPENMSX_RECORDER)),"$(1)-omsx/output.avi") \ + RECORDER=$(if $(filter on,$(MB_OPENMSX_RECORDER)),msxbuild-) \ + OPENMSX_HOME="$(1)-omsx" \ OPENMSX_USER_DATA="$(1)-omsx/share" \ $(PATH_OPENMSX)/openmsx \ -machine $(2) \ diff --git a/lib/openmsx/share/scripts/boot_env.tcl b/lib/openmsx/share/scripts/boot_env.tcl index 524aeaa..2e0ed8c 100644 --- a/lib/openmsx/share/scripts/boot_env.tcl +++ b/lib/openmsx/share/scripts/boot_env.tcl @@ -98,8 +98,11 @@ if {[info exists ::env(JOYPORTB)] && ([string trim $::env(JOYPORTB)] != "")} { } if {[info exists ::env(RECORDER)] && ([string trim $::env(RECORDER)] != "")} { - if {[catch {after time 1 "record start [string trim $::env(RECORDER)]"} err_msg]} { + if {[catch {after time 1 "record start -prefix [string trim $::env(RECORDER)]"} err_msg]} { puts stderr "error: env.RECORDER value $err_msg" exit 1 } + after quit { + record stop + } } diff --git a/test/0module.mk b/test/0module.mk index 2511cbc..f523467 100644 --- a/test/0module.mk +++ b/test/0module.mk @@ -1,5 +1,5 @@ -BUILD_HELP += \\n\\t* assert-all \(Run all asertion tests\) +BUILD_HELP += \\n\\t* assert-all \(Run all asertion tests\)\\n\\t* assert-all-video \(Merges all video's to one\) BUILD_TEST := \ test-ahello-m80-assert \ test-ahello-sdcc-assert \ @@ -8,5 +8,16 @@ test-dist-qa-dos2-assert \ test-dist-qa-msx1-assert .PHONY: assert-all -assert-all: $(BUILD_TEST) +assert-all: | $(BUILD_TEST) @echo All assertions completed. + +bin/test/video-merge.lst: | assert-all + @echo === Create video merge listing + ls -1 bin/test/*-omsx/videos/msxbuild-*.avi | awk -F "bin/test/" -v s="file '" -v e="'" '{print s$$2e}' > $@ + +bin/test/video-session.avi: bin/test/video-merge.lst + ffmpeg -f concat -i $< -c copy $@ + +.PHONY: assert-all-video +assert-all-video: bin/test/video-session.avi + @echo Video merge completed.