International Union of Pure & Applied Gaming:
"By Gamers, For Gamers: Committed to the Organization, Preservation, & Development of Romhacks" !!!
⏪ History: IUPAG was born to address the lack of a standard naming convention for romhacks, specifically, with respect to "naming collisions" (where different hacks have the same name): This mostly occurs with (1) Translations & (2) Sports games that update rosters to "current year" (i.e. Tecmo, NHL, etc). However, these "naming collisions" also occur with other hacks: When two different hacks have the same "branding" (name).
⏩ Philosophy: The goal is to provide a "Parent Specification" that is easily customizable according to individual preferences, as well as promote other standards, like good, sane patching practices (like "auto-patching").
For a more in-depth review of our History & Philosophy, feel free to join our Discord: https://discord.gg/kEe3aUzJ5D
IUPAG nomenclature was inspired by "A Guide to IUPAC Nomenclature of Organic Compounds".
The format should look like this:
Title <sep> Subtitle (@Dev, Pub)-(#Region)-(vDate)-(revX.Y.Z)-(T-Lang) [flag]-{Attributes}-(&MetaInfo).ext
Where <sep>
is the "seperator" that is used between the Title & Subtitle: For Parents, the seperator is a dash (-
). For Clones, the seperator is a dash-semicolon (-;
). For Translations, the seperator is semicolon-equals (;=
). And for Romhacks, the seperator is the tilde (~
). The seperator is used even if the Subtitle is null/empty/blank.
Also, notice that the above "Tags" are "named tags" with a prefix attached (@
,#
,v
,rev
,T-
, &
) that make them easier to parse.
The default ordering of Tags can be read as:
"by @Author, for #Region, on vDate, as Revision, in Text/Language, Flagged, with Attributes, &MetaInfo".
The following are the formal rules & guidelines for the IUPAG naming convention.
However, if you'd rather just see an example to get the "gist" of it, go HERE
And if you wanna take it for a "test drive", here's an SNES DAT file, HERE
Note
Please note that altho IUPAG was developed specifically for romhacks, the naming specification actually extends to Parents & Clones as well: Which allows for easy integration of romhacks & translations as well as "auto-patching" functionality and "1g1r" functionality, both with less computational strain at runtime.
Only 7 Bit ASCII (Low ASCII) characters are allowed:
a-z A-Z 0-9 SPACE $ ! # % ' ( ) + , - . ; = @ [ ] ^ _ { } ~
The following characters are not allowed as valid filename characters on the Windows Operating System, and hence, forbidden from use: / \ ? : * " < > | \n \t
The most common substitution are replacing a colon (:
) with a semi-colon (;
), and replacing any double-quotes ("
) with single-quotes ('
). Fractions, like one-half (½
), that contain a division symbol (slash /
) can be replaced with an exclamation point (!
) and represented as 1!2
.
First, construct the Title & Subtitle with an appropriate seperator and file extension.1
For romhacks, the Title is the same as the Parent/Baserom while the Subtitle is the Hack Name, which can also be prefixed with a "qualifier" of patchtype, difficulty, &/or Holiday Theme, etc (see "Folder Flags" for more info).
Next, add the (@Developer, Publisher)
Tag.
The developer can be omitted if there's only one Publisher across regions. However, developer is required if each region has their own publisher. Altho, the names can be shortened (by omitting "Co.", "Ltd.", etc) and abbreviated. However, any abbreviations should still be unique.
Next, add the (#Region)
Tag: And since most development studios are assumed to be targeting hardware devices on the planet Earth, the default region (if unknown) is (#World)
. Otherwise, attach an appropriate Planet (or Region on Earth). Please use the fully qualified name, not an abbreviation, as at this time, there are no offical ISO designations for the other Planets. However, this is subject to change (if Elon gets us to Mars).
For Romhacks, attach the "dash revision" that was used as the Parent/Baserom: i.e. (#USA-11)
. For Hacks that change the "Region" (NTSC/PAL), please retain the original region and note the change in the (MetaInfo)
Tag (see below).
Next, attach a (vDate)
Tag: A null or unknown date is expressed as either (vYYYY-MM-DD)
, OR, as "Unix Time Zero", which is (v1970-01-01)
, however, it must be consistent across a "Set" (meaning Console/System).
Dates might seem easy, but there are several "gotchas". One in particular is with regards to very old hacks that were originally published as ROM files, then later repackaged as patch files (for legal distribution): In these cases, archives & respositories frequently just show the "upload date", not the original "file date".
It is for this reason (and others) that the Build Date (or Date of Compilation) is generally favored (especially for romhacks, translations, and patches). Altho, for Parent/Clones, Date of Publication is acceptable (except when it conflicts with the build date).
Next, construct an appropriate revision tag. Where 00
means Proto, 01
thru 09
mean Alpha/Beta/Demo/Sample. And 10
(or greater) means an official release for retail sales, while 20
(or greater) means an Aftermarket re-release.
For Romhacks & Translations, this "revision" is simply whatever their "Version Sring" is (which can be absolutely anything). However, if it's a "Date String", then just convert to an ordinal system, where 00
is the 1st prototype, 01
is the first beta, and 10
is the first non-beta "release". For Translations, a "percent completetion" is acceptable: (rev90%)
.
Next, construct a Language Tag, which is a comma seperated list: e.g. (T-En,Fr,De,Es,It,Nl,Sv)
2
Next, attach one or more "dump info flags" (or an empty flag), in this order:
[][b][o][u][h][d][e][cr][f][t][tr][i][n][m][p][s][a][x][!][$][v]
:
🏁 | Status | Description |
---|---|---|
[a] |
Alt | Alternate re-release w/ unknown version (deprecated). |
[b] |
Bad | Bad Dump &/or damaged image. |
[cr] |
Cracked | Copy Protection removed. |
[d] |
Diff | Small "GP" patch file, in any format (proposal). |
[e] |
ASM | Small "GP" patch file, in .asm format (proposal). |
[f] |
Fixed | Hacked with improvement &/or "fix" (deprecated). |
[h] |
Hacked | Has new gfx, sfx, text, mechanics, or levels (etc). |
[i] |
Incomplete | Not fully translated (deprecated). |
[m] |
Modified | Unintentional modification: i.e. Has a save file. |
[n] |
re-Named | Filename is different from Parent (translated) (deprecated). |
[o] |
Overdump | The image is damaged (too much data). |
[p] |
Pirate | Violates international IP (deprecated). |
[s] |
Sample | i.e. Alpha,Beta,Proto,Demo,Sample (proposal). |
[t] |
Trained | Adds cheats &/or cheat menu. |
[tr] |
Translated | Text &/or Graphics have been Translated. |
[u] |
Underdump | The image is damaged (missing data). |
[v] |
Virus | Infected with a virus. |
[x] |
Bad | Bad Checksum or Alternative Checksum Routine. |
[!] |
Good | Verified Good Dump. |
[$] |
Good | Verified Good Hack (or Translation). |
[] |
Unknown | Nothing is known about the dump. |
Next, construct an "attributes" tag.
For Parents/Clones, the attributes tag generally lists {<Number of Players>;<Genre1,Genre2>;<Controller Support>}
.3
Romhacks inherit all these attributes, by default, and instead list any extra patches that were applied (if any). A null list is denoted with a double-dash via [$]-{--}.ext
: This is the clean, base hack without any optional or external patches applied to it.
These genres & gametypes are expressed in L33TC0D3
to be unique, easier to parse, and more easily transformable to other systems:
{G3NR3} |
Description |
---|---|
{B34T} |
Beat'em up. |
{PL4T} |
"1-dimensional" Platformer with Linear Progression (on a single "axis" left-to-right). |
{1A} |
(1)-dimensional Platformer with Adventure & requiring exploration to progress. |
{2A} |
(2)-dimensional Action Adventure with an Overhead, Birds-eye view. |
{3A} |
(3)-dimmenional Action Adventure with a 3D (Dungeon Crawler) view. |
{4A} |
(A)ction or (H)ybrid Adventure with multiple game-modes. |
{5A} |
(S)trategy Adventure: e.g. (Starflight). |
{6A} |
(S)pace Adventure (with alt-gravity &/or alt-physics). |
{7A} |
(T)ext-based Adventure: e.g. (Erika to Satoru no Yume Bouken). |
{8A} |
(B)eat'em up view / isometric perspective Action Adventure: e.g. (Time Lord). |
{9A} |
(P)ower-Pad (A)dventure game: e.g. (Street Cop - Manhattan Police). |
{1RPG} |
(1)-dimensional Platformer with RPG elements (like xp & level-ups). |
{2RPG} |
(2)-dimensional RPG with an Overhead, Birds-eye view: Traditional JRPGs. |
{3RPG} |
(3)-dimensional RPG with a 3D (Dungeon Crawler) view. |
{4RPG} |
(A)ction (H)ybrid RPG with multiple game-modes, like 1/2 or 2/3 (for example). |
{5RPG} |
(S)trategy RPG (Turn Based Strategy): e.g. (Shining Force). |
{5RTS} |
(S)trategy RTS (Real Time Strategy): e.g. (Command & Conquer). |
{1S&P} |
(1)-dimensional (S)trategy (&) (P)uzzle: e.g. (A Boy & His Blob). |
{2S&P} |
(2)-dimensional (S)trategy (&) (P)uzzle: e.g. (Quinty)/(Mendel Palace). |
{3S&P} |
(3)-dimensional (S)trategy (&) (P)uzzle: e.g. (Portal). |
{4S&P} |
(A)ction (H)ybrid (S)trategy (&) (P)uzzle: e.g. (Spy vs Spy). |
{S1M} |
Simulation: e.g. (SimCity),(The Sims),(Flight Simulators), etc. |
{$SIM} |
Strategy Simulation: e.g. (Koei Historical Warfare games). |
{QZ} |
Quiz Game: e.g. (King of Kings by Wisdom Tree). |
Next, construct the (&MetaInfo)
Tag, which is a semi-colon seperated List used for a variety of information, like:
For Parents/Clones (examples):
(&Unl; Aftermarket; Steam, Itch, GOG; Windows, Mac, Linux; Reprint).ext
4(&Unl; Aftermarket; Demo; Alt).ext
For Romhacks (examples):
- The number of Stars in a Super Mario 64 romhack:
(&Stars=120).z64
- The number of Exits in a Super Mario World romhack:
(&Exits=100).sfc
- The type & difficulty in a Super Mario World romhack:
(&Type=[Kaizo Grandmaster]; Exits=100).sfc
- Notable Features that came with the default build:
(&Type=[Kaizo Master]; Exits=100; With=[Retry, Death-Counter]).sfc
- Notable "flavors" or "distributions":
(&Console Version).ext
/(&Emulator Version).ext
- Including the Mapper number of an NES Hack with multiple versions:
(&Mapper=001).nes
- Including the recommend plugin for a Super Mario 64 romhack: OGRE/GLideN64/ParaLLEl/etc.
- Anything describing a special Version or Edition (if there are multiple different "editions" that, if put in the subtitle, might change sort order from chronological to alphabetical): i.e.
(&Anniversary Edition).ext
/(&Remastered Edition).ext
- Any other notable "tags", like:
(&Warn=[epilepsy][photosensitivity][nsfw]; Demo).ext
For Translations (examples):
(&English; Literal).ext
(&English; Localized).ext
(&Spanish, European).ext
(&Spanish, Latin American).ext
(&Portuguese, Brazilian).ext
(&Portuguese, European).ext
(&Chinese, Simplified).ext
(&Chinese, Traditional).ext
For Patches: "Dependency Declarations" aka "Addendum" patches.
[d]-{=ABC}-(&{[PCM] Sound Driver Fix, by Stef, required}).ips
[d]-{=ABC}-(&{for Stef's [PCM] Sound Driver Fix}).ips
[d]-{=ABC}-(&{for Stef's Sound Driver Fix, [PCM]}).ips
[d]-{=ABC}-(&{Requires Stef's Sound Driver Fix=[PCM]}).ips
[d]-{=ABC}-(&{[PCM] required}).ips
[d]-{=ABC}-(&{Requres=[PCM]}; Beta).ips
Where [PCM]
is the abbreviated initials of the required patch, and can appear anywhere in the comment: Beginning, Middle, or End... doesn't matter (as long as it's in square-brackets, we can easily parse this).
The (&MetaInfo)
Tag also includes other relevant information. Like, for example, including an [nsfw]
desingation for nudity (since "strong language", "violence", & "blood & gore" are "par for the course" for most video games while nudity is not). Altho, eventho the [nsfw]
tag is a very general category covering many different infractions, the specification does allow flexibiliy & discretion to datters to include a second, more specific qualifier tag, like [nsfw][lang]
for inappropriate language (for example). Finally, (&MetaInfo)
also includes any other relevant "metainfo", like a "Photosensitivity Warning" &/or an "Epilepsy Warning" (etc).
Apply the "Title Transformation Rules": (1) The "Rule of Parity", (2) The "Series Rule", & (3) The "Uniqueness Rule".
1st, The Parity Rule: This rule is mostly applicable to Sports games, where for some releases, the Publisher has used an ordinal designation (1, 2, 3, etc), whereas, for other releases, they have used a yearly designation: The rule states that they should all use the SAME system. One example would be EA's NHL series: Where for some releases, like NHL '94
, they have included an apostrophe to abbreviate 1994 to "94", while in other releases (like NHL 95
) they did not use an apostrophe. So, using the Parity Rule, either they should all have an apostrophe, or, none of them should. Notice that, altho no preference is given to either one, in the case where both ordinal & yearly designations have been used: One sould be used in the Title and other should be used in the Subtitle.
2nd, The Series Rule: Historically, Publishers have mostly abided by "The Laws of Good Business", where it's extremely profitable to take existing codebases and update & upgrade them into a sequel (in the same series, the same universe, or even just a spin-off). And for the most part, it's a good marketing strategy to retain the original brand name to help sell more games. And this has proven extremely beneficial to Players to have similar games grouped together, however, for a small number of games & publishers, they have released sequels, but broken this standard naming trend. Probably one of the best examples would be "The Quintet Trilogy" (on SNES), where games like "Soul Blazer", "Illusion of Gaia/Time", and "Terrinigma" are actually apart of the same "series" (or game "universe"), hence "The Series Rule" to correct this "error" and help alert players (not familiar with these older IPs) that if they liked one, that they should try one of the others. For this Title Transformation Rule, the Title becomes the Subtitle, and the new Title is the name of the series.
3rd, The Uniqueness Rule: The best example of the "Uniqueness Rule" would be the Star Trek (or Star Wars) series: The rule here is that they cannot have the exact same Title, but must be unique, with either (1) an ordinal system, (2) a year designation, or (3) initials of the Subtitle. Generally, prefer Year for Sports, otherwise prefer an ordinal system. Altho, in some cases, an ordinal system might not make sense, so use Subtitle Initials instead.
See the appendix below for examples.5
For different games that take place in the same fictional "Game Universe", attach an appropriate prefix: e.g. Mario, Pokemon, Simpsons, Sonic, TMNT, Zelda, etc. The exception here are games based on TV Cartoons (by Disney, Warner, & Hanna-Barbera), which together, all get the DIS
prefix. However, for "Eastern Cartoons" (Anime), use the AM3
prefix.
Next, prepend (to the Title) one of the below "Sports" prefixes (if applicable):
🆔 | Prefix | Description |
---|---|---|
🔫 | [1R] | (1)-dimensional (R)un-N-gun: Platform Shooters. |
🔫 | [2R] | (2)-dimensional (R)un-N-gun: Overhead Shooters. |
🔫 | [3R] | (3)-dimensional (R)un-N-gun: FPS & Gallery Shooters: {LG} suffix indicates Light-gun compatible. |
💣 | [4S] | (H)ybrid (S)hooter with multiple game modes (like 1R/2R , 1R/5H , or 2R/3R (etc), but NOT 5H/5V ). |
[5F] | (S)hooter (F)lying: 1st & 3rd Person, 3D SIM &/or Action Arcade style. | |
[5H] | (S)hooter (H)orizonal. | |
[5HV] | (S)hooter (H)orizonal & (V)ertical: Multiple game modes: 5H & 5V . |
|
[5V] | (S)hooter (V)ertical. | |
[5Z] | (S)hooter Miscellaneous(Z): Isometric scrolling &/or Multi-directional without auto-scrolling (etc). | |
🏆 | [6O] | (O)lympic (G)ames. |
🏂 | [720] | Skating, Skiing, & Snowboarding games w/ 180, 360, [720] , & 1080 tricks. |
[841] | =BALL : Dodgeball, Kickball, Volleyball, & other Misc Sports, like Speedball & Rugby, etc. |
|
🎸 | [964] | Rhythm & Action games: (P)ower-Pad, (G)uitar, & Controller Rhythm & (A)ction games. |
[BIOS] | Console BIOS file: "(B)asic (I)nput (O)output (S)ystem". | |
🔧 | [PRG] | Program or System Utility to test & diagnosis problems. |
🎲 | BG | (B)oard (G)ames & TV show games: e.g. (Monopoly)/(Wheel of Fortune). |
⛵ | BMC | Fishing games: (B)ass (M)aster (C)lassic. |
🏁 | F1 | (F)ormula-(1): 1st-person & 3rd-person Racing games with a 3D view. |
⛽ | F2 | (F)ormula-(2): 2nd-person Racing games with a birds-eye, overhead view. |
👠 | F7 | (F)amily (T)rainer: All other Power-Pad games (except sports: 6O & 964 ). |
⚽ | FIFA | Soccer games: (F)ederation (I)nternationale de (F)ootball (A)ssociation. |
🏰 | K0EI | Koei (& Koei-like knockoff) strategy games: Aerobiz, Gemfire, Genghis, Nobunaga, Romance, Sangokushi, etc. |
⚾ | MLB | Baseball games: (M)ajor (L)eague (B)aseball. |
🏀 | NBA | Basketball games: (N)ational (B)asketball (A)ssociation. |
🏈 | NFL | Football games: (N)ational (F)ootball (L)eague. |
🍁 | NHL | Hockey games: (N)ational (H)ockey (L)eague. |
📌 | P1N | Pinball games: IFPA: (I)nternational (F)lipper (P)inball (A)ssocation. |
🎱 | P88I | Table-top (P)ool, (8)-ball, & (B)(I)=Billiards games. |
🎳 | PB4 | Bowling games: (P)rofessional (B)owlers (A)ssociation: PBA. |
⛳ | PG4 | Golf & mini-golf games: (P)rofessional (G)olfers (A)ssociation: PGA. |
🔓 | PZ | (P)uzzle games: Like Tetris, Puyo Puyo, Panel de Pon, etc. |
🎾 | T3N | Tennis games: Association of Tennis Professionals: ATP. |
🆚 | VS | (V)ERSU(S), Two-Player Fighting games & Boxing games (VS BX ), but NOT "Beat'em-Ups". |
WSOP | Gambling games: (W)orld (S)eries (O)f (P)oker. | |
💪 | WWF | Wrestling games: (W)orld (W)restling (F)ederation (aka WWE). |
This marks the END of the guidelines for Parent/Baseroms (& Clones). Below are some tips for romhacks.
For romhacks, imagine dumping a hundred (or even a thousand) in one folder, and you'll quickly notice that they're sorted by NAME, instead of the much preferable, by TYPE. For 99% of Players, they will have their own organizational strategy, usually by folder (hence the name). And these "folder flags" help organize by Type, as well as facilitate the transformation into other systems.
Additionally, for the vast majority of romhacks, the genre is implied (because they inherit their genre info from the Parent/Baserom); However, for a small minority of romhacks, they sometimes deviate substantially (or even completely) into different genres. And these Flags are a chance to correct and override that assumption.
These are prepended to the "Subtitle" (hack name).
🏁 | Type | Description |
---|---|---|
[AC] |
Contest | Contest submissions (with relevant flags, like [Contest][Rank][Entry] ). |
[AD] |
Demo | Demos: Really cool, but really short hacks (with relevant flags). |
[AH] |
Holiday | Holiday Hacks (with relevant flags, like [Theme] ). |
[AR] |
Random | Randomizer Hacks (with relevant flags, if any: TBD/TBA). |
[AZ] |
Complete | Hacks with new levels: For hacks like SMW, where the difficulty varies wildly, this also requires an abbreviated difficulty flag (a single digit Hex code from 0-F, with 0 being the easiest & F being the hardest)6, with the fully-qualified type & difficulty in the MetaInfo Tag. Altho, for the vast majority of hacks (that release one hack with multiple patches of difficulty), Subtitle designation is sufficient: i.e. A-EZ (Easy), B-NM (Normal), C-HD (Hard), D-HM (Hardmode), E-EX (Extreme), F-Ultra, for example. |
[DX] |
Improvement | Hacks with updates to gfx, sfx, etc, but no new levels. |
[JK] |
Joke/Troll | Joke or Troll style hacks. Note that these are different: A Troll hack tries to subvert the player's expectations of normal physics and game mechanics with tricks & traps, while Joke hacks tries to elicit laughter via jokes, memes, or even broken mechanics &/or bad level design. However, a hack can also be a mix (or hybrid) of these styles. |
[PZ] |
Puzzle | This is actually only a specific example of the general rule that anytime a Hack's genre deviates substantially from the Baserom, then this type of Flag should be used to denote the difference. Like, [PZ] , for example, focuses heavily on solving puzzles. And obviously, if the Baserom is already in the Puzzle Genre, then all of its romhacks are assumed to be as well, and this flag would be redundant (so it's not necessary in that case). |
[ZFX] |
zfx | General "EffectX" category: Requires an additional qualifier flag: bfx, gfx, gpx, ofx, sfx, or tfx. |
[BFX] |
bfx | [ZFX][BFX] : Bug FiXes patch. |
[CFX] |
cfx | [ZFX][CFX] : Cheat EffectX patch. |
[GFX] |
gfx | [ZFX][GFX] : Graphical EffectX patch. |
[GPX] |
gpx | [ZFX][GPX] : Gameplay EffectX patch. |
[OFX] |
ofx | [ZFX][OFX] : Other EffectX patch. |
[SFX] |
sfx | [ZFX][SFX] : Sound EffectX patch. |
[TFX] |
tfx | [ZFX][TFX] : Text/Font EffectX patch. |
[ZZZ] |
zzz | [ZZZ][UNK] & [ZZZ][JNK] mirror the GoodTools & smwdb.me designations for unclassified/unknown & junk/trash/bad, respectively. These flags are currently not used, as the equivalent, ZZZ-UNK- , in TOSEC was deprecated in 2011 and completely removed in 2015, so use with extreme caution (like as a temporary flag in your datting workflow). |
Just to re-iterate that this is only a "Parent Specification" meant to facilitate custom naming (and organizational strategies) in your own Sets: But please be aware that eventho this entire document is merely a rough draft, that holds especially true for the last section ("Folder Flags"), because the [Rank]
& [Entry]
flags (for example) could just as easily go into the (MetaInfo)
Tag instead. And the only way that we can improve this (and other issues) is if they're reported. So, don't hestitate to get in touch if you find any deficiencies, or, even if you just need help doing conversions and transformations. And that is one item on the agenda: To create an application that can convert to other systems, or even your own custom system.
Another area on the "to-do list" is to finalize the specification for Randomizer Romhacks: To unify them into a consistent naming convention. Like, where and how to put the Seed and the Randomizer Flags, Randomizer Version, as well as it's Name &/or Location (on the web). Altho, this might be an impossible tasks because there are so many different types of randomizers: Like, some that don't even use "seeds", for example.
Also note, that while the actual "datting" of an infinite number of randomized ROMs is out of scope, the purpose here is to include a few per Game (for each App) in order to advertise their existence (for those interested in using them). Like, a Player sees a bunch of these in the Set, and are like, "Oh hey, I didn't know there was a Randomizer for such & such Game: That's cool, lemme go check it out" (and create their own with their preferred settings). But generally, we want at least three per game, show casing various levels of difficulty (easy, normal, & hard): With upper limits of 10 to 20 (for more fully featured Randomizers, with more advanced options).
Finally, one major benefit to such a great ogranizational system, like this (and others), is that it can help alleviate the problem of "choice paralysis": Like, when you have one thousand, ten thousand, or even a hundred thousand ROMs, it can be difficult to choose just ONE to play. So, something as simple as deliniating between "Sports" & "Non-Sports" can be imensely beneficial, because, for example, Sports fans can go directly to the favorite categories, while non-Sports Gamers can skip over them entirely. This, coupled with the Genre & Gametype information (in the Attributes Tag), can help facilitate quick & easy searches: Even including Developer &/or Publisher searches: Something not possible with other Sets (without external databases) !!!
Footnotes
-
Title - Subtitle:
Capitalization: https://wiki.no-intro.org/index.php?title=Naming_Convention#Capitalization
Japanese Romanization: https://wiki.no-intro.org/index.php?title=Naming_Convention#Japanese_Romanization ↩ -
Language List: Order of Precedence: https://wiki.no-intro.org/index.php?title=Naming_Convention#Language(s)
Currently, there is a proposed change that while the most prevalent language in the West (English), is listed first, that, likewise, the most prevalent languages in the East (Korean, Japanese, Chinese) should be listed LAST (for quicker EYEdentification at a glance [sic]). ↩ -
{Attributes} Tag: Most games (with the exception of Sports) are assumed to be
{1P}
(one-player), and hence, such an "attribute" can be omitted for brevity. However,{1P}
is required for single player "Sports" games, since they are the exception to the general rule (that most "Sports" games are multiplayer). Furthermore, in order to give the best search functionality, a 4-player game (for example) would be formatted as{2P,4P}
. Some example queries: "{2P}
" (one-player/two-player support), "{2P
" (at least two-player), "{2P,
" (at least three-player), and "4P
" (maximum 4-player). ↩ -
(&MetaInfo) Tag: Please note that eventho this tag is a semi-colon seperated List, that each "element" within the List can also be a CSV (comma seperated) List, itself. And the "order of precedence" is: Highest priority (listed first): Unl, Pirate, Aftermarket. While the lowest priority (listed last) are the Dev Status Flags: Proto, Alpha, Beta, Demo, Sample, Snapshot, and also Reprint & Alt. ↩
-
Examples of the Title Transformation Rules: (1) The "Parity Rule", (2) The "Series Rule", & (3) The "Uniqueness Rule":
https://gist.github.com/Europia79/14b6f95ae75758618095aef156462d8b
(1) NHL Series: https://gist.github.com/Europia79/14b6f95ae75758618095aef156462d8b#file-iupag-snes-txt-L2340-L2356
(2) Soul Trilogy: https://gist.github.com/Europia79/14b6f95ae75758618095aef156462d8b#file-iupag-snes-txt-L3105-L3125
(3) Star Trek: https://gist.github.com/Europia79/14b6f95ae75758618095aef156462d8b#file-iupag-snes-txt-L3208-L3217 ↩ -
SMW levels of difficulty:
[0]->[Std Newcomer]
[1]->[Std Casual]
[2]->[Std Skilled]
[3]->[Std Advanced]
[4]->[Std Expert]
[5]->[Std Master]
[6]->[Std Grandmaster]+[Std-Kaizo HYBRIDS]
[7]->[Kaizo Newcomer]
[8]->[Kaizo Casual]
[9]->[Kaizo Skilled]
[A]->[Kaizo Advanced]
[B]->[Kaizo Expert]
[C]->[Kaizo Master]
[D]->[Kaizo Grandmaster]
[E]->[TAS]+[TAS HYBRIDS]
[F]->[PIT]+[PIT HYBRIDS]
<-Back to "Folder Flags": ↩