diff --git a/docs/developer-docs/am-i-ready-for-review.md b/docs/developer-docs/am-i-ready-for-review.md index 3d23dc2f..18eac775 100644 --- a/docs/developer-docs/am-i-ready-for-review.md +++ b/docs/developer-docs/am-i-ready-for-review.md @@ -4,9 +4,11 @@ description: Comprehensive guidelines for the Junior Developer Program, includin --- # Am I Ready for Code Review? -Now that your set is shaping up, you feel it's getting closer to publication. A couple things are left to do, namely testing, debugging and adjusting things to avoid bad practices and improve your set. + +Now that your set is shaping up, you feel it's getting closer to publication. A couple things are left to do, namely testing, debugging and adjusting things to avoid bad practices and improve your set. Tips for testing: + - If you aren’t skilled enough to do the challenge, you can test individual pieces by creating dummy achievements for pieces of them, such as level completion, starting the challenge, taking damage. Often times you can freeze invincibility frames or other things to help test too. - Always make sure that your achievement can pop, and always make sure your failure conditions (ResetIf, Pauselocks, etc) only happen when you expect. - Try to approach your challenges and achievements from wrong directions and goofy actions. Players do all kinds of weird things. Maybe a player does something in a different order than usual. Maybe they shoot something you didn’t realize could be shot and the achievement fails unexpectedly. In short: **Try to break your achievements.** @@ -15,19 +17,22 @@ Tips for testing: # Requesting a Review Before you request a review on your set, it must be clear of bad practices. In particular, you must use [AutoCR](https://authorblues.github.io/retroachievements/AutoCR/) and go through every issue it flags. As with any automatic feedback tool, it is not perfect, and flags can sometimes be ignored. It is still invaluable to identify issues with your set, especially while you are still learning. In your Ready for Review post on #jr-devs-request, you must: + - Have an approved Set Plan for at least 7 days - Explain your testing process - Link to the Unpublished achievement page for your game - Include a link to Set Plan Review thread - Link to the AutoCR page for the set (using the Load by Game ID feature) - Explain why any issue flagged by AutoCR has been ignored - + Review requests deemed incomplete will simply be denied and you will have to make another one later. Take your time to get your set as close to publishable as you can before making that request; there's no rush! Don't hesitate to ask for help from your fellow juniors and code reviewers. Below is a list of absolute requirements before getting on the backlog: [[toc]] ## The set is clear from bad practices in logic + Everything below should be **avoided**. If you need to make an exception, explain why. + - Achievements without a Delta-Mem pair - Achievements using only a single address (even if it uses it for multiple conditions) - Having a hit count target of (1) or higher without a way to reset hits @@ -38,14 +43,14 @@ Everything below should be **avoided**. If you need to make an exception, explai - Redundant AndNext - Redundant Alt groups - Using a Pauselock without a way to reset it - + ## Code notes are clear and concise Read over the [Code Notes](/guidelines/content/code-notes) guidelines and ensure you are following all the advice. - Check that you have a size tag on every note - Check that every note has specific values noted, where appropriate -- Make sure *all* addresses used in achievements and leaderboards have a code note +- Make sure _all_ addresses used in achievements and leaderboards have a code note ## Assets have clear descriptions and unique titles with proper grammar @@ -80,17 +85,19 @@ Are grammar and capitalization not your strong suit? Having trouble coming up wi ## Achievements are save protected or password protected Test that loading a save file (especially an end game save file) or loading from a password does not trigger any achievements. - 1. Load up the game, then activate all achievements. - 2. Load your save file or enter your password. - 3. Does anything trigger? - - If yes, you’ll need to add code to block them from triggering on save load. - - Make sure to test that they still pop normally - - Generally, loading a save file or password should not lock someone out of earning achievements. We are only looking for the save load/password load to not cause achievements to trigger. + +1. Load up the game, then activate all achievements. +2. Load your save file or enter your password. +3. Does anything trigger? + - If yes, you’ll need to add code to block them from triggering on save load. + - Make sure to test that they still pop normally + - Generally, loading a save file or password should not lock someone out of earning achievements. We are only looking for the save load/password load to not cause achievements to trigger. + - If there are save files, have you tested that your logic works with all save slots? That is a requirement for an achievement set. - If not, do so now. - If it does not work with all save slots, you will need to revise your logic so that it does so. Usually there is at least an "active save slot" address, and often the active save data gets copied to a common location. Either case should be handled. - If the system uses a save on a memory card, have you tested that your logic works if the player has no memory card "inserted" in the emulator? -Note: This **does not** mean that achievements have to disallow passwords. It just means that achievements cannot be earned as a result of entering a password, which would happen if an achievement only checks that you are on a given stage, for example. + Note: This **does not** mean that achievements have to disallow passwords. It just means that achievements cannot be earned as a result of entering a password, which would happen if an achievement only checks that you are on a given stage, for example. ## Achievements are protected against cheats when appropriate diff --git a/docs/developer-docs/console-specific-tips.md b/docs/developer-docs/console-specific-tips.md index 5fb03e02..9062a696 100644 --- a/docs/developer-docs/console-specific-tips.md +++ b/docs/developer-docs/console-specific-tips.md @@ -144,29 +144,29 @@ Checks if the 8-bit value at 0x18BAB5 is equal to 0x20. This means 0x18BAB5 cont ## GameCube - Identification of the game/disc: - - Serial is located at **0x00000000** as a string of ASCII characters. - - Disc Number (for multidisk games) is stored at **0x80000006**. (0 = Disc 1) - - Revision Number is stored at **0x00000007**. - - You can use these to determine the specific disc loaded. + - Serial is located at **0x00000000** as a string of ASCII characters. + - Disc Number (for multidisk games) is stored at **0x80000006**. (0 = Disc 1) + - Revision Number is stored at **0x00000007**. + - You can use these to determine the specific disc loaded. - GameCube uses a PowerPC chipset with big-endian data. Filter using `16-Bit BE`, `32-Bit BE`, `Float BE`, and `Double32 BE` for data types wider than 1 byte (8-bits). Data is typically aligned on Gamecube, so 16-Bit data is always at an even address and 32-bit data addresses at a multiple of 4, etc. - Gamecube has one bank of RAM, 24MB, located at `0x80000000-0x817FFFFF`, which is mapped at `0x00000000-0x017FFFFF` in the RA toolkit. - - Therefore, pointers found will start with 0x8, and to use them, you can mask them using `0x1fffffff` to convert to RA addressing. - - `Add Address 32-Bit BE Pointer & 0x1fffffff` - - Uncached mirror of the RAM exists as well at `0xC0000000`. If you happen to find pointers that begin with 0xC, the same masking scheme will work to convert them to the RA addressing. + - Therefore, pointers found will start with 0x8, and to use them, you can mask them using `0x1fffffff` to convert to RA addressing. + - `Add Address 32-Bit BE Pointer & 0x1fffffff` + - Uncached mirror of the RAM exists as well at `0xC0000000`. If you happen to find pointers that begin with 0xC, the same masking scheme will work to convert them to the RA addressing. ## Wii - Identification of a retail game/disc: - - Serial is located at **0x00000000** as a string of ASCII characters. - - Disc Number (for multidisk games) is stored at **0x80000006**. (0 = Disc 1) - - Revision Number is stored at **0x00000007**. - - You can use these to determine the specific disc loaded. + - Serial is located at **0x00000000** as a string of ASCII characters. + - Disc Number (for multidisk games) is stored at **0x80000006**. (0 = Disc 1) + - Revision Number is stored at **0x00000007**. + - You can use these to determine the specific disc loaded. - WiiWare game ID is located at **0x00003180** as a 4-byte string of ASCII characters. - Wii uses a PowerPC chipset with big-endian data. Filter using `16-Bit BE`, `32-Bit BE`, `Float BE`, and `Double32 BE` for data types wider than 1 byte (8-bits). Data is typically aligned on Wii, so 16-Bit data is always at an even address and 32-bit data addresses at a multiple of 4, etc. - Wii has two banks of RAM, 24MB called "MEM1" located at `0x80000000-0x817FFFFF`, which is mapped at `0x00000000-0x017FFFFF` in the RA toolkit, and 64MB called "MEM2" located at `0x90000000-0x93FFFFFF`, which is mapped at `0x10000000-0x13FFFFFF` in the RA toolkit. - - Therefore, pointers found will start with 0x8 or 0x9, and to use them, you can mask them using `0x1fffffff` to convert to RA addressing. - - `Add Address 32-Bit BE Pointer & 0x1fffffff` - - Uncached mirrors of MEM1 and MEM2 exist as well at `0xC0000000` and `0xD0000000`, respectively. If you happen to find pointers that begin with 0xC or 0xD, the same masking scheme will work to convert them to the RA addressing. + - Therefore, pointers found will start with 0x8 or 0x9, and to use them, you can mask them using `0x1fffffff` to convert to RA addressing. + - `Add Address 32-Bit BE Pointer & 0x1fffffff` + - Uncached mirrors of MEM1 and MEM2 exist as well at `0xC0000000` and `0xD0000000`, respectively. If you happen to find pointers that begin with 0xC or 0xD, the same masking scheme will work to convert them to the RA addressing. ## Neo Geo diff --git a/docs/developer-docs/devjam.md b/docs/developer-docs/devjam.md index 843bb4ac..32ce8889 100644 --- a/docs/developer-docs/devjam.md +++ b/docs/developer-docs/devjam.md @@ -63,7 +63,7 @@ Check the links here for console-specific guidelines and info: | 06 | 2024-12-01 - 2025-03-16 | [Apple II](/developer-docs/devjam/6-appleii) | 20 | 40 | | 07 | 2025-04-01 - 2025-06-30 | [Sega CD/32X](/developer-docs/devjam/7-segacd-32x) | 27 | 40 | | 08 | 2025-07-01 - 2025-09-30 | [MSX](/developer-docs/devjam/8-msx) | 26 | 79 | -| 09 | 2026-02-01 - 2025-04-30 | [Catch-Up](/developer-docs/devjam/9-catch-up) | ?? | ?? | +| 09 | 2026-02-01 - 2025-04-30 | [Catch-Up](/developer-docs/devjam/9-catch-up) | ?? | ?? | ## Planned DevJams diff --git a/docs/developer-docs/devquests.md b/docs/developer-docs/devquests.md index bbd21819..c543553d 100644 --- a/docs/developer-docs/devquests.md +++ b/docs/developer-docs/devquests.md @@ -2,25 +2,29 @@ ## What are DevQuests? -DevQuests are achievement development-related quests that developers can take part in at any time. Each one has a specific goal and upon reaching that goal, the achievement developer will earn a badge. +DevQuests are achievement development-related quests that developers can take part in at any time. Each one has a specific goal and upon reaching that goal, the achievement developer will earn a badge. ## General Rules + Outside exceptions explicitely written in the individual quest rules, quests of each type follow the general rules below: + - DevQuests are not available for Junior Developers. - To be awarded credit towards a quest, ping the team via a Discord ping in [`#devquest`](https://discord.com/channels/310192285306454017/842845740078334002) or via [site message](https://retroachievements.org/messages/create?to=DevQuest) within one week of completion, with a link to the appropriate achievement page. - Collaborations and subsets are not allowed by default. -- If you are working on a set and it becomes eligible to a DevQuest, it cannot be used if 50% of the work is already done. This can happen when new quests are introduced, when a set receives enough requests to be eligible for [DQ7](#007-most-wanted) or when a set is featured in Wish This Set, making it eligible for [DQ16](#_016-wish-this-set). If this happens while you are *less* than halfway done, please reach out to the team to confirm eligibility. +- If you are working on a set and it becomes eligible to a DevQuest, it cannot be used if 50% of the work is already done. This can happen when new quests are introduced, when a set receives enough requests to be eligible for [DQ7](#007-most-wanted) or when a set is featured in Wish This Set, making it eligible for [DQ16](#_016-wish-this-set). If this happens while you are _less_ than halfway done, please reach out to the team to confirm eligibility. Type specific rules: **Set-Creation** + - Making a set can only contribute to a single quest. For example, if you make a set for a Japan-exclusive game with a female protagonist that was featured on Wish This Set, you have to choose between [DQ8](#_008-world-traveler), [DQ16](#0_16-wish-this-set) and [DQ24](#_024-she-s-got-this), you don't get all three. - Standard set quality or better is expected for DevQuest sets. If a set appears to be of insufficient effort, it may be rejected at the DevQuest team's discretion. Rich Presence is required for DevQuest sets. The DevQuest team is happy to suggest improvements for qualification. **Maintenance** + - You cannot be an original author on the set being maintained. - General revision rules apply: contact the active authors on sets whose content you will update or add to. Moreover, discussions, dev votes and revision claims are required when adding new achievements to a set. -- Every action can only contribute to a single quest. For example, if you repair a set for [DQ2](#_002-retro-renovator), resolving tickets is part of that task, so these tickets cannot be tallied up towards [DQ1](#_001-ticket-massacre). However, some sets can benefit from different independant actions in a way that yields credits towards multiple DevQuests. If you add a rich presence, leaderboards and revise a set to cover content that was missing before, you could get credit for DQ13, DQ14 and DQ22. +- Every action can only contribute to a single quest. For example, if you repair a set for [DQ2](#_002-retro-renovator), resolving tickets is part of that task, so these tickets cannot be tallied up towards [DQ1](#_001-ticket-massacre). However, some sets can benefit from different independant actions in a way that yields credits towards multiple DevQuests. If you add a rich presence, leaderboards and revise a set to cover content that was missing before, you could get credit for DQ13, DQ14 and DQ22. - For revision quests ([DQ2](#_002-retro-renovator), [DQ13](#_013-complete-me) and [DQ22](#0_22-this-belonged-in-a-museum) Dust-offs), the game needs to be in the approved list. You may propose games you feel should qualify prior to working on them and the team will determine if it fits the quest. While [DQ13](#_013-complete-me) credit can sometimes be granted along [DQ2](#_002-retro-renovator) or [DQ22](#_022-this-belonged-in-a-museum), this is up to a team vote and should only be allowed when both the current content and missing content require significant work. - When you update the logic of any asset, keep a backup of the old logic posted in the game's official forum for reference. - For miscellaneous maintenance quests ([DQ1](#_001-ticket-massacre), [DQ3](#_003-singles-in-your-area), [DQ5](#_005-trigger-happy) and [DQ14](#_014-laudable-leaderboards)), create a column in the DevQuest Remastered sheet to the left of completed entries and fill it in as you work. Contact the DevQuest team for review only after you have completed the quest. For quests that can be repeated, one row of the column will be for which badge number you are working towards. @@ -28,6 +32,7 @@ Type specific rules: **Legacy** Legacy quests ([DQ4](#_004-veteran-developer), [DQ15](#_015-console-conqueror) and [DQ20](#_020-genre-conqueror)) are fully retroactive and are awarded for having an extensive and wide portfolio as a developer. + - You may request to be tracked for these after reaching some minimum threshold as determined in the rules of each individual quests. - Following that first tracking request, updates are made in sweeps periodically; this means you don't have to (and shouldn't) ping the team every time you complete a new set that adds to your portfolio. Every couple months, the dev responsible for the sweeps for that particular quest will update the status of everyone being tracked and announce the progress in [`#devquest`](https://discord.com/channels/310192285306454017/842845740078334002). @@ -415,7 +420,7 @@ Each system ID will have an achievement associated with it. Newly supported syst - [Player-Input RP](https://retroachievements.org/game/28506) - [Single Save Support](https://retroachievements.org/game/28449) - [Outdated Version](https://retroachievements.org/hub/29482) - - If you identify a set you believe should qualify for a task like this, simply request approval from the team. Providing support to an updated version of a hack, homebrew or language patch will yield 1 point regardless of if it was tagged as outdated, provided the update required actual logic updates and/or adding achievements to cover added content. + - If you identify a set you believe should qualify for a task like this, simply request approval from the team. Providing support to an updated version of a hack, homebrew or language patch will yield 1 point regardless of if it was tagged as outdated, provided the update required actual logic updates and/or adding achievements to cover added content. 4. No collaboration allowed. 5. Sets are subject to DevQuest team approval, along with a small plan on what the dust-off will be about. Sets already in the approved DQ22 list do not require approval, only notification. 6. Badge updates must go through the Icon-Gauntlet revision process. @@ -461,13 +466,15 @@ Each system ID will have an achievement associated with it. Newly supported syst 6. Each point of credit (equivalent to one set) must have a different female character as the protagonist (or different ensemble of female characters) ## Wheel Spin DevQuest Rules + [DQ6](#_006-the-unwanted), [DQ19](#_019-wheel-of-genres) and [DQ23](#_023-well-of-wishes) use wheels to give random goals. You are allowed to spin again to change your random goal **three months** after spinning. The first and second spins for each quest are free. If you want to keep on spinning, you will need to earn a new respin token by doing one of the following tasks: + - Resolve (Not close) 10 tickets from inactive devs (can be used towards [DQ1](#_001-ticket-massacre) Ticket Massacre) - Earn [DQ3](#_003-singles-in-your-area) Singles in Your Area - Update 10 achievements towards [DQ5](#_005-trigger-happy) Trigger Happy - Earn a point towards [DQ2](#_002-retro-renovator) Retro Renovator or [DQ13](#013-complete-me) complete.me - Make a set for [DQ16](#_016-wish-this-set) Wish This Set - + Refreshing your spin this way can only be done while your spin is used up. For example, you cannot use an old Wish This Set game you made prior to spinning. ## New DevQuests and suggestions diff --git a/docs/developer-docs/jr-dev-rules.md b/docs/developer-docs/jr-dev-rules.md index 86bf5652..c251b654 100644 --- a/docs/developer-docs/jr-dev-rules.md +++ b/docs/developer-docs/jr-dev-rules.md @@ -9,7 +9,7 @@ description: Comprehensive guidelines for the Junior Developer Program, includin ## Overview -The purpose of the Junior Developer Program is to assist interested people with learning how to create and maintain high quality achievement sets for RetroAchievements. It is for people who intend to pursue graduation and become full developers. As part of the program, junior developers create sets to show proficiency in set design, set presentation, toolkit usage and implementation. +The purpose of the Junior Developer Program is to assist interested people with learning how to create and maintain high quality achievement sets for RetroAchievements. It is for people who intend to pursue graduation and become full developers. As part of the program, junior developers create sets to show proficiency in set design, set presentation, toolkit usage and implementation. Junior Developers are required to understand and abide by the [Developer Code of Conduct](/guidelines/users/code-of-conduct) except where specifically addressed by this document. @@ -25,9 +25,10 @@ To join the Junior Developer Program, the following requirements must be met: ### Developing and Publishing Sets as a Junior Developer The process to work on sets as a junior follows the roadmap below. In particular, there are 3 steps that require appproval by code reviewers before proceeding, namely the **Set Plan**, **Ready for Review** and **Code Review**: + - Prepare a thorough **Set Plan**. It's recommended to start with one of our [templates](https://docs.google.com/spreadsheets/d/1VC2phJ9AUcZK5Ll4bVuMpJXED8QdM_nw8OdSAuLc3bI/edit#gid=0), but you may adjust one to fit your needs over time. - Submit your set plan for approval. While the set plan is not a final product, it must show a general outline of the planned set including progression, challenge, and other types of achievements. Brief descriptions and point values must be included as well. If during development significant deviations are made from the set plan, a revised set plan must be submitted for approval. - - If this is your first set as a junior, you have to submit this set plan in the #role-request forum on the [RetroAchievements Discord server](https://discord.gg/dq2E4hE), along with a link to your RA profile, a link to the page of the game you wish to work on, and a ping to @Code-Reviewer. + - If this is your first set as a junior, you have to submit this set plan in the #role-request forum on the [RetroAchievements Discord server](https://discord.gg/dq2E4hE), along with a link to your RA profile, a link to the page of the game you wish to work on, and a ping to @Code-Reviewer. - If you already are in the junior program, you have to submit this set plan on #jr-devs-requests. As a junior developer with at least one set published, you may claim the game while you work on your set plan, but no work is allowed prior to having your plan approved. - Once your plan is approved, develop your set. This includes RAM digging, making assets, creating achievement badges, writing clear descriptions and unique titles as well as thoroughly testing your assets. Code reviewers and fellow juniors are available to help in #jr-devs! - [Request a review](/developer-docs/am-i-ready-for-review) by making a **Ready for Review** post on #jr-devs-requests. Do this only when you think your set is as close to publishable as you can get it. @@ -40,6 +41,7 @@ The process to work on sets as a junior follows the roadmap below. In particular ### Rules and Restrictions The following rules apply to all Junior Developers: + - Must stay on RA's Discord server for all communication with code reviewers - May only create achievements, leaderboards and Rich Presence for a set on which they have an active claim - **This includes local work**. This means no working on any sets that are not claimed. Failure to adhere to this rule may result in dismissal from the Junior Developer Program @@ -48,10 +50,11 @@ The following rules apply to all Junior Developers: - If a Junior Developer needs to extend their claim beyond 3 months, they need to make a progress report on the official forum for the game in accordance with [Claims System rules for extending a claim](/guidelines/developers/claims-system.html#extending-a-claim). Moreover, prior to a second extension (at the six-month mark) as well as any further extension, a detailed progress report must be sent to the [Code Review Team](https://retroachievements.org/messages/create?to=CodeReviewTeam) for approval before the extension is made. The team may deny the extension in cases where progress is insufficient. There are restrictions on the type of claims you can make before graduation. You cannot: + - Work on subsets, collaborations or revisions (excluding your own) - Claim a hack if you already published a set for another hack - Claim a hack or homebrew you developed yourself -- Claim any Gamecube game +- Claim any Gamecube game - Claim a game on any of the following consoles without explicit approval by code reviewers. You can request this approval as part of your set plan approval, and only if you have published another set before: - PlayStation 2 - PlayStation Portable diff --git a/docs/developer-docs/rich-presence.md b/docs/developer-docs/rich-presence.md index f1dbfa9b..bf4b82e4 100644 --- a/docs/developer-docs/rich-presence.md +++ b/docs/developer-docs/rich-presence.md @@ -15,10 +15,9 @@ A good rich presence should inform other users how far into the game you are (le ## Intended Audience -Rich presence is written for site viewers, **NOT** the person playing the game. It is intended to answer the question "What is this player doing?" Do not assume a context for RP when designing it. It should just report factual data that briefly explains, in general terms, what a player is doing in game. - - It is highly recommended to keep RP clear, concise, and consider that viewers may have little to no knowledge of the game. It is important that Rich Presence is simple and easy to understand. Emojis are often unclear and do not display consistently between platforms. They should only be used sparingly for very obvious things, if at all. +Rich presence is written for site viewers, **NOT** the person playing the game. It is intended to answer the question "What is this player doing?" Do not assume a context for RP when designing it. It should just report factual data that briefly explains, in general terms, what a player is doing in game. +It is highly recommended to keep RP clear, concise, and consider that viewers may have little to no knowledge of the game. It is important that Rich Presence is simple and easy to understand. Emojis are often unclear and do not display consistently between platforms. They should only be used sparingly for very obvious things, if at all. **Example of RP in action:** diff --git a/docs/general/emulator-support-and-issues.md b/docs/general/emulator-support-and-issues.md index 90e0bdec..cf1c0e4e 100644 --- a/docs/general/emulator-support-and-issues.md +++ b/docs/general/emulator-support-and-issues.md @@ -39,9 +39,9 @@ BizHawk cores can only be played on [BizHawk](https://tasvideos.org/Bizhawk). Mo ### Apple II -| Name | Type | Notes | -| :------------------------------------------------------- | :------------------- | :---- | -| **[RAppleWin](https://retroachievements.org/downloads)** | Standalone emulator | | +| Name | Type | Notes | +| :------------------------------------------------------- | :------------------ | :---- | +| **[RAppleWin](https://retroachievements.org/downloads)** | Standalone emulator | | ### Arcade @@ -130,7 +130,7 @@ BizHawk cores can only be played on [BizHawk](https://tasvideos.org/Bizhawk). Mo ### Game Boy -| Name | Type | Notes | +| Name | Type | Notes | | :----------------------------------------------------------- | :------------------ | :-------------------------------------- | | **Gambatte** | libretro core | Most recommended. | | **Gearboy** | libretro core | | @@ -146,7 +146,7 @@ BizHawk cores can only be played on [BizHawk](https://tasvideos.org/Bizhawk). Mo ### Game Boy Color -| Name | Type | Notes | +| Name | Type | Notes | | :----------------------------------------------------------- | :------------------ | :-------------------------------------- | | **Gambatte** | libretro core | Most recommended. | | **Gearboy** | libretro core | | @@ -162,7 +162,7 @@ BizHawk cores can only be played on [BizHawk](https://tasvideos.org/Bizhawk). Mo ### Game Boy Advance -| Name | Type | Notes| +| Name | Type | Notes | | :----------------------------------------------------------- | :------------------ | :--------------------------- | | **mGBA** | libretro core | Most recommended. | | **VBA-M** | libretro core | | @@ -173,7 +173,7 @@ BizHawk cores can only be played on [BizHawk](https://tasvideos.org/Bizhawk). Mo | **[Pizza Boy A Basic & Pro](https://pizzaemulators.com/)** | Standalone emulator | | | **[SkyEmu](https://github.com/skylersaleh/SkyEmu/pull/321)** | Standalone emulator | | | **[Playback](https://www.epilogue.co/)** | Standalone emulator | GB Operator device required. | -| **[Linkboy](https://retroachievements.org/downloads)** | Standalone emulator | | +| **[Linkboy](https://retroachievements.org/downloads)** | Standalone emulator | | ### GameCube @@ -210,7 +210,7 @@ BizHawk cores can only be played on [BizHawk](https://tasvideos.org/Bizhawk). Mo ### Interton VC 4000 | Name | Type | Notes | -| :---------------------------------------------------- | :------------------ | :--- | +| :---------------------------------------------------- | :------------------ | :---- | | **[WinArcadia](https://amigan.1emu.net/releases/)** | Standalone emulator | | | **[DroidArcadia](https://amigan.1emu.net/releases/)** | Standalone emulator | | @@ -257,12 +257,12 @@ BizHawk cores can only be played on [BizHawk](https://tasvideos.org/Bizhawk). Mo ### NES/Famicom | Name | Type | Notes | -| :--------------------------------------------------- | :------------------ | :---------------------------------------- | +| :------------------------------------------------------------- | :------------------ | :---------------------------------------- | | **FCEUmm** | libretro core | Most recommended. | | **Mesen** | libretro core | | | **QuickNES** | libretro core | Does not emulate the Famicom Disk System. | | **[RANes](https://retroachievements.org/downloads)** | Standalone emulator | | -| **[NES RA Adapter](https://github.com/odelot/nes-ra-adapter)** | Console adapter | | +| **[NES RA Adapter](https://github.com/odelot/nes-ra-adapter)** | Console adapter | | ### NES/Famicom Disk System @@ -321,17 +321,17 @@ Limited microphone support. ### PC-8000/8800 -| Name | Type | Notes | -| :-------------------------------------------------------------------- | :------------------ | :---- | -| **QUASI88** | libretro core | | +| Name | Type | Notes | +| :------------------------------------------------------- | :------------------ | :---- | +| **QUASI88** | libretro core | | | **[RAQUASI88](https://retroachievements.org/downloads)** | Standalone emulator | | ### PC-FX -| Name | Type | Notes | -| :-------------------- | :------------ | :-------------------------- | -| **Beetle PC-FX** | libretro core | | -| **T.S.T.** | BizHawk core | Mednafen fork specifically. | +| Name | Type | Notes | +| :--------------- | :------------ | :-------------------------- | +| **Beetle PC-FX** | libretro core | | +| **T.S.T.** | BizHawk core | Mednafen fork specifically. | ### PlayStation @@ -428,7 +428,7 @@ These cores appear to still have unmapped RAM. ### Watara Supervision | Name | Type | Notes | -| :------- | :------------ | :---- | +| :---------- | :------------ | :---- | | **Potator** | libretro core | | ### Wii diff --git a/docs/guidelines/content/hash-labels.md b/docs/guidelines/content/hash-labels.md index 1d314c9d..5c4c75ee 100644 --- a/docs/guidelines/content/hash-labels.md +++ b/docs/guidelines/content/hash-labels.md @@ -1,20 +1,20 @@ --- title: Hash Labels -description: This guide covers labeling ROMs linked to achievement sets, including label types, image labels, and examples. +description: This guide covers labeling hashes linked to achievement sets, including label types, image labels, and examples. --- # Hash Labels -Every ROM that is linked to an achievement set must be clearly identified and labeled. These labels help players know which versions of a game are compatible as well as if there are any translation patches, bug fixes, cosmetic hacks, quality of life hacks, etc. that they can use. +Every hash that is linked to an achievement set must be clearly identified and labeled. These labels help players know which versions of a game are compatible as well as if there are any translation patches, bug fixes, cosmetic hacks, quality of life hacks, etc. that they can use. [[toc]] -## Info for Supported Game Files +## Info for Supported Game Hashes - RA Hash: Check [Game Identification](/developer-docs/game-identification) to learn more about these. These appear in `Manage Hashes` automatically. -- File Name - File name should be entered as the description. These are typically automatic, but may need some adjustments. +- Hash Description - A description should be entered to identify the hash. These are typically automatic, but may need some adjustments. - Labels - You can use the labels listed below by using the filename of the image (no extension). -- Patch URL - Link to either a .zip or .7z file in the [RAPatches](https://github.com/RetroAchievements/RAPatches) GitHub repository. +- Patch URL - Link to either a .zip or .7z file in the [RAPatches](https://github.com/RetroAchievements/RAPatches) GitHub repository. - Resource Page URL - Link to a specific No Intro, Redump, RHDN, SMWCentral, itch.io, etc. page. ## Images @@ -43,29 +43,29 @@ The following are used for specific websites: | ------------------------------------------------------------------------------------- | -------------- | ---------------------------------------------------------------------- | | ![atari-age-label](https://retroachievements.org/assets/images/labels/atariage.png) | `atariage` | Popular site for Homebrews | | ![baddesthacks-label](https://retroachievements.org/assets/images/labels/baddesthacks.png) | `baddesthacks` | Site for questionable hacks | -| ![project-egg-label](https://retroachievements.org/assets/images/labels/egg.png) | `egg` | ROMs purchased from Project Egg, typically Japanese PC games. | +| ![project-egg-label](https://retroachievements.org/assets/images/labels/egg.png) | `egg` | Games purchased from Project Egg, typically Japanese PC games. | | ![gamebanana-label](https://retroachievements.org/assets/images/labels/gamebanana.png) | `gamebanana` | Site with hacks/mods for PS1, PS2, PSP, GC, etc. | | ![github-label](https://retroachievements.org/assets/images/labels/github.png) | `github` | Used for hacks, homebrews, etc. that are hosted on GitHub | -| ![gog-label](https://retroachievements.org/assets/images/labels/gog.png) | `gog` | ROMs purchased from GOG.com - will likely only be used for DOS hashes | +| ![gog-label](https://retroachievements.org/assets/images/labels/gog.png) | `gog` | Games purchased from GOG.com - will likely only be used for DOS hashes | | ![itch-io-label](https://retroachievements.org/assets/images/labels/itchio.png) | `itchio` | Popular site for Homebrews | | ![metconst-label](https://retroachievements.org/assets/images/labels/metconst.png) | `metconst` | Metroid hack repository and community | | ![moddb-label](https://retroachievements.org/assets/images/labels/moddb.png) | `moddb` | Popular repository for hacks/mods for newer consoles/PCs | | ![pokecommunity-label](https://retroachievements.org/assets/images/labels/pokecommunity.png) | `pokecommunity`| Pokemon hack repository and community | | ![rhdc-label](https://retroachievements.org/assets/images/labels/rhdc.png) | `rhdc` | Popular repository for Super Mario 64 hacks. | | ![romhackplaza-label](https://retroachievements.org/assets/images/labels/romhackplaza.png) | `romhackplaza` | Newer hack repository and community | -| ![steam-label](https://retroachievements.org/assets/images/labels/steam.png) | `steam` | ROMs purchased from Steam. | +| ![steam-label](https://retroachievements.org/assets/images/labels/steam.png) | `steam` | Games purchased from Steam. | | ![smwcentral-label](https://retroachievements.org/assets/images/labels/smwcentral.png) | `smwcentral` | Popular repository for Super Mario World hacks. | -| ![rhdn-label](https://retroachievements.org/assets/images/labels/rhdn.png) | `rhdn` | Popular repository for ROM hacks | +| ![rhdn-label](https://retroachievements.org/assets/images/labels/rhdn.png) | `rhdn` | Popular repository for game hacks and translations | The following are generic labels: | Image | Label to Use | Note | | ------------------------------------------------------------------------------------ | ------------- | ---------------------------------------------------------------------- | -| ![main-label](https://retroachievements.org/assets/images/labels/main.png) | `main` | Sometimes used to show the primary ROM used by the set developer(s) | +| ![main-label](https://retroachievements.org/assets/images/labels/main.png) | `main` | Sometimes used to show the primary hash used by the set developer(s) | | ![atomiswave-label](https://retroachievements.org/assets/images/labels/atomiswave.png) | `atomiswave` | Generic label for Atomiswave arcade games | | ![homebrew-label](https://retroachievements.org/assets/images/labels/homebrew.png) | `homebrew` | Generic label for Homebrews | -| ![mdplus-label](https://retroachievements.org/assets/images/labels/mdplus.png) | `mdplus` | Generic label for ROMs using MD+ patches | -| ![msu-1-label](https://retroachievements.org/assets/images/labels/msu1.png) | `msu1` | Generic label for ROMs using MSU-1 patches | +| ![mdplus-label](https://retroachievements.org/assets/images/labels/mdplus.png) | `mdplus` | Generic label for hashes using MD+ patches | +| ![msu-1-label](https://retroachievements.org/assets/images/labels/msu1.png) | `msu1` | Generic label for hashes using MSU-1 patches | | ![naomi-label](https://retroachievements.org/assets/images/labels/naomi.png) | `naomi` | Generic label for NAOMI and NAOMI 2 arcade games | | ![snes-mini-label](https://retroachievements.org/assets/images/labels/snesmini.png) | `snesmini` | | | ![offline-list-label](https://retroachievements.org/assets/images/labels/offlinelist.png) | `offlinelist` | | @@ -83,23 +83,23 @@ The following are generic labels: - The third hash is the No Intro-verified Japanese version of the game. - The fourth hash is the No Intro-verified USA version of the game. -On this page, supported game files are ordered lexicographically by their MD5 hashes. +On this page, supported game hashes are ordered lexicographically by their MD5 values. -Each supported file can be edited individually by clicking on "Edit" on the same line: +Each supported hash can be edited individually by clicking on "Edit" on the same line: ![edit-game-hash](/edit-game-hash.png) -To see how this will look for the majority of users, go to the game entry page and click on "Supported Game Files." +To see how this will look for the majority of users, go to the game entry page and click on "Supported Game Hashes." -#### Supported Game Files +#### Supported Game Hashes ![links-dejavu](/links-dejavu.png) -As you can see below, `nointro` and `rapatches` were replaced with corresponding images, and the file link from the "Patch URL" string is conveniently added right below the corresponding hash. On this page, supported game files are ordered lexicographically by their filenames. +As you can see below, `nointro` and `rapatches` were replaced with corresponding images, and the patch link from the "Patch URL" string is conveniently added right below the corresponding hash. On this page, supported game hashes are ordered lexicographically by their descriptions. ![linked-hashes-dejavu](/supported-game-files-dejavu.png) ### Suikoden (PlayStation) -We'll skip the manage hashes example for this one. Let's go straight to "Supported Game Files" on the game entry page: +We'll skip the manage hashes example for this one. Let's go straight to "Supported Game Hashes" on the game entry page: ![links-suikoden](/links-suikoden.png) diff --git a/docs/pt/guidelines/content/hash-labels.md b/docs/pt/guidelines/content/hash-labels.md index 4332cbdb..c69c2a6f 100644 --- a/docs/pt/guidelines/content/hash-labels.md +++ b/docs/pt/guidelines/content/hash-labels.md @@ -1,11 +1,11 @@ --- title: Rótulos de Hash -description: Este guia abrange a rotulação de ROMs vinculadas a conjuntos de conquistas, incluindo tipos de rótulos, rótulos de imagem, exemplos e como vincular patches no fórum. +description: Este guia abrange a rotulação de hashes vinculados a conjuntos de conquistas, incluindo tipos de rótulos, rótulos de imagem, exemplos e como vincular patches no fórum. --- # Rótulos de Hash -Toda ROM vinculada a um conjunto de conquistas deve ser claramente identificada e rotulada. Esses rótulos ajudam os jogadores a saber quais versões de um jogo são compatíveis, bem como se há patches de tradução, correções de bugs, hacks cosméticos, melhorias de qualidade de vida, etc., que podem ser usados. +Todo hash vinculado a um conjunto de conquistas deve ser claramente identificado e rotulado. Esses rótulos ajudam os jogadores a saber quais versões de um jogo são compatíveis, bem como se há patches de tradução, correções de bugs, hacks cosméticos, melhorias de qualidade de vida, etc., que podem ser usados. [[toc]] @@ -19,7 +19,7 @@ Toda ROM vinculada a um conjunto de conquistas deve ser claramente identificada | Imagem | Rótulo para Usar | Nota | | --------------------------------------------------------------------------------------- | -------------------- | ------------------------------------------------------------------- | -| ![main-label](https://retroachievements.org/assets/images/labels/main.png) | `main` | Usado para mostrar a ROM principal usada pelo(s) desenvolvedor(es) do conjunto | +| ![main-label](https://retroachievements.org/assets/images/labels/main.png) | `main` | Usado para mostrar o hash principal usado pelo(s) desenvolvedor(es) do conjunto | | ![RAPatches](https://retroachievements.org/assets/images/labels/rapatches.png) | `rapatches` | Usado quando o hash requer um patch hospedado no RAPatches | | ![no-intro-label](https://retroachievements.org/assets/images/labels/nointro.png) | `nointro` | O mais comum para jogos baseados em cartuchos | | ![redump-label](https://retroachievements.org/assets/images/labels/redump.png) | `redump` | O mais comum para jogos baseados em discos | @@ -32,13 +32,13 @@ Toda ROM vinculada a um conjunto de conquistas deve ser claramente identificada | ![homebrew](https://retroachievements.org/assets/images/labels/homebrew.png) | `homebrew` | Usado para Homebrews | | ![atari-age-label](https://retroachievements.org/assets/images/labels/atariage.png) | `atariage` | Site popular para Homebrews | | ![itch-io-label](https://retroachievements.org/assets/images/labels/itchio.png) | `itchio` | Site popular para Homebrews | -| ![msu-1-label](https://retroachievements.org/assets/images/labels/msu1.png) | `msu1` | Usado para marcar ROMs do SNES com patches MSU-1 | +| ![msu-1-label](https://retroachievements.org/assets/images/labels/msu1.png) | `msu1` | Usado para marcar hashes do SNES com patches MSU-1 | | ![snes-mini](https://retroachievements.org/assets/images/labels/snesmini.png) | `snesmini` | | -| ![project-egg-label](https://retroachievements.org/assets/images/labels/egg.png) | `egg` | ROMs adquiridas no Project Egg, geralmente jogos de PC japoneses | -| ![steam-label](https://retroachievements.org/assets/images/labels/steam.png) | `steam` | ROMs adquiridas na Steam | +| ![project-egg-label](https://retroachievements.org/assets/images/labels/egg.png) | `egg` | Jogos adquiridos no Project Egg, geralmente jogos de PC japoneses | +| ![steam-label](https://retroachievements.org/assets/images/labels/steam.png) | `steam` | Jogos adquiridos na Steam | | ![mamesl-label](https://retroachievements.org/assets/images/labels/mamesl.png) | `mamesl` | Lista de Software MAME | | ![smwcentral-label](https://retroachievements.org/assets/images/labels/smwcentral.png) | `smwcentral` | Repositório popular de hacks do Super Mario World | -| ![rhdn-label](https://retroachievements.org/assets/images/labels/rhdn.png) | `rhdn` | Repositório popular para hacks de ROM | +| ![rhdn-label](https://retroachievements.org/assets/images/labels/rhdn.png) | `rhdn` | Repositório popular para hacks e traduções de jogos | | ![goodtools-label](https://retroachievements.org/assets/images/labels/goodtools.png) | `goodtools` | | | ![nongood-label](https://retroachievements.org/assets/images/labels/nongood.png) | `nongood` | | | ![offline-list-label](https://retroachievements.org/assets/images/labels/offlinelist.png) | `offlinelist` | |