git: 9347c06ee7a1 - main - emulators/mame: Update to 0.261

From: Daniel Engberg <diizzy_at_FreeBSD.org>
Date: Sun, 31 Dec 2023 07:34:26 UTC
The branch main has been updated by diizzy:

URL: https://cgit.FreeBSD.org/ports/commit/?id=9347c06ee7a1a115879ffd3d212586ae7b2788da

commit 9347c06ee7a1a115879ffd3d212586ae7b2788da
Author:     Alastair Hogge <agh@riseup.net>
AuthorDate: 2023-12-31 07:28:23 +0000
Commit:     Daniel Engberg <diizzy@FreeBSD.org>
CommitDate: 2023-12-31 07:34:21 +0000

    emulators/mame: Update to 0.261
    
    * Make use of ${EXTRACT_AFTER_ARGS} for a number of files/dirs that are
      not required for MAME on FreeBSD, this removes some post-patch work
      from the Makefile
    * Avoid extracting bgfx shaders for proprietary systems
    * Avoid extracting the man page for ldplayer, as it is not built
    * Update option TOOLS description
    * Increase the default amount of information produced when built with
      DEBUG
    * Drop the conditional logic for powerpc, and use LLVM-16 for all
      FreeBSD-14+ builds
    * Move some NLS logic deleting .po files to ${COPYTREE_SHARE}, and
      simple exclude copying those files to ${STAGEDIR}. This was originally
      in the wrong Makefile target, port-build
    * Add two more MAME ${SUBTARGETS} as tools; mamevirtual provides similar
      ldplayer functionality thru the MAME GUI
    * Remove hard-coded names from do-install-TOOLS-on Makefile target
    * Remove local upstream patches that were required to build 0.259
    * Reduce diff files/patch-makefile
    * Use -O3 over -Ofast for speed focused compiler flags
    * Drop some patches that are not required for unbundling GENie
    * Add comments to some patches
    * Move "${RM} -r ${WRKSRC}/docs/build/html/_sources" from do-build-DOCS-on, to "-not -regex ^./_sources.*" in do-install-DOCS-on
    
    Changelog: https://www.mamedev.org/?p=532
    
    PR:             274783
---
 emulators/mame/Makefile                            | 191 +++----
 emulators/mame/distinfo                            |   6 +-
 .../mame/files/patch-3rdparty_bx_include_bx_bx.h   |  12 +
 emulators/mame/files/patch-3rdparty_bx_makefile    |  13 +
 ...h-3rdparty_genie_build_gmake.freebsd_genie.make |  63 ---
 .../files/patch-3rdparty_genie_src_host_scripts.c  |  16 -
 .../files/patch-3rdparty_genie_src_tools_gcc.lua   |  15 -
 ...patch-3rdparty_genie_tests_test__gmake__cpp.lua |  15 -
 emulators/mame/files/patch-makefile                |  30 +-
 emulators/mame/files/patch-scripts_genie.lua       |  34 ++
 emulators/mame/files/patch-scripts_src_main.lua    |  21 +
 .../mame/files/patch-scripts_src_osd_modules.lua   |  43 ++
 emulators/mame/files/patch-scripts_src_osd_sdl.lua |  24 +
 .../mame/files/patch-scripts_src_osd_sdl__cfg.lua  |  45 ++
 .../mame/files/patch-src_devices_cpu_sh_sh7021.cpp |  10 -
 .../mame/files/patch-src_devices_cpu_sh_sh7032.cpp |  10 -
 ...h-src_osd_modules_render_bgfx_shadermanager.cpp |  21 +
 emulators/mame/files/patch-src_osd_sdl_sdlprefix.h |   2 +
 emulators/mame/pkg-plist                           | 566 +--------------------
 19 files changed, 354 insertions(+), 783 deletions(-)

diff --git a/emulators/mame/Makefile b/emulators/mame/Makefile
index 8252e5a0efba..79486591c88a 100644
--- a/emulators/mame/Makefile
+++ b/emulators/mame/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	mame
-DISTVERSION=	0.259
-PORTREVISION=	1
+DISTVERSION=	0.261
 CATEGORIES=	emulators games
 
 MAINTAINER=	agh@riseup.net
@@ -22,6 +21,8 @@ ONLY_FOR_ARCHS=	aarch64 amd64 armv7 i386 powerpc powerpc64 powerpc64le
 ONLY_FOR_ARCHS_REASON=	not yet ported to any architecture other than armv7, arm64, x86, and powerpc*
 
 BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}sphinxcontrib-svg2pdfconverter>0:textproc/py-sphinxcontrib-svg2pdfconverter@${PY_FLAVOR} \
+		asio>0:net/asio \
+		genie:devel/genie \
 		glm>0:math/glm \
 		rapidjson>0:devel/rapidjson
 LIB_DEPENDS=	libexpat.so:textproc/expat2 \
@@ -30,12 +31,11 @@ LIB_DEPENDS=	libexpat.so:textproc/expat2 \
 		libfreetype.so:print/freetype2 \
 		libportmidi.so:audio/portmidi \
 		libpugixml.so:textproc/pugixml \
-		libutf8proc.so:textproc/utf8proc \
-		libuv.so:devel/libuv
+		libutf8proc.so:textproc/utf8proc
 RUN_DEPENDS=	liberation-fonts-ttf>=0:x11-fonts/liberation-fonts-ttf
 
-USES=		compiler:c++17-lang gl gmake jpeg localbase lua:54 pkgconfig \
-		python:3.9,build sdl shebangfix sqlite:3 xorg
+USES=		compiler:c++17-lang gl gmake jpeg llvm:min=16 localbase \
+		pkgconfig python:3.9,build sdl shebangfix sqlite:3 xorg
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	mamedev
@@ -45,16 +45,20 @@ USE_SDL=	sdl2 ttf2
 USE_XORG=	x11 xext xi xinerama xrender
 
 MAKEFILE=	makefile
-MAKE_ARGS=	TARGETOS=freebsd \
-		VERBOSE=1
-MAKE_ENV=	LDOPTS="${LDFLAGS}" \
-		NO_USE_PORTAUDIO=1 \
+MAKE_ARGS=	SILENT= \
+		verbose=yes
+MAKE_ENV=	NO_USE_PORTAUDIO=1 \
 		NO_USE_PULSEAUDIO=1 \
 		NOWERROR=1 \
-		OPT_FLAGS="${CXXFLAGS}" \
+		OVERRIDE_AR="llvm-ar${LLVM_VERSION}" \
+		OVERRIDE_CC="clang${LLVM_VERSION}" \
+		OVERRIDE_CXX="clang++${LLVM_VERSION}" \
+		OVERRIDE_LD="lld${LLVM_VERSION}" \
 		PRECOMPILE=0 \
 		PYTHON_EXECUTABLE="${PYTHON_CMD}" \
+		TARGETOS=freebsd \
 		USE_PCAP=1 \
+		USE_SYSTEM_LIB_ASIO=1 \
 		USE_SYSTEM_LIB_EXPAT=1 \
 		USE_SYSTEM_LIB_FLAC=1 \
 		USE_SYSTEM_LIB_GLM=1 \
@@ -64,69 +68,92 @@ MAKE_ENV=	LDOPTS="${LDFLAGS}" \
 		USE_SYSTEM_LIB_RAPIDJSON=1 \
 		USE_SYSTEM_LIB_SQLITE3=1 \
 		USE_SYSTEM_LIB_UTF8PROC=1 \
-		USE_SYSTEM_LIB_UV=1 \
 		USE_SYSTEM_LIB_ZLIB=1 \
 		USE_TAPTUN=1
 
 CFLAGS_aarch64=	-march=armv8-a+crc+crypto
 
