diff --git a/board/recalbox/fsoverlay/etc/init.d/S12populateshare b/board/recalbox/fsoverlay/etc/init.d/S12populateshare
index d9e7330e7eca37c4734575d6ad29646c03824ad4..307ecd1ec538664b58d95ffe07d389c4c50bb04d 100755
--- a/board/recalbox/fsoverlay/etc/init.d/S12populateshare
+++ b/board/recalbox/fsoverlay/etc/init.d/S12populateshare
@@ -46,7 +46,8 @@ for DIR in cheats \
system/logs \
system/upgrade \
saves/mame/mame0278 \
- saves/mame/mame0258
+ saves/mame/mame0258 \
+ saves/mame/mame
do
if test ! -e "$OUT""/""$DIR"
then
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/saves/mame/mame/cfg/default.cfg b/board/recalbox/fsoverlay/recalbox/share_init/saves/mame/mame/cfg/default.cfg
deleted file mode 100755
index fbcd08ccf2ccf7cd722257e7d99c25a2bc2d0481..0000000000000000000000000000000000000000
--- a/board/recalbox/fsoverlay/recalbox/share_init/saves/mame/mame/cfg/default.cfg
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
- KEYCODE_1
-
-
-
-
- JOYCODE_1_BUTTON9 OR KEYCODE_F2
-
-
-
-
-
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/saves/mame/mame/cfg/jamma.cfg b/board/recalbox/fsoverlay/recalbox/share_init/saves/mame/mame/cfg/jamma.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..6336a8f11f4be33407d88eb7c9ed594435c0fb65
--- /dev/null
+++ b/board/recalbox/fsoverlay/recalbox/share_init/saves/mame/mame/cfg/jamma.cfg
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+ JOYCODE_1_BUTTON10 OR KEYCODE_9
+
+
+
+
+ JOYCODE_1_BUTTON9 OR KEYCODE_F2
+
+
+
+
+ KEYCODE_1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/saves/mame/mame/cfg/keyboard.cfg b/board/recalbox/fsoverlay/recalbox/share_init/saves/mame/mame/cfg/keyboard.cfg
new file mode 100755
index 0000000000000000000000000000000000000000..f46f909c6f0930e7886c5cb7ba27142c89c6a6e1
--- /dev/null
+++ b/board/recalbox/fsoverlay/recalbox/share_init/saves/mame/mame/cfg/keyboard.cfg
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+ KEYCODE_9
+
+
+
+
+ KEYCODE_F2
+
+
+
+
+ KEYCODE_1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/system/.emulationstation/lightgun.xml b/board/recalbox/fsoverlay/recalbox/share_init/system/.emulationstation/lightgun.xml
index 8997f09422e3ad35917d0c1fb648716f7b857039..aa45b6c3feb4551f049afd1a5f189677bd6b9ef9 100644
--- a/board/recalbox/fsoverlay/recalbox/share_init/system/.emulationstation/lightgun.xml
+++ b/board/recalbox/fsoverlay/recalbox/share_init/system/.emulationstation/lightgun.xml
@@ -837,6 +837,7 @@
+
diff --git a/board/recalbox/x86/patches/libretro-mame0277/disable-asmjit.patch b/board/recalbox/x86/patches/libretro-mame0277/disable-asmjit.patch
deleted file mode 100644
index 77e1c54968fbb38274fce02a109e09bf432153d2..0000000000000000000000000000000000000000
--- a/board/recalbox/x86/patches/libretro-mame0277/disable-asmjit.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From b4e1f5f1b50fd3402232dd0385cac021ba488db6 Mon Sep 17 00:00:00 2001
-From: Vas Crabb
-Date: Thu, 1 May 2025 23:31:40 +1000
-Subject: [PATCH] Only link asmjit if native DRCs are built.
-
----
- scripts/src/cpu.lua | 25 +++++++++++++------------
- scripts/src/main.lua | 2 +-
- 2 files changed, 14 insertions(+), 13 deletions(-)
-
-diff --git a/scripts/src/cpu.lua b/scripts/src/cpu.lua
-index 65ebc2eacdb85..cb130e07527b8 100644
---- a/scripts/src/cpu.lua
-+++ b/scripts/src/cpu.lua
-@@ -21,9 +21,10 @@ for i, v in ipairs(DRC_CPUS) do
- break
- end
- end
-+CPU_INCLUDE_DRC_NATIVE = CPU_INCLUDE_DRC and (not _OPTIONS["FORCE_DRC_C_BACKEND"]) and ((_OPTIONS["PLATFORM"] == "x86") or (_OPTIONS["PLATFORM"] == "arm64"))
-
-
--if (CPU_INCLUDE_DRC) then
-+if CPU_INCLUDE_DRC then
- files {
- MAME_DIR .. "src/devices/cpu/drcbec.cpp",
- MAME_DIR .. "src/devices/cpu/drcbec.h",
-@@ -41,16 +42,16 @@ if (CPU_INCLUDE_DRC) then
- MAME_DIR .. "src/devices/cpu/x86log.h",
- MAME_DIR .. "src/devices/cpu/drcumlsh.h",
- }
-- if (not _OPTIONS["FORCE_DRC_C_BACKEND"]) and ((_OPTIONS["PLATFORM"] == "x86") or (_OPTIONS["PLATFORM"] == "arm64")) then
-- files {
-- MAME_DIR .. "src/devices/cpu/drcbearm64.cpp",
-- MAME_DIR .. "src/devices/cpu/drcbearm64.h",
-- MAME_DIR .. "src/devices/cpu/drcbex64.cpp",
-- MAME_DIR .. "src/devices/cpu/drcbex64.h",
-- MAME_DIR .. "src/devices/cpu/drcbex86.cpp",
-- MAME_DIR .. "src/devices/cpu/drcbex86.h",
-- }
-- end
-+end
-+if CPU_INCLUDE_DRC_NATIVE then
-+ files {
-+ MAME_DIR .. "src/devices/cpu/drcbearm64.cpp",
-+ MAME_DIR .. "src/devices/cpu/drcbearm64.h",
-+ MAME_DIR .. "src/devices/cpu/drcbex64.cpp",
-+ MAME_DIR .. "src/devices/cpu/drcbex64.h",
-+ MAME_DIR .. "src/devices/cpu/drcbex86.cpp",
-+ MAME_DIR .. "src/devices/cpu/drcbex86.h",
-+ }
- end
-
- --------------------------------------------------
-@@ -1295,7 +1296,7 @@ end
- -- Beware that opt_tool can set the value, so we want both to be executed always
- local want_disasm_i86 = opt_tool(CPUS, "I86")
- local want_disasm_i386 = opt_tool(CPUS, "I386")
--if want_disasm_i86 or want_disasm_i386 or CPU_INCLUDE_DRC then
-+if want_disasm_i86 or want_disasm_i386 or CPU_INCLUDE_DRC_NATIVE then
- table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/i386/i386dasm.cpp")
- table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/i386/i386dasm.h")
- end
-diff --git a/scripts/src/main.lua b/scripts/src/main.lua
-index d5f94bb60bdac..7b1971d0da18d 100644
---- a/scripts/src/main.lua
-+++ b/scripts/src/main.lua
-@@ -151,7 +151,7 @@ end
- ext_lib("jpeg"),
- "7z",
- }
--if not _OPTIONS["FORCE_DRC_C_BACKEND"] then
-+if CPU_INCLUDE_DRC_NATIVE then
- links {
- "asmjit",
- }
diff --git a/projects/configgen/configgen/generators/libretro/libretroCores.py b/projects/configgen/configgen/generators/libretro/libretroCores.py
index ff2657a2e9dcf01d2160ff97b2f82232803c7554..413439d1b05746706ba71ba60ec7e3c21a358111 100644
--- a/projects/configgen/configgen/generators/libretro/libretroCores.py
+++ b/projects/configgen/configgen/generators/libretro/libretroCores.py
@@ -26,9 +26,18 @@ class LibretroCores:
def configureMAME2003plus(coreSettings: keyValueSettings):
coreSettings.setString("mame2003-plus_analog", '"digital"')
- @staticmethod
- def configureMAME(coreSettings: keyValueSettings):
+ def configureMAME(self, coreSettings: keyValueSettings):
coreSettings.setString("mame_read_config", '"enabled"')
+ coreSettings.setString("mame_mouse_enable", '"enabled"')
+ import shutil
+ import configgen.recalboxFiles as recalboxFiles
+ from pathlib import Path
+ Path(recalboxFiles.mameConfigFolder).mkdir(parents=True, exist_ok=True)
+ if self.system.CRTAdapter == CRTAdapter.RECALBOXRGBJAMMA:
+ mameControllerSettings = "/jamma.cfg"
+ else:
+ mameControllerSettings = "/keyboard.cfg"
+ shutil.copyfile(recalboxFiles.mameDefaultFolder + mameControllerSettings, recalboxFiles.mameSettingsFile)
@staticmethod
def configureOpera(coreSettings: keyValueSettings):
@@ -406,7 +415,9 @@ class LibretroCores:
"bluemsx" : LibretroCores.configureBlueMSX,
"dolphin": LibretroCores.configureDolphin,
"mame2003_plus": LibretroCores.configureMAME2003plus,
- "mame": LibretroCores.configureMAME,
+ "mame": self.configureMAME,
+ "mame0258": self.configureMAME,
+ "mame0278": self.configureMAME,
"mupen64plus_nx" : LibretroCores.configureMUPEN64,
"opera": LibretroCores.configureOpera,
"parallel_n64": LibretroCores.configurePARALLELN64,
diff --git a/projects/configgen/configgen/recalboxFiles.py b/projects/configgen/configgen/recalboxFiles.py
index 6eea5d7191c7fc8b4b26e828587fc0f7f1024852..26cbd98242b1d22f658cc6f2fa53483908a14327 100644
--- a/projects/configgen/configgen/recalboxFiles.py
+++ b/projects/configgen/configgen/recalboxFiles.py
@@ -176,3 +176,7 @@ xemuConfig = CONF + '/xemu/xemu.toml'
vpinballRootFolder = CONF + '/vpinball'
vpinballConfigFile = vpinballRootFolder + '/VPinballX-configgen.ini'
+
+mameDefaultFolder = SAVES_INIT + '/mame/mame/cfg'
+mameConfigFolder = SAVES + '/mame/mame/cfg'
+mameSettingsFile = mameConfigFolder + '/default.cfg'