Skip to content

Subsets

Advanced Developer Topic

What are Subsets?link

When browsing the list of games, you will see that some games have a [Subset] tag in the title. Each of these contain achievements that for some reason or another, are not available in a game's base set. Subsets are typically home to specific types of challenge runs. They have also inherited what have been known simply as [Bonus] and [Multi] sets.

The methods to create a Subset and means to play them will change once they become a more integrated feature. As of now, they require a patch to generate a unique hash and are separate entries from the base set, so achievements must be obtained separately as well.

Types of Subsetslink

Bonus Setslink

While Bonus sets are subject to debate amongst both players and achievement creators, the overall purpose of a bonus set is for achievements that were not fit for the base set to have a home and still be obtainable by a devoted player. Think of them as "deluxe" challenges. The following types of achievements are the most suitable for Bonus Sets:

- Extreme Challenges: If it's generally voiced a challenge is too difficult, it's a prime candidate for a Bonus set. However, just because the achievement(s) are possible to code does not mean they are possible to obtain; therefore, the achievement must still be obtainable. A good example of this is the infamous Mr. Perfect from Mega Man (NES), which requires the player to complete the entire game without taking damage.
- Grind Sessions: If achievements involve overly long and frustrating grinds that have no meaningful purpose, they're better suited for Bonus sets. These include leveling characters to the maximum level, maxing out stats, performing a task an absurd amount of times, etc. when none of those things award the player. A good example of something grindy that awards the player, thus making it suitable for a base set, is One of a Kind from Final Fantasy IV (SNES), which requires a highly RNG-reliant grind for an item to trade for said armor.
- Variety Packs - Want to do a mixture of Subset ideas all within one set because you don't want to do several different Subsets? Then do it and throw it in a Bonus set.
- Showcasing of or Abuse of Glitches: Glitching can have unpredictable effects in a game's memory, which can result in unwanted behavior for some achievements, thus making them not suitable for a base set. Some examples of this are Replica from Final Fantasy VII (PlayStation) and Rare Candy Addiction from Pokemon - Red and Blue Versions (Game Boy.

Multi Setslink

This one is simple. If an achievement requires input from more than one player in order to unlock it, then it cannot be in the base set.

Challenge Runslink

While many base sets include plenty of challenges, developers have the option to add challenges that last the duration of a game's playthrough to a Subset. These are typically self-imposed challenges that go against how a game is normally played. Examples:

- Chrono Trigger - No Level Up - requires players to complete the game without ever leveling up their characters.
- EarthBound - Rare Drops - requires players to obtain all the rare drops from enemies.
- Final Fantasy - Solo Class - requires players to complete the game using only one character class, but they need to do it with every class to master the set.
- Pokemon - Professor Oak Challenge - There are several of these so far! This challenge requires players to catch and/or evolve every Pokemon possible between major story points in the game.
- Trails in the Sky FC - NG Nightmare - requires players to obtain 100% completion in a single, NG (New Game) playthrough on the Nightmare difficulty setting, as opposed to doing it on NG+ with carryovers.

DLC and Expansionslink

Not very common, but will become more common as our console support expands. Achievements in these sets are exclusive to a game's downloadable content or expansion pack(s). Examples:

- Arc the Lad 2 - Arc Arena: Monster Tournament - released as a bonus disc in the Arc the Lad Collection, this requires save data from Arc the Lad 2 in order to play.
- F-Zero X - Expansion Kit - achievements are for content exclusive to the 64DD expansion of the game.
- Return Fire - Maps o' Death - a separate release that provides additional maps to the game. It requires save data from the original game in order to play.

Regional Differenceslink

If a regional variant of a game does not have enough differences to warrant a "full" set, but you don't want to include it with the base set due to interference with base challenges, you can make a Subset to showcase the differences.

Naming Schemelink

To prevent players from getting confused, there is a specific naming scheme required for all Subsets:

