diff --git a/CHANGES.rst b/CHANGES.rst index 086a686..6fc79ac 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,3 +1,16 @@ +0.1.1 (Unreleased) +================== + +Features +-------- + +- Added Game Boy Advance + +Fixes +----- + +- Language parsing can now handle languages formatted like "En+De" (and test updated) + 0.1.0 (2024-12-04) ================== diff --git a/README.md b/README.md index f5b0eeb..b2de326 100644 --- a/README.md +++ b/README.md @@ -27,16 +27,19 @@ To get started, see the [documentation](https://romsearch.readthedocs.io/en/late Currently, ROMSearch is in early development, and so many features may be added over time. At the moment, ROMSearch works for the following consoles: -* Nintendo +* Nintendo (Handheld) * Game Boy * Game Boy Color + * Game Boy Advance +* Nintendo (Home) * Nintendo Entertainment System * Super Nintendo Entertainment System * GameCube -* Sony +* Sony (Handheld) + * PlayStation Portable +* Sony (Home) * PlayStation * PlayStation 2 - * PlayStation Portable but be aware there may be quirks that will only become apparent over time. We encourage users to open [issues](https://github.com/bbtufty/romsearch/issues) as and where they find them. \ No newline at end of file diff --git a/docs/configs/platforms.rst b/docs/configs/platforms.rst index 30804a5..1ad1e08 100644 --- a/docs/configs/platforms.rst +++ b/docs/configs/platforms.rst @@ -15,7 +15,7 @@ Syntax: :: ra_id: [id] # OPTIONAL. The RetroAchievements console ID, from their API_GetConsoleIDs ra_hash_method: ["md5", "custom"] # OPTIONAL. The RetroAchievements hash method. Supports "md5" and "custom" - patch_method: ["xdelta"] # OPTIONAL: Method for patching ROMs. Supports "xdelta", "rompatcher.js" + patch_method: ["xdelta"] # OPTIONAL: Method for patching ROMs. Supports "xdelta" file_exts: # OPTIONAL: Potential file extensions. ROMPatcher uses this to figure - [ext] # out the file to patch patch_file_exts: # OPTIONAL: Potential file extensions. ROMPatcher uses this to figure @@ -31,17 +31,37 @@ Nintendo - Game Boy Color .. literalinclude:: ../../romsearch/configs/platforms/Nintendo - Game Boy Color.yml +Nintendo - Game Boy Advance +========================= + +.. literalinclude:: ../../romsearch/configs/platforms/Nintendo - Game Boy Advance.yml + Nintendo - GameCube =================== .. literalinclude:: ../../romsearch/configs/platforms/Nintendo - GameCube.yml +Nintendo - Nintendo Entertainment System +======================================== + +.. literalinclude:: ../../romsearch/configs/platforms/Nintendo - Nintendo Entertainment System.yml + Nintendo - Super Nintendo Entertainment System ============================================== .. literalinclude:: ../../romsearch/configs/platforms/Nintendo - Super Nintendo Entertainment System.yml +Sony - PlayStation Portable +=========================== + +.. literalinclude:: ../../romsearch/configs/platforms/Sony - PlayStation Portable.yml + Sony - PlayStation ================== -.. literalinclude:: ../../romsearch/configs/platforms/Sony - PlayStation.yml \ No newline at end of file +.. literalinclude:: ../../romsearch/configs/platforms/Sony - PlayStation.yml + +Sony - PlayStation 2 +==================== + +.. literalinclude:: ../../romsearch/configs/platforms/Sony - PlayStation 2.yml \ No newline at end of file diff --git a/docs/intro.rst b/docs/intro.rst index 9e8e62b..c649ed1 100644 --- a/docs/intro.rst +++ b/docs/intro.rst @@ -38,19 +38,26 @@ everything and then filter from the downloaded files. For more details, see the Currently, ROMSearch is in early development, and so many features may be added over time. At the moment, ROMSearch has the capability for: -* Nintendo +* Nintendo (Handheld) * Game Boy * Game Boy Color + * Game Boy Advance + +* Nintendo (Home) + * GameCube * Nintendo - Nintendo Entertainment System * Nintendo - Super Nintendo Entertainment System -* Sony +* Sony (Handheld) + + * PlayStation Portable + +* Sony (Home) * PlayStation * PlayStation 2 - * PlayStation Portable but be aware there may be quirks that will only become apparent over time. We encourage users to open `issues `_ as and where they find them. Known issues can be found at diff --git a/romsearch/configs/clonelists/retool.yml b/romsearch/configs/clonelists/retool.yml index 984c627..3601ff5 100644 --- a/romsearch/configs/clonelists/retool.yml +++ b/romsearch/configs/clonelists/retool.yml @@ -2,6 +2,7 @@ url: "https://raw.githubusercontent.com/unexpectedpanda/retool-clonelists-metada Nintendo - Game Boy: "Nintendo - Game Boy (No-Intro).json" Nintendo - Game Boy Color: "Nintendo - Game Boy Color (No-Intro).json" +Nintendo - Game Boy Advance: "Nintendo - Game Boy Advance (No-Intro).json" Nintendo - GameCube: "Nintendo - GameCube (Redump).json" Nintendo - Nintendo Entertainment System: "Nintendo - Nintendo Entertainment System (No-Intro).json" Nintendo - Super Nintendo Entertainment System: "Nintendo - Super Nintendo Entertainment System (No-Intro).json" diff --git a/romsearch/configs/dats/no-intro.yml b/romsearch/configs/dats/no-intro.yml index ba9d770..ef745f7 100644 --- a/romsearch/configs/dats/no-intro.yml +++ b/romsearch/configs/dats/no-intro.yml @@ -4,6 +4,9 @@ Nintendo - Game Boy: Nintendo - Game Boy Color: file_mapping: "Nintendo - Game Boy Color (*)" +Nintendo - Game Boy Advance: + file_mapping: "Nintendo - Game Boy Advance (*)" + Nintendo - Nintendo Entertainment System: file_mapping: "Nintendo - Nintendo Entertainment System (Headered) (*)" diff --git a/romsearch/configs/defaults.yml b/romsearch/configs/defaults.yml index 04ceda2..cd331b8 100644 --- a/romsearch/configs/defaults.yml +++ b/romsearch/configs/defaults.yml @@ -6,6 +6,7 @@ datetime_format: "%Y/%m/%d, %H:%M:%S" platforms: - "Nintendo - Game Boy" - "Nintendo - Game Boy Color" + - "Nintendo - Game Boy Advance" - "Nintendo - GameCube" - "Nintendo - Nintendo Entertainment System" - "Nintendo - Super Nintendo Entertainment System" diff --git a/romsearch/configs/platforms/Nintendo - Game Boy Advance.yml b/romsearch/configs/platforms/Nintendo - Game Boy Advance.yml new file mode 100644 index 0000000..77c6e21 --- /dev/null +++ b/romsearch/configs/platforms/Nintendo - Game Boy Advance.yml @@ -0,0 +1,6 @@ +group: "No-Intro" +dir: "/No-Intro/Nintendo - Game Boy Advance/" +unzip: false + +ra_id: 5 +ra_hash_method: "md5" diff --git a/romsearch/configs/regex.yml b/romsearch/configs/regex.yml index 92227c4..175e35b 100644 --- a/romsearch/configs/regex.yml +++ b/romsearch/configs/regex.yml @@ -4,7 +4,7 @@ regions: flags: "NOFLAG" languages: - pattern: "\\((([languages])(,\\s?)?)*\\)" + pattern: "\\((([languages])((,|\\+)\\s?)?)*\\)" type: "list" flags: "NOFLAG" @@ -191,6 +191,10 @@ controller_set: culture_publishers: pattern: "\\(Culture Publishers\\)" +dsi: + pattern: "\\(DSI\\)" + group: "improved_version" + dx_pack: pattern: "\\(DX Pack\\)" group: "improved_version" @@ -319,6 +323,10 @@ usb_mic_doukonban: pattern: "\\(USB Mic Doukonban\\)" group: "improved_version" +vivendi: + pattern: "\\(Vivendi\\)" + group: "improved_version" + # BUDGET EDITIONS artdink: @@ -502,6 +510,10 @@ konami_collector_series: pattern: "\\(Konami Collector's Series\\)" group: "modern_version" +mega_man_battle_network_legacy_collection: + pattern: "\\(Mega Man Battle Network Legacy Collection\\)" + group: "modern_version" + mega_man_legacy_collection: pattern: "\\(Mega Man Legacy Collection\\)" group: "modern_version" @@ -530,6 +542,10 @@ ninja_jajamaru_retro: pattern: "\\(Ninja JaJaMaru Retro Collection\\)" group: "modern_version" +pokemon_box: + pattern: "\\(Pokemon Box\\)" + group: "modern_version" + qubyte_classic: pattern: "\\(QUByte Classics\\)" group: "modern_version" diff --git a/tests/tests_romparser.py b/tests/tests_romparser.py index ab633bc..e13e173 100644 --- a/tests/tests_romparser.py +++ b/tests/tests_romparser.py @@ -1,6 +1,6 @@ from romsearch import ROMParser -TEST_NAME = "Example Game (USA) (En,De,Fr)" +TEST_NAME = "Example Game (USA) (En,De,Fr,Es+It)" def test_romparser_regions(): @@ -23,7 +23,7 @@ def test_romparser_regions(): def test_romparser_languages(): """Put a filename into ROMParser and check it returns the right languages""" - expected_languages = ["English", "French", "German"] + expected_languages = ["English", "French", "German", "Italian", "Spanish"] test_case = {TEST_NAME: {"priority": 1}}