Jump to content
LaunchBox Community Forums

Machtendo No-Intro ROM Parse 6.5

   (0 reviews)

2 Screenshots

About This File

What's this?

This is a Windows Powershell script you can use to sort any No-Intro romset into a consistent and intuitive structure. The goal is to sort and organize ROM files by region, release type and revision.

This script creates a directory structure to accommodate for all the various release types and flags found in a No-Intro set, which is then replicated to folders for the four major release regions, then sorted appropriately.

By default, this script creates full sets for each region - for example, (World) releases are actually COPIED to every major region - I wanted to avoid regional biases where I could so that if someone wanted a full Japanese set or a European set, you only need run the script and grab the contents of the corresponding folder. You can disable this by commenting or removing the "Regional Bias" section of the script.

Only available as a Windows Powershell script, not compatible with Linux or macOS currently.

Why's this?

In order to simplify compatibility with various frontends, to satisfy my own preferences, and possibly the preferences of others. A few use-cases can be found below.

  • When using LaunchBox, playlists can be created by using the "Application/ROM Path" parameter - the filepaths/folder structure created by this script will allow you to be as granular as you would like.
  • When using other frontends or utilities, usually you're actually just browsing your file/folder structure - the filepaths/folder structure created by this script are meant to be descriptive and (hopefully) intuitive.
  • Once the script is run, one could simply delete entire regions, remove all the various Test Programs, trim BIOS files, delete Demo or Sample roms, Prototypes, and easily create a custom set that suits their individual taste.
  • This script is entirely filetype agnostic - it doesn't care about file extensions, so as long as the set of files you're applying this script to uses No-Intro's flags, this script can be used to sort them - one could also use this script to sort through artwork/image/media files for corresponding ROM files.

Instructions

Simply copy this script file into the folder containing your rom files, and double click to run it. 

That's it!

If you happen to receive an error saying something along the lines of "Running Scripts is Disabled on this System" you can open the folder in Terminal or PowerShell and run the script with the following command. I'll defer to this article if you would like more information.

powershell -ExecutionPolicy Bypass -File .\Machtendo No-Intro ROM Parse v5.0.ps1

Logic & Structure

How have these files been sorted, and why?

BIOS Files

BIOS files are first moved into a _BIOS folder prior to any sorting functionality. This is so that any available version is immediately and easily accessible for use with an emulator if needed.

Regions

I'm going by the three historically major release regions, with a fourth "Other" region to cover the other minor release regions.

  • North America
    • US
    • Canada
  • Japan
    • Japan
  • Europe 
    • Italy
    • Spain
    • Sweden
    • France
    • Germany
    • Australia
    • Denmark
    • Scandinavia
  • Other
    • Korea
    • Brazil
    • Argentina
    • Taiwan
    • Mexico
    • Russia
    • Hong Kong
    • Netherlands
    • China
    • Greece
    • Asia

No-Intro Flags

The file structure for the No-Intro flags is replicated to the four regional folders described above.

  • Aftermarket Releases - Licensed, Unlicensed, or Homebrew games released for a platform after its "active" or "canonical" lifespan.
  • Hacks - Not strictly within the scope of No-Intro - these ROMs have had patches applied to them to modify, transform, or attempt to improve an existing game. i.e. patches that can be found at RDHN (romhacking.net)
  • Alternate Releases - Re-release of a ROM on a later platform or in a "Classics" Collection, i.e. Virtual Console, Nintendo Switch Online, or compilations such as "Castlevania Anniversary Collection"
  • Official Releases - Licensed games released at the time of a platform's "active" lifespan.
  • Pre-Release - Unfinished games - betas, demos, or prototypes not meant for the general public
  • Test Cartridges & Utilities - These are tools generally used by developers or hardware manufacturers, mostly for testing purposes or diagnostics/troubleshooting
  • Translations - Again, not strictly within the scope of No-Intro, but these are ROM files with an applied translation patch, commonly denoted with the [T-En] flag. Note that the region that these translations are targeting is the region the rom will be moved to - i.e. target language is English, therefore ends up in the North America > Translations folder. Currently, only [T-En] is supported.
  • Unlicensed Releases - Unlicensed games that were released DURING the canonical lifespan of the platform in question without explicit permission or input of the platform's manufacturer.
  • Previous Revisions - Earlier releases of a given title - The latest Revision is kept in the "Official Releases" folder, while the earlier revisions end up here.

