From 5e6645503a55bca613f5177337e18a2436699f08 Mon Sep 17 00:00:00 2001 From: digitalLumberjack Date: Fri, 26 Jan 2024 01:15:57 +0100 Subject: [PATCH 1/4] feat(system): remove me: let 2GB space at the end of disk --- board/recalbox/fsoverlay/etc/init.d/S11share | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/board/recalbox/fsoverlay/etc/init.d/S11share b/board/recalbox/fsoverlay/etc/init.d/S11share index 396d8e3db1..01c5c8dac8 100755 --- a/board/recalbox/fsoverlay/etc/init.d/S11share +++ b/board/recalbox/fsoverlay/etc/init.d/S11share @@ -79,6 +79,7 @@ createMissingPartitions() { fixGPTAltHeader "$bootDevice" alignSize=$((1024 * 1024)) # Align partition on megabyte overlayPartitionSize=$((1024 * 1024 * 1024)) # OVERLAY partition will be 1GB + freeSize=$((2 * 1024 * 1024 * 1024)) # FreeSize will be 2GB defaultPartedOptions=("-m" "-s" "-a" "optimal" "${bootDevice}" "unit" "b") partitionType=$(/recalbox/scripts/recalbox-part.sh type "${bootPartition}") @@ -102,9 +103,9 @@ createMissingPartitions() { # Determine new partitions boundaries sharePartitionStart=$(alignToUpperBlock "${freeSpaceStart}") - overlayPartitionStart=$(alignToUpperBlock $(( freeSpaceEnd - overlayPartitionSize ))) + overlayPartitionStart=$(alignToUpperBlock $(( freeSpaceEnd - freeSize - overlayPartitionSize ))) sharePartitionEnd=$(( overlayPartitionStart - alignSize )) # keep 1MB between partitions, since using `${overlayPartitionStart} - 1` can actually fail on some disks, despite being strictly correct - overlayPartitionEnd="100%" + overlayPartitionEnd=$(alignToUpperBlock $(( overlayPartitionStart + overlayPartitionSize ))) # Create SHARE partition and filesystem parted "${defaultPartedOptions[@]}" mkpart "${partitionType}" ntfs "${sharePartitionStart}" "${sharePartitionEnd}" # ExFAT uses the same type code than NTFS (0x07) in MBR partition tables -- GitLab From 5fe9a26e5a2c7ef8d0f501faae0a2630a156958f Mon Sep 17 00:00:00 2001 From: digitalLumberjack Date: Wed, 19 Jun 2024 10:08:01 +0200 Subject: [PATCH 2/4] feat(configgen): rrgbj: avoid 50hz mode for pal games --- RELEASE-NOTES.md | 4 +++ projects/configgen/configgen/Emulator.py | 4 +++ .../libretro/crt/LibretroConfigCRT.py | 2 ++ .../libretro/crt/LibretroConfigCRT_test.py | 32 +++++++++++++++++++ 4 files changed, 42 insertions(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index cb6695b871..32ab2795b4 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -4,6 +4,10 @@ This file will be processed and will be distributed with Recalbox Releases. The text, located between the first `## Version XXX` and the second one, will appear as release notes for end user on a Recalbox upgrade. +# Version 10.0 +- Avoid 50Hz mode for pal games on JAMMA + + ## Version 9.2.1-Pulstar ### Fixes diff --git a/projects/configgen/configgen/Emulator.py b/projects/configgen/configgen/Emulator.py index 3409afd51b..4d18b11cf5 100644 --- a/projects/configgen/configgen/Emulator.py +++ b/projects/configgen/configgen/Emulator.py @@ -421,6 +421,10 @@ class Emulator: @property def CRTVideoStandard(self) -> CRTVideoStandard: return self._crtvideostandard + @CRTVideoStandard.setter + def CRTVideoStandard(self, value): + self._crtvideostandard = value + @property def CRTRegion(self) -> CRTRegion: return self._crtregion diff --git a/projects/configgen/configgen/generators/libretro/crt/LibretroConfigCRT.py b/projects/configgen/configgen/generators/libretro/crt/LibretroConfigCRT.py index 27d4f60946..a319438a84 100644 --- a/projects/configgen/configgen/generators/libretro/crt/LibretroConfigCRT.py +++ b/projects/configgen/configgen/generators/libretro/crt/LibretroConfigCRT.py @@ -305,6 +305,8 @@ class LibretroConfigCRT: config["video_scale_integer_overscale"] = '"true"' if system.CRTAdapter == CRTAdapter.RECALBOXRGBJAMMA: forceIntergerScale = True + # Always force ntsc, because arcade monitors are 60HZ only + system.CRTVideoStandard = CRTVideoStandard.NTSC # Arcade if core in self.arcade_cores and system.Name != "neogeocd": diff --git a/projects/configgen/tests/generators/libretro/crt/LibretroConfigCRT_test.py b/projects/configgen/tests/generators/libretro/crt/LibretroConfigCRT_test.py index 87bdf2864b..250918f687 100644 --- a/projects/configgen/tests/generators/libretro/crt/LibretroConfigCRT_test.py +++ b/projects/configgen/tests/generators/libretro/crt/LibretroConfigCRT_test.py @@ -1344,3 +1344,35 @@ def test_given_playstation_game_then_return_interger_scale_overscale(mocker): assert config_lines["custom_viewport_height_ntsc"] == 239 assert config_lines["video_scale_integer"] == '"true"' assert config_lines["video_scale_integer_overscale"] == '"true"' + +def test_given_jamma_then_dont_use_50Hz_modes_on_snes(mocker): + givenThoseFiles(mocker, { + SYSTEMS_TXT: "snes,snes9x,pal,15kHz,progressive,snes:pal:240@50p,0,0\nsnes,snes9x,ntsc,15kHz,progressive,snes:ntsc:224@60p,0,0", + MODES_TXT: "snes:ntsc:224@60p,1920 1 78 192 210 224 1 3 3 16 0 0 0 60 0 37730000 1,60.1\nsnes:pal:240@50p,1920 1 78 192 210 240 1 3 3 16 0 0 0 50 0 37730000 1,50.1"}) + + snes = configureForCrt( + Emulator(name='snes', videoMode='1920x1080', ratio='auto', emulator='libretro', core='snes9x'), + crtresolutiontype="progressive", crtvideostandard="pal", + crtscreentype="15kHz", crtadaptor="recalboxrgbjamma") + config_lines = LibretroConfigCRT(CRTConfigParser(), CRTModeOffsetter(), False).createConfigFor(snes, + "ff6.zip") + assert config_lines["crt_switch_timings_pal"] == '"1920 1 78 192 210 224 1 3 3 16 0 0 0 60 0 37730000 1"' + assert config_lines["crt_switch_timings_ntsc"] == '"1920 1 78 192 210 224 1 3 3 16 0 0 0 60 0 37730000 1"' + assert config_lines["video_refresh_rate_pal"] == '"60.1"' + assert config_lines["video_refresh_rate_ntsc"] == '"60.1"' + +def test_given_jamma_then_use_60Hz_modes_on_console_with_only_50HZ(mocker): + givenThoseFiles(mocker, { + SYSTEMS_TXT: "amigacd32,uae4arm,all,15kHz,progressive,standard:pal:240@50,0,0", + MODES_TXT: "standard:pal:240@50,1920 1 80 184 312 240 1 28 3 42 0 0 0 50 0 39062400 1,50\ndefault:ntsc:240@60,1920 1 80 184 312 240 1 1 3 16 0 0 0 60 0 38937600 1,60"}) + + snes = configureForCrt( + Emulator(name='amigacd32', videoMode='1920x1080', ratio='auto', emulator='libretro', core='uae4arm'), + crtresolutiontype="progressive", crtvideostandard="pal", + crtscreentype="15kHz", crtadaptor="recalboxrgbjamma") + config_lines = LibretroConfigCRT(CRTConfigParser(), CRTModeOffsetter(), False).createConfigFor(snes, + "gamez.zip") + assert config_lines["crt_switch_timings_pal"] == '"1920 1 80 184 312 240 1 1 3 16 0 0 0 60 0 38937600 1"' + assert config_lines["crt_switch_timings_ntsc"] == '"1920 1 80 184 312 240 1 1 3 16 0 0 0 60 0 38937600 1"' + assert config_lines["video_refresh_rate_pal"] == '"60"' + assert config_lines["video_refresh_rate_ntsc"] == '"60"' -- GitLab From 9bb7312e8174aca78d72c2e6b9a60823eb77bc93 Mon Sep 17 00:00:00 2001 From: digitalLumberjack Date: Tue, 18 Jun 2024 15:39:49 +0200 Subject: [PATCH 3/4] wip notifications retroarch 240p --- package/recalbox-crt/gf-vienna-heavy.heavy.ttf | Bin 0 -> 21488 bytes package/recalbox-crt/recalbox-crt.mk | 1 + .../libretro/crt/LibretroConfigCRT.py | 15 ++++++++++----- .../libretro/crt/LibretroConfigCRT_test.py | 15 +++++++++++++++ 4 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 package/recalbox-crt/gf-vienna-heavy.heavy.ttf diff --git a/package/recalbox-crt/gf-vienna-heavy.heavy.ttf b/package/recalbox-crt/gf-vienna-heavy.heavy.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f1b1646ec475c3483f2adc51697580f0530464b4 GIT binary patch literal 21488 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 B6HfpD literal 0 HcmV?d00001 diff --git a/package/recalbox-crt/recalbox-crt.mk b/package/recalbox-crt/recalbox-crt.mk index a025f68195..becbb2c8c9 100644 --- a/package/recalbox-crt/recalbox-crt.mk +++ b/package/recalbox-crt/recalbox-crt.mk @@ -13,6 +13,7 @@ define RECALBOX_CRT_INSTALL_TARGET_CMDS $(INSTALL) -D -m 644 $(RECALBOX_CRT_PKGDIR)/crt-config/recalbox-crt-options.cfg $(BINARIES_DIR)/boot-data/crt/recalbox-crt-options.cfg $(INSTALL) -D -m 644 $(RECALBOX_CRT_PKGDIR)/crt-config/recalbox-crt-options.cfg $(BINARIES_DIR)/boot-data/crt/recalbox-crt-options.cfg.defaults $(INSTALL) -D -m 0744 $(RECALBOX_CRT_PKGDIR)/S13crt $(TARGET_DIR)/etc/init.d/ + $(INSTALL) -D -m 0744 $(RECALBOX_CRT_PKGDIR)/gf-vienna-heavy.heavy.ttf $(TARGET_DIR)/usr/share/fonts/truetype/ mkdir -p $(TARGET_DIR)/recalbox/system/configs/crt/ mkdir -p $(TARGET_DIR)/recalbox/share_init/system/configs/crt/ echo "Place your extra CRT configurations in this directory." > $(TARGET_DIR)/recalbox/share_init/system/configs/crt/README.txt diff --git a/projects/configgen/configgen/generators/libretro/crt/LibretroConfigCRT.py b/projects/configgen/configgen/generators/libretro/crt/LibretroConfigCRT.py index a319438a84..86b4b85608 100644 --- a/projects/configgen/configgen/generators/libretro/crt/LibretroConfigCRT.py +++ b/projects/configgen/configgen/generators/libretro/crt/LibretroConfigCRT.py @@ -23,6 +23,8 @@ class LibretroConfigCRT: arcade_cores: [str] = ["fbneo", "mame2003", "mame2010", "mame2003_plus", "mame2015", "mame"] + standard_font = '"/usr/share/fonts/truetype/ubuntu_condensed.ttf"' + wide_font = '"/usr/share/fonts/truetype/gf-vienna-heavy.heavy.ttf"' def createConfigForMode(self, region: str, mode: Mode, viewport_width: int, viewport_height: int, game_is_tate: int, system_rotation: Rotation, k31:bool=False, forceFullAndIntegerScale:bool=False) -> \ typing.Dict[ str, typing.Any]: @@ -40,7 +42,7 @@ class LibretroConfigCRT: config["aspect_ratio_index"] = '23' extension = ["_ntsc", "_pal"] if region == "all" else ["_" + region] - + if ((system_rotation.value == Rotation.none or system_rotation.value == Rotation.upsidedown) and not game_is_tate) \ or ((system_rotation.value == Rotation.left or system_rotation.value == Rotation.right) and game_is_tate): @@ -101,6 +103,10 @@ class LibretroConfigCRT: # For arcade, the viewport info by region seems not selected sometimes on retroarch so we set default values config["custom_viewport_x"] = final_x config["custom_viewport_y"] = final_y + + # Superrez is at least 6x width but we do not take risk + if mode.width > 3 * mode.height: + config["video_font_path"] = self.wide_font return config def select_width(self, system: Emulator, mode_viewport_width: int, mode: Mode, gameIsTate: int = 0): @@ -274,11 +280,10 @@ class LibretroConfigCRT: "video_smooth": '"false"', "video_allow_rotate": '"true"', "video_driver": '"gl"', - "video_scale_integer_overscale": '"false"' + "video_scale_integer_overscale": '"false"', + "video_font_path": self.standard_font, + "video_font_enable": '"true"' } - if system.CRTAdapter == CRTAdapter.RECALBOXRGBJAMMA: - config["video_font_enable"] = '"false"' - core: str = system.Core default: bool = True game_name: str = Path(rom).stem diff --git a/projects/configgen/tests/generators/libretro/crt/LibretroConfigCRT_test.py b/projects/configgen/tests/generators/libretro/crt/LibretroConfigCRT_test.py index 250918f687..58f65b3098 100644 --- a/projects/configgen/tests/generators/libretro/crt/LibretroConfigCRT_test.py +++ b/projects/configgen/tests/generators/libretro/crt/LibretroConfigCRT_test.py @@ -1376,3 +1376,18 @@ def test_given_jamma_then_use_60Hz_modes_on_console_with_only_50HZ(mocker): assert config_lines["crt_switch_timings_ntsc"] == '"1920 1 80 184 312 240 1 1 3 16 0 0 0 60 0 38937600 1"' assert config_lines["video_refresh_rate_pal"] == '"60"' assert config_lines["video_refresh_rate_ntsc"] == '"60"' + +def test_given_superrez_mode_then_set_wide_font(mocker): + givenThoseFiles(mocker, { + SYSTEMS_TXT: "psx,swanstation,ntsc,15kHz,progressive,psx@60.0988,0,0", + MODES_TXT: "psx@60.0988,1920 1 80 184 312 239 1 1 3 16 0 0 0 60 0 39001717 1,60.0988" + }) + + psx = configureForCrt( + Emulator(name='psx', videoMode='1920x1080', ratio='auto', emulator='libretro', core='swanstation'), + crtresolutiontype="progressive", crtvideostandard="auto", + crtscreentype="15kHz") + config_lines = LibretroConfigCRT(CRTConfigParser(), CRTModeOffsetter(), False).createConfigFor(psx, + "ff7.chd") + assert config_lines["video_font_path"] == '"/usr/share/fonts/truetype/gf-vienna-heavy.heavy.ttf"' + assert config_lines["video_font_enable"] == '"true"' \ No newline at end of file -- GitLab From 3f4993036539cced038158cc54367eee3e0ae68a Mon Sep 17 00:00:00 2001 From: digitalLumberjack Date: Wed, 19 Jun 2024 13:23:11 +0200 Subject: [PATCH 4/4] fix(configgen): fix midway games on 15khz --- RELEASE-NOTES.md | 1 + .../recalbox-crt/crt-config/arcade_games.txt | 205 +++++++++--------- .../libretro/crt/LibretroConfigCRT.py | 8 +- .../libretro/crt/LibretroConfigCRT_test.py | 28 ++- 4 files changed, 130 insertions(+), 112 deletions(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 32ab2795b4..6634a46794 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -6,6 +6,7 @@ as release notes for end user on a Recalbox upgrade. # Version 10.0 - Avoid 50Hz mode for pal games on JAMMA +- Fix Midway resolutions on CRT ## Version 9.2.1-Pulstar diff --git a/package/recalbox-crt/crt-config/arcade_games.txt b/package/recalbox-crt/crt-config/arcade_games.txt index 93d48b9a8a..cd3ce07290 100644 --- a/package/recalbox-crt/crt-config/arcade_games.txt +++ b/package/recalbox-crt/crt-config/arcade_games.txt @@ -3214,12 +3214,12 @@ higemaru,mame2010,arcade:224@60.000000,0,0,0 highsplt,mame2010,arcade:224@60.000000,0,0,1 highsplta,mame2010,arcade:224@60.000000,0,0,1 highspltb,mame2010,arcade:224@60.000000,0,0,1 -hiimpact,mame2010,arcade:253@54.815170,0,0,0 -hiimpact1,mame2010,arcade:253@54.815170,0,0,0 -hiimpact2,mame2010,arcade:253@54.815170,0,0,0 -hiimpact3,mame2010,arcade:253@54.815170,0,0,0 -hiimpact4,mame2010,arcade:253@54.815170,0,0,0 -hiimpactp,mame2010,arcade:253@54.815170,0,0,0 +hiimpact,mame2010,arcade:253@54.815170,0,256,0 +hiimpact1,mame2010,arcade:253@54.815170,0,256,0 +hiimpact2,mame2010,arcade:253@54.815170,0,256,0 +hiimpact3,mame2010,arcade:253@54.815170,0,256,0 +hiimpact4,mame2010,arcade:253@54.815170,0,256,0 +hiimpactp,mame2010,arcade:253@54.815170,0,256,0 hikaru,mame2010,arcade:480@60.000000,0,0,0 himesiki,mame2010,arcade:192@60.000000,0,0,1 hipai,mame2010,arcade:240@60.000000,0,0,0 @@ -3516,9 +3516,9 @@ jchan2,mame2010,arcade:240@60.000000,0,0,0 jclub2,mame2010,arcade:240@60.000000,0,0,0 jclub2o,mame2010,arcade:240@60.000000,0,0,0 jcross,mame2010,arcade:216@60.000000,0,0,1 -jdredd,mame2010,arcade:480@60.000000,0,0,0 -jdreddb,mame2010,arcade:480@60.000000,0,0,0 -jdreddp,mame2010,arcade:253@54.815170,0,0,0 +jdredd,mame2010,arcade:480@60.000000,0,256,0 +jdreddb,mame2010,arcade:480@60.000000,0,256,0 +jdreddp,mame2010,arcade:253@54.815170,0,256,0 jedi,mame2010,arcade:240@60.000000,0,0,0 jgakuen,mame2010,arcade:480@60.000000,0,0,0 jigkmgri,mame2010,arcade:224@60.000000,0,0,0 @@ -4498,29 +4498,29 @@ mjyougo,mame2010,arcade:224@59.000000,0,0,0 mjyuugi,mame2010,arcade:240@60.000000,0,0,0 mjyuugia,mame2010,arcade:240@60.000000,0,0,0 mjzoomin,mame2010,arcade:224@60.000000,0,0,0 -mk,mame2010,arcade:253@54.815170,0,0,0 -mk2,mame2010,arcade:253@54.815170,0,0,0 -mk2chal,mame2010,arcade:253@54.815170,0,0,0 -mk2r14,mame2010,arcade:253@54.815170,0,0,0 -mk2r21,mame2010,arcade:253@54.815170,0,0,0 -mk2r30,mame2010,arcade:253@54.815170,0,0,0 -mk2r31e,mame2010,arcade:253@54.815170,0,0,0 -mk2r32,mame2010,arcade:253@54.815170,0,0,0 -mk2r42,mame2010,arcade:253@54.815170,0,0,0 -mk2r91,mame2010,arcade:253@54.815170,0,0,0 -mk3,mame2010,arcade:253@54.815170,0,0,0 -mk3ghw,mame2010,arcade:224@60.000000,0,0,0 -mk3p40,mame2010,arcade:253@54.815170,0,0,0 -mk3r10,mame2010,arcade:253@54.815170,0,0,0 -mk3r20,mame2010,arcade:253@54.815170,0,0,0 -mk4,mame2010,arcade:256@56.665468,0,0,0 -mk4a,mame2010,arcade:256@56.665468,0,0,0 -mk4b,mame2010,arcade:256@56.665468,0,0,0 +mk,mame2010,arcade:253@54.815170,0,256,0 +mk2,mame2010,arcade:253@54.815170,0,256,0 +mk2chal,mame2010,arcade:253@54.815170,0,256,0 +mk2r14,mame2010,arcade:253@54.815170,0,256,0 +mk2r21,mame2010,arcade:253@54.815170,0,256,0 +mk2r30,mame2010,arcade:253@54.815170,0,256,0 +mk2r31e,mame2010,arcade:253@54.815170,0,256,0 +mk2r32,mame2010,arcade:253@54.815170,0,256,0 +mk2r42,mame2010,arcade:253@54.815170,0,256,0 +mk2r91,mame2010,arcade:253@54.815170,0,256,0 +mk3,mame2010,arcade:253@54.815170,0,256,0 +mk3ghw,mame2010,arcade:224@60.000000,0,256,0 +mk3p40,mame2010,arcade:253@54.815170,0,256,0 +mk3r10,mame2010,arcade:253@54.815170,0,256,0 +mk3r20,mame2010,arcade:253@54.815170,0,256,0 +mk4,mame2010,arcade:256@56.665468,0,256,0 +mk4a,mame2010,arcade:256@56.665468,0,256,0 +mk4b,mame2010,arcade:256@56.665468,0,256,0 mkeibaou,mame2010,arcade:240@60.000000,0,0,0 -mkla1,mame2010,arcade:253@54.815170,0,0,0 -mkla2,mame2010,arcade:253@54.815170,0,0,0 -mkla3,mame2010,arcade:253@54.815170,0,0,0 -mkla4,mame2010,arcade:253@54.815170,0,0,0 +mkla1,mame2010,arcade:253@54.815170,0,256,0 +mkla2,mame2010,arcade:253@54.815170,0,256,0 +mkla3,mame2010,arcade:253@54.815170,0,256,0 +mkla4,mame2010,arcade:253@54.815170,0,256,0 mkoiuraa,mame2010,arcade:240@60.000000,0,0,0 mkprot8,mame2010,arcade:253@54.815170,0,0,0 mkprot9,mame2010,arcade:253@54.815170,0,0,0 @@ -4904,13 +4904,13 @@ naughtyba,mame2010,arcade:224@60.000000,0,0,1 naughtybc,mame2010,arcade:224@60.000000,0,0,1 navarone,mame2010,arcade:224@60.606061,0,0,1 nbahangt,mame2010,arcade:253@54.815170,0,0,0 -nbajam,mame2010,arcade:253@54.815170,0,0,0 -nbajamex,mame2010,arcade:480@60.000000,0,0,0 -nbajamr2,mame2010,arcade:253@54.815170,0,0,0 -nbajamt1,mame2010,arcade:253@54.815170,0,0,0 -nbajamt2,mame2010,arcade:253@54.815170,0,0,0 -nbajamt3,mame2010,arcade:253@54.815170,0,0,0 -nbajamte,mame2010,arcade:253@54.815170,0,0,0 +nbajam,mame2010,arcade:253@54.815170,0,256,0 +nbajamex,mame2010,arcade:480@60.000000,0,256,0 +nbajamr2,mame2010,arcade:253@54.815170,0,256,0 +nbajamt1,mame2010,arcade:253@54.815170,0,256,0 +nbajamt2,mame2010,arcade:253@54.815170,0,256,0 +nbajamt3,mame2010,arcade:253@54.815170,0,256,0 +nbajamte,mame2010,arcade:253@54.815170,0,256,0 nbamht,mame2010,arcade:253@54.815170,0,0,0 nbamht1,mame2010,arcade:253@54.815170,0,0,0 nbanfl,mame2010,arcade:480@57.000000,0,0,0 @@ -6848,10 +6848,10 @@ sheriff,mame2010,arcade:224@60.000000,0,0,1 shienryu,mame2010,arcade:224@59.828244,0,0,1 shikgam2,mame2010,arcade:480@60.000000,0,0,1 shikigam,mame2010,arcade:480@60.000000,0,0,1 -shimpact,mame2010,arcade:253@54.815170,0,0,0 -shimpactp4,mame2010,arcade:253@54.815170,0,0,0 -shimpactp5,mame2010,arcade:253@54.815170,0,0,0 -shimpactp6,mame2010,arcade:253@54.815170,0,0,0 +shimpact,mame2010,arcade:253@54.815170,0,256,0 +shimpactp4,mame2010,arcade:253@54.815170,0,256,0 +shimpactp5,mame2010,arcade:253@54.815170,0,256,0 +shimpactp6,mame2010,arcade:253@54.815170,0,256,0 shinobi,mame2010,arcade:224@60.000000,0,0,0 shinobi1,mame2010,arcade:224@60.000000,0,0,0 shinobi2,mame2010,arcade:224@60.054389,0,0,0 @@ -7030,11 +7030,11 @@ slyspy,mame2010,arcade:240@57.410000,0,0,0 slyspy2,mame2010,arcade:240@57.410000,0,0,0 smarinef,mame2010,arcade:480@60.000000,0,0,0 smash,mame2010,arcade:256@57.000000,0,0,0 -smashtv,mame2010,arcade:253@54.815170,0,0,0 -smashtv3,mame2010,arcade:253@54.815170,0,0,0 -smashtv4,mame2010,arcade:253@54.815170,0,0,0 -smashtv5,mame2010,arcade:253@54.815170,0,0,0 -smashtv6,mame2010,arcade:253@54.815170,0,0,0 +smashtv,mame2010,arcade:253@54.815170,0,256,0 +smashtv3,mame2010,arcade:253@54.815170,0,256,0 +smashtv4,mame2010,arcade:253@54.815170,0,256,0 +smashtv5,mame2010,arcade:253@54.815170,0,256,0 +smashtv6,mame2010,arcade:253@54.815170,0,256,0 smbomb,mame2010,arcade:224@59.629403,0,0,0 smbombr1,mame2010,arcade:224@59.629403,0,0,0 smgolf,mame2010,arcade:240@60.000000,0,0,0 @@ -7511,7 +7511,7 @@ strikeit2d,mame2010,arcade:296@50.000000,0,0,0 strikeitd,mame2010,arcade:296@50.000000,0,0,0 striv,mame2010,arcade:224@60.000000,0,0,1 strkfgtr,mame2010,arcade:224@60.000000,0,0,0 -strkforc,mame2010,arcade:253@54.815170,0,0,0 +strkforc,mame2010,arcade:253@54.815170,0,256,0 strkzone,mame2010,arcade:240@60.000000,0,0,0 strnskil,mame2010,arcade:224@60.000000,0,0,0 strongx,mame2010,arcade:224@60.606061,0,0,0 @@ -7786,10 +7786,10 @@ terabrst,mame2010,arcade:384@60.000000,0,0,0 terabrst,mame2010,arcade:384@60.000000,0,0,0 terabrsta,mame2010,arcade:384@60.000000,0,0,0 terabrsta,mame2010,arcade:384@60.000000,0,0,0 -term2,mame2010,arcade:253@54.815170,0,0,0 -term2la1,mame2010,arcade:253@54.815170,0,0,0 -term2la2,mame2010,arcade:253@54.815170,0,0,0 -term2la3,mame2010,arcade:253@54.815170,0,0,0 +term2,mame2010,arcade:253@54.815170,0,256,0 +term2la1,mame2010,arcade:253@54.815170,0,256,0 +term2la2,mame2010,arcade:253@54.815170,0,256,0 +term2la3,mame2010,arcade:253@54.815170,0,256,0 terracre,mame2010,arcade:224@60.000000,0,0,1 terracrea,mame2010,arcade:224@60.000000,0,0,1 terracren,mame2010,arcade:224@60.000000,0,0,1 @@ -8041,8 +8041,8 @@ tornbase,mame2010,arcade:224@59.541985,0,0,0 tortufam,mame2010,arcade:232@60.000000,0,0,0 torus,mame2010,arcade:224@54.000000,0,0,1 toryumon,mame2010,arcade:224@60.054389,0,0,0 -totcarn,mame2010,arcade:253@54.815170,0,0,0 -totcarnp,mame2010,arcade:253@54.815170,0,0,0 +totcarn,mame2010,arcade:253@54.815170,0,256,0 +totcarnp,mame2010,arcade:253@54.815170,0,256,0 totd,mame2010,arcade:480@60.000000,0,0,0 totlvice,mame2010,arcade:384@60.000000,0,0,0 totlvicj,mame2010,arcade:384@60.000000,0,0,0 @@ -8112,11 +8112,11 @@ triviayp,mame2010,arcade:240@59.185606,0,0,0 trivquiz,mame2010,arcade:240@59.992284,0,0,0 trizeal,mame2010,arcade:480@60.000000,0,0,1 troangel,mame2010,arcade:240@57.000000,0,0,0 -trog,mame2010,arcade:253@54.815170,0,0,0 -trog3,mame2010,arcade:253@54.815170,0,0,0 -trog4,mame2010,arcade:253@54.815170,0,0,0 -trogpa4,mame2010,arcade:253@54.815170,0,0,0 -trogpa6,mame2010,arcade:253@54.815170,0,0,0 +trog,mame2010,arcade:253@54.815170,0,256,0 +trog3,mame2010,arcade:253@54.815170,0,256,0 +trog4,mame2010,arcade:253@54.815170,0,256,0 +trogpa4,mame2010,arcade:253@54.815170,0,256,0 +trogpa6,mame2010,arcade:253@54.815170,0,256,0 trojan,mame2010,arcade:240@60.000000,0,0,0 trojanj,mame2010,arcade:240@60.000000,0,0,0 trojanr,mame2010,arcade:240@60.000000,0,0,0 @@ -16313,7 +16313,7 @@ hharry,mame2003,arcade:256@55.000000,0,0,0 hharryu,mame2003,arcade:256@55.000000,0,0,0 hidnctch,mame2003,arcade:256@60.000000,0,0,0 higemaru,mame2003,arcade:224@60.000000,0,0,0 -hiimpact,mame2003,arcade:256@53.204948,0,0,0 +hiimpact,mame2003,arcade:256@53.204948,0,256,0 hippodrm,mame2003,arcade:240@57.410000,0,0,0 hiryuken,mame2003,arcade:224@60.000000,0,0,0 hishouza,mame2003,arcade:240@54.877857,0,0,1 @@ -16459,9 +16459,9 @@ janjans1,mame2003,arcade:240@60.000000,0,0,0 janshin,mame2003,arcade:224@60.000000,0,0,0 jchan,mame2003,arcade:512@60.000000,0,0,0 jcross,mame2003,arcade:224@61.000000,0,0,1 -jdredd,mame2003,arcade:480@60.000000,0,0,0 -jdreddb,mame2003,arcade:480@60.000000,0,0,0 -jdreddp,mame2003,arcade:254@53.204948,0,0,0 +jdredd,mame2003,arcade:480@60.000000,0,256,0 +jdreddb,mame2003,arcade:480@60.000000,0,256,0 +jdreddp,mame2003,arcade:254@53.204948,0,256,0 jedi,mame2003,arcade:240@60.000000,0,0,0 jgakuen,mame2003,arcade:480@60.000000,0,0,0 jigkmgri,mame2003,arcade:224@60.000000,0,0,0 @@ -16950,24 +16950,24 @@ mjyougo,mame2003,arcade:224@59.000000,0,0,0 mjyuugi,mame2003,arcade:240@60.000000,0,0,0 mjyuugia,mame2003,arcade:240@60.000000,0,0,0 mjzoomin,mame2003,arcade:232@60.000000,0,0,0 -mk,mame2003,arcade:254@53.204948,0,0,0 -mk2,mame2003,arcade:254@53.204948,0,0,0 -mk2chal,mame2003,arcade:254@53.204948,0,0,0 -mk2r14,mame2003,arcade:254@53.204948,0,0,0 -mk2r21,mame2003,arcade:254@53.204948,0,0,0 -mk2r32,mame2003,arcade:254@53.204948,0,0,0 -mk2r42,mame2003,arcade:254@53.204948,0,0,0 -mk2r91,mame2003,arcade:254@53.204948,0,0,0 -mk3,mame2003,arcade:254@53.204948,0,0,0 -mk3r10,mame2003,arcade:254@53.204948,0,0,0 -mk3r20,mame2003,arcade:254@53.204948,0,0,0 +mk,mame2003,arcade:254@53.204948,0,256,0 +mk2,mame2003,arcade:254@53.204948,0,256,0 +mk2chal,mame2003,arcade:254@53.204948,0,256,0 +mk2r14,mame2003,arcade:254@53.204948,0,256,0 +mk2r21,mame2003,arcade:254@53.204948,0,256,0 +mk2r32,mame2003,arcade:254@53.204948,0,256,0 +mk2r42,mame2003,arcade:254@53.204948,0,256,0 +mk2r91,mame2003,arcade:254@53.204948,0,256,0 +mk3,mame2003,arcade:254@53.204948,0,256,0 +mk3r10,mame2003,arcade:254@53.204948,0,256,0 +mk3r20,mame2003,arcade:254@53.204948,0,256,0 mkeibaou,mame2003,arcade:240@60.000000,0,0,0 -mkla1,mame2003,arcade:254@53.204948,0,0,0 -mkla2,mame2003,arcade:254@53.204948,0,0,0 -mkla3,mame2003,arcade:254@53.204948,0,0,0 -mkla4,mame2003,arcade:254@53.204948,0,0,0 -mkprot9,mame2003,arcade:254@53.204948,0,0,0 -mkr4,mame2003,arcade:254@53.204948,0,0,0 +mkla1,mame2003,arcade:254@53.204948,0,256,0 +mkla2,mame2003,arcade:254@53.204948,0,256,0 +mkla3,mame2003,arcade:254@53.204948,0,256,0 +mkla4,mame2003,arcade:254@53.204948,0,256,0 +mkprot9,mame2003,arcade:254@53.204948,0,256,0 +mkr4,mame2003,arcade:254@53.204948,0,256,0 mladyhtr,mame2003,arcade:240@60.000000,0,0,0 mmatrix,mame2003,arcade:224@59.633331,0,0,0 mmatrixj,mame2003,arcade:224@59.633331,0,0,0 @@ -17160,13 +17160,13 @@ naughtyb,mame2003,arcade:224@60.000000,0,0,1 naughtyc,mame2003,arcade:224@60.000000,0,0,1 navalone,mame2003,arcade:224@60.000000,0,0,1 nbahangt,mame2003,arcade:254@53.204948,0,0,0 -nbajam,mame2003,arcade:254@53.204948,0,0,0 -nbajamex,mame2003,arcade:480@60.000000,0,0,0 -nbajamr2,mame2003,arcade:254@53.204948,0,0,0 -nbajamt1,mame2003,arcade:254@53.204948,0,0,0 -nbajamt2,mame2003,arcade:254@53.204948,0,0,0 -nbajamt3,mame2003,arcade:254@53.204948,0,0,0 -nbajamte,mame2003,arcade:254@53.204948,0,0,0 +nbajam,mame2003,arcade:254@53.204948,0,256,0 +nbajamex,mame2003,arcade:480@60.000000,0,256,0 +nbajamr2,mame2003,arcade:254@53.204948,0,256,0 +nbajamt1,mame2003,arcade:254@53.204948,0,256,0 +nbajamt2,mame2003,arcade:254@53.204948,0,256,0 +nbajamt3,mame2003,arcade:254@53.204948,0,256,0 +nbajamte,mame2003,arcade:254@53.204948,0,256,0 nbamaxht,mame2003,arcade:254@53.204948,0,0,0 nbbatman,mame2003,arcade:240@60.000000,0,0,0 ncombat,mame2003,arcade:224@60.000000,0,0,0 @@ -18171,7 +18171,7 @@ shdancrj,mame2003,arcade:224@60.000000,0,0,0 sheriff,mame2003,arcade:224@60.000000,0,0,1 shienryu,mame2003,arcade:480@60.000000,0,0,1 shimpacp,mame2003,arcade:256@53.204948,0,0,0 -shimpact,mame2003,arcade:256@53.204948,0,0,0 +shimpact,mame2003,arcade:256@53.204948,0,256,0 shinobi,mame2003,arcade:224@60.000000,0,0,0 shinobia,mame2003,arcade:224@60.000000,0,0,0 shinobib,mame2003,arcade:224@60.000000,0,0,0 @@ -18280,10 +18280,10 @@ slithera,mame2003,arcade:256@60.000000,0,0,1 slmdunkj,mame2003,arcade:224@60.000000,0,0,0 slyspy,mame2003,arcade:240@57.410000,0,0,0 slyspy2,mame2003,arcade:240@57.410000,0,0,0 -smashtv,mame2003,arcade:256@53.204948,0,0,0 -smashtv4,mame2003,arcade:256@53.204948,0,0,0 -smashtv5,mame2003,arcade:256@53.204948,0,0,0 -smashtv6,mame2003,arcade:256@53.204948,0,0,0 +smashtv,mame2003,arcade:256@53.204948,0,256,0 +smashtv4,mame2003,arcade:256@53.204948,0,256,0 +smashtv5,mame2003,arcade:256@53.204948,0,256,0 +smashtv6,mame2003,arcade:256@53.204948,0,256,0 smbomb,mame2003,arcade:224@59.633331,0,0,0 smbombr1,mame2003,arcade:224@59.633331,0,0,0 smgolf,mame2003,arcade:240@60.000000,0,0,0 @@ -18561,7 +18561,7 @@ striderj,mame2003,arcade:224@60.000000,0,0,0 stridr2a,mame2003,arcade:480@60.000000,0,0,0 stridrja,mame2003,arcade:224@60.000000,0,0,0 stridrua,mame2003,arcade:224@60.000000,0,0,0 -strkforc,mame2003,arcade:255@53.204948,0,0,0 +strkforc,mame2003,arcade:255@53.204948,0,256,0 strkzone,mame2003,arcade:240@60.000000,0,0,0 strnskil,mame2003,arcade:224@60.000000,0,0,0 strtheat,mame2003,arcade:224@60.000000,0,0,1 @@ -18694,9 +18694,9 @@ teljan,mame2003,arcade:240@60.000000,0,0,0 telmahjn,mame2003,arcade:240@60.000000,0,0,1 tengai,mame2003,arcade:224@59.299999,0,0,0 teplus2j,mame2003,arcade:224@60.000000,0,0,0 -term2,mame2003,arcade:255@53.204948,0,0,0 -term2la1,mame2003,arcade:255@53.204948,0,0,0 -term2la2,mame2003,arcade:255@53.204948,0,0,0 +term2,mame2003,arcade:255@53.204948,0,256,0 +term2la1,mame2003,arcade:255@53.204948,0,256,0 +term2la2,mame2003,arcade:255@53.204948,0,256,0 terracra,mame2003,arcade:224@60.000000,0,0,1 terracrb,mame2003,arcade:224@60.000000,0,0,1 terracre,mame2003,arcade:224@60.000000,0,0,1 @@ -18831,8 +18831,8 @@ toratora,mame2003,arcade:240@60.000000,0,0,1 toride2g,mame2003,arcade:224@60.000000,0,0,0 tornbase,mame2003,arcade:224@60.000000,0,0,0 toryumon,mame2003,arcade:224@60.000000,0,0,0 -totcarn,mame2003,arcade:256@53.204948,0,0,0 -totcarnp,mame2003,arcade:256@53.204948,0,0,0 +totcarn,mame2003,arcade:256@53.204948,0,256,0 +totcarnp,mame2003,arcade:256@53.204948,0,256,0 touchgo,mame2003,arcade:240@59.099998,0,0,0 tourtab2,mame2003,arcade:200@60.000000,0,0,0 tourtabl,mame2003,arcade:200@60.000000,0,0,0 @@ -18869,10 +18869,10 @@ triviasp,mame2003,arcade:240@60.000000,0,0,0 triviayp,mame2003,arcade:240@60.000000,0,0,0 trivquiz,mame2003,arcade:256@60.000000,0,0,0 troangel,mame2003,arcade:240@57.000000,0,0,0 -trog,mame2003,arcade:256@53.204948,0,0,0 -trog3,mame2003,arcade:256@53.204948,0,0,0 -trogp,mame2003,arcade:256@53.204948,0,0,0 -trogpa6,mame2003,arcade:256@53.204948,0,0,0 +trog,mame2003,arcade:256@53.204948,0,256,0 +trog3,mame2003,arcade:256@53.204948,0,256,0 +trogp,mame2003,arcade:256@53.204948,0,256,0 +trogpa6,mame2003,arcade:256@53.204948,0,256,0 trojan,mame2003,arcade:240@60.000000,0,0,0 trojanj,mame2003,arcade:240@60.000000,0,0,0 trojanr,mame2003,arcade:240@60.000000,0,0,0 @@ -19287,4 +19287,3 @@ gngbla,fbneo,arcade:224@59.590000,0,0,0 ddpsdoj,fbneo,arcade:240@60.000000,0,0,1 espgal2,fbneo,arcade:240@60.000000,0,0,1 smashtv,fbneo,arcade:256@54.744337,0,0,0 -totcarn,fbneo,arcade:256@54.744337,0,0,0 diff --git a/projects/configgen/configgen/generators/libretro/crt/LibretroConfigCRT.py b/projects/configgen/configgen/generators/libretro/crt/LibretroConfigCRT.py index 86b4b85608..7477efb2be 100644 --- a/projects/configgen/configgen/generators/libretro/crt/LibretroConfigCRT.py +++ b/projects/configgen/configgen/generators/libretro/crt/LibretroConfigCRT.py @@ -42,14 +42,14 @@ class LibretroConfigCRT: config["aspect_ratio_index"] = '23' extension = ["_ntsc", "_pal"] if region == "all" else ["_" + region] - if ((system_rotation.value == Rotation.none or system_rotation.value == Rotation.upsidedown) and not game_is_tate) \ or ((system_rotation.value == Rotation.left or system_rotation.value == Rotation.right) and game_is_tate): # we are in a yoko game on a yoko screen, or tate game on tate screen - if forceFullAndIntegerScale: - config["aspect_ratio_index"] = '24' - config["video_scale_integer"] = '"true"' + if forceFullAndIntegerScale : + if k31 or (viewport_height == 0 or viewport_height == mode.height): + config["aspect_ratio_index"] = '24' + config["video_scale_integer"] = '"true"' if k31 and viewport_height > 480: config["video_scale_integer_overscale"] = '"true"' diff --git a/projects/configgen/tests/generators/libretro/crt/LibretroConfigCRT_test.py b/projects/configgen/tests/generators/libretro/crt/LibretroConfigCRT_test.py index 58f65b3098..eab2161927 100644 --- a/projects/configgen/tests/generators/libretro/crt/LibretroConfigCRT_test.py +++ b/projects/configgen/tests/generators/libretro/crt/LibretroConfigCRT_test.py @@ -1154,8 +1154,8 @@ def test_given_mk_clone_find_mk_mode(mocker): def test_given_any_yoko_game_and_jamma_then_return_fullscreen_ratio_and_integer_scale(mocker): givenThoseFiles(mocker, { - ARCADE_TXT: "mk,fbneo,arcade:254@54.706840,0,256,0", - MODES_TXT: "arcade:254@54.706840,1920 1 80 184 312 254 1 7 3 22 0 0 0 54 0 39052806 1,54.706840\ndefault:ntsc:240@60,1920 1 80 184 312 240 1 1 3 16 0 0 0 60 0 38937600 1,60" + ARCADE_TXT: "ffight,fbneo,arcade:224@59.637405,0,0,0", + MODES_TXT: "arcade:224@59.637405,1920 1 80 184 312 224 1 10 3 25 0 0 0 59 0 39000000 1,59.637405\ndefault:ntsc:240@60,1920 1 80 184 312 240 1 1 3 16 0 0 0 60 0 38937600 1,60" }) emulator = configureForCrt( Emulator(name='fbneo', videoMode='1920x1080', ratio='auto', emulator='libretro', core='fbneo'), @@ -1163,7 +1163,7 @@ def test_given_any_yoko_game_and_jamma_then_return_fullscreen_ratio_and_integer_ crtscreentype="15kHz", crtadaptor="recalboxrgbjamma") libretro_config = LibretroConfigCRT(CRTConfigParser(), CRTModeOffsetter()).createConfigFor(emulator, - "/recalbox/share/roms/fbneo/mkyturbo.zip") + "/recalbox/share/roms/fbneo/galaxian.zip") assert libretro_config["aspect_ratio_index"] == "24" assert libretro_config["video_scale_integer"] == '"true"' @@ -1319,7 +1319,7 @@ def test_given_arcade_256p_game_and_31k_progressive_mode_then_return_480pmode_an emulator = configureForCrt(system_mame, crtresolutiontype="progressive", crtscreentype="31kHz", crtadaptor="recalboxrgbjamma") config_lines = LibretroConfigCRT(CRTConfigParser(), CRTModeOffsetter(), False).createConfigFor(emulator, "mk.zip") - + assert config_lines["aspect_ratio_index"] == '24' assert config_lines["video_refresh_rate_ntsc"] == '"60"' assert config_lines["crt_switch_timings_ntsc"] == '"1920 1 48 208 256 480 1 15 3 26 0 0 0 60 0 76462080 1"' assert config_lines["custom_viewport_width_ntsc"] == 1920 @@ -1390,4 +1390,22 @@ def test_given_superrez_mode_then_set_wide_font(mocker): config_lines = LibretroConfigCRT(CRTConfigParser(), CRTModeOffsetter(), False).createConfigFor(psx, "ff7.chd") assert config_lines["video_font_path"] == '"/usr/share/fonts/truetype/gf-vienna-heavy.heavy.ttf"' - assert config_lines["video_font_enable"] == '"true"' \ No newline at end of file + assert config_lines["video_font_enable"] == '"true"' + + +def test_given_mk_then_do_not_use_fullscale_on_rgbjamma(mocker): + givenThoseFiles(mocker, { + ARCADE_TXT: "mk,fbneo,arcade:254@54.706840,0,256,0", + MODES_TXT: "arcade:254@54.706840,1920 1 80 184 312 254 1 7 3 22 0 0 0 54 0 39052806 1,54.706840\ndefault:ntsc:240@60,1920 1 80 184 312 240 1 1 3 16 0 0 0 60 0 38937600 1,60" + }) + emulator = configureForCrt( + Emulator(name='fbneo', videoMode='1920x1080', ratio='auto', emulator='libretro', core='fbneo'), + crtresolutiontype="progressive", crtvideostandard="ntsc", crtadaptor="recalboxrgbjamma", + crtscreentype="15kHz") + + libretro_config = LibretroConfigCRT(CRTConfigParser(), CRTModeOffsetter()).createConfigFor(emulator, + "/recalbox/share/roms/fbneo/mkyturbo.zip") + + assert libretro_config["aspect_ratio_index"] == '23' + assert libretro_config["crt_switch_timings_ntsc"] == '"1920 1 80 184 312 254 1 7 3 22 0 0 0 54 0 39052806 1"' + assert libretro_config["custom_viewport_height_ntsc"] == 256 -- GitLab