Bonus Set Guide
Advanced Developer Topic
What is a Bonus Set?link
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 core set to have a home and still be obtainable by a devoted player. Think of them as "deluxe" challenges.
Note: The methods to create a bonus Set 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 core set, so achievements must be obtained separately as well.
What Types of Achievements are Suitable for a Bonus Set?link
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.
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 core set. Some examples of this are Replica from Final Fantasy VII (PlayStation) and Rare Candy Addiction from Pokemon - Red and Blue Versions (Game Boy.
Grind Sessions: If overly long and frustrating grinds that have no meaningful purpose aside from just being able to say you did it, 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 core, 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.
Claiming a Bonus Setlink
If a developer has a set claimed, they may publish a bonus set alongside the core set without any need to claim the bonus set separately. This only applies to when the core set and bonus sets are published simultaneously. Outside of this scenario, bonus sets are treated the same as revisions; therefore, they require a detailed plan and a vote via #revision-voting.
If a junior developer wants to publish a bonus set alongside a core set, they need to have their plan approved by code reviewers.
How Do I Create a Bonus Set?link
In their current state, bonus sets 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:
- Sprite Hacking tools - ROMHacking.net Filtered Search
- Text and text table hex editors - ROMHacking.net Filtered Search
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).
Last 10 changes on this page:
[2021-04-11 21:38] meleu:use https
[2021-03-20 22:35] televandalist:Updated to include recent policy changes. Ready to commit.
[2021-03-01 13:36] televandalist:Typo correction
[2021-03-01 02:50] televandalist:Removed the theatrics used to fluff the idea of Bonus sets. Fixed a lot of typos. Modified a lot of the info and guidelines to reflect a recent staff vote. Still WIP - Do not deploy!
[2018-02-04 09:38] meleu:Updated Bonus Sets (markdown)
[2018-02-04 09:35] meleu:Updated Bonus Sets (markdown)
[2018-02-03 19:30] meleu:formats
[2018-02-02 20:24] Robert Smith:Edited format: Broaded bonus set description, inserted reminders of developer conduct.
[2018-02-02 11:47] Robert Smith:Seperation of Notice with horizontal rules.
[2018-02-02 11:23] Robert Smith:Removed duplicate heading.