Notes & Clarification

  • Keep in mind, this script is only intended for use with romsets following the No-Intro naming convention. More information can be found here:  https://wiki.no-intro.org/index.php?title=Naming_Convention
  • This script cares ONLY about the No-Intro naming convention - the use of DAT files and ROM managers have not been considered, and splitting up these ROM files may break compatibility with said DAT files or ROM managers.
  • Starting with v5.0, support for parsing/sorting numbered revisions was added - I have not yet verified if this script generates a perfect DAT-worthy 1G1R set.
  • By default, no ROM files are deleted by this script - I'm only sorting and organizing. I am also not responsible for any undesirable effects or outcomes running this script on your machine may have.
  • Feedback welcome in the comments!

Tested with the following platforms

Spoiler

Atari - 2600
Atari - 5200
Atari - 7800
Atari - Jaguar
Atari - Lynx
Bandai - WonderSwan
Bandai - WonderSwan Color
GCE - Vectrex
NEC - PC Engine - TurboGrafx-16
NEC - PC Engine CD
NEC - PC Engine SuperGrafx
Nintendo - 3DS
Nintendo - Family Computer Disk System
Nintendo - Game and Watch
Nintendo - Game Boy
Nintendo - Game Boy Advance
Nintendo - Game Boy Color
Nintendo - Nintendo 64
Nintendo - Nintendo 64DD
Nintendo - GameCube
Nintendo - DS
Nintendo - Nintendo Entertainment System
Nintendo - Satellaview
Nintendo - Super Nintendo Entertainment System
Nintendo - Virtual Boy
Nintendo - Wii
Sega - 32X
Sega - Dreamcast
Sega - Game Gear
Sega - Master System - Mark III
Sega - Mega Drive - Genesis
Sega - Saturn
Sega - SG-1000
SNK - NeoGeo Pocket
SNK - NeoGeo Pocket Color
Sony - PlayStation
Sony - PlayStation 2
Sony - PSP
Sony - PS Vita

 

Edited by machjas
Release v5.0


What's New in Version 6.5   See changelog

Released

  • Improved Support for Dreamcast REDUMP
  • Improved Support for PlayStation 1 REDUMP
  • Like 4
  • Thanks 1
  • Unusual Gem 1

User Feedback

Recommended Comments

It's a fantastic Script!!! 🤯🥳🙌🤩 Right now I was doing that organization but manually.

A question. Do you plan to do something similar for other packs like TOSEC or Redump? I understand the complexity of doing it (especially with TOSEC), but I guess dreaming is free... 😄

Edited by MrDeKat
  • Like 1
Link to comment
Share on other sites

1 hour ago, MrDeKat said:

It's a fantastic Script!!! 🤯🥳🙌🤩 Right now I was doing that organization but manually.

A question. Do you plan to do something similar for other packs like TOSEC or Redump? I understand the complexity of doing it (especially with TOSEC), but I guess dreaming is free... 😄

Much appreciated!

Unfortunately, I don't have plans to do TOSEC or Redump at this point - I wouldn't rule it out for the future though. Most of my disk-based stuff is curated, and I just don't have full sets to work with (and probably not even storage, honestly).

I do plan to work more on this one though - while it seems to work really well, I still find things that I feel like need to be moved, so I add to the script as I go. I'd also like to make it easy to "undo" moves and update sets.

Link to comment
Share on other sites

3 hours ago, Klopjero said:

Why are netherlands and greece in the other category and not in europe?