+EXTRACT_AFTER_ARGS=	${_DIST_EXCLUDES:S,^,--exclude ,}
+
 SUB_FILES=	mame.ini pkg-message plugin.ini ui.ini
 
 PORTDOCS=	html/*
 
-OPTIONS_DEFINE=	DEBUG DOCS NLS QTDEBUGGER TOOLS
-OPTIONS_SUB=	yes
-
-DEBUG_DESC=		Build with debug profiling and symbols
-DOCS_DESC=		Install extensive online MAME documentation
-NLS_DESC=		Install language translations for use in the GUI
-QTDEBUGGER_DESC=	Build with Qt interactive low-level machine debugger
-TOOLS_DESC=		Install tools for machine archiving and development
-
-DEBUG_MAKE_ENV=			DEBUG=1 \
-				OPTIMIZE=0 \
-				PROFILER=1 \
-				SYMBOLS=1
-DEBUG_MAKE_ENV_OFF=		OPTIMIZE=2 \
-				STRIP_SYMBOLS=1
+OPTIONS_DEFINE=			DOCS NLS OPENMP QTDEBUGGER SSE2 TOOLS
+OPTIONS_RADIO=			BUILDTYPE
+OPTIONS_RADIO_BUILDTYPE=	DEBUG SIZE_OPTIMIZED_CFLAGS \
+				SPEED_OPTIMIZED_CFLAGS
+.if !exists(/usr/include/omp.h)
+OPTIONS_EXCLUDE=		OPENMP
+.endif
+OPTIONS_SUB=			yes
+
+BUILDTYPE_DESC=			Application production type
+DEBUG_DESC=			Produce profiling data, and symbols for debugging
+DOCS_DESC=			Install extensive online MAME documentation
+NLS_DESC=			Install language translations for use in the GUI
+QTDEBUGGER_DESC=		Build with Qt interactive low-level machine debugger
+SIZE_OPTIMIZED_CFLAGS_DESC=	Optimize for smaller binaries (-Os)
+SPEED_OPTIMIZED_CFLAGS_DESC=	Optimize for faster binaries (-O3)
+SSE2_DESC=			Build with Streaming SIMD Extensions 2
+TOOLS_DESC=			Additional tools for archiving, development, and multimedia
+
+DEBUG_MAKE_ENV=				DEBUG=1 \
+					OPTIMIZE=g \
+					STRIP_SYMBOLS=0
+DEBUG_MAKE_ENV_OFF=			STRIP_SYMBOLS=1
 # Attempt to avoid address space exhaustion during linking, specifically
 # on armv7, and possibly other architectures:
-DEBUG_LDFLAGS_OFF=		-s
-NLS_USES=			gettext-runtime
-QTDEBUGGER_USES=		qt:5
-QTDEBUGGER_USE=			QT=core,gui,widgets,buildtools:build,qmake:build
-QTDEBUGGER_MAKE_ENV=		USE_QTDEBUG=1
-QTDEBUGGER_MAKE_ENV_OFF=	USE_QTDEBUG=0
-TOOLS_MAKE_ENV=			TOOLS=1
-TOOLS_MAKE_ENV_OFF=		TOOLS=0
-
-_GENIE=		${WRKSRC}/3rdparty/genie
+DEBUG_LDFLAGS_OFF=			-s
+NLS_USES=				gettext-runtime
+OPENMP_MAKE_ENV=			OPENMP=1
+OPENMP_MAKE_ENV_OFF=			OPENMP=0
+QTDEBUGGER_USES=			qt:6
+QTDEBUGGER_USE=				QT=base,tools:build
+QTDEBUGGER_MAKE_ENV=			QT_HOME="${PREFIX}" \
+					USE_QTDEBUG=1
+QTDEBUGGER_MAKE_ENV_OFF=		USE_QTDEBUG=0
+SIZE_OPTIMIZED_CFLAGS_MAKE_ENV=		OPTIMIZE=s
+SIZE_OPTIMIZED_CFLAGS_CXXFLAGS=		-Os
+SPEED_OPTIMIZED_CFLAGS_MAKE_ENV=	OPTIMIZE=3
+SPEED_OPTIMIZED_CFLAGS_CXXFLAGS=	-O3
+SSE2_MAKE_ENV=				SSE2=1
+SSE2_MAKE_ENV_OFF=			SSE2=0
+TOOLS_MAKE_ENV=				TOOLS=1
+TOOLS_MAKE_ENV_OFF=			TOOLS=0
+
+# man page for command line utility that is not built at all:
+_DIST_EXCLUDES=		docs/man/ldplayer.1
+# Libraries, and shaders for proprietary platforms:
+_DIST_EXCLUDES+=	"bgfx/shaders/dx*" \
+			3rdparty/bgfx/examples/runtime/shaders/dx11 \
+			3rdparty/bgfx/examples/runtime/shaders/metal \
+			3rdparty/dxsdk bgfx/shaders/metal
+# Headers that mask system abstractions required to build MAME:
+_DIST_EXCLUDES+=	3rdparty/bx/include/compat/freebsd/dirent.h \
+			3rdparty/bx/include/compat/freebsd/signal.h
+# Make use of Ports instead of bundled libraries:
+_DIST_EXCLUDES+=	3rdparty/expat 3rdparty/glm 3rdparty/libflac \
+			3rdparty/libjpeg 3rdparty/portmidi 3rdparty/pugixml \
+			3rdparty/rapidjson 3rdparty/sqlite3 \
+			3rdparty/utf8proc 3rdparty/zlib
+# Bundled libraries not used at all:
+_DIST_EXCLUDES+=	3rdparty/genie 3rdparty/portaudio 3rdparty/tap-windows6
+# pre-built GENie binaries for other platforms:
+_DIST_EXCLUDES+=	3rdparty/bx/tools/bin
 
 .include <bsd.port.options.mk>
 
-.if ${PORT_OPTIONS:MDEBUG}
-WITH_DEBUG=	yes
+.if ${ARCH:Maarch64} || ${ARCH:Mamd64} || ${ARCH:Mpowerpc64*}
+MAKE_ENV+=	PTR64=1
 .endif
 
-.if ${OPSYS} == FreeBSD && ${OSVERSION} > 1400000
-.if ${ARCH:Mpowerpc*}
-USES+=		llvm:min=16,build
-.else
-USES+=		llvm:15,build
-.endif
-MAKE_ENV+=	OVERRIDE_AR="llvm-ar${LLVM_VERSION}" \
-		OVERRIDE_CC="clang${LLVM_VERSION}" \
-		OVERRIDE_CXX="clang++${LLVM_VERSION}" \
-		OVERRIDE_LD="lld${LLVM_VERSION}"
+# Compiling with -pg (PROFILE) causes the linker to run out of memory on i386,
+# build with less profiling data:
+.if ${ARCH:Mi386}
+DEBUG_MAKE_ENV+=	PROFILER=1
 .else
-MAKE_ENV+=	OVERRIDE_AR="${AR}" \
-		OVERRIDE_CC="${CC}" \
-		OVERRIDE_CXX="${CXX}" \
-		OVERRIDE_LD="${LD}"
-.endif
-
-.if ${ARCH:Maarch64} || ${ARCH:Mamd64} || ${ARCH:Mpowerpc64*}
-MAKE_ARGS+=	PTR64=1
+DEBUG_MAKE_ENV+=	PROFILE=1
 .endif
 
 post-extract:
@@ -134,27 +161,30 @@ post-extract:
 		${WRKSRC}/src/lib/util/localpng.h
 
 post-patch:
-# Prefer some system headers over bundled.
-	${RM} ${WRKSRC}/3rdparty/bx/include/compat/freebsd/dirent.h
-	${RM} ${WRKSRC}/3rdparty/bx/include/compat/freebsd/signal.h
-# Accommodate GENie conception of BSD.
-	${MV} ${_GENIE}/build/gmake.freebsd \
-		${_GENIE}/build/gmake.bsd
 # Patch build to use bundled PNG.
 	${GREP} -rl '"png.h"' ${WRKSRC}/src | \
 		${XARGS} ${REINPLACE_CMD} -e 's|"png.h"|"localpng.h"|'
 	${REINPLACE_CMD} -e 's|"util/png.h"|"util/localpng.h"|' \
 		${WRKSRC}/src/frontend/mame/ui/icorender.cpp
+# Patch build to use GENie from Ports:
+	${REINPLACE_CMD} -e 's|%%GENIE_PREFIX%%|${PREFIX}/bin/|' \
+	${WRKSRC}/makefile \
+		${WRKSRC}/3rdparty/bx/makefile
 
 do-build-DOCS-on:
 	(cd ${WRKSRC}/docs && \
 		${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} html SPHINXBUILD=sphinx-build-${PYTHON_VER})
-	${RM} ${WRKSRC}/docs/build/html/.buildinfo
 
 post-build:
 	(cd ${WRKSRC}/docs && \
 		${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} man SPHINXBUILD=sphinx-build-${PYTHON_VER})
-	${FIND} ${WRKSRC}/language -type f -name "*.po" -delete
+
+post-build-TOOLS-on:
+.for EXTRA_TOOL in nl virtual
+	(cd ${WRKSRC} && \
+		${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} SUBTARGET=${EXTRA_TOOL} \
+		TOOLS=0)
+.endfor
 
 do-install:
 .for DATA in artwork bgfx ctrlr ini hash plugins samples
@@ -171,38 +201,27 @@ do-install:
 	${INSTALL_DATA} ${WRKSRC}/keymaps/km_${KEYMAP}_LINUX.map \
 		${STAGEDIR}${DATADIR}/keymaps/km_${KEYMAP}.map
 .endfor
-	${INSTALL_MAN} ${WRKSRC}/docs/build/man/MAME.1 \
+	${INSTALL_MAN} ${WRKSRC}/docs/build/man/${PORTNAME:tu}.1 \
 		${STAGEDIR}${PREFIX}/share/man/man1
-	${INSTALL_MAN} ${WRKSRC}/docs/man/mame.6 \
+	${INSTALL_MAN} ${WRKSRC}/docs/man/${PORTNAME}.6 \
 		${STAGEDIR}${PREFIX}/share/man/man6
-
-do-install-DEBUG-on:
-	${INSTALL_PROGRAM} ${WRKSRC}/mamed \
-		${STAGEDIR}${PREFIX}/bin/mame
-
-do-install-DEBUG-off:
-	${INSTALL_PROGRAM} ${WRKSRC}/mame \
-		${STAGEDIR}${PREFIX}/bin/
+	${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} \
+		${STAGEDIR}${PREFIX}/bin/${PORTNAME}
 
 do-install-DOCS-on:
 	${MKDIR} ${STAGEDIR}${DOCSDIR}
 	(cd ${WRKSRC}/docs/build && \
-		${COPYTREE_SHARE} html ${STAGEDIR}${DOCSDIR})
+		${COPYTREE_SHARE} html ${STAGEDIR}${DOCSDIR} "! -name .buildinfo -not -regex ^./_sources.*")
 
 do-install-NLS-on:
 	(cd ${WRKSRC} && \
-		${COPYTREE_SHARE} language ${STAGEDIR}${DATADIR})
+		${COPYTREE_SHARE} language ${STAGEDIR}${DATADIR} "! -name *.po")
 
 do-install-TOOLS-on:
-.for PROGRAM in castool chdman floptool imgtool jedutil ldresample ldverify \
-	nltool nlwav pngcmp regrep romcmp split srcclean testkeys unidasm
-	${INSTALL_PROGRAM} ${WRKSRC}/${PROGRAM} \
-		${STAGEDIR}${PREFIX}/bin
-.endfor
-.for MANUAL in castool chdman floptool imgtool jedutil ldplayer ldresample \
-	ldverify romcmp
-	${INSTALL_MAN} ${WRKSRC}/docs/man/${MANUAL}.1 \
+	${FIND} ${WRKSRC} -depth 1 -type f -and ! -type d -and ! -name ${PORTNAME} \
+		-perm -o=+x -exec ${INSTALL_PROGRAM} {} ${STAGEDIR}${PREFIX}/bin/ \
+		\;
+	${INSTALL_MAN} ${WRKSRC}/docs/man/*.1 \
 		${STAGEDIR}${PREFIX}/share/man/man1
-.endfor
 
 .include <bsd.port.mk>
diff --git a/emulators/mame/distinfo b/emulators/mame/distinfo
index c6c3ad610364..12829bb47368 100644
--- a/emulators/mame/distinfo
+++ b/emulators/mame/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1696318535
-SHA256 (mamedev-mame-0.259-mame0259_GH0.tar.gz) = 46baf431079a3373ffe8d984b3ba5d62ad5b1d5e356d1f60cf60f6ad03d4cec6
-SIZE (mamedev-mame-0.259-mame0259_GH0.tar.gz) = 205063121
+TIMESTAMP = 1701211578
+SHA256 (mamedev-mame-0.261-mame0261_GH0.tar.gz) = 51d5ce1563897709ceb7a924c31a70cc5ff2bec466aab8d0cc9ff3cc72b38899
+SIZE (mamedev-mame-0.261-mame0261_GH0.tar.gz) = 205499989
diff --git a/emulators/mame/files/patch-3rdparty_bx_include_bx_bx.h b/emulators/mame/files/patch-3rdparty_bx_include_bx_bx.h
new file mode 100644
index 000000000000..ae933531b0a4
--- /dev/null
+++ b/emulators/mame/files/patch-3rdparty_bx_include_bx_bx.h
@@ -0,0 +1,12 @@
+ Remove conflict with system alloca.
+
+--- 3rdparty/bx/include/bx/bx.h.orig	2023-11-10 16:47:29 UTC
++++ 3rdparty/bx/include/bx/bx.h
+@@ -6,7 +6,6 @@
+ #ifndef BX_H_HEADER_GUARD
+ #define BX_H_HEADER_GUARD
+ 
+-#include <alloca.h> // alloca
+ #include <stdarg.h> // va_list
+ #include <stdint.h> // uint32_t
+ #include <stdlib.h> // size_t
diff --git a/emulators/mame/files/patch-3rdparty_bx_makefile b/emulators/mame/files/patch-3rdparty_bx_makefile
new file mode 100644
index 000000000000..33c6ab6f25d9
--- /dev/null
+++ b/emulators/mame/files/patch-3rdparty_bx_makefile
@@ -0,0 +1,13 @@
+ Remove hard coded genie binary to enable depending on devel/genie.
+
+--- 3rdparty/bx/makefile.orig	2023-10-23 15:53:41 UTC
++++ 3rdparty/bx/makefile
+@@ -3,7 +3,7 @@
+ # License: https://github.com/bkaradzic/bx/blob/master/LICENSE
+ #
+ 
+-GENIE=../bx/tools/bin/$(OS)/genie
++GENIE=%%GENIE_PREFIX%%genie
+ 
+ all:
+ 	$(GENIE)                       vs2017
diff --git a/emulators/mame/files/patch-3rdparty_genie_build_gmake.freebsd_genie.make b/emulators/mame/files/patch-3rdparty_genie_build_gmake.freebsd_genie.make
deleted file mode 100644
index d528ea1d3b91..000000000000
--- a/emulators/mame/files/patch-3rdparty_genie_build_gmake.freebsd_genie.make
+++ /dev/null
@@ -1,63 +0,0 @@
---- 3rdparty/genie/build/gmake.freebsd/genie.make.orig	2023-05-26 04:14:50 UTC
-+++ 3rdparty/genie/build/gmake.freebsd/genie.make
-@@ -28,9 +28,9 @@ endif
-   RM    = $(SILENT) del /F "$(subst /,\\,$(1))" 2> nul || exit 0
- endif
- 
--CC  = gcc
--CXX = g++
--AR  = ar
-+CC  ?= gcc
-+CXX ?= g++
-+AR  ?= ar
- 
- ifndef RESCOMP
-   ifdef WINDRES
-@@ -49,17 +49,17 @@ ifeq ($(config),release)
-   DEFINES            += -DNDEBUG -DLUA_COMPAT_MODULE -DLUA_USE_POSIX -DLUA_USE_DLOPEN
-   INCLUDES           += -I"../../src/host/lua-5.3.0/src"
-   ALL_CPPFLAGS       += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES)
--  ALL_ASMFLAGS       += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os $(MPARAM)
--  ALL_CFLAGS         += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os $(MPARAM)
--  ALL_CXXFLAGS       += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os $(MPARAM)
--  ALL_OBJCFLAGS      += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os $(MPARAM)
--  ALL_OBJCPPFLAGS    += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os $(MPARAM)
-+  ALL_ASMFLAGS       += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS)  -Wall -Wextra -Os $(MPARAM)
-+  ALL_CFLAGS         += $(CFLAGS) $(ALL_CPPFLAGS)  -Wall -Wextra -Os $(MPARAM)
-+  ALL_CXXFLAGS       += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS)  -Wall -Wextra -Os $(MPARAM)
-+  ALL_OBJCFLAGS      += $(CFLAGS) $(ALL_CPPFLAGS)  -Wall -Wextra -Os $(MPARAM)
-+  ALL_OBJCPPFLAGS    += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS)  -Wall -Wextra -Os $(MPARAM)
-   ALL_RESFLAGS       += $(RESFLAGS) $(DEFINES) $(INCLUDES)
-   ALL_LDFLAGS        += $(LDFLAGS) -L. -s -rdynamic
-   LDDEPS             +=
-   LIBS               += $(LDDEPS) -lm
-   EXTERNAL_LIBS      +=
--  LINKCMD             = $(CC) -o $(TARGET) $(OBJECTS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS)
-+  LINKCMD             = $(CC) -o $(TARGET) $(OBJECTS) $(RESOURCES)  $(ALL_LDFLAGS) $(LIBS)
-   OBJECTS := \
- 	$(OBJDIR)/src/host/lua-5.3.0/src/lapi.o \
- 	$(OBJDIR)/src/host/lua-5.3.0/src/lauxlib.o \
-@@ -132,17 +132,17 @@ ifeq ($(config),debug)
-   DEFINES            += -D_DEBUG -DLUA_COMPAT_MODULE -DLUA_USE_POSIX -DLUA_USE_DLOPEN
-   INCLUDES           += -I"../../src/host/lua-5.3.0/src"
-   ALL_CPPFLAGS       += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES)
--  ALL_ASMFLAGS       += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g
--  ALL_CFLAGS         += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g
--  ALL_CXXFLAGS       += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g
--  ALL_OBJCFLAGS      += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g
--  ALL_OBJCPPFLAGS    += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g
-+  ALL_ASMFLAGS       += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS)  -Wall -Wextra -g
-+  ALL_CFLAGS         += $(CFLAGS) $(ALL_CPPFLAGS)  -Wall -Wextra -g
-+  ALL_CXXFLAGS       += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS)  -Wall -Wextra -g
-+  ALL_OBJCFLAGS      += $(CFLAGS) $(ALL_CPPFLAGS)  -Wall -Wextra -g
-+  ALL_OBJCPPFLAGS    += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS)  -Wall -Wextra -g
-   ALL_RESFLAGS       += $(RESFLAGS) $(DEFINES) $(INCLUDES)
-   ALL_LDFLAGS        += $(LDFLAGS) -L. -rdynamic
-   LDDEPS             +=
-   LIBS               += $(LDDEPS) -lm
-   EXTERNAL_LIBS      +=
--  LINKCMD             = $(CC) -o $(TARGET) $(OBJECTS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS)
-+  LINKCMD             = $(CC) -o $(TARGET) $(OBJECTS) $(RESOURCES)  $(ALL_LDFLAGS) $(LIBS)
-   OBJECTS := \
- 	$(OBJDIR)/src/host/lua-5.3.0/src/lapi.o \
- 	$(OBJDIR)/src/host/lua-5.3.0/src/lauxlib.o \
diff --git a/emulators/mame/files/patch-3rdparty_genie_src_host_scripts.c b/emulators/mame/files/patch-3rdparty_genie_src_host_scripts.c
deleted file mode 100644
index 044cf87ada38..000000000000
--- a/emulators/mame/files/patch-3rdparty_genie_src_host_scripts.c
+++ /dev/null
@@ -1,16 +0,0 @@
---- 3rdparty/genie/src/host/scripts.c.orig	2023-05-22 09:40:13 UTC
-+++ 3rdparty/genie/src/host/scripts.c
-@@ -237,10 +237,10 @@ const char* builtin_scripts[] = {
- 	"exit 0')\n_p('  COPY  = $(SILENT) copy /Y \"$(subst /,\\\\\\\\,$(1))\" \"$(subst /,\\\\\\\\,$(2))\"')\n_p('  RM    = $(SILENT) del /F \"$(subst /,\\\\\\\\,$(1))\" 2> nul || exit 0')\n_p('endif')\n_p('')\n_p('CC  = %s', cc.cc)\n_p('CXX = %s', cc.cxx)\n_p('AR  = %s', cc.ar)\n_p('')\n_p('ifndef RESCOMP')\n_p('  ifdef WINDRES')\n_p('    RESCOMP = $(WINDRES)')\n_p('  else')\n_p('    RESCOMP = %s', cc.rc or 'windres')\n_p('  endif')\n_p('endif')\n_p('')\nif (not premake.make.makefile_ignore) then\n_p('MAKEFILE = %s', _MAKE.getmakefilename(prj, true))\n_p('')\nend\nend\nlocal function is_excluded(prj, cfg, file)\nif table.icontains(prj.excludes, file) then\nreturn true\nend\nif table.icontains(cfg.excludes, file) then\nreturn true\nend\nreturn false\nend\nfunction premake.gmake_cpp_configs(prj, cc, platforms)\nfor _, platform in ipairs(platforms) do\nfor cfg in premake.eachconfig(prj, platform) do\npremake.gmake_cpp_config(prj, cfg, cc)\nend\nend\nend\nfunction premake.gmake_cpp_config(
 prj, cfg, cc)\n_p('ifeq ($(conf"
- 	"ig),%s)', _MAKE.esc(cfg.shortname))\ncpp.platformtools(cfg, cc)\nlocal targetDir = _MAKE.esc(cfg.buildtarget.directory)\n_p('  ' .. (table.contains(premake.make.override,\"OBJDIR\") and \"override \" or \"\") ..    'OBJDIR              = %s', _MAKE.esc(cfg.objectsdir))\n_p('  ' .. (table.contains(premake.make.override,\"TARGETDIR\") and \"override \" or \"\") .. 'TARGETDIR           = %s', iif(targetDir == \"\", \".\", targetDir))\n_p('  ' .. (table.contains(premake.make.override,\"TARGET\") and \"override \" or \"\") ..    'TARGET              = $(TARGETDIR)/%s', _MAKE.esc(cfg.buildtarget.name))\n_p('  DEFINES            +=%s', make.list(_MAKE.escquote(cc.getdefines(cfg.defines))))\nlocal id  = make.list(cc.getincludedirs(cfg.includedirs));\nlocal uid = make.list(cc.getquoteincludedirs(cfg.userincludedirs))\nlocal sid = make.list(cc.getsystemincludedirs(cfg.systemincludedirs))\nif id ~= \"\" then\n_p('  INCLUDES           +=%s', id)\nend\nif uid ~= \"\" then\n_p('  INCLUDES     
       +=%s', uid)\nend\nif sid "
- 	"~= \"\" then\n_p('  INCLUDES           +=%s', sid)\nend\ncpp.pchconfig(cfg)\ncpp.flags(cfg, cc)\ncpp.linker(prj, cfg, cc)\ntable.sort(cfg.files)\nif cfg.flags.UseObjectResponseFile then\n_p('  OBJRESP             = $(OBJDIR)/%s_objects', prj.name)\nelse\n_p('  OBJRESP             =')\nend\n_p('  OBJECTS := \\\\')\nfor _, file in ipairs(cfg.files) do\nif path.issourcefile(file) then\nif not is_excluded(prj, cfg, file) then\n_p('\\t$(OBJDIR)/%s.o \\\\'\n, _MAKE.esc(path.trimdots(path.removeext(file)))\n)\nend\nend\nend\n_p('')\n_p('  define PREBUILDCMDS')\nif #cfg.prebuildcommands > 0 then\n_p('\\t@echo Running pre-build commands')\n_p('\\t%s', table.implode(cfg.prebuildcommands, \"\", \"\", \"\\n\\t\"))\nend\n_p('  endef')\n_p('  define PRELINKCMDS')\nif #cfg.prelinkcommands > 0 then\n_p('\\t@echo Running pre-link commands')\n_p('\\t%s', table.implode(cfg.prelinkcommands, \"\", \"\", \"\\n\\t\"))\nend\n_p('  endef')\n_p('  define POSTBUILDCMDS')\nif #cfg.postbuildcommands > 0 then
 \n_p('\\t@echo Running post-bui"
--	"ld commands')\n_p('\\t%s', table.implode(cfg.postbuildcommands, \"\", \"\", \"\\n\\t\"))\nend\n_p('  endef')\nmake.settings(cfg, cc)\n_p('endif')\n_p('')\nend\nfunction cpp.platformtools(cfg, cc)\nlocal platform = cc.platforms[cfg.platform]\nif platform.cc then\n_p('  CC         = %s', platform.cc)\nend\nif platform.cxx then\n_p('  CXX        = %s', platform.cxx)\nend\nif platform.ar then\n_p('  AR         = %s', platform.ar)\nend\nend\nfunction cpp.flags(cfg, cc)\nif cfg.pchheader and not cfg.flags.NoPCH then\n_p('  FORCE_INCLUDE      += -include $(OBJDIR)/$(notdir $(PCH))')\n_p('  FORCE_INCLUDE_OBJC += -include $(OBJDIR)/$(notdir $(PCH))_objc')\nend\nif #cfg.forcedincludes > 0 then\n_p('  FORCE_INCLUDE      += -include %s'\n,_MAKE.esc(table.concat(cfg.forcedincludes, \";\")))\nend\n_p('  ALL_CPPFLAGS       += $(CPPFLAGS) %s $(DEFINES) $(INCLUDES)', table.concat(cc.getcppflags(cfg), \" \"))\n_p('  ALL_ASMFLAGS       += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH)%s', make.list(
 table.join(cc.getcflags(cfg), c"
--	"fg.buildoptions, cfg.buildoptions_asm)))\n_p('  ALL_CFLAGS         += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH)%s', make.list(table.join(cc.getcflags(cfg), cfg.buildoptions, cfg.buildoptions_c)))\n_p('  ALL_CXXFLAGS       += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH)%s', make.list(table.join(cc.getcflags(cfg), cc.getcxxflags(cfg), cfg.buildoptions, cfg.buildoptions_cpp)))\n_p('  ALL_OBJCFLAGS      += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH)%s', make.list(table.join(cc.getcflags(cfg), cc.getobjcflags(cfg), cfg.buildoptions, cfg.buildoptions_objc)))\n_p('  ALL_OBJCPPFLAGS    += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH)%s', make.list(table.join(cc.getcflags(cfg), cc.getcxxflags(cfg), cc.getobjcflags(cfg), cfg.buildoptions, cfg.buildoptions_objcpp)))\n_p('  ALL_RESFLAGS       += $(RESFLAGS) $(DEFINES) $(INCLUDES)%s',\n        make.list(table.join(cc.getdefines(cfg.resdefines),\n                                cc.getincludedirs(cfg.resincludedirs), cfg.resoptions)))\nend\nfunction cpp.linker(
 prj, cfg, cc)\nlocal libdeps\nl"
-+	"ld commands')\n_p('\\t%s', table.implode(cfg.postbuildcommands, \"\", \"\", \"\\n\\t\"))\nend\n_p('  endef')\nmake.settings(cfg, cc)\n_p('endif')\n_p('')\nend\nfunction cpp.platformtools(cfg, cc)\nlocal platform = cc.platforms[cfg.platform]\nif platform.cc then\n_p('  CC         = %s', platform.cc)\nend\nif platform.cxx then\n_p('  CXX        = %s', platform.cxx)\nend\nif platform.ar then\n_p('  AR         = %s', platform.ar)\nend\nend\nfunction cpp.flags(cfg, cc)\nif cfg.pchheader and not cfg.flags.NoPCH then\n_p('  FORCE_INCLUDE      += -include $(OBJDIR)/$(notdir $(PCH))')\n_p('  FORCE_INCLUDE_OBJC += -include $(OBJDIR)/$(notdir $(PCH))_objc')\nend\nif #cfg.forcedincludes > 0 then\n_p('  FORCE_INCLUDE      += -include %s'\n,_MAKE.esc(table.concat(cfg.forcedincludes, \";\")))\nend\n_p('  ALL_CPPFLAGS       += $(CPPFLAGS) %s $(DEFINES) $(INCLUDES)', table.concat(cc.getcppflags(cfg), \" \"))\n_p('  ALL_ASMFLAGS       += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) %s', make.list(table.j
 oin(cc.getcflags(cfg), c"
-+	"fg.buildoptions, cfg.buildoptions_asm)))\n_p('  ALL_CFLAGS         += $(CFLAGS) $(ALL_CPPFLAGS) %s', make.list(table.join(cc.getcflags(cfg), cfg.buildoptions, cfg.buildoptions_c)))\n_p('  ALL_CXXFLAGS       += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) %s', make.list(table.join(cc.getcflags(cfg), cc.getcxxflags(cfg), cfg.buildoptions, cfg.buildoptions_cpp)))\n_p('  ALL_OBJCFLAGS      += $(CFLAGS) $(ALL_CPPFLAGS) %s', make.list(table.join(cc.getcflags(cfg), cc.getobjcflags(cfg), cfg.buildoptions, cfg.buildoptions_objc)))\n_p('  ALL_OBJCPPFLAGS    += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) %s', make.list(table.join(cc.getcflags(cfg), cc.getcxxflags(cfg), cc.getobjcflags(cfg), cfg.buildoptions, cfg.buildoptions_objcpp)))\n_p('  ALL_RESFLAGS       += $(RESFLAGS) $(DEFINES) $(INCLUDES)%s',\n        make.list(table.join(cc.getdefines(cfg.resdefines),\n                                cc.getincludedirs(cfg.resincludedirs), cfg.resoptions)))\nend\nfunction cpp.linker(prj, cfg, cc)\nlocal libdeps
 \nl"
- 	"ocal lddeps\nif #cfg.wholearchive > 0 then\nlibdeps = {}\nlddeps  = {}\nfor _, linkcfg in ipairs(premake.getlinks(cfg, \"siblings\", \"object\")) do\nlocal linkpath = path.rebase(linkcfg.linktarget.fullpath, linkcfg.location, cfg.location)\nif table.icontains(cfg.wholearchive, linkcfg.project.name) then\nlddeps = table.join(lddeps, cc.wholearchive(linkpath))\nelse\ntable.insert(lddeps, linkpath)\nend\ntable.insert(libdeps, linkpath)\nend\nlibdeps = make.list(_MAKE.esc(libdeps))\nlddeps  = make.list(_MAKE.esc(lddeps))\nelse\nlibdeps = make.list(_MAKE.esc(premake.getlinks(cfg, \"siblings\", \"fullpath\")))\nlddeps  = libdeps\nend\n_p('  ALL_LDFLAGS        += $(LDFLAGS)%s', make.list(table.join(cc.getlibdirflags(cfg), cc.getldflags(cfg), cfg.linkoptions)))\n_p('  LIBDEPS            +=%s', libdeps)\n_p('  LDDEPS             +=%s', lddeps)\nif cfg.flags.UseLDResponseFile then\n_p('  LDRESP              = $(OBJDIR)/%s_libs', prj.name)\n_p('  LIBS               += @$(LDRESP)%s', make.li
 st(cc.getlinkflags(cfg)))\nelse"
--	"\n_p('  LDRESP              =')\n_p('  LIBS               += $(LDDEPS)%s', make.list(cc.getlinkflags(cfg)))\nend\n_p('  EXTERNAL_LIBS      +=%s', make.list(cc.getlibfiles(cfg)))\n_p('  LINKOBJS            = %s', (cfg.flags.UseObjectResponseFile and \"@$(OBJRESP)\" or \"$(OBJECTS)\"))\nif cfg.kind == \"StaticLib\" then\nif (not prj.options.ArchiveSplit) then\n_p('  LINKCMD             = $(AR) %s $(TARGET)', make.list(cc.getarchiveflags(prj, cfg, false)))\nelse\n_p('  LINKCMD             = $(AR) %s $(TARGET)', make.list(cc.getarchiveflags(prj, cfg, false)))\n_p('  LINKCMD_NDX         = $(AR) %s $(TARGET)', make.list(cc.getarchiveflags(prj, cfg, true)))\nend\nelse\nlocal tool = iif(cfg.language == \"C\", \"CC\", \"CXX\")\nlocal startgroup = ''\nlocal endgroup = ''\nif (cfg.flags.LinkSupportCircularDependencies) then\nstartgroup = '-Wl,--start-group '\nendgroup   = ' -Wl,--end-group'\nend\n_p('  LINKCMD             = $(%s) -o $(TARGET) $(LINKOBJS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) 
 %s$(LIBS)%s', tool, startgroup,"
-+	"\n_p('  LDRESP              =')\n_p('  LIBS               += $(LDDEPS)%s', make.list(cc.getlinkflags(cfg)))\nend\n_p('  EXTERNAL_LIBS      +=%s', make.list(cc.getlibfiles(cfg)))\n_p('  LINKOBJS            = %s', (cfg.flags.UseObjectResponseFile and \"@$(OBJRESP)\" or \"$(OBJECTS)\"))\nif cfg.kind == \"StaticLib\" then\nif (not prj.options.ArchiveSplit) then\n_p('  LINKCMD             = $(AR) %s $(TARGET)', make.list(cc.getarchiveflags(prj, cfg, false)))\nelse\n_p('  LINKCMD             = $(AR) %s $(TARGET)', make.list(cc.getarchiveflags(prj, cfg, false)))\n_p('  LINKCMD_NDX         = $(AR) %s $(TARGET)', make.list(cc.getarchiveflags(prj, cfg, true)))\nend\nelse\nlocal tool = iif(cfg.language == \"C\", \"CC\", \"CXX\")\nlocal startgroup = ''\nlocal endgroup = ''\nif (cfg.flags.LinkSupportCircularDependencies) then\nstartgroup = '-Wl,--start-group '\nendgroup   = ' -Wl,--end-group'\nend\n_p('  LINKCMD             = $(%s) -o $(TARGET) $(LINKOBJS) $(RESOURCES)  $(ALL_LDFLAGS) %s$(LIB
 S)%s', tool, startgroup,"
- 	" endgroup)\nend\nend\nfunction cpp.pchconfig(cfg)\nif not cfg.pchheader or cfg.flags.NoPCH then\nreturn\nend\nlocal pch = cfg.pchheader\nfor _, incdir in ipairs(cfg.includedirs) do\nlocal abspath = path.getabsolute(path.join(cfg.project.location, incdir))\nlocal testname = path.join(abspath, pch)\nif os.isfile(testname) then\npch = path.getrelative(cfg.location, testname)\nbreak\nend\nend\n_p('  PCH                 = %s', _MAKE.esc(pch))\n_p('  GCH                 = $(OBJDIR)/$(notdir $(PCH)).gch')\n_p('  GCH_OBJC            = $(OBJDIR)/$(notdir $(PCH))_objc.gch')\nend\nfunction cpp.pchrules(prj)\n_p('ifneq (,$(PCH))')\n_p('$(GCH): $(PCH) $(MAKEFILE) | $(OBJDIR)')\nif prj.msgprecompile then\n_p('\\t@echo ' .. prj.msgprecompile)\nelse\n_p('\\t@echo $(notdir $<)')\nend\nlocal cmd = iif(prj.language == \"C\", \"$(CC) $(ALL_CFLAGS) -x c-header\", \"$(CXX) $(ALL_CXXFLAGS) -x c++-header\")\n_p('\\t$(SILENT) %s $(DEFINES) $(INCLUDES) -o \"$@\" -c \"$<\"', cmd)\n_p('')\n_p('$(GCH_OBJC): 
 $(PCH) $(MAKEFILE) | $(OBJDIR)'"
- 	")\nif prj.msgprecompile then\n_p('\\t@echo ' .. prj.msgprecompile)\nelse\n_p('\\t@echo $(notdir $<)')\nend\nlocal cmd = iif(prj.language == \"C\", \"$(CC) $(ALL_OBJCFLAGS) -x objective-c-header\", \"$(CXX) $(ALL_OBJCPPFLAGS) -x objective-c++-header\")\n_p('\\t$(SILENT) %s $(DEFINES) $(INCLUDES) -o \"$@\" -c \"$<\"', cmd)\n_p('endif')\n_p('')\nend\nfunction cpp.fileRules(prj, cc)\nlocal platforms = premake.filterplatforms(prj.solution, cc.platforms, \"Native\")\n_p('ifneq (,$(OBJRESP))')\n_p('$(OBJRESP): $(OBJECTS) | $(TARGETDIR) $(OBJDIRS)')\n_p('\\t$(SILENT) echo $^')\n_p('\\t$(SILENT) echo $^ > $@')\n_p('endif')\n_p('')\n_p('ifneq (,$(LDRESP))')\n_p('$(LDRESP): $(LDDEPS) | $(TARGETDIR) $(OBJDIRS)')\n_p('\\t$(SILENT) echo $^')\n_p('\\t$(SILENT) echo $^ > $@')\n_p('endif')\n_p('')\ntable.sort(prj.allfiles)\nfor _, file in ipairs(prj.allfiles or {}) do\nif path.issourcefile(file) then\nif (path.isobjcfile(file)) then\n_p('$(OBJDIR)/%s.o: %s $(GCH_OBJC) $(MAKEFILE) | $(OBJDIR)/%s'\
 n, _MAKE.esc(path.trimdots(path"
- 	".removeext(file)))\n, _MAKE.esc(file)\n, _MAKE.esc(path.getdirectory(path.trimdots(file)))\n)\nelse\n_p('$(OBJDIR)/%s.o: %s $(GCH) $(MAKEFILE) | $(OBJDIR)/%s'\n, _MAKE.esc(path.trimdots(path.removeext(file)))\n, _MAKE.esc(file)\n, _MAKE.esc(path.getdirectory(path.trimdots(file)))\n)\nend\nif (path.isobjcfile(file) and prj.msgcompile_objc) then\n_p('\\t@echo ' .. prj.msgcompile_objc)\nelseif prj.msgcompile then\n_p('\\t@echo ' .. prj.msgcompile)\nelse\n_p('\\t@echo $(notdir $<)')\nend\nif (path.isobjcfile(file)) then\nif (path.iscfile(file)) then\n_p('\\t$(SILENT) $(CXX) $(ALL_OBJCFLAGS) $(FORCE_INCLUDE_OBJC) -o \"$@\" -c \"$<\"')\nelse\n_p('\\t$(SILENT) $(CXX) $(ALL_OBJCPPFLAGS) $(FORCE_INCLUDE_OBJC) -o \"$@\" -c \"$<\"')\nend\nelseif (path.isasmfile(file)) then\n_p('\\t$(SILENT) $(CC) $(ALL_ASMFLAGS) -o \"$@\" -c \"$<\"')\nelse\ncpp.buildcommand(path.iscfile(file) and not prj.options.ForceCPP, \"o\")\nend\nfor _, task in ipairs(prj.postcompiletasks or {}) do\n_p('\\t$(SILENT) %s
 ', task)\n_p('')\nend\n_p('')\n"
diff --git a/emulators/mame/files/patch-3rdparty_genie_src_tools_gcc.lua b/emulators/mame/files/patch-3rdparty_genie_src_tools_gcc.lua
deleted file mode 100644
index 9ffe65ae8854..000000000000
--- a/emulators/mame/files/patch-3rdparty_genie_src_tools_gcc.lua
+++ /dev/null
@@ -1,15 +0,0 @@
---- 3rdparty/genie/src/tools/gcc.lua.orig	2023-05-25 09:19:09 UTC
-+++ 3rdparty/genie/src/tools/gcc.lua
-@@ -12,9 +12,9 @@ --
- -- Set default tools
- --
- 
--	premake.gcc.cc     = "gcc"
--	premake.gcc.cxx    = "g++"
--	premake.gcc.ar     = "ar"
-+	premake.gcc.cc     = _OPTIONS["CC"]
-+	premake.gcc.cxx    = _OPTIONS["CXX"]
-+	premake.gcc.ar     = _OPTIONS["AR"]
- 	premake.gcc.rc     = "windres"
- 	premake.gcc.llvm   = false
- 
diff --git a/emulators/mame/files/patch-3rdparty_genie_tests_test__gmake__cpp.lua b/emulators/mame/files/patch-3rdparty_genie_tests_test__gmake__cpp.lua
deleted file mode 100644
index 481cbce2ab24..000000000000
--- a/emulators/mame/files/patch-3rdparty_genie_tests_test__gmake__cpp.lua
+++ /dev/null
@@ -1,15 +0,0 @@
---- 3rdparty/genie/tests/test_gmake_cpp.lua.orig	2023-04-25 15:19:25 UTC
-+++ 3rdparty/genie/tests/test_gmake_cpp.lua
-@@ -47,9 +47,9 @@ endif
-   SILENT = @
- endif
- 
--CC = gcc
--CXX = g++
--AR = ar
-+CC ?= gcc
-+CXX ?= g++
-+AR ?= ar
- 
- ifndef RESCOMP
-   ifdef WINDRES
diff --git a/emulators/mame/files/patch-makefile b/emulators/mame/files/patch-makefile
index eda56ef1f250..5c87b1f66af7 100644
--- a/emulators/mame/files/patch-makefile
+++ b/emulators/mame/files/patch-makefile
@@ -1,6 +1,9 @@
---- makefile.orig	2023-04-25 15:19:25 UTC
+ Remove redefinitions of toolchain, and hardcoded optimisations. Replace GENie
+ build target with devel/genie binary. Add Clang ARM64 support.
+
+--- makefile.orig	2023-10-23 15:53:41 UTC
 +++ makefile
-@@ -447,9 +447,9 @@ ifneq ($(TARGETOS),asmjs)
+@@ -448,9 +448,9 @@ ifneq ($(TARGETOS),asmjs)
  endif
  
  ifneq ($(TARGETOS),asmjs)
@@ -13,7 +16,28 @@
  endif
  
  #-------------------------------------------------
-@@ -1409,6 +1409,11 @@ $(PROJECTDIR)/$(MAKETYPE)-freebsd-clang/Makefile: make
+@@ -620,11 +620,6 @@ endif
+ SYMBOLS = 1
+ endif
+ 
+-# specify a default optimization level if none explicitly stated
+-ifndef OPTIMIZE
+-OPTIMIZE = 3
+-endif
+-
+ # set the symbols level
+ ifdef SYMBOLS
+ PARAMS += --SYMBOLS='$(SYMBOLS)'
+@@ -1078,7 +1073,7 @@ endif
+ NEW_GIT_VERSION := unknown
+ endif
+ 
+-GENIE := 3rdparty/genie/bin/$(GENIEOS)/genie$(EXE)
++GENIE := %%GENIE_PREFIX%%genie
+ 
+ ifeq ($(TARGET),$(SUBTARGET_FULL))
+ FULLTARGET := $(TARGET)
+@@ -1412,6 +1407,11 @@ $(PROJECTDIR)/$(MAKETYPE)-freebsd-clang/Makefile: make
  
  $(PROJECTDIR)/$(MAKETYPE)-freebsd-clang/Makefile: makefile $(SCRIPTS) $(GENIE)
  	$(SILENT) $(GENIE) $(PARAMS) $(TARGET_PARAMS) --gcc=freebsd-clang --gcc_version=$(CLANG_VERSION) $(MAKETYPE)
diff --git a/emulators/mame/files/patch-scripts_genie.lua b/emulators/mame/files/patch-scripts_genie.lua
new file mode 100644
index 000000000000..857219cdad87
--- /dev/null
+++ b/emulators/mame/files/patch-scripts_genie.lua
@@ -0,0 +1,34 @@
+ Reduce noise from build logs, and remove duplicate use of
+ -fno-strict-aliasing. Move a hard coded linktime optimisation to be covered by
+ the same OPTIMIZE conditional used elsewhere.
+
+--- scripts/genie.lua.orig	2023-11-15 01:11:29 UTC
++++ scripts/genie.lua
+@@ -804,7 +804,6 @@ if _OPTIONS["OPTIMIZE"] then
+ if _OPTIONS["OPTIMIZE"] then
+ 	buildoptions {
+ 		"-O".. _OPTIONS["OPTIMIZE"],
+-		"-fno-strict-aliasing"
+ 	}
+ 	if _OPTIONS["OPT_FLAGS"] then
+ 		buildoptions {
+@@ -1168,7 +1167,6 @@ configuration { "asmjs" }
+ 	}
+ 	linkoptions {
+ 		"-Wl,--start-group",
+-		"-O" .. _OPTIONS["OPTIMIZE"],
+ 		"-s USE_SDL=2",
+ 		"-s USE_SDL_TTF=2",
+ 		"--memory-init-file 0",
+@@ -1187,6 +1185,11 @@ configuration { "asmjs" }
+ 		"--embed-file " .. _MAKE.esc(MAME_DIR) .. "artwork/bgfx@artwork/bgfx",
+ 		"--embed-file " .. _MAKE.esc(MAME_DIR) .. "artwork/slot-mask.png@artwork/slot-mask.png",
+ 	}
++	if _OPTIONS["OPTIMIZE"] then
++		linkoptions {
++		"-O".. _OPTIONS["OPTIMIZE"],
++		}
++	end
+ 	if _OPTIONS["SYMBOLS"]~=nil and _OPTIONS["SYMBOLS"]~="0" then
+ 		linkoptions {
+ 			"-g" .. _OPTIONS["SYMLEVEL"],
diff --git a/emulators/mame/files/patch-scripts_src_main.lua b/emulators/mame/files/patch-scripts_src_main.lua
new file mode 100644
index 000000000000..391ffc7f10fb
--- /dev/null
+++ b/emulators/mame/files/patch-scripts_src_main.lua
@@ -0,0 +1,21 @@
+ Remove suffixes from mame binary for debug/profile builds.
+
+--- scripts/src/main.lua.orig	2023-11-14 03:17:20 UTC
++++ scripts/src/main.lua
+@@ -58,13 +58,13 @@ end
+ 	configuration { "Release" }
+ 		targetsuffix ""
+ 		if _OPTIONS["PROFILE"] then
+-			targetsuffix "p"
++			targetsuffix ""
+ 		end
+ 
+ 	configuration { "Debug" }
+-		targetsuffix "d"
++		targetsuffix ""
+ 		if _OPTIONS["PROFILE"] then
+-			targetsuffix "dp"
++			targetsuffix ""
+ 		end
+ 
+ 	configuration { "mingw*" or "vs20*" }
diff --git a/emulators/mame/files/patch-scripts_src_osd_modules.lua b/emulators/mame/files/patch-scripts_src_osd_modules.lua
new file mode 100644
index 000000000000..2d5699969a93
--- /dev/null
+++ b/emulators/mame/files/patch-scripts_src_osd_modules.lua
@@ -0,0 +1,43 @@
+ Enable the build to find Qt-6.
+
+--- scripts/src/osd/modules.lua.orig	2023-10-23 15:53:41 UTC
++++ scripts/src/osd/modules.lua
+@@ -378,7 +378,7 @@ function qtdebuggerbuild()
+ 			MOC = "moc"
+ 		else
+ 			if _OPTIONS["QT_HOME"]~=nil then
+-				MOCTST = backtick(_OPTIONS["QT_HOME"] .. "/bin/moc --version 2>/dev/null")
++				MOCTST = backtick(_OPTIONS["QT_HOME"] .. "/libexec/qt6/moc --version 2>/dev/null")
+ 				if (MOCTST=='') then
+ 					MOCTST = backtick(_OPTIONS["QT_HOME"] .. "/libexec/moc --version 2>/dev/null")
+ 					if (MOCTST=='') then
+@@ -388,7 +388,7 @@ function qtdebuggerbuild()
+ 						MOC = _OPTIONS["QT_HOME"] .. "/libexec/moc"
+ 					end
+ 				else
+-					MOC = _OPTIONS["QT_HOME"] .. "/bin/moc"
++					MOC = _OPTIONS["QT_HOME"] .. "/libexec/qt6/moc"
+ 				end
+ 			else
+ 				MOCTST = backtick("which moc-qt5 2>/dev/null")
+@@ -430,7 +430,7 @@ function qtdebuggerbuild()
+ 		else
+ 			if _OPTIONS["QT_HOME"]~=nil then
+ 				buildoptions {
+-					"-I" .. backtick(_OPTIONS["QT_HOME"] .. "/bin/qmake -query QT_INSTALL_HEADERS"),
++					"-I" .. backtick(_OPTIONS["QT_HOME"] .. "/bin/qmake6 -query QT_INSTALL_HEADERS"),
+ 				}
+ 			else
+ 				buildoptions {
+@@ -500,9 +500,9 @@ function osdmodulestargetconf()
+ 			}
+ 		else
+ 			if _OPTIONS["QT_HOME"]~=nil then
+-				local qt_version = str_to_version(backtick(_OPTIONS["QT_HOME"] .. "/bin/qmake -query QT_VERSION"))
++				local qt_version = str_to_version(backtick(_OPTIONS["QT_HOME"] .. "/bin/qmake6 -query QT_VERSION"))
+ 				linkoptions {
+-					"-L" .. backtick(_OPTIONS["QT_HOME"] .. "/bin/qmake -query QT_INSTALL_LIBS"),
++					"-L" .. backtick(_OPTIONS["QT_HOME"] .. "/bin/qmake6 -query QT_INSTALL_LIBS"),
+ 				}
+ 				if qt_version < 60000 then
+ 					links {
diff --git a/emulators/mame/files/patch-scripts_src_osd_sdl.lua b/emulators/mame/files/patch-scripts_src_osd_sdl.lua
new file mode 100644
index 000000000000..d233b53a2466
--- /dev/null
+++ b/emulators/mame/files/patch-scripts_src_osd_sdl.lua
@@ -0,0 +1,24 @@
+ Reduce noise in the build log, and remove legacy or incompatible display
+ server lib directory declarations.
+
+--- scripts/src/osd/sdl.lua.orig	2023-10-23 15:53:41 UTC
++++ scripts/src/osd/sdl.lua
+@@ -276,12 +276,12 @@ if BASE_TARGETOS=="unix" then
+ 	else
+ 		if _OPTIONS["NO_X11"]=="1" then
+ 			_OPTIONS["USE_QTDEBUG"] = "0"
+-		else
+-			libdirs {
+-				"/usr/X11/lib",
+-				"/usr/X11R6/lib",
+-				"/usr/openwin/lib",
+-			}
++--		else
++--			libdirs {
++--				"/usr/X11/lib",
++--				"/usr/X11R6/lib",
++--				"/usr/openwin/lib",
++--			}
+ 		end
+ 		local str = backtick(sdlconfigcmd() .. " --libs")
+ 		addlibfromstring(str)
diff --git a/emulators/mame/files/patch-scripts_src_osd_sdl__cfg.lua b/emulators/mame/files/patch-scripts_src_osd_sdl__cfg.lua
new file mode 100644
index 000000000000..9c81fc06493c
--- /dev/null
+++ b/emulators/mame/files/patch-scripts_src_osd_sdl__cfg.lua
@@ -0,0 +1,45 @@
+ Reduce noise in the build log, remove legacy or incompatible display
+ server include declarations, and redundant system include handled by Ports.
+ Enable the build to find Qt-6, and remove redundant internal library.
+
+--- scripts/src/osd/sdl_cfg.lua.orig	2023-11-10 07:57:09 UTC
++++ scripts/src/osd/sdl_cfg.lua
+@@ -44,9 +44,6 @@ else
+ 		"SDLMAME_X11",
+ 	}
+ 	includedirs {
+-		"/usr/X11/include",
+-		"/usr/X11R6/include",
+-		"/usr/openwin/include",
+ 	}
+ end
+ 
+@@ -144,7 +141,7 @@ elseif _OPTIONS["targetos"]=="linux" then
+ elseif _OPTIONS["targetos"]=="linux" then
+ 	if _OPTIONS["QT_HOME"]~=nil then
+ 		buildoptions {
+-			"-I" .. backtick(_OPTIONS["QT_HOME"] .. "/bin/qmake -query QT_INSTALL_HEADERS"),
++			"-I" .. backtick(_OPTIONS["QT_HOME"] .. "/bin/qmake6 -query QT_INSTALL_HEADERS"),
+ 		}
+ 	else
+ 		buildoptions {
+@@ -158,19 +155,12 @@ elseif _OPTIONS["targetos"]=="freebsd" then
+ 	}
+ elseif _OPTIONS["targetos"]=="freebsd" then
+ 	buildoptions {
+-		-- /usr/local/include is not considered a system include director on FreeBSD.  GL.h resides there and throws warnings
+-		"-isystem /usr/local/include",
+ 	}
+ end
+ 
+ configuration { "osx*" }
+ 	includedirs {
+ 		MAME_DIR .. "3rdparty/bx/include/compat/osx",
+-	}
+-
+-configuration { "freebsd" }
+-	includedirs {
+-		MAME_DIR .. "3rdparty/bx/include/compat/freebsd",
+ 	}
+ 
+ configuration { "netbsd" }
diff --git a/emulators/mame/files/patch-src_devices_cpu_sh_sh7021.cpp b/emulators/mame/files/patch-src_devices_cpu_sh_sh7021.cpp
deleted file mode 100644
index a360fbd44a37..000000000000
--- a/emulators/mame/files/patch-src_devices_cpu_sh_sh7021.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/devices/cpu/sh/sh7021.cpp.orig	2023-10-03 07:41:10 UTC
-+++ src/devices/cpu/sh/sh7021.cpp
-@@ -1,6 +1,7 @@
- // license:BSD-3-Clause
- // copyright-holders:Angelo Salese
- 
-+#include "emu.h"
- #include "sh7021.h"
- 
- DEFINE_DEVICE_TYPE(SH2A_SH7021, sh2a_sh7021_device, "sh2a_sh7021", "Hitachi SH-2A (SH7021)")
diff --git a/emulators/mame/files/patch-src_devices_cpu_sh_sh7032.cpp b/emulators/mame/files/patch-src_devices_cpu_sh_sh7032.cpp
deleted file mode 100644
index af443e70c42e..000000000000
--- a/emulators/mame/files/patch-src_devices_cpu_sh_sh7032.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/devices/cpu/sh/sh7032.cpp.orig	2023-10-03 07:41:18 UTC
-+++ src/devices/cpu/sh/sh7032.cpp
-@@ -1,6 +1,7 @@
- // license:BSD-3-Clause
- // copyright-holders:Angelo Salese
- 
-+#include "emu.h"
- #include "sh7032.h"
- 
- DEFINE_DEVICE_TYPE(SH1_SH7032,  sh1_sh7032_device,  "sh1_sh7032",  "Hitachi SH-1 (SH7032)")
diff --git a/emulators/mame/files/patch-src_osd_modules_render_bgfx_shadermanager.cpp b/emulators/mame/files/patch-src_osd_modules_render_bgfx_shadermanager.cpp
new file mode 100644
index 000000000000..dbe18f1c8472
--- /dev/null
+++ b/emulators/mame/files/patch-src_osd_modules_render_bgfx_shadermanager.cpp
@@ -0,0 +1,21 @@
+ Default to OpenGL, enables removing DirectX related source from the build, and
+ makes the bgfx renderer initialisation work.
+
+--- src/osd/modules/render/bgfx/shadermanager.cpp.orig	2023-11-09 05:21:49 UTC
++++ src/osd/modules/render/bgfx/shadermanager.cpp
+@@ -85,7 +85,6 @@ std::string shader_manager::make_path_string(const osd
+ 	shader_path += PATH_SEPARATOR "shaders" PATH_SEPARATOR;
+ 	switch (bgfx::getRendererType())
+ 	{
+-		case bgfx::RendererType::Noop:
+ 		case bgfx::RendererType::Direct3D9:
+ 			shader_path += "dx9";
+ 			break;
+@@ -103,6 +102,7 @@ std::string shader_manager::make_path_string(const osd
+ 			shader_path += "metal";
+ 			break;
+ 
++		case bgfx::RendererType::Noop:
+ 		case bgfx::RendererType::OpenGL:
+ 			shader_path += "glsl";
+ 			break;
diff --git a/emulators/mame/files/patch-src_osd_sdl_sdlprefix.h b/emulators/mame/files/patch-src_osd_sdl_sdlprefix.h
index aef78617bc07..4be2196aba12 100644
--- a/emulators/mame/files/patch-src_osd_sdl_sdlprefix.h
+++ b/emulators/mame/files/patch-src_osd_sdl_sdlprefix.h
@@ -1,3 +1,5 @@
+ FreeBSD supports pthread affinity: pthread_affinity_np(3).
+
 --- src/osd/sdl/sdlprefix.h.orig	2022-04-29 05:37:26 UTC
 +++ src/osd/sdl/sdlprefix.h
 @@ -45,9 +45,9 @@
diff --git a/emulators/mame/pkg-plist b/emulators/mame/pkg-plist
index 6094d5f43388..26e60c85a6ef 100644
--- a/emulators/mame/pkg-plist
+++ b/emulators/mame/pkg-plist
@@ -6,6 +6,8 @@
 %%TOOLS%%bin/ldresample
 %%TOOLS%%bin/ldverify
 bin/mame
+%%TOOLS%%bin/mamenl
+%%TOOLS%%bin/mamevirtual
 %%TOOLS%%bin/nltool
 %%TOOLS%%bin/nlwav
 %%TOOLS%%bin/pngcmp
@@ -21,7 +23,6 @@ share/man/man1/MAME.1.gz
 %%TOOLS%%share/man/man1/floptool.1.gz
 %%TOOLS%%share/man/man1/imgtool.1.gz
 %%TOOLS%%share/man/man1/jedutil.1.gz
-%%TOOLS%%share/man/man1/ldplayer.1.gz
 %%TOOLS%%share/man/man1/ldresample.1.gz
 %%TOOLS%%share/man/man1/ldverify.1.gz
 %%TOOLS%%share/man/man1/romcmp.1.gz
@@ -228,380 +229,6 @@ share/man/man6/mame.6.gz
 %%DATADIR%%/bgfx/effects/xbr/xbr-mlv4-multipass/xbr-mlv4-pass2.json
 %%DATADIR%%/bgfx/effects/xbr/xbr-mlv4-multipass/xbr-mlv4-pass3.json
 %%DATADIR%%/bgfx/effects/xbr/xbr-mlv4-multipass/xbr-mlv4-pass4.json
-%%DATADIR%%/bgfx/shaders/dx11/chains/blurs/fs_smart-blur.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/blurs/vs_smart-blur.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/crt-geom/fs_crt-geom-deluxe.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/crt-geom/fs_crt-geom.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/crt-geom/fs_gaussx.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/crt-geom/fs_gaussy.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/crt-geom/fs_lowpass.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/crt-geom/fs_mipmap8.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/crt-geom/fs_phosphor_apply.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/crt-geom/fs_phosphor_update.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/crt-geom/vs_crt-geom.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/crt-geom/vs_gaussx.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/crt-geom/vs_gaussy.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/crt-geom/vs_lowpass.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/crt-geom/vs_mipmap8.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/crt-geom/vs_phosphor_apply.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/crt-geom/vs_phosphor_update.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/crt/fs_crt-caligari.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/crt/vs_crt-caligari.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/default/fs_blit.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/default/vs_blit.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/eagle/fs_eagle.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/eagle/vs_eagle.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hlsl/fs_chroma.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hlsl/fs_color.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hlsl/fs_deconverge.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hlsl/fs_defocus.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hlsl/fs_distortion.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hlsl/fs_ntsc_decode.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hlsl/fs_ntsc_encode.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hlsl/fs_phosphor.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hlsl/fs_post.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hlsl/fs_prescale.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hlsl/fs_scanline.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hlsl/vs_chroma.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hlsl/vs_color.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hlsl/vs_deconverge.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hlsl/vs_defocus.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hlsl/vs_distortion.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hlsl/vs_ntsc_decode.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hlsl/vs_ntsc_encode.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hlsl/vs_phosphor.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hlsl/vs_post.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hlsl/vs_prescale.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hlsl/vs_scanline.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hqx/fs_hq2x.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hqx/fs_hq3x.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hqx/fs_hq4x.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hqx/vs_hq2x.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hqx/vs_hq3x.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/hqx/vs_hq4x.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/lcd-grid/fs_lcd-grid.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/lcd-grid/fs_persistence.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/lcd-grid/vs_lcd-grid.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/lcd-grid/vs_persistence.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/misc/fs_blit.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/misc/fs_blit_bcg.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/misc/fs_blit_palette16.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/misc/fs_blit_rgb32.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/misc/fs_blit_yuy16.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/misc/fs_bob-and-ghost-deinterlace.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/misc/fs_deposterize-pass0.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/misc/fs_deposterize-pass1.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/misc/fs_lut.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/misc/fs_saturation.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/misc/vs_blit.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/misc/vs_bob-and-ghost-deinterlace.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/misc/vs_deposterize-pass0.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/misc/vs_deposterize-pass1.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/misc/vs_lut.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/misc/vs_resize_blit.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/misc/vs_saturation.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/pillarbox_left_horizontal/fs_gaussian.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/pillarbox_left_horizontal/fs_offset_sat.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/pillarbox_left_horizontal/vs_gaussian.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/pillarbox_left_horizontal/vs_offset_sat.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/pillarbox_left_vertical/fs_gaussian.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/pillarbox_left_vertical/fs_offset_sat.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/pillarbox_left_vertical/vs_gaussian.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/pillarbox_left_vertical/vs_offset_sat.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/pillarbox_right_horizontal/fs_gaussian.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/pillarbox_right_horizontal/fs_offset_sat.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/pillarbox_right_horizontal/vs_gaussian.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/pillarbox_right_horizontal/vs_offset_sat.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/pillarbox_right_vertical/fs_gaussian.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/pillarbox_right_vertical/fs_offset_sat.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/pillarbox_right_vertical/vs_gaussian.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/pillarbox_right_vertical/vs_offset_sat.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/unfiltered/fs_blit.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/unfiltered/vs_blit.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/warp/fs_dilation-horizontal-fast.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/warp/vs_dilation-horizontal-fast.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/fs_xbr-lv1-noblend.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/fs_xbr-lv2-3d.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/fs_xbr-lv2-fast.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/fs_xbr-lv2-noblend.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/fs_xbr-lv2.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/fs_xbr-lv3-noblend.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/fs_xbr-lv3.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/super-xbr/fs_custom-jinc2-sharper.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/super-xbr/fs_super-2xbr-3d-pass0.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/super-xbr/fs_super-2xbr-3d-pass1.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/super-xbr/fs_super-2xbr-3d-pass2.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/super-xbr/fs_super-4xbr-3d-pass0.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/super-xbr/fs_super-4xbr-3d-pass1.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/super-xbr/fs_super-4xbr-3d-pass1f.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/super-xbr/fs_super-4xbr-3d-pass2.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/super-xbr/fs_super-4xbr-3d-pass3.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/super-xbr/fs_super-4xbr-3d-pass3f.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/super-xbr/fs_super-xbr-fast-pass0.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/super-xbr/fs_super-xbr-fast-pass1.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/super-xbr/fs_super-xbr-fast-pass2.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/super-xbr/fs_super-xbr-pass0.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/super-xbr/fs_super-xbr-pass1.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/super-xbr/fs_super-xbr-pass2.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/super-xbr/vs_custom-jinc2-sharper.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/super-xbr/vs_super-2xbr-3d-pass0.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/super-xbr/vs_super-2xbr-3d-pass1.bin
-%%DATADIR%%/bgfx/shaders/dx11/chains/xbr/super-xbr/vs_super-2xbr-3d-pass2.bin
*** 468 LINES SKIPPED ***