- Bonus Sets: Must have [Subset - Bonus] following the base game title. For example: Castlevania [Subset - Bonus] and Darkwing Duck [Subset - Bonus].
- Multi Sets: Must have [Subset - Multi] following the base game title. For example: Contra [Subset - Multi] and Kirby 64: THe Crystal Shards [Subset - Multi].
- Challenge Runs: Must have [Subset - Challenge Name/Type] following the base game title. For example: Chrono Trigger [Subset - No Level Up] and Pocket Monsters Midori [Subset - Monotype Challenge].
- DLC and Expansions: Must have [Subset - DLC/Expansion Name following the base game title. For example: Return Fire - [Subset - Maps o' Death] and F-Zero X [Subset - Expansion Kit]

Claimslink

A developer does not need to claim an approved Subset if they are the sole author of the base set. If the developer is not the sole author of the base set, then they will need to post a plan in the forum and have it approved via revision voting.

If a junior developer wants to publish a Subset alongside a core set, they need to have their plan approved by code reviewers.

Approvallink

The following are types of Subsets that are approved by default:

- Bonus
- Multi
- DLC/Expansions
- Glitch Showcases
- Regional Differences
- Challenge Run: Low Level Game/No Leveling Runs
- Challenge Run: Solo Class/Monotype Runs
- Challenge Run: Checkpoint Challenges, such as Professor Oak Challenges
- Challenge Run: Perma-Death Challenges, such as Nuzlocke Challenges

Subsets that deviate from the above list, such as Rare Drops, will need to be approved by QA, which in turn may require a revision vote.

How Do I Create a Subset?link

In their current state, Subsets require a patch to modify the ROM. This ensures that the hash will be different so it can be linked to a separate entry. You should not use existing patches or alternate versions of the ROM since this can flag the hash when ran against existing DATs. In other words, the hash needs to be unique.

If you do not know how to create one of these patches, you can contact RAdmin and request for one to be made.

Step 1 - Create a copy of the original game ROMlink

This will be the file you will be editing to become the bonus set ROM

Step 2 - Grab a hex editor or sprite-hacking tool.link

You can skip this if you already have one. Several games already special ROM hacking tool chains. A lot of them are available on GitHub, but there's a plethora of them on ROMHacking.net that make the task easier. You'll need to use a more generic tool for a game that doesn't have one. The edit needs to be enough to create a new hash for the ROM file. Tools to edit your ROM can be found on ROMHacking.net's Utilities Page.

Here are some narrowed searches which may help:

Step 3 - Create a BPS Patch for the RAPatches Repositorylink

The easiest way to do this is with Floating IPS; all you do is click "Create Patch,", select the unmodified ROM then modified ROM, and save a BPS patch. Providing this patch is a must as it ensures players will be able to play the bonus set.

You can put the patch in the RAPatches repository by opening a pull request to add it to appropriate directory. If for any reason, you are not able to or are not comfortable doing so, you can contact RAdmin to make sure the patch finds its way into the repository.

Step 4 - Link the Hash to the Bonus Set Entrylink

Linking the hash is no different than any other game. Be sure to provide the hash information in #hash-links-log on the RetroAchievements Discord or in the game's forum topic. Make sure all necessary information in the bonus set's game entry is filled out.

Step 5 - Create achievements for the set, announce, and release.link

Again, just like any other set. Make sure the patch is linked in the forum so players are able to use it! Also, remember that it is against the rules to release the patched ROM itself! You must release the patch by itself to meet with guidelines on not publicly releasing copyrighted content on RetroAchievements).

To Dolink

  • Game Icon guidelines for Subsets + include the border templates for Bonus and Multi icons.

Changeloglink

Last 10 changes on this page:

  • [2022-03-20 03:04] televandalist: Added To Do list
  • [2022-03-20 02:56] televandalist: Typo fixes + changing "main set" and "core set" to "base set" for consistency.
  • [2022-03-20 02:33] televandalist: Separated Claims and Approval. Still needs some wording tweaks.
  • [2022-03-20 01:42] televandalist: Updated Subsets (markdown)
  • [2022-03-20 01:37] televandalist: Fixes some line breaks
  • [2022-02-21 21:42] televandalist: Fixed the line breaks at the start
  • [2022-02-18 21:15] televandalist: Replaced Bonus set documentation with Subset documentation draft.