That's a good question - I seem to remember there being a reason for that due to language, but I can't find anything in No-Intro's documentation. I think I may have based that decision on this snippet from their naming convention documentation (https://wiki.no-intro.org/index.php?title=Naming_Convention#Region):

Quote

"If a game is released in 2 or more European countries the flag (Europe) will be used. The flag (Asia) will be used if the target regions are multiple Asian countries and the game is different from the Japanese release."

So maybe I should revisit this? It would only apply to games that were exclusive to those two countries specifically, but I do want this script to be as accurate as possible. Mexico is also a North American country, but is it's own minor release region I think due to language. I'm open to suggestions!

Link to comment
Share on other sites

@MrDeKat I also just happened to read that Redump adopted No-intro's naming convention in 2009, so it's possible that this script would be compatible with that set. I would recommend commenting out the Regional Bias section before trying it, just to save yourself some storage.

Edited by machjas
Link to comment
Share on other sites

I've been testing (with some modification) and I found it very useful. I have detected it generates a file called "Translations". I think it's because of the symbol ">" on the line 129.

 

2 hours ago, machjas said:

@MrDeKat I also just happened to read that Redump adopted No-intro's naming convention in 2009, so it's possible that this script would be compatible with that set. I would recommend commenting out the Regional Bias section before trying it, just to save yourself some storage.

Fantastic news. 🙌 As soon as I finish organizing No-Intro collection, I'll try it out with Redump.

 

2 hours ago, machjas said:

So maybe I should revisit this? It would only apply to games that were exclusive to those two countries specifically, but I do want this script to be as accurate as possible. Mexico is also a North American country, but is it's own minor release region I think due to language. I'm open to suggestions!

From a personal point of view, due to the language and the few games from Latin America, the games from Argentina and Mexico (I think there's only 2 games), I include them witch Spain Region (and therefore of Europe). Also, there's a Sega SG-1000 game with New Zealand Region. I don't know if it would go with Australia 🤔.

  • Like 1
Link to comment
Share on other sites

17 hours ago, machjas said:

That's a good question - I seem to remember there being a reason for that due to language, but I can't find anything in No-Intro's documentation. I think I may have based that decision on this snippet from their naming convention documentation (https://wiki.no-intro.org/index.php?title=Naming_Convention#Region😞

So maybe I should revisit this? It would only apply to games that were exclusive to those two countries specifically, but I do want this script to be as accurate as possible. Mexico is also a North American country, but is it's own minor release region I think due to language. I'm open to suggestions!

It seems awfully arbitrary, geographically these countries lie in europe so it would follow that they fall into that region.

Australia should fall in the other section, unless ofcourse its a misspelling of austria. 

  • Like 2
Link to comment
Share on other sites

I agree, it does seem arbitrary. I imagine 99% of the games released in either of those countries would have been the European or World releases. Maybe whenever there was a Greece or Netherlands exclusive they were treated as separate minor regions? I'll look back at the No-Intro documentation and try to clarify - I'm completely open to making the change if I've just misinterpreted the naming convention.

You would think Australia and New Zealand would fall in the "Other" section, but No-Intro is pretty clear about including them with Europe. You and I can look at a map as some average Joe and we can decide what countries belong in which region in a way that makes sense to us. We just have to keep in mind that, as arbitrary as they may be, these decisions were made by video game companies over decades trying to localize and distribute games in the most cost-effective way they could.

Link to comment
Share on other sites

Australia is included in Europe, cause the australian games of 8 and 16 bits, used the same version that was used in European countries: PAL.

For example, the European versions of the NES console could be two types:
- PAL-A, for UK, Italy and Australia.
- PAL-B, for the reast of European countries.

Now, I don't know the reason why Netherlands and Greece is out of Europe. I don't see much point in it, cause I read they used the PAL versions. For example, for NES, there were French games with the manual in Dutch, so I understand that those French games were also used in Netherlands.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...