diff --git a/docs/.vitepress/config/index.ts b/docs/.vitepress/config/index.ts
index 0bc9ea23..7f309a9b 100644
--- a/docs/.vitepress/config/index.ts
+++ b/docs/.vitepress/config/index.ts
@@ -5,6 +5,7 @@ import { shared } from "./shared";
import { en } from "./en";
import { pt } from "./pt";
import { es } from "./es";
+import { zh } from "./zh";
export default defineConfig({
...shared,
@@ -13,6 +14,7 @@ export default defineConfig({
root: { label: "English", ...en },
pt: { label: "Português", ...pt },
es: { label: "Español", ...es },
+ zh: { label: "中文", ...zh },
},
vite: {
diff --git a/docs/.vitepress/config/shared.ts b/docs/.vitepress/config/shared.ts
index 8bcd2872..e8cf4ebc 100644
--- a/docs/.vitepress/config/shared.ts
+++ b/docs/.vitepress/config/shared.ts
@@ -2,6 +2,7 @@ import { type HeadConfig, defineConfig } from "vitepress";
import { search as esSearch } from "./es";
import { search as ptSearch } from "./pt";
+import { search as zhSearch } from "./zh";
export const shared = defineConfig({
// Metadata
@@ -34,7 +35,7 @@ export const shared = defineConfig({
appId: "ZZXWI82V1J",
apiKey: "2b510f2ef4d79811fe1f6dd437c595e1",
indexName: "retroachievements",
- locales: { ...esSearch, ...ptSearch },
+ locales: { ...esSearch, ...ptSearch, ...zhSearch },
},
},
diff --git a/docs/.vitepress/config/zh.ts b/docs/.vitepress/config/zh.ts
new file mode 100644
index 00000000..a2c9faee
--- /dev/null
+++ b/docs/.vitepress/config/zh.ts
@@ -0,0 +1,554 @@
+import { defineConfig, type DefaultTheme } from "vitepress";
+
+export const zh = defineConfig({
+ lang: "zh-CN",
+ description: "访问 RetroAchievements 的完整指南、教程和开发者资源。了解如何通过自定义成就增强您的复古游戏体验。",
+
+ themeConfig: {
+ nav: nav(),
+
+ sidebar: {
+ "/zh/general/": sidebarGeneral(),
+ "/zh/guidelines/": sidebarGuidelines(),
+ "/zh/developer-docs": sidebarDeveloperDocs(),
+ },
+
+ editLink: {
+ pattern: "https://github.com/RetroAchievements/docs/edit/main/docs/:path",
+ text: "编辑此页",
+ },
+
+ footer: {
+ message: "采用 GPL-3 许可证发布。RetroAchievements 上不提供受版权保护的 ROM 下载。",
+ copyright: `Copyright © 2012–${new Date().getFullYear()} RetroAchievements. 保留所有权利。`,
+ },
+
+ lastUpdated: {
+ text: "更新于",
+ formatOptions: {
+ dateStyle: "short",
+ timeStyle: "medium",
+ },
+ },
+
+ langMenuLabel: "切换语言",
+ returnToTopLabel: "返回顶部",
+ sidebarMenuLabel: "侧边栏菜单",
+ darkModeSwitchLabel: "深色模式",
+ lightModeSwitchTitle: "切换到浅色模式",
+ darkModeSwitchTitle: "切换到深色模式",
+ },
+});
+
+function nav(): DefaultTheme.NavItem[] {
+ return [
+ {
+ text: "通用",
+ link: "/zh/general/index",
+ activeMatch: "/zh/general/",
+ },
+ {
+ text: "指南",
+ link: "/zh/guidelines/users/retroachievements-manifesto",
+ activeMatch: "/zh/guidelines/",
+ },
+ {
+ text: "成就开发",
+ link: "/zh/developer-docs/index",
+ activeMatch: "/zh/developer-docs/",
+ },
+ ];
+}
+
+function sidebarGeneral(): DefaultTheme.SidebarItem[] {
+ return [
+ {
+ text: "通用",
+ collapsed: false,
+ items: [
+ {
+ text: "索引",
+ link: "/zh/general/index",
+ },
+ {
+ text: "常见问题",
+ link: "/zh/general/faq",
+ },
+ // {
+ // text: "安装指南",
+ // link: "/zh/general/setup-guide",
+ // },
+ {
+ text: "模拟器支持",
+ link: "/zh/general/emulator-support-and-issues",
+ },
+ {
+ text: "硬核模式合规要求",
+ link: "/zh/general/hardcore-compliance-requirements",
+ },
+ {
+ text: "独立版支持",
+ link: "/zh/general/standalone-support",
+ },
+ {
+ text: "RA 如何运作",
+ link: "/zh/general/how-ra-works",
+ },
+ {
+ text: "非开发者如何贡献",
+ link: "/zh/general/ways-to-contribute",
+ },
+ {
+ text: "RABot,RA 的 Discord 机器人",
+ link: "/zh/general/rabot",
+ },
+ {
+ text: "活动",
+ link: "/zh/general/events",
+ },
+ {
+ text: "叠加主题",
+ link: "/zh/general/overlay-themes",
+ },
+ {
+ text: "实用链接",
+ link: "/zh/general/useful-links",
+ },
+ {
+ text: "贡献文档",
+ link: "/zh/general/contributing-to-the-docs",
+ },
+ {
+ text: "关于我们",
+ link: "/zh/general/about-us",
+ },
+ ],
+ },
+ {
+ text: "团队",
+ collapsed: false,
+ items: [
+ {
+ text: "质量保证",
+ link: "/zh/general/teams/qa-team",
+ },
+ ],
+ },
+ {
+ text: "教程",
+ collapsed: false,
+ items: [
+ {
+ text: "如何配置 OBS Studio 以查看弹窗",
+ link: "/zh/general/tutorials/how-to-configure-obs-studio",
+ },
+ {
+ text: "多碟游戏",
+ link: "/zh/general/tutorials/multi-disc-games",
+ },
+ {
+ text: "连发按钮",
+ link: "/zh/general/tutorials/turbo-button",
+ },
+ {
+ text: "PlayStation Portable 的 DLC 使用",
+ link: "/zh/general/tutorials/working-with-dlc-for-the-psp",
+ },
+ {
+ text: "如何游玩子集",
+ link: "/zh/general/tutorials/how-to-play-subsets",
+ },
+ ],
+ },
+ ];
+}
+
+function sidebarGuidelines(): DefaultTheme.SidebarItem[] {
+ return [
+ {
+ text: "用户指南",
+ collapsed: false,
+ items: [
+ {
+ text: "RetroAchievements 宣言",
+ link: "/zh/guidelines/users/retroachievements-manifesto",
+ },
+ {
+ text: "用户行为准则",
+ link: "/zh/guidelines/users/code-of-conduct",
+ },
+ {
+ text: "全球排行榜与成就狩猎规则",
+ link: "/zh/guidelines/users/global-leaderboard-and-achievement-hunting-rules",
+ },
+ ],
+ },
+ {
+ text: "开发者指南",
+ collapsed: false,
+ items: [
+ {
+ text: "开发者行为准则",
+ link: "/zh/guidelines/developers/code-of-conduct",
+ },
+ {
+ text: "认领系统",
+ link: "/zh/guidelines/developers/claims-system",
+ },
+ {
+ text: "处理工单",
+ link: "/zh/guidelines/developers/handling-tickets",
+ },
+ {
+ text: "维护者角色",
+ link: "/zh/guidelines/developers/maintainership",
+ },
+ {
+ text: "成就集与成就贡献署名",
+ link: "/zh/guidelines/developers/credit",
+ },
+ ],
+ },
+ {
+ text: "内容指南",
+ collapsed: false,
+ items: [
+ {
+ text: "成就集要求",
+ link: "/zh/guidelines/content/achievement-set-requirements",
+ },
+ {
+ text: "不受欢迎的概念",
+ link: "/zh/guidelines/content/unwelcome-concepts",
+ },
+ {
+ text: "进度与通关条件指南",
+ link: "/zh/guidelines/content/progression-and-win-condition-guidelines",
+ },
+ {
+ text: "成就集抄袭",
+ link: "/zh/guidelines/content/set-plagiarism",
+ },
+ {
+ text: "游戏信息与中心指南",
+ link: "/zh/guidelines/content/game-info-and-hub-guidelines",
+ },
+ {
+ text: "类型定义",
+ link: "/zh/guidelines/content/genre-definitions",
+ },
+ {
+ text: "写作规范",
+ link: "/zh/guidelines/content/writing-policy",
+ },
+ {
+ text: "徽章与图标指南",
+ link: "/zh/guidelines/content/badge-and-icon-guidelines",
+ },
+ {
+ text: "代码注释",
+ link: "/zh/guidelines/content/code-notes",
+ },
+ {
+ text: "编辑排行榜",
+ link: "/zh/guidelines/content/editing-leaderboards",
+ },
+ {
+ text: "成就集修订",
+ link: "/zh/guidelines/content/achievement-set-revisions",
+ },
+ {
+ text: "添加额外哈希",
+ link: "/zh/guidelines/content/adding-hashes",
+ },
+ {
+ text: "玩家兼容性测试",
+ link: "/zh/guidelines/content/player-compatibility-testing",
+ },
+ {
+ text: "并行发布的游戏",
+ link: "/zh/guidelines/content/games-with-parallel-releases",
+ },
+ {
+ text: "ROM 改版的成就",
+ link: "/zh/guidelines/content/achievements-for-rom-hacks",
+ },
+ {
+ text: "子集",
+ link: "/zh/guidelines/content/subsets",
+ },
+ {
+ text: "使用正确的 ROM",
+ link: "/zh/guidelines/content/working-with-the-right-rom",
+ },
+ {
+ text: "哈希标签",
+ link: "/zh/guidelines/content/hash-labels",
+ },
+ ],
+ },
+ ];
+}
+
+function sidebarDeveloperDocs(): DefaultTheme.SidebarItem[] {
+ return [
+ {
+ text: "开发",
+ collapsed: false,
+ items: [
+ {
+ text: "索引",
+ link: "/zh/developer-docs/index",
+ },
+ {
+ text: "如何成为成就开发者",
+ link: "/zh/developer-docs/how-to-become-an-achievement-developer",
+ },
+ {
+ text: "成就开发者入门",
+ link: "/zh/developer-docs/getting-started-as-an-achievement-developer",
+ },
+ {
+ text: "初级开发者计划",
+ link: "/zh/developer-docs/jr-dev-rules",
+ },
+ {
+ text: "我准备好接受代码审查了吗?",
+ link: "/zh/developer-docs/am-i-ready-for-review",
+ },
+ {
+ text: "开发者模拟器设置",
+ link: "/zh/developer-docs/emulator-setup-for-developers",
+ },
+ {
+ text: "游戏识别",
+ link: "/zh/developer-docs/game-identification",
+ },
+ {
+ text: "成就设计",
+ link: "/zh/developer-docs/achievement-design",
+ },
+ {
+ text: "成就评分",
+ link: "/zh/developer-docs/achievement-scoring",
+ },
+ {
+ text: "难度等级与平衡",
+ link: "/zh/developer-docs/difficulty-scale-and-balance",
+ },
+ {
+ text: "进度与通关条件类型",
+ link: "/zh/guidelines/content/progression-and-win-condition-guidelines",
+ },
+ {
+ text: "徽章与图标创建",
+ link: "/zh/developer-docs/badge-and-icon-creation",
+ },
+ {
+ text: "成就开发概述",
+ link: "/zh/developer-docs/achievement-development-overview",
+ },
+ {
+ text: "逻辑功能最低所需版本",
+ link: "/zh/developer-docs/minimum-required-versions-for-logic-features",
+ },
+ {
+ text: "内存检查器",
+ link: "/zh/developer-docs/memory-inspector",
+ },
+ {
+ text: "真实示例",
+ link: "/zh/developer-docs/real-examples",
+ },
+ {
+ text: "成就模板",
+ link: "/zh/developer-docs/achievement-templates",
+ },
+ {
+ text: "存档与密码保护",
+ link: "/zh/developer-docs/save-and-password-protection",
+ },
+ {
+ text: "技巧与窍门",
+ link: "/zh/developer-docs/tips-and-tricks",
+ },
+ {
+ text: "排行榜",
+ link: "/zh/developer-docs/leaderboards",
+ },
+ {
+ text: "丰富状态",
+ link: "/zh/developer-docs/rich-presence",
+ },
+ {
+ text: "Rollouts",
+ link: "/zh/developer-docs/rollouts",
+ },
+ {
+ text: "DevQuests",
+ link: "/zh/developer-docs/devquests",
+ },
+ {
+ text: "DevJam",
+ link: "/zh/developer-docs/devjam",
+ },
+ {
+ text: "RATools",
+ link: "/zh/developer-docs/ratools",
+ },
+ {
+ text: "主机特定技巧",
+ link: "/zh/developer-docs/console-specific-tips",
+ },
+ {
+ text: "我真的需要使用 Delta 吗?",
+ link: "/zh/developer-docs/why-delta",
+ },
+ {
+ text: "开发者模拟器快捷键",
+ link: "/zh/developer-docs/emulator-hotkeys-for-developers",
+ },
+ {
+ text: "不支持的模拟器与核心",
+ link: "/zh/developer-docs/unsupported-emulators-and-cores",
+ },
+ {
+ text: "libretro 核心支持",
+ link: "/zh/developer-docs/libretro-core-support",
+ },
+ ],
+ },
+ {
+ text: "标志",
+ collapsed: false,
+ items: [
+ {
+ text: "ResetIf",
+ link: "/zh/developer-docs/flags/resetif",
+ },
+ {
+ text: "ResetNextIf",
+ link: "/zh/developer-docs/flags/resetnextif",
+ },
+ {
+ text: "PauseIf",
+ link: "/zh/developer-docs/flags/pauseif",
+ },
+ {
+ text: "AndNext 与 OrNext",
+ link: "/zh/developer-docs/flags/andnext-ornext",
+ },
+ {
+ text: "AddSource",
+ link: "/zh/developer-docs/flags/addsource",
+ },
+ {
+ text: "SubSource",
+ link: "/zh/developer-docs/flags/subsource",
+ },
+ {
+ text: "AddHits 与 SubHits",
+ link: "/zh/developer-docs/flags/addhits-subhits",
+ },
+ {
+ text: "AddAddress",
+ link: "/zh/developer-docs/flags/addaddress",
+ },
+ {
+ text: "Measured",
+ link: "/zh/developer-docs/flags/measured",
+ },
+ {
+ text: "Trigger",
+ link: "/zh/developer-docs/flags/trigger",
+ },
+ {
+ text: "Remember",
+ link: "/zh/developer-docs/flags/remember",
+ },
+ ],
+ },
+ {
+ text: "附加功能",
+ collapsed: false,
+ items: [
+ {
+ text: "BitCount 大小",
+ link: "/zh/developer-docs/bitcount-size",
+ },
+ {
+ text: "Alt Groups",
+ link: "/zh/developer-docs/alt-groups",
+ },
+ {
+ text: "命中计数",
+ link: "/zh/developer-docs/hit-counts",
+ },
+ {
+ text: "Delta 值",
+ link: "/zh/developer-docs/delta-values",
+ },
+ {
+ text: "Prior 值",
+ link: "/zh/developer-docs/prior-values",
+ },
+ {
+ text: "Recall",
+ link: "/zh/developer-docs/recall",
+ },
+ {
+ text: "值定义",
+ link: "/zh/developer-docs/value-definition",
+ },
+ {
+ text: "条件语法",
+ link: "/zh/developer-docs/condition-syntax",
+ },
+ ],
+ },
+ ];
+}
+
+export const search: DefaultTheme.AlgoliaSearchOptions["locales"] = {
+ zh: {
+ placeholder: "搜索文档",
+ translations: {
+ button: {
+ buttonText: "搜索",
+ buttonAriaLabel: "搜索",
+ },
+ modal: {
+ searchBox: {
+ resetButtonTitle: "清除搜索",
+ resetButtonAriaLabel: "清除搜索",
+ cancelButtonText: "取消",
+ cancelButtonAriaLabel: "取消",
+ },
+ startScreen: {
+ recentSearchesTitle: "搜索历史",
+ noRecentSearchesText: "无最近搜索",
+ saveRecentSearchButtonTitle: "保存到搜索历史",
+ removeRecentSearchButtonTitle: "从搜索历史中移除",
+ favoriteSearchesTitle: "收藏",
+ removeFavoriteSearchButtonTitle: "从收藏中移除",
+ },
+ errorScreen: {
+ titleText: "无法获取结果",
+ helpText: "请检查您的网络连接",
+ },
+ footer: {
+ selectText: "选择",
+ navigateText: "导航",
+ closeText: "关闭",
+ searchByText: "搜索由",
+ },
+ noResultsScreen: {
+ noResultsText: "未找到结果",
+ suggestedQueryText: "您可以尝试新的搜索",
+ reportMissingResultsText: "此搜索应该有结果吗?",
+ reportMissingResultsLinkText: "点击提交反馈",
+ },
+ },
+ },
+ },
+};
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 600a21b6..b0cdb3ef 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 | |
### WonderSwan (Color)
diff --git a/docs/general/index.md b/docs/general/index.md
index 3dfb2fa5..93c2036a 100644
--- a/docs/general/index.md
+++ b/docs/general/index.md
@@ -12,5 +12,6 @@ We encourage all community members to join our [Discord Server](https://discord.
Translations
+- [Chinese](/zh/general/index)
- [Portuguese](/pt/general/index)
- [Spanish](/es/general/index)
diff --git a/docs/zh/developer-docs/achievement-design.md b/docs/zh/developer-docs/achievement-design.md
new file mode 100644
index 00000000..ef797343
--- /dev/null
+++ b/docs/zh/developer-docs/achievement-design.md
@@ -0,0 +1,284 @@
+---
+title: 设计令人难忘的成就 - 综合指南
+description: 学习创建引人入胜且令人难忘的成就背后的概念原则,包括基于进度的、支线任务、可选、收集和挑战成就。
+---
+
+# 成就设计
+
+本指南介绍如何思考和设计优秀成就。侧重概念,而非技术层面。
+
+## 基于进度的成就
+
+基于进度的成就分为 3 类:简单进度、剧情进度和进度/收集成就。
+
+### 简单进度
+
+基于进度的成就通常是最简单的,尤其是当游戏只是线性关卡或剧情不多时。以下是一些好与坏的示例:
+
+- 好:通关第 1 关。
+- 差:到达第 2 关。
+
+要求玩家通关关卡而非仅仅到达下一关,编写成就逻辑会稍多些工作,但对玩家来说更令人满意,也更专业。同时**更不易出现玩家通过加载存档或即时存档批量刷成就的问题**。
+
+- 好:通关游戏。
+- 差:开始游戏。
+
+虽然基于进度的成就往往是“白送”的,但普遍认为“开始游戏”的成就过于简单,对玩家来说毫无记忆点,只是走形式。而游戏结局往往是玩家最难忘的部分,通关游戏本身就是成就。建议将此类成就设计为“打通最后一关并通关游戏”。
+
+- 好:通关冰雪主题关卡,或通关前五关,或通关前十关。
+- 差:通关第 1、2、3、4、5、6、7、8、9、10、11–200 关(各自单独成就)
+
+最糟糕的做法之一是成就泛滥。解谜游戏常出现这类问题,因为关卡短且往往有一百关以上。结果首页动态充斥着大量小更新,把其他人的成就刷下去。更专业的做法是将成就适当分散,按关卡组划分。例如,若第 1–10 关是火焰主题,第 11–20 关是太空主题,可以围绕这些主题设计成就。发挥创意。
+
+### 剧情进度
+
+游戏史上最令人难忘的时刻往往与物品收集或支线无关,而是与剧情中的特定场景相关。
+
+**示例:**
+
+- 《寂静岭》系列中首次遭遇三角头。
+- 《星球大战:旧共和国武士》中得知达斯·瑞文的真相。
+- 《时空之轮》中得知未来的走向。
+- 《蚯蚓吉姆》中发射奶牛。
+- 几乎任何角色死亡场景。
+
+此处需格外注意剧透。若发现基于进度的成就含有剧透,请务必联系开发者。开发者们,请虚心接受建设性批评!此外,这类成就的数量和占比因游戏而异,很大程度上取决于游戏的故事驱动程度。
+
+### 进度/收集
+
+进度/收集是常见的混合类型。不仅收集物品,还会进入令人难忘(且必经)的场景。
+
+**示例:**
+
+- 《塞尔达传说:众神的三角力量》中取得大师之剑,解除迷失森林的诅咒。
+- 《塞尔达传说:织梦岛》中在海滩找到剑,触发智者猫头鹰首次与你对话的场景。
+- 选择初始宝可梦,发生在开场场景中,但对大多数玩家来说是“成人礼”。
+
+这类混合成就往往更令人满意,因为它们承担双重任务。玩家不仅获得物品,还同时观看难忘场景并解锁成就,成就感十足。
+
+### 进度成就的优缺点
+
+进度成就在正常通关中必然获得。那为什么还要设置?
+
+#### 优点
+
+- 玩家通关游戏理应获得分数!很多玩家是第一次玩这些游戏,大多数游戏通关并不容易。为什么不奖励正常通关的玩家?
+
+- 定期的进度奖励能有效鼓励玩家通关游戏。
+
+- 有些玩家较休闲,只想在本站通关游戏。不是每个人都想在硬核模式下精通每款游戏。很多人在正常通关时顺手拿些成就就很满足,这没什么不好。
+
+- 有些场景如此难忘,值得单独设成就!从小玩这些游戏并热爱它们的玩家会在成就列表中寻找这些场景,看到被认可会感到温暖。
+
+- 进度成就帮助网站上的其他人了解玩家的游戏进度,有点像丰富状态。我们可以给玩家留言“加油!”,因为知道下一段比较难。这促进社区互动。
+
+- 顺序很重要!进度成就的顺序能告诉我们很多关于通关的信息。若你在完成所有支线后才解锁可选 Boss 成就并攒够一百万,远不如在游戏中期前就做到来得令人印象深刻。换言之,进度成就让我们可以炫耀!我们可以向世界展示在 10 级前击败最终 Boss,或首次就通关专家模式而非先打简单和普通。**甚至能揭示是否用漏洞或作弊跳过了某些部分**。因此,进度成就与其他成就类型有很好的协同效应。
+
+- 这类成就最容易编写,通常没有错误。
+
+#### 缺点
+
+- 过多进度成就会让游戏充斥“白送”成就,这是非常糟糕的。
+
+- 若整个游戏只有这类成就,对玩家来说只是又一次无聊的通关。到达第 2 关、第 3 关、第 4 关、通关游戏。这是添加其他类别成就的良好基础,但**尽量不要只保留进度成就**。否则你只是在奖励玩家重复做过无数次的动作。
+
+## 支线/可选成就
+
+复古游戏本身几乎没有动力去打通奖励模式,顶多是通关后雨天消遣。老游戏没有网络连接,除了双人模式外几乎没有社交,也许就是告诉同学你打通了某款游戏。但现在有了 RetroAchievements.org,我们可以展示复古奖杯(尽管需要重做多年前可能已经做过的事)。这些奖杯是荣誉徽章。你可以查看其他成员的挑战成就,了解他们走了多远、技术如何。随之而来的是其他成员的尊重。我们社交、互相祝贺。我们感到归属,与志同道合者为伍。
+
+### 支线任务
+
+玩家常有一些在游戏规则内可以做、但并非通关必需的事。换言之,原版开发者内置的挑战。通常有趣,有时不那么有趣,但值得奖励,因为需要努力和坚持才能完成。你需要在“认真玩家可能会做”和“目标是否愚蠢”之间把握平衡。人们会有不同看法,做好心理准备。
+
+这类成就往往是彩蛋或玩家一辈子都不知道存在的东西!许多玩家喜爱这类成就。我想是因为他们对自己从小玩的游戏有了新认识,或觉得自己是唯一知道某个秘密的人,看到这里支持会很兴奋。**我们开发者必须在创建成就集之前真正深入了解游戏。**
+
+**支线任务示例:**
+
+- 《最终幻想 IV》中将尾巴交给尾巴收集者。
+- 《地球冒险》中为微不足道的物品找到主人。
+- 《时空之轮》中在瓜迪亚城堡把肉干交给国王。
+- 《塞尔达传说:梅祖拉的假面》中的安珠支线。
+- 《质量效应》中了解莱克斯的过去。
+- 《闪回:身份 quest》中的外交官/VIP 护送任务。
+- 发现秘密房间。
+
+支线任务最常见于 RPG,但如今支线已渗透到几乎所有类型。留心观察——即使是不起眼的平台游戏也可能有一两个支线。例如《星之卡比》系列就有许多隐藏房间和区域。支线往往奖励物品,属于混合类型:支线/收集。
+
+### 可选成就
+
+**可选成就示例:**
+
+- 可选 Boss。
+- 通关挑战地牢(支线混合)。
+- 通关专家模式(进度混合)。
+- 通关秘密挑战关卡。
+- 从怪物身上获得极其稀有的掉落。
+- 用可选角色通关游戏。
+- 获得高分。
+- 完成仅在二周目解锁的内容。
+- 仅在多周目解锁的游戏模式。
+- 可选游戏结局。
+- 标题画面可输入的让游戏变难的代码。
+
+这是游戏制作者希望你喜欢他们的游戏,在通关后仍会回来。他们试图奖励通关的玩家,创造某种令人满意的可重玩性。若游戏制作者费心将这类内容做成游戏不可或缺的一部分,我们成就开发者应认可这些挑战,至少为其中一些创建合适的成就。
+
+《时空之轮》《时空之轮 2》和《星之海洋:第二故事》以此闻名。GBA 恶魔城系列也是如此。事实上很多游戏都这样。若不确定游戏是否有额外模式或挑战,务必做些研究、查阅 FAQ,或询问社区,我们中很多人是本站支持游戏的专家。
+
+### 支线/可选的优缺点
+
+支线/可选成就是进度成就的绝佳补充。
+
+#### 优点
+
+- 这是成就制作的核心。你的成就很可能大部分来自这一类别。所有游戏都有可选内容。收集关卡中所有金币!获得 9 条命!为这些内容创建成就很容易,也能奖励玩家的投入。
+
+- 游戏制作者喜欢懂得欣赏的玩家。他们喜欢玩家深入挖掘游戏、欣赏他们的心血,否则我们不会看到彩蛋、奖励场景等隐藏“趣味”内容。若游戏制作者奖励玩家这样做,我们为什么不?我们开发者也应认可玩家付出的额外努力。
+
+- 玩家喜欢告诉朋友在游戏中发现了不寻常、偏离常规的东西。有了本站,他们可以向朋友展示自己确实击杀了沼泽中罕见的“黄蛙”,或找到了通往“神秘维度”的传送点。若我们在成就列表中包含这些奇趣内容,就向玩家表明我们“懂行”,建立我们能胜任地引导他们通关的信心。
+
+- 支线/可选成就让玩家在通关后有追求目标。
+
+- 这类成就往往可随时获得,没有固定时间表。当意外弹出成就时,玩家会感到额外的满足感。
+
+- 这类成就通常容易编写,仅次于进度类成就。
+
+#### 缺点
+
+- 有些玩家不愿探索典型通关之外的内容,游戏中这类成就比例过高会让玩家觉得奖励不足。(当然,在以成就为中心的网站上,这类玩家比较少见。)
+
+- 有些人可能觉得某个挑战太难,即使这是原版开发者内置给玩家完成的。
+
+- 若你为“逃跑 999 场战斗”等创建支线/可选成就(或其他数值最大化成就),可能有人会觉得该成就没有挑战性,只是“刷”。除非有第二重意义,否则这类成就很可能被降级,例如《最终幻想 V》中逃跑战斗会强化“鸡刀”武器。这与游戏有协同效应,而非基于毫无用处的数值提升创建成就。
+
+## 基于收集的成就
+
+大多数收集类成就是可选的,除非物品本身是麦高芬,那样就属于进度/收集。
+
+**示例:**
+
+- 在 MD《阿拉丁》中发现背景中隐藏的米奇帽以获得 1-up。
+- 发现隐藏极好的物品。
+- 图鉴。
+- 解锁可选角色。
+- 金钱/击杀/数值最大化。
+- 在《波斯王子》或《暗影之门》等游戏中发现各种死法。
+- 打开游戏中每个宝箱/找到每个强化道具。
+- 所有物品/收集 99 或 255(等)个某物品。
+- 《宝可梦》中集齐全部(任何怪物收集类皆可)。
+
+若游戏记录某项数值,开发者几乎是在挑战你将其最大化。你可能喜欢这样做,也可能不喜欢。作为开发者,你需要自问其他玩家是否可能达成 9999 次吸血鬼蝙蝠击杀,即使你自己不会。优点是,通常不会这样做的人总有东西可以在想再玩时回来追求。缺点是,其他通常不会走那么远、也永远不会的玩家,但觉得自己必须快速精通每款游戏(稀有类型),会抱怨。若抱怨够多,你可能想把 9999 降到更合理的数字,如 500。若没人觉得成就有趣,就违背了玩游戏或做成就的初衷。
+
+你需要运用判断力,考虑玩家最享受什么。经验之谈,有几项支线/可选成就总比没有好。稍加努力,这些成就就能让你的列表令人难忘。
+
+接下来,当开发者挑战玩家超越游戏规则时,我们开发者要撸起袖子,真正发挥创意。
+
+## 趣味成就
+
+这类成就通常只值几分,但仍然有趣。
+
+**趣味示例:**
+
+- 《北欧女神传》中让时钟走到 99:59。
+- 互动背景,如在《恶魔城:血族》第 1 关中戳悬挂的尸体。
+- 《疯狂豪宅》中在微波炉里烤仓鼠。
+- 《塞尔达传说:梅祖拉的假面》中观看末日。
+- 《毁灭战士 2》中找到约翰·罗梅罗。
+
+有时游戏制作者会加入有趣的彩蛋。他们费心用“假设”娱乐玩家。我们开发者的职责是尽可能认可和支持这些内容。
+
+## 挑战
+
+关于复古玩家和他们玩的游戏,有一点要记住:我们大多数人已经玩过这些游戏无数次。对大多数人来说这是老套路,我们常需要动力才能再来一次。有些人可以一命通关《魂斗罗》。现在正是证明的机会!
+
+想想看:在本站之前,证明你能无伤通关《魂斗罗》的方法大概只有请朋友来、让他坐下、给他看,或者研究录屏软件做 YouTube 视频。但即使那样,很多视频也是伪造的无伤通关。而本站有硬核模式,有助于表明没人作弊。
+
+你可以有进度成就和支线/可选成就,但若要创建真正出色的成就列表,至少需要一些挑战成就。回想一下你在本站玩过的所有游戏。最令人难忘的成就有哪些?我几乎可以保证是挑战成就。当然有例外,但典型玩家不会深情地回忆“通关第 2–6 关”或“达到 30 级”。他们更可能深情地记住 让通关成为独特体验的成就,例如……
+
+- 全程不捡强化道具或金币通关
+- 无伤击败 Boss
+- 一命通关某关
+
+这正是本站如此特别的原因,也是成就超越“通关游戏”的意义所在。
+
+即使最反对成就的批评者也可能说:“嗯,除了这个。这个还行。”我保证他们说的那个例子是挑战成就,是超越游戏本身挑战玩家的内容。
+
+优秀的成就开发者会在开发游戏时保持敏锐,寻找出色、不寻常的挑战。他们可能注意到游戏中某个难以完成的壮举。
+
+### 速通挑战
+
+计时器带来玩家在玩喜爱的游戏时可能从未感受过的压力。没有什么比滴答作响的时钟更让人心跳加速。加入计时元素,原本闭眼都能通关的游戏可能突然变成人生终极游戏挑战。
+
+**速通挑战示例:**
+
+- 一小时内通关游戏。
+- 三分钟内通关某关。
+- 在计时器结束前几秒完成。
+- 在逃脱序列中击杀 30 只吸血鬼蝙蝠。
+- 在奖励画面消失前收集 99 枚奖励金币。
+- 在白天变为夜晚前从 A 点到 B 点。
+- 排行榜 - 以最快时间通关游戏。
+- 排行榜 - 以最快时间通关某关。
+
+开发者可以上 YouTube 或 Twitch 看看人们通关有多快(请忽略 TAS——“工具辅助速通”)。有些职业速通玩家非常快,本站典型玩家可能无法达到他们发布的时间,但你应该能找到折中。若无法确定合适的时间挑战本站玩家,那就是排行榜的用途——变成竞赛!事实上,你喜爱的知名速通玩家可能会来本站提交一两次成绩。
+
+当手心出汗、紧张地瞥向计时器时,你就知道面对的是压力成就。如前所述,没有什么比计时器更能让人“清醒”,尤其是当开发者在游戏的计时部分将这类成就与其他成就(甚至排行榜)结合时。计时挑战与其他成就类型有极强的协同效应。
+
+### 限制挑战
+
+**限制挑战示例:**
+
+- 用特定职业的全部角色通关战斗甚至整个游戏。(著名例子是用一群白魔导士通关原版《最终幻想》。)
+- 不穿装备击败最终 Boss。
+- 全程不跳跃通关某关。
+- 仅用两步解谜。
+- 一击必杀。
+- 低等级通关(LLG)。
+- 无伤成就。
+- 挑战中从不按某些按键。
+- 在《马里奥 3》某关中通过找到足够的星星保持无敌。
+- 不使用某招式击败某敌人。
+- 《塞尔达传说》中无剑到达加农。
+- 仅用某招式击败某敌人。
+- 醉酒/混乱状态下跌跌撞撞穿过迷宫。
+- 带异常状态通关游戏。
+
+围绕特定游戏的社区网站是这类成就的绝佳资源。他们对可能和不可能有很好的了解,可能写过讨论另类、挑战性通关方式的 FAQ。
+
+但很多时候没有社区。没有 FAQ。没有留言板。甚至没有有用的视频。这种情况下,你需要成为创意者,想出新颖有趣的方式挑战玩家。注意,这类成就需要大量练习、时间和经验才能创建。
+
+这里的要点是**发挥创意**!并记住保持**趣味**!
+
+### 分数挑战
+
+**分数挑战示例:**
+
+- 以最低分通关游戏或关卡。
+- 小游戏中获得满分(不仅是超越 CPU 排行榜)。
+- 排行榜 - 以最高分/最多金钱/最佳击杀数等通关游戏。
+- 排行榜 - 以最高分/最多金钱/最佳击杀数等通关某关。
+
+### 挑战的优缺点
+
+挑战成就是你向玩家展示如何以不同、独特甚至匪夷所思的方式玩喜爱游戏的机会。虽然这些成就能为否则枯燥的成就集注入活力,但你通常只希望在最终列表中保留少量。
+
+#### 优点
+
+- 硬核玩家喜欢啃这类成就。
+
+- 若有些玩家太硬核,可以通过实现排行榜找到折中,同时满足休闲成就猎人和硬核玩家。
+
+- 这是你发挥创意、为玩家创造意想不到的新挑战的机会。这可以是惊喜,真正让你的列表令人难忘。
+
+#### 缺点
+
+- 这类成就需要相当的创意才能构思,尽管通过观看速通等可以研究游戏的另类玩法。
+
+- 可能需要深入研究。
+
+- 这类成就众所周知地难以编写。需要大量代码注释、大量游戏机制观察,通常需要调试才能工作。事实上,在你有几款带基础成就集的游戏经验之前,可能还没准备好应对这类成就。幸运的是,挑战成就可以随时添加。
+
+## 外部资源
+
+- [成就创建最佳实践指南](http://www.voidcn.com/article/p-gmokauqn-bgh.html),Jeff Sullivan(XNA 开发者连接 XDC 开发者账户经理)关于 Xbox 360 成就的撰文。
+- [让他们为之努力](https://gamedevelopment.tutsplus.com/articles/make-them-work-for-it-designing-achievements-for-your-games--gamedev-3371),Darran Jamieson 于 2013 年 1 月 1 日撰写的成就设计指南。
+- [成就机器:理解 Xbox 360 成就中的游戏实践](http://gamestudies.org/1101/articles/jakobsson) - Mikael Jakobsson
diff --git a/docs/zh/developer-docs/achievement-development-overview.md b/docs/zh/developer-docs/achievement-development-overview.md
new file mode 100644
index 00000000..3add22f1
--- /dev/null
+++ b/docs/zh/developer-docs/achievement-development-overview.md
@@ -0,0 +1,159 @@
+---
+title: 成就开发综合指南
+description: 深入了解成就创作的方方面面,本详细指南涵盖基本概念、编辑器工具、保护方法、逻辑技巧、鲜为人知的功能等。
+---
+
+# 成就开发概述
+
+## 简介
+
+本页面仍在大力开发中,目标是深入探讨成就创作。可能会将「实际示例」合并到本节。每个标志、类型、大小、比较等都将有独立页面展示其各种用法。还将包含若干技巧、案例研究等。
+
+## 基础
+
+- 向数据库添加游戏
+ - 关于哈希的一切(你想知道但不敢问的)
+ - 补丁指南
+- RAM 挖掘
+ - 利用 Game Genie、Game Shark、Codebreaker、Action Replay 等金手指码
+- 代码注释
+ - 格式规范
+
+## 成就编辑器
+
+开发者可使用多种工具和选项。正确使用它们将提升成就集的质量。这些工具/选项可在成就编辑器中使用:
+
+
+
+### 标志
+
+- [`PauseIf` 标志](/zh/developer-docs/flags/pauseif)
+
+ - [带命中次数的 `PauseIf`](/zh/developer-docs/flags/pauseif#pauseif-with-hit-counts)
+
+- [`ResetIf` 标志](/zh/developer-docs/flags/resetif)
+
+ - [带命中次数的 `ResetIf`](/zh/developer-docs/flags/resetif#resetif-with-hit-counts)
+
+- [`ResetNextIf` 标志](/zh/developer-docs/flags/resetnextif)
+
+- [`AddSource` 标志](/zh/developer-docs/flags/addsource)
+
+- [`SubSource` 标志](/zh/developer-docs/flags/subsource)
+
+ - [检查负结果](/zh/developer-docs/flags/subsource#checking-for-a-negative-result)
+
+- [`AddHits` 和 `SubHits` 标志](/zh/developer-docs/flags/addhits-subhits)
+
+- [`AddAddress` 标志](/zh/developer-docs/flags/addaddress)
+
+- [`AndNext` 和 `OrNext` 标志](/zh/developer-docs/flags/andnext-ornext)
+
+- [`Measured` 和 `MeasuredIf` 标志](/zh/developer-docs/flags/measured)
+
+- [`Trigger` 标志](/zh/developer-docs/flags/trigger)
+
+### 类型
+
+- Mem
+- Value
+- Delta
+ - `Mem > Delta` 比较
+- Prior
+- BCD
+- Float
+
+### 大小
+
+- bit0 - bit7
+- 8-Bit
+- 16-Bit
+- 24-Bit
+- 32-Bit
+- Lower4 和 Upper4
+- 16-Bit BE
+- 24-Bit BE
+- 32-Bit BE
+- BitCount
+- Float
+- MBF32
+
+### 通用比较
+
+- `=`
+- `<`
+- `<=`
+- `>`
+- `>=`
+- `!=`
+
+### 标志专用比较
+
+- `*`
+- `/`
+- `&`
+
+### 其他工具包功能
+
+- 命中次数
+ - 与 `ResetIf` 配合使用
+ - 与 `PauseIf` 配合使用
+- Alt Groups(备选组)
+
+## 保护
+
+- 演示保护
+ - 查找和测试演示地址
+- 存档保护
+ - Delta 和 Prior
+ - 使用游戏内计时器
+ - 使用事件标志
+- 密码保护
+- 作弊保护
+- 多人游戏保护
+- 其他
+ - Dipswitch
+ - BIOS(PlayStation 和 Saturn)
+
+## 逻辑技巧
+
+- 检查点命中
+- 暂停锁定
+- 使用命中次数作为计时器
+- 使用 Delta 值和命中次数检测增量
+- 规避同一帧内计数器递增两次的问题
+ - `注意:需补充工具包在 BCD 值下仍使用十六进制的内容`
+- 各类链式条件
+- 何时使用 `ResetIf` 或 `PauseIf`
+- 何时使用 Delta 或 Prior
+- 使用 BitCount 统计收集物
+- 在 `Mem / Mem` 比较中使用 `AddSource`
+- 根据游戏速度用 `ResetIf` 命中创建计时器
+- 使用 `bit0` 包含或排除奇数值
+
+## 鲜为人知的功能
+
+- 在 8 位视图中双击位标志
+- 在编辑器中右键点击地址可跳转到内存查看器(也支持通过偏移跳转到当前地址)
+- 选中多个条件并按住 CTRL 点击可同时修改多个条件中的同一字段
+
+## 工作流技巧
+
+- 使用 Google Sheets 和 Notepad++
+- 编辑本地文件
+
+## 应避免的做法及原因
+
+- 冗余的 `ResetIf`
+- 单条件成就
+- 基于文本的地址
+
+## 另见
+
+- 分数分配
+- 徽章创作
+- Rich Presence
+- 排行榜
+- RATools
+- 制作教程视频
+- 语法表
diff --git a/docs/zh/developer-docs/achievement-scoring.md b/docs/zh/developer-docs/achievement-scoring.md
new file mode 100644
index 00000000..bd32e8e3
--- /dev/null
+++ b/docs/zh/developer-docs/achievement-scoring.md
@@ -0,0 +1,52 @@
+---
+title: 成就评分指南
+description: 学习如何有效为成就评分,考虑难度、游戏时长和成就分布等因素。了解分数等级以及重新评分和例外的指南。
+---
+
+# 成就评分
+
+## 评分
+
+没有固定的分数上限。为成就评分时,请将分数匹配到以下 5 个等级之一。
+
+| 分数等级 | 难度 | 重要性(重要程度) |
+| :------: | :------: | :----------------------------------------: |
+| 0-5 | 简单 | 次要
- _收集强化道具_
- _通关某一关_ |
+| 10 | 中等 | 中级
- _击败 Boss_ |
+| 25 | 困难 | 主要
- _通关游戏_ |
+| 50 | 非常困难 | 完成级别 |
+| 100 | "不可能" | 通常用于奖励子集 |
+
+您还应考虑其他[因素](#factors-to-consider-while-scoring-achievements),例如成就分布和游戏时长。
+
+不同子集之间的评分永远不会完全一致,但此评分系统使获得的分数更贴近技能和努力程度。
+
+## 为成就评分时需考虑的因素
+
+### 难度
+
+针对整个子集考虑:
+
+- 有多少比例的玩家获得了该成就?
+- 这些成就对您来说有多难?
+- 当前分数与其他成就相比如何?
+- 学习完成成就、游戏和整个子集所需技能需要多少时间、精力和练习?
+
+### 成就分布
+
+假设您有两个相同难度的同一子集版本:
+
+- 如果子集中有许多相似的成就,每个成就的分数应较低。
+- 如果成就较少,分数应较高。
+
+### 游戏时长
+
+- 对于长游戏,成就的分数应略高于短游戏。
+- RPG 通常比其他类型长得多。游戏时长应是评分的考量因素,但重要性低于其他三项。
+- [示例](https://retroachievements.org/viewtopic.php?t=9050&c=47755)。
+
+## 重新评分
+
+截至 2019 年 6 月,RetroAchievements 每个子集有 400 分上限,对单个成就没有限制。取消子集上限是为了减少对子集总分的关注,更多地关注成就本身。此举也是为了消除“400 分的子集是‘完整’子集”的误解。
+
+与修订和 aesthetic 变更一样,重新评分通常需要社区批准。您可以在[此处](/zh/guidelines/content/achievement-set-revisions)找到有关重新评分的更多信息。
diff --git a/docs/zh/developer-docs/achievement-templates.md b/docs/zh/developer-docs/achievement-templates.md
new file mode 100644
index 00000000..4a69c3bb
--- /dev/null
+++ b/docs/zh/developer-docs/achievement-templates.md
@@ -0,0 +1,301 @@
+---
+title: 各类场景的成就模板
+description: 探索用于创建成就的模板集合,包括收集物品、完成关卡、条件重置等示例。学习如何针对不同游戏调整这些模板。
+---
+
+# 成就模板
+
+## **警告:每款游戏都不同!**
+
+此处展示一些典型成就的示例。你可以用它们作为灵感来创建自己的成就。但请牢记:
+
+**每款游戏都不同!内存在不同游戏中的行为各不相同。**
+
+因此**切勿**将这些模板当作规则。它们仅供教育用途。
+
+在这些示例中,我们使用以下约定:**0xLEVEL** 为关卡 ID 的内存地址;**0xLIFE** 为角色生命值的地址;**0xTIME** 为时间,**0xITEM** 为获取物品,等等。
+
+- [收集物品 N 次](#收集物品-n-次)
+- [完成关卡 N](#完成关卡-n)
+- [在时间达到 T 之前完成关卡 N](#在时间达到-t-之前完成关卡-n)
+- [无游戏内计时器时在时间 T 内完成关卡 N](#无游戏内计时器时在时间-t-内完成关卡-n)
+- [不死亡完成关卡 N(或不受击、不使用武器等)](#不死亡完成关卡-n)
+- [携带物品完成关卡 N](#携带物品完成关卡-n)
+- [在特定关卡收集物品](#在特定关卡收集物品)
+- [收集某物的 100%](#收集某物的-100)
+- [规避同一帧内计数器递增两次的问题](#规避同一帧内计数器递增两次的问题)
+- [检测特定值变为另一特定值十次](#检测特定值变为另一特定值十次)
+- [条件重置](#条件重置)
+- [「暂停直到:」使用 `PauseIf` 在满足某条件前阻止成就处理](#暂停直到使用-pauseif-在满足某条件前阻止成就处理)
+
+## 收集物品 N 次
+
+有些情况下,你希望玩家收集物品(如金币或戒指)N 次时授予成就。你需要在内存中找到负责统计该物品数量的地址。找到地址后,以下逻辑通常即可实现:
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val | Hits |
+| --- | ---- | ---- | ------- | --- | ----- | ------- | ---- |
+| 1 | | Mem | 0xCOUNT | > | Delta | 0xCOUNT | (N) |
+
+但你可能希望更具体,例如「不死亡收集物品 N 次」。此时应使用带 `ResetIf` 的另一条件,如下:
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val | Hits |
+| --- | ------- | ---- | ------- | --- | ----- | ------- | ---- |
+| 1 | | Mem | 0xCOUNT | > | Delta | 0xCOUNT | (N) |
+| 2 | ResetIf | Mem | 0xLIVES | < | Delta | 0xLIVES |
+
+`ResetIf` 条件可以是「在关卡 X 中」、「不使用炸弹」等。
+
+## 完成关卡 N
+
+本示例中,我们希望在玩家完成关卡 `N` 并进入关卡 `N+1` 时授予成就。
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val | Hits |
+| --- | ---- | ----- | ------- | --- | ----- | ------- | ---- |
+| 1 | | Delta | 0xLEVEL | = | Value | N | (0) |
+| 2 | | Mem | 0xLEVEL | = | Value | N+1 | (0) |
+
+**要求**
+
+- 1:上一帧在关卡 `N`。
+- 2:当前帧在关卡 `N+1`。
+
+该逻辑仅在关卡从 `N` 推进到 `N+1` 的那一帧为真,因此不会被关卡选择作弊或加载到关卡 `N+1` 的密码触发。为实现稳健的成就逻辑,你还需要其他条件,例如检查玩家在游戏中或没有演示在运行。
+
+## 在时间达到 T 之前完成关卡 N
+
+本示例考虑时间递减的游戏(如:超级马里奥兄弟)。请根据你游戏中时间的不同行为进行相应调整。
+
+我们希望玩家在时间大于 `T` 时完成关卡 `N` 则授予成就。
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val | Hits |
+| --- | --------- | ----- | ------- | --- | ----- | ------- | ---- |
+| 1 | | Delta | 0xLEVEL | = | Value | N |
+| 2 | `Trigger` | Mem | 0xLEVEL | = | Value | N+1 |
+| 3 | | Mem | 0xTIME | > | Value | T |
+
+**要求**
+
+- 1-2:与[完成关卡 N](#完成关卡-n)模板中的条件 1-2 功能相同,但在最后一行使用 `Trigger`,以便挑战激活时向玩家显示挑战图标。
+- 3:确保 `TIME` 地址的值大于失败时间。当时间等于或低于该值时,未带 Trigger 标志的条件变为假,挑战图标将消失,向用户表示失败。
+
+**注意**
+
+- 除了了解时间在游戏中的行为外,还需研究其在内存中的行为。
+
+## 无游戏内计时器时在时间 T 内完成关卡 N
+
+本示例考虑没有可用于速通的游戏内计时器的游戏。
+
+我们希望玩家在关卡内经过的帧数等于时间 `T` 之前完成关卡 `N` 时授予成就。
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val | Hits |
+| --- | --------- | ----- | ------- | --- | ----- | ------- | -------------- |
+| 1 | | Delta | 0xLEVEL | = | Value | N |
+| 2 | `Trigger` | Mem | 0xLEVEL | = | Value | N+1 |
+| 3 | `PauseIf` | Mem | 0xLEVEL | = | Value | N | (T\*FRAMERATE) |
+
+**要求**
+
+- 1-2:与[完成关卡 N](#完成关卡-n)模板中的条件 1-2 功能相同,但在最后一行使用 `Trigger`,以便挑战激活时向玩家显示挑战图标。
+- 3:命中目标 `T*FRAMERATE` 应设为等于挑战失败时的帧数。对于 60 帧/秒的系统,`T*FRAMERATE = 秒数 x 60`。当玩家在关卡内停留该帧数时,`PauseIf` 将变为真并锁定核心组的成就处理,直到发生重置(见下方注意)。
+
+**注意**
+
+- 玩家应能重试该挑战。你需要在适当时机(如死亡)添加重置以清除暂停锁定。可以在备选组中使用 `ResetIf`(活跃的 `PauseIf` 会阻止核心组中的重置生效),或在 `PauseIf` 前附加 `ResetNextIf`。
+- 你可能需要在 `PauseIf` 上添加其他条件。可使用 `AndNext` 标志链接更多条件。若游戏有表示玩家控制角色的标志,这可能是好选择。多尝试!
+
+## 不死亡完成关卡 N
+
+(或不受击、不使用武器等)
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val | Hits |
+| --- | --------- | ----- | ----------- | --- | ----- | ----------- | ---- |
+| 1 | `AndNext` | Mem | 0xLEVEL | = | Value | N |
+| 2 | | Mem | 0xLVL_STATE | = | Value | LVL_N_INTRO | (1) |
+| 3 | | Delta | 0xLEVEL | = | Value | N |
+| 4 | `Trigger` | Mem | 0xLEVEL | = | Value | N+1 |
+| 5 | `ResetIf` | Mem | 0xLEVEL | = | Value | TITLE |
+| 6 | `AndNext` | Mem | 0xLEVEL | = | Value | N |
+| 7 | `ResetIf` | Mem | 0xLIVES | < | Delta | 0xLIVES |
+
+**要求**
+
+- 1-2:假设存在 `LEVEL_STATE` 地址,其值如「关卡介绍画面」、「游戏中」等,并在你处于正确关卡介绍时设置检查点命中。这是你希望挑战开始的「检查点」的占位。你需要确定合适的条件和时机,并设置自己的起始检查点。
+- 3-4:与[完成关卡 N](#完成关卡-n)模板中的条件 1-2 功能相同,但在最后一行使用 Trigger,以便挑战激活时向玩家显示挑战图标。
+- 5:若玩家游戏结束或能提前返回标题画面,则重置起始检查点。防止检查点命中在不该存在时残留。
+- 6-7:当 `LEVEL` 地址为关卡 `N` 且 `LIVES` 地址小于上一帧时(表示玩家失去一条命)的重置。清除起始检查点命中,从而失败挑战。
+
+**注意**
+
+- 6-7 中的要求也可修改为:若使用武器、受到伤害或任何你希望玩家**不要**做的事,则重置命中次数。
+- 1-2 中的要求可能因游戏而异。
+
+## 携带物品完成关卡 N
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val | Hits |
+| --- | --------- | ----- | ------- | --- | ----- | ------- | ---- |
+| 1 | | Delta | 0xLEVEL | = | Value | N | (0) |
+| 2 | `Trigger` | Mem | 0xLEVEL | = | Value | N+1 | (0) |
+| 3 | | Mem | 0xITEM | = | Value | TRUE | (0) |
+
+**要求**
+
+- 1-2:与[完成关卡 N](#完成关卡-n)模板中的条件 1-2 功能相同,但在最后一行使用 `Trigger`,以便挑战激活时向玩家显示挑战图标。
+- 3:玩家拥有正确物品时为真的值。此处缺少 `Trigger` 标志使图标在玩家拥有物品时显示,在玩家没有时消失。
+
+## 在特定关卡收集物品
+
+此模板用于物品的电池存档或密码保护。避免玩家通过加载已有该物品的密码或存档来获得「获取物品 X」成就。它检查物品是否在应收集的关卡/房间 ID 中收集,并仅允许在此时获得。
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val | Hits |
+| --- | ---- | ----- | ------- | --- | ----- | ------------- | ---- |
+| 1 | | Mem | 0xLEVEL | = | Value | COLLECT_LEVEL | (0) |
+| 2 | | Mem | 0xLEVEL | = | Delta | 0xLEVEL | (0) |
+| 3 | | Delta | 0xITEM | = | Value | FALSE | (0) |
+| 4 | | Mem | 0xITEM | = | Value | TRUE | (0) |
+
+**要求**
+
+- 1-2:在物品状态变化的帧期间,必须在正确关卡(`COLLECT_LEVEL`)中至少两帧,防止以下条件在加载时触发逻辑。
+- 3:上一帧没有该物品
+- 4:当前帧拥有该物品。
+
+**注意**
+
+- 要求 1 和 2 together 意味着你必须在关卡中至少两帧。加载数据(来自密码或存档)的帧将被视为假,因此此时物品状态的任何变化都不会触发。
+- 不一定是关卡/房间 ID。还有其他方法,例如仅在收集时出现的唯一 Mem/Val。等等。
+
+## 收集某物的 100%
+
+这是玩家收集某物 100% 时的有限电池存档/密码保护,如超级马里奥世界中通关每个关卡,或超级银河战士中达到 100% 收集率。这是必要的,以免玩家直接加载 100% 存档免费获得成就。(通常也有其他方法解决此问题。)
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val | Hits |
+| --- | ---- | ----- | ----------------- | --- | ----- | -------------------------- | ---- |
+| 1 | | Delta | 0xCollectPercent | < | Value | 100% value |
+| 2 | | Mem | 0xCollectPercent | = | Value | 100% value |
+| 3 | | Mem | 0xGuardConditions | = | Value | When to Check for Increase |
+
+正确设置要求 3+ 的条件尤其重要。你需要找到代表游戏中该百分比增加的唯一时刻的地址。你不希望成就 in 玩家加载游戏内存档时触发,这意味着该成就在该时刻必须求值为 `False`。
+
+**示例**
+
+- 检查游戏内状态并寻找其连续多帧激活,类似于[在特定关卡收集物品](#在特定关卡收集物品)中的关卡检查:
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val | Hits |
+| --- | ---- | ---- | ------------ | --- | ----- | ------------ | ---- |
+| 3 | | Mem | 0xGAME_STATE | = | Value | IN_GAME | (0) |
+| 4 | | Mem | 0xGAME_STATE | = | Delta | 0xGAME_STATE | (0) |
+
+- 在超级马里奥世界中,该变化发生在玩家完成关卡后看到世界地图时。因此你应以区分加载存档的方式构建此时机的条件。此处玩家状态为:
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val | Hits |
+| --- | ---- | ---- | ------------- | --- | ----- | ------------------------------ | ---- |
+| 3 | | Mem | 0xPlayerState | = | Value | Returned to map from completed |
+
+## 规避同一帧内计数器递增两次的问题
+
+在[收集物品 N 次](#收集物品-n-次)中,我们统计计数器增加的次数。但在某些游戏中,同一帧内计数器可能增加两次,而命中计数器只增加一次。这种行为显然会破坏我们的逻辑。我们将看到一种规避此问题的方法。
+
+此处使用的技术依赖另外两种:
+
+- [使用 `SubSource` 统计特定增量](/zh/developer-docs/flags/subsource#using-subsource-to-count-increments)
+- [`AddHits` 标志](/zh/developer-docs/flags/addhits-subhits)
+
+技巧如下:
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val | Hits |
+| --- | ----------- | ----- | ------- | --- | ----- | ------- | ---- |
+| 1 | `SubSource` | Delta | 0xCOUNT | | | |
+| 2 | `AddHits` | Mem | 0xCOUNT | = | Value | 0x02 |
+| 3 | | Mem | 0xCOUNT | > | Delta | 0xCOUNT | (N) |
+| 4 | `ResetIf` | Mem | 0xLIVES | < | Delta | 0xLIVES |
+
+乍看可能有些困惑,但用实际示例可能更清晰。参见[规避同一帧内计数器递增两次的问题](/zh/developer-docs/real-examples/circumvent-the-problem-of-a-counter-incrementing-twice-in-the-same-frame)。
+
+## 检测特定值变为另一特定值十次
+
+本示例中,我们希望检测值从 `V1` 变为 `V2` 十次:
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val | Hits |
+| --- | --------- | ----- | --------- | --- | ----- | ------- | ---- |
+| 1 | `AndNext` | Delta | 0xADDRESS | = | Value | 0xV1 |
+| 2 | | Mem | 0xADDRESS | = | Value | 0xV2 | (10) |
+
+**要求**
+
+- 1:若 `0xADDRESS` 上一帧的值为 `0xV1`
+- 2:且若 `0xADDRESS` 当前值为 `0xV2`,则增加命中次数(最多 10 次)。
+
+## 条件重置
+
+条件重置可用于多种场景。
+
+假设你希望玩家进入关卡的某个 X 和 Y 区域时触发重置:
+
+**CORE(核心)**
+
+- 核心是你成就为真所需的任意条件。也可包含常规重置行为。
+
+**ALT1**
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val |
+| --- | --------- | ---- | ---------- | --- | ----- | ------------ |
+| 1 | `ResetIf` | Mem | 0xLEVEL | = | Value | LEVELID |
+| 2 | `PauseIf` | Mem | 0xX-COORDS | > | Value | RESET-X-ZONE |
+| 3 | `PauseIf` | Mem | 0xX-COORDS | < | Value | RESET-X-ZONE |
+| 4 | `PauseIf` | Mem | 0xY-COORDS | > | Value | RESET-Y-ZONE |
+| 5 | `PauseIf` | Mem | 0xY-COORDS | < | Value | RESET-Y-ZONE |
+
+- 仅当所有 `PauseIf` 条件都不为真时才会发生重置。
+- 暂停仅作用于该备选组,但重置会重置整个成就。
+
+**ALT2**
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val |
+| --- | ---- | ---- | ------ | --- | ---- | ------- |
+| 1 | | Mem | 0x1 | = | Mem | 0x1 |
+
+- 任意为真的条件。(为满足备选组行为,需要有一个恒为真的备选组)
+
+**注意**
+
+- 可使用多个条件重置,每个在各自的备选组中,以更好地控制重置行为。
+
+## 暂停直到:使用 `PauseIf` 在满足某条件前阻止成就处理
+
+有时很难确定何时处理命中次数或其他命中相关事件的持续时机。或者,有许多条件可能看起来有效但实际无效。这种情况可能导致复杂的逻辑以防范无效命中次数。一种缓解方法是 `Pause Until`(暂停直到):
+
+### 「暂停直到」的基本结构
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val | Hits |
+| --- | ------------- | ----- | ------- | --- | ----- | ------- | ----- |
+| 1 | `AndNext` | Delta | 0xSTATE | = | Value | VALUE_A | 0 (0) |
+| 2 | `ResetNextIf` | Mem | 0xSTATE | = | Value | VALUE_B | 1 (0) |
+| 3 | `PauseIf` | Value | 1 | = | Value | 1 | 0 (0) |
+
+**条件说明**:
+
+- 1-2:从 `VALUE_A` 到 `VALUE_B` 的转换可能明确标记「游戏/关卡/序列开始」。然而,`VALUE_B` 可能无法明确标识你关心的挑战的「游戏中/关卡中/序列中」。此处的 `ResetNextIf` 将在此转换时锁存为真,并抑制下一条件中「恒为真」的 `PauseIf`,允许处理其余逻辑。此处的单次命中目标对此功能很重要。
+- 3:此 `PauseIf` 条件将恒为真。除非其前的 `ResetNextIf` 锁存为「真」并收到朝向其 1 次命中目标的命中!这就是「暂停直到」结构:组在 `ResetNextIf` 发生前处于暂停状态。
+
+### 成就逻辑示例
+
+假设我们的实际目标是「在 X 单位时间内完成游戏/关卡/序列且不失去生命」。
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val | Hits |
+| --- | --------- | ----- | --------------- | --- | ----- | ------- | ----- |
+| 4 | | Delta | 0xCOMPLETE_FLAG | = | Value | 0 | 0 (0) |
+| 5 | `Trigger` | Mem | 0xCOMPLETE_FLAG | = | Value | 1 | 0 (0) |
+
+在此处代替条件 4 和 5,你可使用能明确标识你所构建挑战完成的任意逻辑。这只是标识挑战完成的一组条件的示例。
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val | Hits |
+| --- | --------- | ----- | -------- | --- | ----- | -------- | ------------------------------ |
+| 6 | `ResetIf` | Mem | 0xHEALTH | < | Delta | 0xHEALTH | 0 (0) |
+| 7 | `ResetIf` | Value | 0 | = | Value | 0x0 | NUM_FRAMES_EQUAL_TO_TIME_X (0) |
+
+此处,任一 `ResetIf` 语句都会从 `ResetNextIf` 移除命中,导致成就进入暂停状态,阻止计时命中累积,直到游戏/关卡/序列开始转换再次发生。由于组在挑战开始前处于暂停状态,计时器重置永远不会在挑战外错误累积命中。
+
+### 需牢记
+
+很少需要此结构。通常开发者应能找到一些条件与计时器或其他计数器结合(使用 `AndNext` 标志等),以将其限制在特定窗口内,以及清除计数器命中为零所需的其他失败情况的重置。
diff --git a/docs/zh/developer-docs/alt-groups.md b/docs/zh/developer-docs/alt-groups.md
new file mode 100644
index 00000000..89a6d0eb
--- /dev/null
+++ b/docs/zh/developer-docs/alt-groups.md
@@ -0,0 +1,50 @@
+---
+title: 利用备选组实现成就要求
+description: 学习如何使用备选组创建解锁成就的替代要求,包括示例、要点和条件重置的高级技巧。
+---
+
+# 备选组(Alt Groups)
+
+成就可添加允许替代要求解锁成就的组,称为*备选组*。
+
+使用*备选组*时,成就触发需满足:*核心组*中的所有条件**必须**为真,且**任一***备选组*中的所有条件必须为真。换言之,每个*备选组*使用 `OR` 逻辑。
+
+## 示例
+
+在此 Contra(NES)的示例中,成就要求为「在关卡中向上看或蹲下」。我们来看*核心组*和*备选组*中的内容:
+
+
+核心组中:`0x18 = 5`。这检查玩家在关卡中。
+
+
+在 `Alt 01` 中:`0xbc = 1`。这检查玩家向上看。
+
+
+在 `Alt 02` 中:`0xbc = 2`。这检查玩家蹲下。
+
+只要玩家在关卡中,核心组即为真。若玩家向上看,Alt 01 为真。若玩家蹲下,Alt 02 为真。若核心 + Alt 01 或 Alt 02 为真,成就将触发。
+
+## 关于备选组的事实
+
+- 要添加或移除*备选组*,点击成就编辑器左下角的 `+` 或 `-` 按钮。
+ 
+
+- 若只想测试**这个** `OR` **那个**,可将核心组留空,在 `Alt 01` 中添加**这个**,在 `Alt 02` 中添加**那个**。
+
+- 无论成就有多少 `备选组`,只要核心组为真,只需一个备选组为真即可触发成就。
+
+- 使用 [ResetIf](#resetif) 和 [PauseIf](#pauseif) 时,PauseIf 仅暂停其所在组,而 ResetIf 会重置所有组中的命中次数,并在重置激活期间阻止成就触发。
+
+## 使用备选组实现条件重置
+
+**高级**:*备选组*可用于创建仅部分时间激活的 ResetIf 条件。
+
+若创建包含 PauseIf 条件和 ResetIf 条件的*备选组*,可在特定情况下用 PauseIf 条件禁用 ResetIf 条件,而无需禁用整个成就。
+
+- 重置仍会影响所有组,包括核心组。暂停仅暂停包含 PauseIf 的*备选组*。
+
+- 此逻辑可应用于同一成就中的多个*备选组*,以保护多个独立的 Reset 语句。
+
+- **确保**至少有一个*备选组*为真,否则成就不会触发。最简单的方法是创建一个额外备选组,其中有一个条件为 `Value 1 = Value 1`。
+
+- **注意**:若 Pause 条件为假且 Reset 条件也为假,该组将被视为真,除非组中有另一个恒假条件。使用*备选组*隔离 PauseIf 时,务必包含恒假条件,如 `Value 1 = Value 0`。
diff --git a/docs/zh/developer-docs/am-i-ready-for-review.md b/docs/zh/developer-docs/am-i-ready-for-review.md
new file mode 100644
index 00000000..b333890c
--- /dev/null
+++ b/docs/zh/developer-docs/am-i-ready-for-review.md
@@ -0,0 +1,115 @@
+---
+title: 我准备好接受代码审查了吗?
+description: 初级开发者计划的全面指南,包括规则、指南和说明。
+---
+
+# 我准备好接受代码审查了吗?
+
+你的成就集已初具规模,感觉离发布越来越近。还有几件事要做:测试、调试和调整,以规避不良实践并改进你的成就集。
+
+测试建议:
+
+- 若你技能不足以完成挑战,可通过为部分内容创建虚拟成就来单独测试,如关卡完成、开始挑战、受到伤害。通常还可以冻结无敌帧或其他内容来辅助测试。
+- 始终确保成就能够弹出,并确保失败条件(ResetIf、PauseLock 等)仅在你预期时发生。
+- 尝试从错误方向和古怪操作来测试你的挑战和成就。玩家会做各种奇怪的事。也许玩家以不同顺序做事。也许他们射击了你没想到能射击的东西,成就意外失败。简而言之:**尝试破坏你的成就。**
+- 在所有游戏情境下测试 Rich Presence(菜单、标题、游戏中、不同游戏模式、游戏前期、游戏后期),看是否显示异常内容。
+
+# 请求审查
+
+在请求成就集审查之前,必须清除不良实践。特别是,你必须使用 [AutoCR](https://authorblues.github.io/retroachievements/AutoCR/) 并处理其标记的每个问题。与任何自动反馈工具一样,它并不完美,有时可以忽略某些标记。但它对发现成就集问题仍然非常宝贵,尤其是在你仍在学习时。在 #jr-devs-request 的「准备审查」帖子中,你必须:
+
+- 拥有至少 7 天已批准的成就集计划
+- 说明你的测试流程
+- 链接到你游戏的未发布成就页面
+- 包含成就集计划审查帖子的链接
+- 链接到成就集的 AutoCR 页面(使用按游戏 ID 加载功能)
+- 说明为何忽略 AutoCR 标记的任何问题
+
+不完整的审查请求将被直接拒绝,你需稍后再次请求。在提出请求前,花时间让成就集尽可能接近可发布状态;不必着急!如有需要,可向初级开发者和代码审查者求助。以下是进入待办列表前的绝对要求:
+
+[[toc]]
+
+## 成就集逻辑中无不良实践
+
+以下内容均应**避免**。若需例外,请说明原因。
+
+- 无 Delta-Mem 对的成就
+- 仅使用单个地址的成就(即使用于多个条件)
+- 命中目标为 (1) 或更高但无法重置命中
+- 使用 ResetIf 或 PauseIf 进行否定而非管理命中
+- 普遍使用基于文本的地址
+- 使用无代码注释的地址
+- 将地址与对应代码注释中未描述的值进行比较
+- 冗余的 AndNext
+- 冗余的备选组
+- 使用无重置方式的 PauseLock
+
+## 代码注释清晰简洁
+
+阅读[代码注释](/zh/guidelines/content/code-notes)指南并确保遵循所有建议。
+
+- 检查每条注释是否有大小标签
+- 检查每条注释在适当时是否注明具体值
+- 确保成就和排行榜中使用的*所有*地址都有代码注释
+
+## 资源有清晰描述和独特标题,语法正确
+
+阅读[写作政策](/zh/guidelines/content/writing-policy)并确保你的标题、描述和其他文字内容符合要求。
+
+::: tip 提供写作协助
+语法和大小写不是你的强项?难以写出简洁的描述?在 Discord 的 `#writing-requests` 频道求助,在等待审查期间请他们审阅你的成就。他们会乐意帮忙。
+:::
+
+## 成就拥有独特徽章
+
+- 进入待办列表前,徽章不能是临时的
+- [禁止使用图像生成器](https://docs.retroachievements.org/guidelines/content/badge-and-icon-guidelines.html#ai-generated-art-policy)
+
+## 成就集具有合适的 Rich Presence
+
+- 阅读 [Rich Presence](/zh/developer-docs/rich-presence) 文档了解更多。
+- [条件语法](/zh/developer-docs/condition-syntax.html)也会有所帮助。
+- 这是学习使用宏和条件的好机会。
+
+## 成就按逻辑排序
+
+- 在管理标签下,可通过拖放或手动输入数值设置顺序。
+- 这是成就集展示的重要部分。按主题或时间顺序分组可使玩家更易阅读。
+- 成就按期望顺序排列也有助于审查者更快浏览,并让我们更好地看到成就集设计的优点。
+
+## 进度成就和通关条件已正确标识
+
+- 通关游戏的成就标记为通关条件。
+- 必须在获得任何通关条件之前获得的成就标记为进度成就。
+
+## 成就具有存档保护或密码保护
+
+测试加载存档文件(尤其是通关存档)或输入密码不会触发任何成就。
+
+1. 启动游戏,然后激活所有成就。
+2. 加载你的存档或输入密码。
+3. 是否有任何触发?
+ - 若有,需添加代码阻止在存档加载时触发。
+ - 确保测试它们仍能正常弹出
+ - 通常,加载存档或密码不应阻止玩家获得成就。我们只要求存档加载/密码加载不会导致成就触发。
+
+- 若有存档文件,你是否测试过逻辑在所有存档槽位下都能工作?这是成就集的要求。
+ - 若未测试,请立即测试。
+ - 若无法在所有存档槽位下工作,需修改逻辑使其可以。通常至少有一个「当前存档槽位」地址,且当前存档数据常会复制到公共位置。两种情况都需处理。
+- 若系统使用记忆卡存档,你是否测试过玩家在模拟器中「未插入」记忆卡时逻辑能否工作?
+ 注意:这**不**意味着成就必须禁止密码。只是意味着成就不能因输入密码而获得,例如若成就仅检查你在某关卡就会发生这种情况。
+
+## 成就酌情防止作弊
+
+大多数情况下,作弊码会提供使成就更容易的优势。那你还算真正达成吗?
+
+- 若尚未添加,请为成就添加逻辑阻止使用作弊码。
+- 有时允许某些作弊码(如关卡选择)是合理的,尤其是挑战类成就。例如:「无伤通关第 3 关」。对于游戏期望从开头正常通关的进度成就,通常应阻止关卡选择。
+
+## 游戏具有合适的中心和元信息
+
+有多种类型、子类型、发行商、开发者、系列、语言和其他元数据中心可链接到成就集。考虑哪些适合。
+
+- 代码审查者可以为你添加。你的发行商、开发者和类型条目应与中心名称匹配,请立即进行相应编辑。
+- 准备在审查期间讨论其他可能的中枢。
+- 在管理标签中添加所有已知版本。
diff --git a/docs/zh/developer-docs/badge-and-icon-creation.md b/docs/zh/developer-docs/badge-and-icon-creation.md
new file mode 100644
index 00000000..afb6b17a
--- /dev/null
+++ b/docs/zh/developer-docs/badge-and-icon-creation.md
@@ -0,0 +1,196 @@
+---
+title: 成就徽章与图标创作
+description: 学习如何设计和上传游戏图标与成就徽章,包括指南、风格建议和创建美观易识徽章的文件规格。
+---
+
+# 徽章与图标创作
+
+## 游戏图标
+
+图标是**用户上传**的、在整个网站代表游戏的图片。由于它们在游戏和用户页面上的突出位置,值得特别关注。这些图标应代表游戏及其常见主题,因此应能让人一眼认出。
+
+- _索尼克游戏图标_
+
+ 
+
+### 设计新游戏图标 - 风格指南
+
+#### 精通图标必须仅使用「官方」素材代表相关游戏。
+
+- 游戏中的精灵图(或模型)
+- 盒装封面 / 区域盒装封面
+- 概念图
+- CD / 原声带封面
+- 说明书插图
+- 攻略本插图
+- 广告
+- 或任何其他「官方」素材来源。
+
+#### 精通图标不得
+
+- 使用不同版本的素材
+- 使用来自外部来源的同人图
+- 包含任何粗俗、冒犯或色情内容
+
+#### 精通图标可以
+
+- 添加自定义边框或其他装饰
+- 对官方素材进行风格化或组合不同官方素材来源
+- 使用同一主机不同区域版本的官方素材,除非该区域版本有独立游戏页面
+- 使用图标创作者创作的同人图,但必须在上传或任何图标投票前经美术团队批准。
+
+#### 例外
+
+- 若两个不同版本使用相同主图,该图可用于任一版本。
+- 改版 - 大多数改版使用源游戏的相同精灵图。其他能有意义代表游戏的素材可使用,只要不在上述排除列表中(如外部同人图)。改版开发者的素材也可使用。
+- 电影授权/电影联动游戏可使用宣传电影时使用的素材。
+
+
+
+### 其他图标设计建议
+
+- 浏览[游戏列表](http://retroachievements.org/gameList.php),找到你喜欢的图标。模仿并创新你喜欢的风格。
+- [徽章创作建议](#徽章创作指南与技巧)中的许多内容也适用于此。
+
+#### 图标文件与尺寸 - 最佳实践
+
+- 使用非交错 PNG 格式上传;避免使用透明背景,最终会显示为白色方框。
+- 精通图标设计为 96x96
+- 图标应使主体在缩小到 32x32 时仍清晰可见,因为它们常被缩小到此尺寸,如全球动态。
+
+### 上传游戏图标(开发者)
+
+成就开发者可自由更改尚无成就的条目的游戏图标。作为开发者,若想在那里发布先前图片的备份(若有),或在论坛备份你的图片,可以但不强制。创建新成就集时,可自由创建或选择要使用的游戏图标。
+
+要更改游戏图标,首先进入游戏页面并点击开发者工具:
+
+
+然后点击高亮的选择文件按钮。在电脑上找到文件,然后点击高亮的提交按钮:
+
+
+若游戏已有成就,游戏图标更改需经过[修订流程](/zh/guidelines/content/achievement-set-revisions)。
+
+### 上传游戏图标(非开发者)
+
+可以,但需经过[修订](/zh/guidelines/content/achievement-set-revisions)。也建议查阅[设计新游戏图标](#设计新游戏图标---风格指南)的指南。
+
+### 上传游戏图标时图片会发生什么
+
+上传时,除非为 96x96 32 位色 PNG,否则图标将被拒绝。若上传小于 96x96 的图标,将保留原始尺寸。
+
+徽章同理,但徽章尺寸为 64x64。(个人资料图片最大 128x128。)
+
+### 图标服务器文件
+
+图标以下列方式和位置存储在网站上:`i.retroachievements.org/Images/000705.png`。它们与游戏盒、游戏截图等其他游戏图片存储在相同服务器文件夹中。
+
+## 成就徽章
+
+徽章是用户为游戏单个成就创建的图片。
+
+- _索尼克第一个徽章 - #00199)_ 
+
+### 徽章创作指南与技巧
+
+- 徽章应以某种方式与成就相关——例如成就要求玩家到达的 Boss、关卡或收集物的图片。
+- 查看你喜欢的游戏的设计。有些用户花很大功夫制作美观的徽章:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+- 这里有一个充满好建议的[论坛主题](https://retroachievements.org/viewtopic.php?t=4282&o=5)。
+- 对于低分辨率游戏的成就,很难让徽章既好看又不显得*块状*或*模糊*,此时*块状*外观通常更可取,使图片具有*复古*感。
+- 可以让每个徽章有小圆角边框像真徽章,或尖角强调,或困难成就用王冠。这是你的设计。应视觉上代表成就本身,或暗示游戏中秘密的位置。
+- 与游戏美术风格匹配效果很好。用 Google 图片搜索「Sprite Sheets」是包含游戏素材的另一个有用技巧。
+
+#### 徽章文件与尺寸 - 最佳实践
+
+- 使用非交错 PNG 格式上传;避免使用透明层,最终会显示为白色方框。
+- 设计为 64x64。可检查 48x48 和 32x32 下的效果,因为网站会缩小到这些尺寸。
+- 徽章应使主体在缩小到 32x32 时仍清晰可见,因为它们常被缩小到此尺寸,如全球动态。
+
+### 为新成就上传徽章(开发者)
+
+若在创建新成就,可自由为其上传徽章。
+
+徽章在成就编辑器中通过模拟器开发者工具上传:
+
+
+或可在下拉框中选择预制图片或查找你上传的其他图片:
+
+
+上传 `.png` 文件类型。
+
+若游戏已有徽章,请查阅并遵循[上传徽章(非开发者)](#上传徽章非开发者)的流程。
+
+### 为现有成就制作新徽章
+
+若想为现有成就制作改进徽章,可以。你的图片将经过[修订流程](/zh/guidelines/content/achievement-set-revisions),进行社区投票。
+
+将所有要替换当前图片的新图片发布到[图标投票论坛主题](http://retroachievements.org/viewtopic.php?t=8064&o=0)。同时发布新图片要替换的所有徽章。它们将作为单一投票进行社区审查。社区投票完成后,若你是开发者可替换徽章,若不是,可在 Discord 的 #help-me 频道或[图标投票论坛主题](http://retroachievements.org/viewtopic.php?t=8064&o=0)求助。
+
+用 `img` 链接引用新旧徽章最简单:
+
+- 示例:`[img=https://retroachievements.org/Badge/01234.png] -> [img=https://retroachievements.org/badge/56789.png]`
+- (开发者)上传新徽章前,确保从成就编辑器获取旧徽章 ID
+- 上传后,新徽章 ID 将显示在成就编辑器中。
+- 两个值也可从网站获取,但需复制图片链接,因为悬停链接指向成就。
+
+这是[如何有效发布新旧徽章](https://retroachievements.org/viewtopic.php?t=612&o=17)的完美示例。
+
+### 上传徽章时图片会发生什么
+
+上传时,你的文件会转换为以下格式:
+
+- 64x64 32 位色 PNG。示例:
+
+ 
+
+- 64x64 灰度模糊 PNG。示例:
+
+ 
+
+### 徽章服务器文件
+
+它们以下列方式和位置存储在网站上:`i.retroachievements.org/Badge/00136.png`;数字与成就中的徽章 ID 对应。
+
+## 徽章和图标的显示位置
+
+- 排行榜上:96x96(仅图标)
+- RA 模拟器中:64x64
+- 游戏页面:96x96
+- 用户页面:48x48
+- 正在游玩(首页)、新成就、相似游戏:32x32
+
+实际图片不会被调整大小。图片由浏览器缩放到显示尺寸。某些浏览器(如 Android 浏览器)会更清晰地显示较大图片。也可增加浏览器缩放以更清晰查看。
+
+预计在未来网站版本中,图标和徽章将在其他位置以完整尺寸显示。
+
+## 制作优质截图
+
+大多数模拟器有以系统原生分辨率截图的截图功能,与输出分辨率无关。利用这些功能可获得清晰截图,无额外失真或滤镜。例如,在 RALibretro 中,打印屏幕键会以此方式截图。
diff --git a/docs/zh/developer-docs/bitcount-size.md b/docs/zh/developer-docs/bitcount-size.md
new file mode 100644
index 00000000..df28d714
--- /dev/null
+++ b/docs/zh/developer-docs/bitcount-size.md
@@ -0,0 +1,39 @@
+---
+title: 成就开发中的 BitCount 大小使用
+description: 学习如何使用 BitCount 大小来统计字节中置位比特的数量,以创建高效有效的成就条件。
+---
+
+# `BitCount` 大小
+
+`BitCount` 是统计字节中置位比特数量的快捷方式。
+
+```
+BitCount Mem 0x1234 == Value 6
+```
+
+等同于
+
+```
+AddSource Bit0 Mem 0x1234
+AddSource Bit1 Mem 0x1234
+AddSource Bit2 Mem 0x1234
+AddSource Bit3 Mem 0x1234
+AddSource Bit4 Mem 0x1234
+AddSource Bit5 Mem 0x1234
+AddSource Bit6 Mem 0x1234
+ Bit7 Mem 0x1234 == Value 6
+```
+
+对于 `0x3F` (00111111)、`0xDB` (11011011)、`0xEE` (11101110) 等值将为真。
+
+其最常见的用途是为 [`Measured`](/zh/developer-docs/flags/measured) 条件统计可收集物品数量。
+
+它可以与其他标志如 [Delta](/zh/developer-docs/delta-values) 组合使用。
+
+```
+BitCount Mem 0x1234 != BitCount Delta 0x1234
+```
+
+如果您只想确保所有比特都已置位,而不需要担心部分比特子集是否置位,应检查具体值(即 `Eight Bit 0x1234 = 0xFF` 或 `Lower4 0x1234 = 0x0F`)。
+
+**警告**:BitCount 始终统计字节中的全部 8 个比特。如果您只需要 6 或 7 个比特,应使用 AddSource 链,因为其他比特可能用于其他用途。
diff --git a/docs/zh/developer-docs/condition-syntax.md b/docs/zh/developer-docs/condition-syntax.md
new file mode 100644
index 00000000..f77680c1
--- /dev/null
+++ b/docs/zh/developer-docs/condition-syntax.md
@@ -0,0 +1,70 @@
+---
+title: 成就开发中的条件语法
+description: 全面了解成就开发中的条件语法,包括内存大小、前缀和逻辑标志。
+---
+
+# 条件语法
+
+### 内存大小
+
+| 大小 | 前缀 | 示例 |
+| :------------------------------------------: | :---: | :--------: |
+| Bit0 | `0xM` | `0xM01234` |
+| Bit1 | `0xN` | `0xN01234` |
+| Bit2 | `0xO` | `0xO01234` |
+| Bit3 | `0xP` | `0xP01234` |
+| Bit4 | `0xQ` | `0xQ01234` |
+| Bit5 | `0xR` | `0xR01234` |
+| Bit6 | `0xS` | `0xS01234` |
+| Bit7 | `0xT` | `0xT01234` |
+| Lower4 | `0xL` | `0xL01234` |
+| Upper4 | `0xU` | `0xU01234` |
+| 8bit | `0xH` | `0xH01234` |
+| 16bit | `0x ` | `0x 01234` |
+| 24bit | `0xW` | `0xW01234` |
+| 32bit | `0xX` | `0xX01234` |
+| 16bit BE | `0xI` | `0xI01234` |
+| 24bit BE | `0xJ` | `0xJ01234` |
+| 32bit BE | `0xG` | `0xG01234` |
+| [BitCount](/zh/developer-docs/bitcount-size) | `0xK` | `0xK01234` |
+| Float | `fF` | `fF01234` |
+| Float BE | `fB` | `fB01234` |
+| Double32 | `fH` | `fH01234` |
+| Double32 BE | `fI` | `fI01234` |
+| MBF32 | `fM` | `fM01234` |
+| MBF32 LE | `fL` | `fL01234` |
+
+### 前缀
+
+| 修饰符 | 前缀 | 示例 |
+| :-------------------------------------------------------------: | :--: | :--------: |
+| [Delta](/zh/developer-docs/delta-values) | `d` | `d0xH1234` |
+| [Prior](/zh/developer-docs/prior-values) | `p` | `p0xH1234` |
+| [BCD](/zh/developer-docs/value-definition#binary-coded-decimal) | `b` | `b0xH1234` |
+| [Invert](/zh/developer-docs/value-definition#binary-inversion) | `~` | `~0xH1234` |
+
+### 特殊操作数
+
+| 修饰符 | 表示 | 示例 |
+| :---------------------------------: | :--------: | :--------: |
+| [Recall](/zh/developer-docs/recall) | `{recall}` | `{recall}` |
+
+### 逻辑标志
+
+| 标志 | 前缀 | 示例 |
+| :---------------------------------------------------: | :--: | :-----------: |
+| [`PauseIf`](/zh/developer-docs/flags/pauseif) | `P:` | `P:0xH1234=1` |
+| [`ResetIf`](/zh/developer-docs/flags/resetif) | `R:` | `R:0xH1234=1` |
+| [`ResetNextIf`](/zh/developer-docs/flags/resetnextif) | `Z:` | `Z:0xH1234=1` |
+| [`AddSource`](/zh/developer-docs/flags/addsource) | `A:` | `A:0xH1234/2` |
+| [`SubSource`](/zh/developer-docs/flags/subsource) | `B:` | `B:0xH1234/2` |
+| [`AddHits`](/zh/developer-docs/flags/addhits-subhits) | `C:` | `C:0xH1234=1` |
+| [`SubHits`](/zh/developer-docs/flags/addhits-subhits) | `D:` | `D:0xH1234=1` |
+| [`AddAddress`](/zh/developer-docs/flags/addaddress) | `I:` | `I:0xH1234=1` |
+| [`AndNext`](/zh/developer-docs/flags/andnext-ornext) | `N:` | `N:0xH1234=1` |
+| [`OrNext`](/zh/developer-docs/flags/andnext-ornext) | `O:` | `O:0xH1234=1` |
+| [`Measured`](/zh/developer-docs/flags/measured) | `M:` | `M:0xH1234=1` |
+| [`Measured`%](/zh/developer-docs/flags/measured) | `G:` | `G:0xH1234=1` |
+| [`MeasuredIf`](/zh/developer-docs/flags/measured) | `Q:` | `Q:0xH1234=1` |
+| [`Trigger`](/zh/developer-docs/flags/trigger) | `T:` | `T:0xH1234=1` |
+| [`Remember`](/zh/developer-docs/flags/remember) | `K:` | `K:0xH1234*2` |
diff --git a/docs/zh/developer-docs/console-specific-tips.md b/docs/zh/developer-docs/console-specific-tips.md
new file mode 100644
index 00000000..48b587df
--- /dev/null
+++ b/docs/zh/developer-docs/console-specific-tips.md
@@ -0,0 +1,217 @@
+---
+title: 各平台成就开发技巧
+description: 针对 NES、Game Boy、GBA、N64、DS、Neo Geo、PlayStation、PSP 等复古主机的内存查看与成就开发必备技巧与指南。
+---
+
+# 各平台技巧
+
+在挖掘这些老主机的内存时,了解游戏原开发者当时的工作环境会很有帮助。熟悉你喜爱主机的特性后,制作成就集会更容易、更准确。
+
+[[toc]]
+
+## NES
+
+### 内存镜像
+
+
+
+使用内存查看器查找 NES 游戏变量时,会发现每个变量都有 4 份副本。如果你在纠结「该用哪一个?」或「是否要检查全部?」,其实没那么复杂。
+
+这是 NES 的特性,为开发者提供了更多查看内存的方式。由于 NES 本身只有 2KB RAM,为保持一致性应使用第一个结果(0x800 以下的那个),对其它副本添加额外条件没有意义。
+
+这也适用于 RPS 和排行榜。
+
+## Game Boy
+
+### 内存映射
+
+某些地址范围在 Game Boy 硬件上下文中代表不同含义,了解内存布局有助于排除无用地址。概况如下:
+
+- ❌ **0x0000 - 0x7FFF: ROM 数据**(无使用理由。此区域包含仅在部分模拟器中读取的头部信息。)
+- ❌ **0x8000 - 0x9FFF: 图形数据**(若在查找地图 ID 或动画,这里可能有关联内容,但总有比使用这些地址更好的方法)
+- ✔️ **0xA000 - 0xBFFF: 卡带 RAM**(即存档数据。有时无法避免使用这些地址,但你的成就集可能因加载 100% 存档而容易被作弊。更多防存档作弊信息将后续补充)
+- ✔️ **0xC000 - 0xDFFF: 工作 RAM**(核心区域;几乎所有应使用的地址都在此范围内)
+- ❌ **0xE000 - 0xFDFF: ECHO RAM**(请勿使用,见下文)
+- ❌ **0xFE00 - 0xFE9F: 更多图形数据**(同上)
+- ❌ **0xFEA0 - 0xFF7F: 杂项**(请勿使用)
+- ✔️ **0xFF80 - 0xFFFF: 杂项**(可使用)
+
+更多信息见:http://gameboy.mongenel.com/dmg/asmmemmap.html
+
+### ECHO RAM
+
+
+
+与 NES 类似,在内存查看器中搜索时,某些变量可能出现两次。第二个结果位于所谓的 ECHO RAM,即实际内存的镜像。由于部分模拟器会忽略此区域或模拟不正确,建议完全不要使用,始终使用第一个结果。
+
+Game Boy 的 8KB RAM 从 0xC000 开始。ECHO RAM 从 0xE000 开始,因此若地址以 E 开头,应将第一个非零字符替换为 C。记住:C 正确,E 是镜像!
+
+### GBC
+
+在 GBC 上,0xD000-0xDFFF 的 4KB 内存来自处理器无法直接访问的更大 32KB 内存块中的某个存储体。0xFF70 的 bit0-2 指示哪个存储体被加载到 0xD000-0xDFFF 内存块。这是用于扩展 GBC ROM 可用存储同时兼容 GB ROM 的「特性」。
+
+存储体切换(改变 0xFF70 的值)会导致 0xD000-0xDFFF 范围内的内存更新。这在内存查看器中表现为闪烁,使追踪该范围内的值变得困难。若编写依赖该块内存的条件,还应要求 0xFF70 具有特定值以确保查看的是正确存储体。0xC000-0xCFFF 的 4KB 内存不进行存储体切换,可安全使用而无需额外条件。
+
+若有替代方案,不建议将这些地址用于成就。截至 2018 年 1 月,RALibretro 在 0xFF70 处仅显示存储体 0x00。RetroArch 的内存存储体会波动,且各地址的行为与 RAVisualBoyAdvance 不同。至少在 RetroArch 获得内存查看器之前,使用 0xD000-0xDFFF 地址的成就仅在 RAVisualBoyAdvance 中有效。
+
+### GB 和 GBC BIOS
+
+RALibRetro 和 RetroArch 支持 GB/GBC BIOS,会在游戏启动前显示「Nintendo」和「GameBoy」标志。这提供约四秒时间,期间主内存($C000-$DFFF)尚未初始化且不可信,可能对启用 BIOS 的子集用户造成成就于加载游戏时触发。
+
+要启用此功能,将 bios 文件(命名为 `gb_bios.bin` 或 `gbc_bios.bin`)放入 RALibRetro 或 RetroArch 的 system 目录。启动游戏时,会先看到「Nintendo」和「GameBoy」标志再进入实际游戏。
+
+若造成问题,可能需要添加逻辑以在 BIOS 执行期间阻止成就触发,但若可能,优先使用游戏内逻辑(例如检查是否显示特定画面)。
+
+BIOS 代码从 $0000-$00FF 加载,因此找出 BIOS 运行期间该内存中唯一的片段并忽略它。例如,GBC BIOS 块的最后四个字节为 `3E 11 E0 50`,可添加此条件以在 BIOS 运行期间阻止成就触发:
+
+```
+32-bit 0x00FC != 0x50E0113E
+```
+
+BIOS 完成后,该块会被 FF 清空并重新用作中断向量。更多详情见 [A Look at the GameBoy bootstrap](https://realboyemulator.wordpress.com/2013/01/03/a-look-at-the-game-boy-bootstrap-let-the-fun-begin/)。
+
+**注意**:GB BIOS 的最后四个字节为 `3E 01 E0 50`。因此 GB 条件应为:
+
+```
+32-bit 0x00FC != 0x50E0013E
+```
+
+## Game Boy Advance
+
+### GBA 内存映射
+
+| 名称 | 物理地址范围 | 虚拟地址范围 | 偏移(虚拟到物理) |
+| ---------------------------- | ----------------------- | ----------------------- | ------------------ |
+| On-chip Working RAM (WRAMC) | 0x00000000 - 0x00007fff | 0x03000000 - 0x03007fff | -0x03000000 |
+| On-board Working RAM (WRAMB) | 0x00008000 - 0x00047fff | 0x02000000 - 0x0203ffff | -0x01ff8000 |
+| Game Pak SRAM (SRAM) | 0x00048000 - 0x00057fff | 0x0e000000 - 0x0e00ffff | -0x0dfb8000 |
+
+## Virtual Boy
+
+Virtual Boy 对 IEEE-754 单精度浮点运算有硬件支持。若难以定位数值数据,可尝试使用 `Float` 数据类型进行过滤。
+
+## Nintendo 64
+
+### 使用 GameShark 码查找地址
+
+GameShark 码是查找难以或不愿手动查找的地址的宝贵资源。每行 12 个字符,解析较为简单。
+
+`[AA][BBBBBB] [CCCC]`
+
+[AA] 为代码类型。这是对 GameShark 的简短指令,定义对下一个值的操作。若理解 GameShark 码的作用,可用于辅助编写条件。
+
+- **80, 88:** 地址为 8 位。将值 [00CC] 写入地址 [BBBBBB]。
+- **81, 89:** 地址为 16 位。将值 [CCCC] 写入地址 [BBBBBB]。
+- **D0:** 地址为 8 位。检查 [00CC] 是否等于地址 [BBBBBB] 处的值,若相等则执行下一行。
+- **D2:** 地址为 8 位。检查 [00CC] 是否与地址 [BBBBBB] 处的值**不同**,若不同则执行下一行。
+- **D1:** 地址为 16 位。检查 [CCCC] 是否等于地址 [BBBBBB] 处的值,若相等则执行下一行。
+- **D3:** 地址为 16 位。检查 [CCCC] 是否与地址 [BBBBBB] 处的值**不同**,若不同则执行下一行。
+
+示例:
+
+- 纸片马里奥:无限 HP:
+
+`[80][10F292] [0032]`
+
+将 0x10F292 处的 8 位值设为 0x32(50)。即马里奥的 HP 为 0x10F292 处的 8 位值。
+
+- 大金刚 64:以 Rambi 游玩:
+
+`[80][74E77C] [0006]`
+
+将 0x74E77C 处的 8 位值设为 6。即当前角色为 0x74E77C 处的 8 位值。
+
+- 变色龙扭扭 2:按住 L 月跳:
+
+`[D0][18BAB5] [0020] <- 看这个`
+
+`[81][18B9E0] [4200]`
+
+检查 0x18BAB5 处的 8 位值是否等于 0x20。即 0x18BAB5 包含按键变量,Bit5(0x20)对应 L 键。
+
+[Anti-GSC](http://viper.shadowflareindustries.com/antigsc/index.php?codes&dev=gs&system=n64) 和 [GameHacking](https://gamehacking.org/system/n64) 均为查找 GameShark 码的好资源。
+
+## Nintendo DS
+
+- **0x3ffa8c: DS 游戏 ID** 标识正在运行的 DS 游戏的 ASCII 字符串。可用于检查加载的游戏版本(如多区域支持等)
+- 指针始终以 `0x02` 开头。例如,指向 `0x13f944` 的指针为 `0x0213f944`。
+- 当 0x400 处 bit0 与 bit1 均为 1 时可检测到 DSi 模式。已知在某些游戏中会轻微偏移内存,因此若需要可用于防止该模式。
+
+## Nintendo DSi
+
+- **0xfffe00: DSi 模式字符串** 标识正在运行的 DSi 游戏的 ASCII 字符串。可用于检查是否在游戏中而非 DSi 主屏幕等。
+
+## GameCube
+
+- 游戏/光盘识别:
+ - 序列号位于 **0x00000000**,为 ASCII 字符串。
+ - 光盘编号(多碟游戏)存储在 **0x80000006**。(0 = 光盘 1)
+ - 修订版号存储在 **0x00000007**。
+ - 可用这些确定加载的具体光盘。
+- GameCube 使用 PowerPC 芯片组,数据为大端序。对于超过 1 字节(8 位)的数据类型,使用 `16-Bit BE`、`32-Bit BE`、`Float BE` 和 `Double32 BE` 过滤。GameCube 上数据通常对齐,因此 16 位数据始终在偶地址,32 位数据地址为 4 的倍数等。
+- GameCube 有一块 24MB RAM,位于 `0x80000000-0x817FFFFF`,在 RA 工具包中映射为 `0x00000000-0x017FFFFF`。
+ - 因此,找到的指针以 0x8 开头,使用时可用 `0x1fffffff` 掩码转换为 RA 寻址。
+ - `Add Address 32-Bit BE Pointer & 0x1fffffff`
+ - RAM 的非缓存镜像也存在于 `0xC0000000`。若找到以 0xC 开头的指针,同样可用该掩码方案转换为 RA 寻址。
+
+## Wii
+
+- 零售游戏/光盘识别:
+ - 序列号位于 **0x00000000**,为 ASCII 字符串。
+ - 光盘编号(多碟游戏)存储在 **0x80000006**。(0 = 光盘 1)
+ - 修订版号存储在 **0x00000007**。
+ - 可用这些确定加载的具体光盘。
+- WiiWare 游戏 ID 位于 **0x00003180**,为 4 字节 ASCII 字符串。
+- Wii 使用 PowerPC 芯片组,数据为大端序。对于超过 1 字节(8 位)的数据类型,使用 `16-Bit BE`、`32-Bit BE`、`Float BE` 和 `Double32 BE` 过滤。Wii 上数据通常对齐,因此 16 位数据始终在偶地址,32 位数据地址为 4 的倍数等。
+- Wii 有两块 RAM:24MB 的「MEM1」位于 `0x80000000-0x817FFFFF`,在 RA 工具包中映射为 `0x00000000-0x017FFFFF`;64MB 的「MEM2」位于 `0x90000000-0x93FFFFFF`,在 RA 工具包中映射为 `0x10000000-0x13FFFFFF`。
+ - 因此,找到的指针以 0x8 或 0x9 开头,使用时可用 `0x1fffffff` 掩码转换为 RA 寻址。
+ - `Add Address 32-Bit BE Pointer & 0x1fffffff`
+ - MEM1 和 MEM2 的非缓存镜像分别位于 `0xC0000000` 和 `0xD0000000`。若找到以 0xC 或 0xD 开头的指针,同样可用该掩码方案转换为 RA 寻址。
+
+## Neo Geo
+
+### 强制 UniBIOS 保护
+
+UniBIOS 提供多种调试选项,并可访问每款游戏的单独作弊数据库。因此所有 Neo Geo 成就均需防止滥用。最简单的解决方案是直接在成就代码层面完全禁止使用 UniBIOS。
+
+幸运的是,UniBIOS 的部分数据似乎反映在 RAM 的两个地址字符串中:`0x00fe30` 和 `0x00fe50`。UniBIOS 激活时,32 位大小的 `0x00fe30` 似乎始终为相同值(对每款 Neo Geo 游戏),即 `0x80025632`,且 ROM 加载后似乎不会改变。对任何其它 BIOS,该值始终为 0(ROM 加载后 RAM 被诊断程序占满的瞬间除外)。
+
+要保护成就免受 UniBIOS 影响,只需添加简单保护:当 32 位大小的 `0x00fe30` 不等于 `0` 时重置。这还能防止成就于 RAM 诊断过程中解锁。
+
+**保护在成就编辑器中的效果:**
+
+
+**使用其它 BIOS 时(此处为 MSV)同一 RAM 区域的效果:**
+
+
+## PlayStation
+
+注意:若核心不需要 BIOS,此内存可能未初始化。
+
+$0000-$FFFF 的 RAM 保留给内核。启动可执行文件名似乎可靠地放置在 $9E18 和 $B8B0。启动可执行文件名几乎总是包含光盘序列号,每个区域唯一,因此常可用于确定玩家使用的游戏版本。
+
+```
+Spyro the Dragon SCUS_942.28
+
+9E18 5C 53 43 55 53 5F 39 34 32 2E 32 38 3B 31
+ \ S C U S _ 9 4 2 . 2 8 ; 1
+
+B8B0 63 64 72 6F 6D 3A 5C 53 43 55 53 5F 39 34 32 2E 32 38 3B 31
+ c d r o m : \ S C U S _ 9 4 2 . 2 8 ; 1
+```
+
+## PlayStation Portable
+
+处理 PSP 时务必检查游戏是否有 DLC,因为此类内容可被玩家在未修改存档或未打补丁的情况下访问,需要纳入考虑,若提供你不希望玩家利用的优势,某些情况下还需加以保护。
+
+## Amstrad CPC
+
+用 BASIC 编写的游戏常使用 Microsoft Binary Format 存储数值。这是浮点数据。可在此系统上使用 `MBF32 LE` 数据类型过滤以查找这些值。
+
+## Apple II
+
+用 BASIC 编写的游戏常使用 Microsoft Binary Format 存储数值。这是浮点数据。可在此系统上使用 `MBF32` 数据类型过滤以查找这些值。
+
+## PC-8000 / PC-8800
+
+游戏可能使用 Microsoft Binary Format 存储数值。这是浮点数据。可在此系统上使用 `MBF32` 数据类型过滤以查找这些值。
diff --git a/docs/zh/developer-docs/delta-values.md b/docs/zh/developer-docs/delta-values.md
new file mode 100644
index 00000000..3452a10d
--- /dev/null
+++ b/docs/zh/developer-docs/delta-values.md
@@ -0,0 +1,20 @@
+---
+title: 成就开发中的 Delta 值使用
+description: 学习如何在成就开发中使用 Delta 值来检测帧之间的变化,例如关卡提升和伤害检测。
+---
+
+# `Delta` 值
+
+`Delta` 值是上一帧的值。**注意**:使用 `Delta` 时,隐含的是您引用的是地址而非数值。
+
+使用示例:
+
+- 检测关卡是否提升:`mem level > delta level`。表示“当前关卡大于上一帧的关卡”。
+- 检测伤害:`mem health < delta health`。表示“当前生命值小于上一帧的生命值”。或者您可以将上一帧的值作为条件。`delta health = 1` 表示“成就触发时,上一帧的生命值必须为 1”。
+
+在[实际示例](/zh/developer-docs/real-examples)部分有一些很好的例子:
+
+- [使用 Hit Counts 作为计时器](/zh/developer-docs/real-examples/using-hit-counts-as-a-timer)
+- [使用 Delta 值和 Hit Counts 检测增量](/zh/developer-docs/real-examples/using-delta-values-and-hit-counts-to-detect-an-increment)
+
+另见:[我真的需要使用 Delta 吗?](/zh/developer-docs/why-delta)
diff --git a/docs/zh/developer-docs/developer-welcome.md b/docs/zh/developer-docs/developer-welcome.md
new file mode 100644
index 00000000..9473003c
--- /dev/null
+++ b/docs/zh/developer-docs/developer-welcome.md
@@ -0,0 +1,187 @@
+---
+title: 欢迎加入开发者团队
+description: 欢迎新晋开发者,介绍如何上传成就集,以及开发者专属的各项权限。
+---
+
+# 欢迎加入开发者团队!
+
+成为开发者后,想必你最关心的是如何上传成就集以及还有哪些权限对你开放。你在网站、模拟器和 Discord 服务器上都将拥有许多新功能,我们将在此逐一介绍。
+
+加入团队意味着**新的责任和不活跃标准**,请务必在继续之前阅读 [开发者行为准则](/zh/guidelines/developers/code-of-conduct)。
+
+[[toc]]
+
+## 成就集管理
+
+网站团队正在开发新的管理页面,所有开发者相关活动最终都将迁移至此。可通过 Dev 下拉菜单正上方的「Manage」按钮访问。
+
+此页面用于编辑发布日期以及**拖拽排序**。
+
+
+
+## 上传你的第一个成就集!
+
+上传第一个成就集最快、最简便的方式是通过成就集的管理页面。在那里可标记要推广的成就,然后点击「Promote selected」即可一键推广全部!
+
+要进入此页面,前往你的游戏页面:
+
+1. 点击 Manage
+2. 向下滚动直至看到成就列表
+3. 如需重排,可点击 Start Reordering 按钮,然后拖拽成就
+4. 勾选要推广的成就(若有不需要或已作废的成就请小心排除,否则直接点「All」)
+5. 点击 Bulk promote or demote
+6. 点击 Promote selected
+
+
+
+## 成就新闻公告
+
+成就集上线后,若你在 Discord 上,是时候向大家宣布了!
+
+我们有一个便捷的机器人命令,只要成就集在核心中,即可自动生成模板。前往 #bot-spam 输入「!gan [gameid]」,其中 [gameid] 为游戏 ID。
+
+#devs-chat 的置顶消息中有另一种颜色的模板可供使用。
+
+可复制结果,将 @{AUTHOR_NAME} 替换为你的名字,发布到 #achievement-news 频道并 @Achievement-News 以吸引大家关注刚上线的热门成就集。
+
+## 认领
+
+成为开发者后,认领上限扩展为最多 4 个并发常规认领。只要没有未解决的工单,即可自由认领成就集。更多详情请参阅 [开发者指南的认领部分](/zh/guidelines/developers/claims-system)。
+
+若游戏尚无页面,请参阅 [创建游戏页面与关联哈希](#creating-game-pages-and-linking-hashes) 获取指导。
+
+## 成就集修订
+
+成就集修订是让旧成就集跟上现代标准的重要一环。这是你确保网站质量得以维持的机会。投票通过 Discord 服务器的 #revision-voting 和 #revision-discussion 频道进行。毕业时默认会获得 @Revision-Voting 和 @Rescore 角色。
+
+在考虑是否投票批准修订提案时,请熟悉讨论论坛置顶帖中概述的修订目标标准。修订的目标是将欠缺的成就集转变为高质量、现代化的成就集,理想情况下不再需要后续修订。参与修订提案投票是重要责任,所有开发者都应认真对待并参与,以保障 RetroAchievements 项目的长期健康发展。
+
+提出修订时,需联系相关成就集的所有活跃作者。若希望选择不被联系,请使用[此表单](https://forms.gle/mgzv7RHbJEPCrxc77)。
+
+有关如何提出修订的详情,请参阅 [成就集修订](/zh/guidelines/content/achievement-set-revisions)
+
+若考虑请求重新指定作者,请联系 DevCompliance 获得批准。重新指定作者的请求不应包含在修订提案中。
+
+若希望将部分或全部先前成就的获得者转移过来,需联系 RAdmin 或 Discord 的 #cleanup-admin 寻求协助。
+
+请求需包含游戏及完整的成就转移列表,格式为 旧 ID -> 新 ID
+
+示例:
+
+https://retroachievements.org/game/990
+
+转移游戏 990 的获得者:
+
+11702 -> 175183
+
+11709 -> 175184
+
+以此类推...
+
+## 模拟器更新
+
+你现在将拥有模拟器中的若干新权限。
+
+### 创建游戏页面与关联哈希
+
+最大的新权限是现在可以通过在 RA 模拟器中加载游戏来将新哈希关联到游戏。
+
+若创建新页面,选择「New Title」并在文本框中输入适当名称。检查是否有可回收的标为「~Z~ No Hash」的垃圾页面。
+
+::: info
+延伸阅读:
+
+[游戏标题指南](/zh/guidelines/content/game-info-and-hub-guidelines#game-titles)
+
+[ROM 改版成就](/zh/guidelines/content/achievements-for-rom-hacks)
+
+[子集](/zh/guidelines/content/subsets)
+
+[使用正确的 ROM](/zh/guidelines/content/working-with-the-right-rom)
+:::
+
+
+
+### 代码注释
+
+你现在可以覆盖和删除任何现有代码注释。注意不要无故覆盖他人的注释,若在改进或修正注释,则属于可接受的理由。
+
+### 成就
+
+开发者可直接在核心中发布成就变更,无需先降级到 Unofficial。
+
+你现在可以自由通过模拟器将成就从 Unofficial 和 Core 之间推广或降级,但通过网站操作会更方便。
+
+## 网站更新
+
+你现在可以访问网站上更多工具来辅助开发工作。
+
+### 想要开发的游戏
+
+开发者可将游戏添加到「想要开发」列表。可通过游戏页面上的 Dev 下拉框添加成就集。
+
+
+
+### 游戏页面
+
+#### 创建论坛主题
+
+认领成就集时,不再需要单独创建论坛主题。Make Claim 按钮会自动为你创建论坛主题(若尚不存在)。
+
+请注意,不应在没有正当理由(如认领成就集)的情况下创建论坛主题。否则,除管理员外,只有你能编辑顶帖,而顶帖通常放置重要信息,如支持的游戏文件或成就集说明。
+
+#### Dev 菜单
+
+你现在拥有 Dev 下拉菜单的完整访问权限。
+
+- **Manage Core/Unofficial Achievements**:成就的推广/降级、类型和排序
+
+- **Manage Leaderboards**:排行榜条目的重置、排序和删除
+
+ - 在编辑或重置非自己成就集的排行榜条目前,请阅读 [编辑排行榜](/zh/guidelines/content/editing-leaderboards)
+
+- **Manage Hashes**:编辑哈希标签、编辑 RAPatches URL、解除哈希关联
+
+- **Subscribe to Tickets**:若决定处理不活跃开发者的成就集并希望跟踪未来工单,很有用
+
+- **Want to Develop**:在「想要开发」列表中添加/移除游戏
+
+
+
+#### 添加 Hub 和关联游戏
+
+可通过输入页面 ID 并点击「Add」将 Hub 和关联游戏添加到游戏页面。由 DevCompliance、QA 和 Art 团队管理的 Hub 不应自行添加/移除,请向相应团队发送消息。
+
+
+
+## Discord 频道
+
+你现在可以访问若干新 Discord 频道:
+
+- **#developer-news**
+
+- **#devs-chat**
+
+- **#devs-help**
+
+- **#ticket-discussion**
+
+- **#ratools**
+
+- **#revision-voting**
+
+- **#revision-discussion**
+
+## 开发者活动!
+
+有若干仅限开发者参与的活动,各有专属 Discord 频道:
+
+- [Rollouts](/zh/developer-docs/rollouts)
+
+- [DevQuests](/zh/developer-docs/devquests)
+
+- [DevJam](/zh/developer-docs/devjam):为未获得 Rollout 的系统发布成就集
+
+- [Beaten Into Completion](https://retroachievements.org/viewtopic.php?t=23062):为缺少 Beat 标准的成就集添加进度成就
+
+- [House Cleaning](https://retroachievements.org/viewtopic.php?t=20882):解决或关闭不活跃开发者工单
diff --git a/docs/zh/developer-docs/devjam.md b/docs/zh/developer-docs/devjam.md
new file mode 100644
index 00000000..a542d735
--- /dev/null
+++ b/docs/zh/developer-docs/devjam.md
@@ -0,0 +1,96 @@
+---
+title: DevJam
+description: DevJam 是持续进行的开发者活动,深受主机发布活动启发。开发者报名、锁定为特定主机开发游戏集、完成后签核,然后在发布日期统一发布所有游戏集。
+---
+
+# DevJam
+
+[[toc]]
+
+## 基本信息
+
+DevJam 是一项持续进行的开发者活动,深受我们的主机发布活动启发:开发者报名、锁定为特定主机开发游戏集、完成后签核,然后我们在发布日期统一发布所有游戏集。然而,DevJam 的主要重点将是为未获得发布活动的主机进行发布。部分 DevJam 将专注于单一主机,其他可能专注于两个主机。
+
+一旦我们“收支平衡”并耗尽主机,重点将转向季度目标、为中心完成游戏集、类型特定的冲刺时间等。
+
+## 时间与时长
+
+DevJam 持续三个月。若情况需要,部分可能延长(土星因网站中断和多个开发者活动同时进行而额外延长了一个月)。若所有认领均已签核,部分可能缩短。
+
+## 指南
+
+- 认领时通知活动主办方!
+- 为活动认领的游戏集将标记为“Free Rollout”认领,因此不会计入开发者的认领总数。但仅在当季“免费”!早期和现有认领将在季度开始前不会被标记为“免费”。若游戏集未能在发布前完成,将变为标准认领。此外,与发布活动一样,开发者一次只能有一个免费认领!详见 [特殊认领](/zh/guidelines/developers/claims-system#special-claims) 规则。
+- 游戏集签核后,将标记为“Release Scheduled”,并在发布日期推广。
+- 若您无法到场,活动主办方可请求在发布日期代为推广您的游戏集。
+- 若游戏集提前推广,将取消 DevJam 资格。开发者可另行提交。
+
+## 徽章
+
+- 活动徽章包含 **24 个成就**,季度末每获得 1 积分将解锁 1 个成就。
+- 每季至少有 **6 个可获得的成就**。这些可以拆分,允许开发者按自己的节奏参与活动,但需要一定投入。他们可能第一季获得 1 个成就,第二季 3 个,第三季 2 个,等等。
+- 积分值可能因所选主机而异。
+- 本页底部有当前季度积分系统的图表。
+
+## 常见问题
+
+**迟交的作品是否仍有资格获得季度目标的奖励积分?**
+
+- 那就不叫季度目标了,对吧?不能。
+
+**能否与 DevQuest、CL100 和其他活动同时参与?**
+
+- 可以。
+
+**会有第二个徽章吗?**
+
+- 会。
+
+**初级开发者能否参与?**
+
+- 活动性质与初级开发者计划的多个方面冲突,目前不能。
+- 初级开发者可能被鼓励仓促完成游戏集。
+- 初级开发者游戏集的推广是流程的重要部分,因此将游戏集设为“Release Scheduled”会浪费大量时间。
+- 代码审查员需要围绕 DevJam 日程工作。
+- 因不活跃而失去角色或做 1-2 个游戏集后消失的初级开发者远多于坚持到获得完整开发者资格的人。这可能导致锁定的认领!
+
+## DevJam 列表
+
+查看此处链接获取主机特定指南和信息:
+
+| 编号 | 时间 | 主机 | 参与人数 | 推广游戏集数 |
+| :----: | :---------------------: | :----------------------------------------------------: | :--------------------: | :-----------: |
+| 01 | 2023-07-01 - 2023-09-30 | [Sega SG-1000](/zh/developer-docs/devjam/1-sg1000) | 30 | 60 |
+| 02 | 2023-10-01 - 2024-01-31 | [Sega Saturn](/zh/developer-docs/devjam/2-saturn) | 28 | 56 |
+| 03 | 2024-02-01 - 2024-04-30 | [PC Engine/PC Engine CD](/zh/developer-docs/devjam/3-pce) | 28 | 60 |
+| 04 | 2024-05-01 - 2024-08-31 | [Arcade](/zh/developer-docs/devjam/4-arcade) | 33 | 80 |
+| 05 | 2024-09-01 - 2024-11-30 | [PC-8001/PC-8801](/zh/developer-docs/devjam/5-pc88) | 25 | 40 |
+| 06 | 2024-12-01 - 2025-03-16 | [Apple II](/zh/developer-docs/devjam/6-appleii) | 20 | 40 |
+| 07 | 2025-04-01 - 2025-06-30 | [Sega CD/32X](/zh/developer-docs/devjam/7-segacd-32x) | 27 | 40 |
+| 08 | 2025-07-01 - 2025-09-30 | [MSX](/zh/developer-docs/devjam/8-msx) | 26 | 79 |
+| 09 | 2026-02-01 - 2025-04-30 | [Catch-Up](/zh/developer-docs/devjam/9-catch-up) | ?? | ?? |
+
+## 计划中的 DevJam
+
+单主机 DevJam:
+
+- 3DO
+- Famicom Disk System
+
+多主机 DevJam:
+
+- Master System | Game Gear
+- Neo Geo Pocket | WonderSwan | Atari Lynx
+- Atari 2600 | Atari 7800 | Atari Jaguar
+- ColecoVision | Intellivision
+
+主机特定 DevJam 的终点:
+
+- "Bottom of the Barrel"(Pokemon Mini、Virtual Boy、Magnavox Odyssey2、PC-FX)
+- "The Magnificent Seven"(Mega Drive、Nintendo 64、SNES、Game Boy、Game Boy Advance、Game Boy Color、NES)
+
+## 另见
+
+- [DevJam Vol. 1 活动入口](https://retroachievements.org/game/20000)
+- [DevJam Vol. 2 活动入口](https://retroachievements.org/game/30000)
+- [DevJam 论坛主题](https://retroachievements.org/viewtopic.php?t=22368)
diff --git a/docs/zh/developer-docs/devjam/1-sg1000.md b/docs/zh/developer-docs/devjam/1-sg1000.md
new file mode 100644
index 00000000..c609684b
--- /dev/null
+++ b/docs/zh/developer-docs/devjam/1-sg1000.md
@@ -0,0 +1,56 @@
+# DevJam I(SG-1000)
+
+[[toc]]
+
+## 时间与时长
+
+- 开始日期:2023-07-01
+- 发布日期:2023-09-30
+
+## 积分系统
+
+最高可获积分:6
+
+下表详细说明 SG-1000 DevJam 的可获积分:
+
+| 积分 | 提交内容 |
+| :--: | :----------------------------------------------------------------------------------: |
+| 2 | 授权游戏 |
+| 1 | 合作
• _每位开发者 1 分_
• _必须平均分配_ |
+| 1 | 子集、自制游戏、非授权游戏 |
+| 1 | 改版、原型、演示 |
+| 1 | 延迟提交
• _直到下一届 DevJam 发布日期前仍可符合资格!_ |
+
+## 季度目标
+
+虽然主要目标是推广大量成就集,但我们还可以共同完成次要目标。若达成目标,将向**参与达成者**发放奖励积分。当前季度目标:
+
+| 积分值 | 季度目标 | 详情 |
+| :----: | :----------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
+| 2 | **将现有成就集数量翻倍** | 26 个成就集 |
+| 1 | **为所有有成就集请求的 SG-1000 游戏开发成就集** | • _Bomb Jack_
• _Elevator Action_
• _Flicky_
• _Q-Bert_
• _Rock N' Bolt_
• _Sinbad Mystery_
• _Yie Ar Kung-Fu_
• _Yie Ar Kung-Fu II_ |
+| 1 | **为所有 1983 年发行的 SG-1000 游戏开发成就集** | • _Borderline_
• _Champion Baseball_
• _Champion Golf_
• _Champion Tennis_
• ~_Congo Bongo_~
• _Exerion_
• _Mahjong_
• _Monaco GP_
• _N-Sub_
• ~_Pacar_~
• _Pachinko_
• _Pop Flamer_
• _Safari Hunting_
• ~_Sega Flipper_~
• ~_Sega-Galaga_~
• ~_Serizawa Hachidan no Tsume Shougi_~
• _Sindbad Mystery_
• ~_Space Slalom_~
• _Star Jacker_
• _Yamato_
• _Zippy Race_ |
+| 1 | **为所有 Othello Multivision 游戏开发成就集** | • _007 James Bond_
• _Challenge Derby_
• _Guzzler_
• _Okamoto Ayako no Match Play Golf_
• _Othello_
• _Q-Bert_
• _San-nin Mahjong_
• _Space Armor_
• _Space Mountain_ |
+
+## 统计
+
+_截至 2023-07-01(开始日期)_
+
+- 当前成就集数量:26
+ - 18 款授权游戏、4 款自制游戏、4 款非授权游戏
+- 当前成就数量:660 个,价值 5912 分
+- 当前排行榜数量:168
+
+_截至 2023-09-30(结束日期)_
+
+- 当前成就集数量:88
+ - 63 款授权游戏、1 个子集、14 款自制游戏、10 款非授权游戏
+- 当前成就数量:1,644 个,价值 14,511 分
+- 当前排行榜数量:272
+
+## 另见
+
+- [DevJam 主页面](/zh/developer-docs/devjam)
+- [DevJam Vol. 1 活动入口](https://retroachievements.org/game/20000)
+- [DevJam Vol. 2 活动入口](https://retroachievements.org/game/30000)
+- [DevJam 论坛主题](https://retroachievements.org/viewtopic.php?t=22368)
diff --git a/docs/zh/developer-docs/devjam/2-saturn.md b/docs/zh/developer-docs/devjam/2-saturn.md
new file mode 100644
index 00000000..1faf7331
--- /dev/null
+++ b/docs/zh/developer-docs/devjam/2-saturn.md
@@ -0,0 +1,50 @@
+# DevJam II(世嘉土星)
+
+[[toc]]
+
+## 时间与时长
+
+- 开始日期:2023-10-01
+- 发布日期:2024-01-31
+
+## 积分系统
+
+最高可获积分:8
+
+下表详细说明土星 DevJam 的可获积分:
+
+| 积分 | 提交内容 |
+| :--: | :--------------------------------------------------------------------------------------------------: |
+| 4 | 授权 RPG |
+| 3 | 其他授权游戏 |
+| 2 | 合作
• _每位开发者 2 分_
• _必须平均分配_ |
+| 2 | 改版、原型、演示、子集、自制游戏、非授权游戏 |
+| 2 | 延迟提交(授权游戏)
• _直到下一届 DevJam 发布日期前仍可符合资格!_ |
+| 1 | 延迟提交(合作、改版、原型、演示、子集、自制游戏、非授权) |
+
+## 季度目标
+
+虽然主要目标是推广大量成就集,但我们还可以共同完成次要目标。若达成目标,将向**参与达成者**发放奖励积分。以达成成就集数量为目标的季度目标,在达成后仍会向每位完成成就集的开发者发放奖励积分。请参阅[此处](https://docs.google.com/spreadsheets/d/e/2PACX-1vQj7NMC0nI5DVx9f4emGC3K5zY-8NjKuFPeuAgQ4g0u_8Rbx5oEqByn3zAK-T5XGN9H_g0eziQwuebA/pubhtml?gid=1785919847&single=true)的世嘉土星目标。
+
+## 统计
+
+_截至 2023-10-01(开始日期)_
+
+- 当前成就集数量:65
+ - 61 款授权游戏、1 个子集、2 款自制游戏、1 款演示
+- 当前成就数量:3,505 个,价值 29,853 分
+- 当前排行榜数量:348
+
+_截至 2024-01-31(结束日期)_
+
+- 当前成就集数量:128
+ - 117 款授权游戏、7 个子集、2 款自制游戏、1 款原型、1 款演示
+- 当前成就数量:6,370 个,价值 53,047 分
+- 当前排行榜数量:869
+
+## 另见
+
+- [DevJam 主页面](/zh/developer-docs/devjam)
+- [DevJam Vol. 1 活动入口](https://retroachievements.org/game/20000)
+- [DevJam Vol. 2 活动入口](https://retroachievements.org/game/30000)
+- [DevJam 论坛主题](https://retroachievements.org/viewtopic.php?t=22368)
diff --git a/docs/zh/developer-docs/devjam/3-pce.md b/docs/zh/developer-docs/devjam/3-pce.md
new file mode 100644
index 00000000..7e63d683
--- /dev/null
+++ b/docs/zh/developer-docs/devjam/3-pce.md
@@ -0,0 +1,59 @@
+# DevJam III(PC Engine)
+
+[[toc]]
+
+## 时间与时长
+
+- 开始日期:2024-02-01
+- 发布日期:2024-04-30
+
+## 积分系统
+
+最高可获积分:6
+
+下表详细说明 PC Engine | PC Engine CD DevJam 的可获积分:
+
+| 积分 | 提交内容 |
+| :--: | :--------------------------------------------------------------------------------------------------: |
+| 3 | 授权游戏 |
+| 2 | 合作
• _每位开发者 2 分_
• _必须平均分配_ |
+| 2 | 改版、原型、演示、子集、自制游戏、非授权游戏 |
+| 2 | 延迟提交(授权游戏)
• _直到下一届 DevJam 发布日期前仍可符合资格!_ |
+| 1 | 延迟提交(合作、改版、原型、演示、子集、自制游戏、非授权) |
+
+## 季度目标(进行中)
+
+虽然主要目标是推广大量成就集,但我们还可以共同完成次要目标。若达成目标,将向**参与达成者**发放奖励积分。以达成成就集数量为目标的季度目标,在达成后仍会向每位完成成就集的开发者发放奖励积分。请参阅[此处](https://docs.google.com/spreadsheets/d/e/2PACX-1vSor4m1GvIW4MJobgZmd1sN9GN0dVBMb93PLDkNVVV7BcE88yOYamqUiuprHEM1VAY3teC9cuT66RnA/pubhtml?gid=1785919847&single=true)的 PC Engine 和 PC Engine CD 目标。
+
+## 统计
+
+_截至 2024-02-01(开始日期)_
+
+- 当前成就集数量:
+ - PC Engine:94(85 款授权游戏、1 款非授权游戏、2 个子集、6 款自制游戏)
+ - PC Engine CD:38(35 款授权游戏、1 款非授权游戏、2 款自制游戏)
+- 当前成就数量:
+ - PC Engine:3,222 个成就,价值 33,103 分
+ - PC Engine CD:1,782 个成就,价值 15,663 分
+- 当前排行榜数量:
+ - PC Engine:225
+ - PC Engine CD:91
+
+_截至 2024-04-30(结束日期)_
+
+- 当前成就集数量:
+ - PC Engine:130(116 款授权游戏、2 款非授权游戏、4 个子集、8 款自制游戏)
+ - PC Engine CD:62(57 款授权游戏、2 款非授权游戏、1 个子集、2 款自制游戏)
+- 当前成就数量:
+ - PC Engine:4,330 个成就,价值 41,788 分
+ - PC Engine CD:2,808 个成就,价值 23,347 分
+- 当前排行榜数量:
+ - PC Engine:439
+ - PC Engine CD:163
+
+## 另见
+
+- [DevJam 主页面](/zh/developer-docs/devjam)
+- [DevJam Vol. 1 活动入口](https://retroachievements.org/game/20000)
+- [DevJam Vol. 2 活动入口](https://retroachievements.org/game/30000)
+- [DevJam 论坛主题](https://retroachievements.org/viewtopic.php?t=22368)
diff --git a/docs/zh/developer-docs/devjam/4-arcade.md b/docs/zh/developer-docs/devjam/4-arcade.md
new file mode 100644
index 00000000..9689cf5b
--- /dev/null
+++ b/docs/zh/developer-docs/devjam/4-arcade.md
@@ -0,0 +1,47 @@
+# DevJam IV(街机)
+
+[[toc]]
+
+## 时间与时长
+
+- 开始日期:2024-05-01
+- 发布日期:2024-08-31
+
+## 积分系统
+
+最高可获积分:6
+
+下表详细说明街机 DevJam 的可获积分:
+
+| 积分 | 提交内容 |
+| :--: | :------------------------------------------------------------------------------------------------------------------: |
+| 3 | Atomiswave 和世嘉 NAOMI 游戏 |
+| 2 | 其他所有游戏 |
+| 1 | 合作
• _每位开发者 1 分_
• _必须平均分配_ |
+| 2 | 延迟提交(Atomiswave 和世嘉 NAOMI 游戏)
• _直到下一届 DevJam 发布日期前仍可符合资格!_ |
+| 1 | 延迟提交(其他所有游戏) |
+
+## 季度目标(进行中)
+
+虽然主要目标是推广大量成就集,但我们还可以共同完成次要目标。若达成目标,将向**参与达成者**发放奖励积分。以达成成就集数量为目标的季度目标,在达成后仍会向每位完成成就集的开发者发放奖励积分。请参阅[此处](https://docs.google.com/spreadsheets/d/e/2PACX-1vQbyP6vzVoIrJHoLYCZG6vnZrQNkWDVSK8adw7VI602ly_vfTUFvOnmzKGC4tS_GWxfOtoRF_y8Scb5/pubhtml?gid=1785919847&single=true)的街机目标。
+
+## 统计
+
+_截至 2024-02-01(开始日期)_
+
+- 当前成就集数量:323
+- 当前成就数量:13,023 个,价值 133,339 分
+- 当前排行榜数量:1,576
+
+_截至 2024-08-31(结束日期)_
+
+- 当前成就集数量:407
+- 当前成就数量:14,973 个,价值 150,808 分
+- 当前排行榜数量:1,994
+
+## 另见
+
+- [DevJam 主页面](/zh/developer-docs/devjam)
+- [DevJam Vol. 1 活动入口](https://retroachievements.org/game/20000)
+- [DevJam Vol. 2 活动入口](https://retroachievements.org/game/30000)
+- [DevJam 论坛主题](https://retroachievements.org/viewtopic.php?t=22368)
diff --git a/docs/zh/developer-docs/devjam/5-pc88.md b/docs/zh/developer-docs/devjam/5-pc88.md
new file mode 100644
index 00000000..e077e2df
--- /dev/null
+++ b/docs/zh/developer-docs/devjam/5-pc88.md
@@ -0,0 +1,46 @@
+# DevJam V(PC-8001/PC-8801)
+
+[[toc]]
+
+## 时间与时长
+
+- 开始日期:2024-09-01
+- 发布日期:2024-11-30
+
+## 积分系统
+
+最高可获积分:6
+
+下表详细说明 PC-8001/PC-8801 DevJam 的可获积分:
+
+| 积分 | 提交内容 |
+| :--: | :------------------------------------------------------------------------------------------------------------------: |
+| 3 | 标准 PC-8801 游戏 |
+| 2 | 标准 PC-8001 游戏 |
+| 1 | 合作
• _每位开发者 1 分_
• _必须平均分配_ |
+| 2 | 延迟提交 |
+
+## 季度目标(进行中)
+
+虽然主要目标是推广大量成就集,但我们还可以共同完成次要目标。若达成目标,将向**参与达成者**发放奖励积分。以达成成就集数量为目标的季度目标,在达成后仍会向每位完成成就集的开发者发放奖励积分。请参阅[此处](https://docs.google.com/spreadsheets/d/1yrtQB-NkHEx0L_VPBFl_IZ3-F854B8woLB00CUm0w0M/pubhtml?gid=1785919847&single=true)的 PC-8001/PC-8801 目标。
+
+## 统计
+
+_截至 2024-09-01(开始日期)_
+
+- 当前成就集数量:39
+- 当前成就数量:1,157 个,价值 11,472 分
+- 当前排行榜数量:59
+
+_截至 2024-11-30(结束日期)_
+
+- 当前成就集数量:81
+- 当前成就数量:1,949 个,价值 17,692 分
+- 当前排行榜数量:179
+
+## 另见
+
+- [DevJam 主页面](/zh/developer-docs/devjam)
+- [DevJam Vol. 1 活动入口](https://retroachievements.org/game/20000)
+- [DevJam Vol. 2 活动入口](https://retroachievements.org/game/30000)
+- [DevJam 论坛主题](https://retroachievements.org/viewtopic.php?t=22368)
diff --git a/docs/zh/developer-docs/devjam/6-appleii.md b/docs/zh/developer-docs/devjam/6-appleii.md
new file mode 100644
index 00000000..52f0d254
--- /dev/null
+++ b/docs/zh/developer-docs/devjam/6-appleii.md
@@ -0,0 +1,47 @@
+# DevJam VI(Apple II)
+
+[[toc]]
+
+## 时间与时长
+
+- 开始日期:2024-12-01
+- 发布日期:2025-02-28,延长至 2025-03-16
+
+## 积分系统
+
+最高可获积分:6
+
+下表详细说明 Apple II DevJam 的可获积分:
+
+| 积分 | 提交内容 |
+| :--: | :------------------------------------------------------------------------------------------------------------------: |
+| 3 | 标准 Apple II 游戏 |
+| 2 | 自制游戏 |
+| 2 | 合作 |
+| 2 | 延迟提交(标准 Apple II 游戏) |
+| 1 | 延迟提交(自制游戏和合作) |
+
+## 季度目标(进行中)
+
+虽然主要目标是推广大量成就集,但我们还可以共同完成次要目标。若达成目标,将向**参与达成者**发放奖励积分。以达成成就集数量为目标的季度目标,在达成后仍会向每位完成成就集的开发者发放奖励积分。请参阅[此处](https://docs.google.com/spreadsheets/d/e/2PACX-1vTN6uDiwB8vTF5470_I5C-A-pStdtktxL3sbMdmoL7U3rYvR8KdR4m85PkLtawWgYxr3EtpWQYlZEa2/pubhtml?gid=1785919847&single=true)的 Apple II 目标。
+
+## 统计
+
+_截至 2024-12-01(开始日期)_
+
+- 当前成就集数量:56
+- 当前成就数量:1,283 个,价值 8,191 分
+- 当前排行榜数量:47
+
+_截至 2025-03-16(结束日期)_
+
+- 当前成就集数量:96
+- 当前成就数量:2,082 个,价值 12,731 分
+- 当前排行榜数量:83
+
+## 另见
+
+- [DevJam 主页面](/zh/developer-docs/devjam)
+- [DevJam Vol. 1 活动入口](https://retroachievements.org/game/20000)
+- [DevJam Vol. 2 活动入口](https://retroachievements.org/game/30000)
+- [DevJam 论坛主题](https://retroachievements.org/viewtopic.php?t=22368)
diff --git a/docs/zh/developer-docs/devjam/7-segacd-32x.md b/docs/zh/developer-docs/devjam/7-segacd-32x.md
new file mode 100644
index 00000000..2c585015
--- /dev/null
+++ b/docs/zh/developer-docs/devjam/7-segacd-32x.md
@@ -0,0 +1,59 @@
+# DevJam VII(世嘉 CD/32X)
+
+[[toc]]
+
+## 时间与时长
+
+- 开始日期:2025-04-01
+- 发布日期:2025-06-30
+
+## 积分系统
+
+最高可获积分:6
+
+下表详细说明世嘉 CD/32X DevJam 的可获积分:
+
+| 积分 | 提交内容 |
+| :--: | :--------------------------------------------: |
+| 3 | 授权游戏 |
+| 2 | 自制游戏/改版 |
+| 2 | 合作 |
+| 2 | 延迟提交(授权游戏) |
+| 1 | 延迟提交(其他) |
+
+## 季度目标(进行中)
+
+虽然主要目标是推广大量成就集,但我们还可以共同完成次要目标。若达成目标,将向**参与达成者**发放奖励积分。以达成成就集数量为目标的季度目标,在达成后仍会向每位完成成就集的开发者发放奖励积分。请参阅[此处](https://docs.google.com/spreadsheets/d/e/2PACX-1vQBjCQIp7tKJVLVjy7E8vKB5EX8QrhNoewPube5mPgaofdmdmGOrVUBSn1znasRfU55KhsYAC8XhRyi/pubhtml?gid=1501088985&single=true)的世嘉 CD/32X 目标。
+
+## 统计
+
+_截至 2025-04-01(开始日期)_
+
+- 当前成就集数量:
+ - 世嘉 CD:51(47 款授权、2 款自制、1 款改版、1 款原型)
+ - 世嘉 32X:23(15 款授权、2 款改版、1 款自制、5 款原型)
+- 当前成就数量:
+ - 世嘉 CD:2,202 个,价值 18,483 分
+ - 世嘉 32X:820 个,价值 7,177 分
+- 当前排行榜数量:
+ - 世嘉 CD:192
+ - 世嘉 32X:172
+
+_截至 2025-06-30(结束日期)_
+
+- 当前成就集数量:
+ - 世嘉 CD:79(75 款授权、2 款自制、1 款改版、1 款原型)
+ - 世嘉 32X:34(22 款授权、4 款改版、3 款自制、5 款原型)
+- 当前成就数量:
+ - 世嘉 CD:2,983 个,价值 24,289 分
+ - 世嘉 32X:1,118 个,价值 9,403 分
+- 当前排行榜数量:
+ - 世嘉 CD:362
+ - 世嘉 32X:263
+
+## 另见
+
+- [DevJam 主页面](/zh/developer-docs/devjam)
+- [DevJam Vol. 1 活动入口](https://retroachievements.org/game/20000)
+- [DevJam Vol. 2 活动入口](https://retroachievements.org/game/30000)
+- [DevJam 论坛主题](https://retroachievements.org/viewtopic.php?t=22368)
diff --git a/docs/zh/developer-docs/devjam/8-msx.md b/docs/zh/developer-docs/devjam/8-msx.md
new file mode 100644
index 00000000..a3a3a50b
--- /dev/null
+++ b/docs/zh/developer-docs/devjam/8-msx.md
@@ -0,0 +1,44 @@
+# DevJam VIII (MSX)
+
+[[toc]]
+
+## 时间与持续期
+
+- 开始日期:2025-07-01
+- 发布日期:2025-09-30
+
+## 积分系统
+
+最高可获得积分:6
+
+下表列出了 MSX DevJam 可获得的积分:
+
+| 积分 | 提交类型 |
+| :--: | :----------------------------------------------------------: |
+| 3 | 授权游戏 |
+| 3 | 自制游戏[^1] |
+| 2 | Hack 改版 |
+| 2 | 合作开发 |
+| 2 | 逾期提交(授权游戏/自制游戏) |
+| 1 | 逾期提交(其他) |
+
+[^1]: 小型游戏或各平台都有的游戏(如 Snake、Flappy Bird 等)不计为 3 分。
+
+## 季度目标(制定中)
+
+虽然主要目标是推广大量成就集,但也有一些可以作为团队共同努力的次要目标。如果达成某个目标,参与达成该目标的成员将获得额外积分。以集数达到特定数量为重点的目标,即使在达成后,每位制作了成就集的人都将获得额外积分。点击[此处](https://docs.google.com/spreadsheets/d/e/2PACX-1vTTr2fhR-rgTfKTg6h3Mf2vM3O9-jGhmCCniIvDYY0fVNX5Jx9PDwXvju18Mc_pZqojqHia2N4SbfT-/pubhtml)查看 MSX 目标。
+
+## 统计数据
+
+_截至 2025-07-01(开始日期)_
+
+- 当前成就集数量:53(35 个授权游戏、15 个自制游戏、3 个未授权游戏)
+- 当前成就数量:1,443 个,共计 11,901 点
+- 当前排行榜数量:186
+
+## 另请参阅
+
+- [DevJam 主页面](/zh/developer-docs/devjam)
+- [DevJam Vol. 1 活动入口](https://retroachievements.org/game/20000)
+- [DevJam Vol. 2 活动入口](https://retroachievements.org/game/30000)
+- [DevJam 论坛主题](https://retroachievements.org/viewtopic.php?t=22368)
diff --git a/docs/zh/developer-docs/devjam/9-catch-up.md b/docs/zh/developer-docs/devjam/9-catch-up.md
new file mode 100644
index 00000000..006cf452
--- /dev/null
+++ b/docs/zh/developer-docs/devjam/9-catch-up.md
@@ -0,0 +1,54 @@
+# DevJam IX (Catch-Up)
+
+[[toc]]
+
+## 时间与持续期
+
+- 开始日期:2026-02-01
+- 发布日期:2026-04-30
+
+## 积分系统
+
+最高可获得积分:6,或距离 50 分的差值,取较小者。
+
+下表列出了 Catch-Up DevJam 可获得的积分:
+
+| 积分 | 提交类型 |
+| :--: | :----------------------------------------------------------: |
+| 4 | 授权 Saturn RPG |
+| 3 | 标准 Apple II 游戏 |
+| 3 | 授权 MSX 游戏 |
+| 3 | 标准 PC-8801 游戏 |
+| 3 | 授权 PC Engine (CD) 游戏 |
+| 3 | 授权 Saturn 游戏 |
+| 3 | 授权 Sega CD 游戏 |
+| 3 | Atomiswave 和 Sega NAOMI 游戏 |
+| 2 | 其他授权游戏 |
+| 2 | 自制游戏、Hack 改版等 |
+| 2 | 合作开发(3 分游戏) |
+| 1 | 合作开发(2 分游戏) |
+| 1 | 逾期提交 |
+
+## 季度目标
+
+本次 DevJam 为补赛期间,没有特别目标。
+
+符合条件的平台列表如下:
+
+- Apple II
+- Arcade
+- MSX
+- PC-8001/PC-8801
+- PC Engine
+- PC Engine CD
+- Sega 32X
+- Sega CD
+- Sega Saturn
+- Sega SG-1000
+
+## 另请参阅
+
+- [DevJam 主页面](/zh/developer-docs/devjam)
+- [DevJam Vol. 1 活动入口](https://retroachievements.org/game/20000)
+- [DevJam Vol. 2 活动入口](https://retroachievements.org/game/30000)
+- [DevJam 论坛主题](https://retroachievements.org/viewtopic.php?t=22368)
diff --git a/docs/zh/developer-docs/devquests.md b/docs/zh/developer-docs/devquests.md
new file mode 100644
index 00000000..8e6092bb
--- /dev/null
+++ b/docs/zh/developer-docs/devquests.md
@@ -0,0 +1,490 @@
+# DevQuest
+
+[[toc]]
+
+## 什么是 DevQuest?
+
+DevQuest 是开发者可随时参与的成就开发相关任务。每项任务都有特定目标,达成目标后,成就开发者将获得徽章。
+
+## 通用规则
+
+除各项任务规则中明确规定的例外情况外,各类任务均遵循以下通用规则:
+
+- DevQuest 不面向初级开发者开放。
+- 要获得任务积分,需在完成后的**一周内**通过 Discord [`#devquest`](https://discord.com/channels/310192285306454017/842845740078334002) 频道 @ 团队,或通过[站内消息](https://retroachievements.org/messages/create?to=DevQuest)发送相应成就页面链接。
+- 默认不允许合作与子集。
+- 若您正在开发的游戏集符合 DevQuest 资格,但已完成 50% 以上的工作,则不能使用。这可能发生在:新任务推出时、游戏集收到足够请求符合 [DQ7](#007-most-wanted) 资格时,或游戏集在 Wish This Set 中展示从而符合 [DQ16](#_016-wish-this-set) 资格时。若您在完成**不到**一半时遇到此情况,请联系团队确认资格。
+
+类型特定规则:
+
+**游戏集创建**
+
+- 一个游戏集只能计入一项任务。例如,若您为日本独占、女性主角且曾在 Wish This Set 中展示的游戏制作游戏集,您必须在 [DQ8](#_008-world-traveler)、[DQ16](#0_16-wish-this-set) 和 [DQ24](#_024-she-s-got-this) 中选择其一,不能同时获得三项。
+- DevQuest 游戏集需达到标准质量或更高。若游戏集看起来投入不足,DevQuest 团队可自行决定拒绝。DevQuest 游戏集必须包含 Rich Presence。DevQuest 团队乐于就如何改进以符合资格提供建议。
+
+**维护**
+
+- 您不能是所维护游戏集的原作者。
+- 适用通用修订规则:联系您将更新或添加内容的游戏集的活跃作者。此外,添加新成就时需要讨论、开发者投票和修订认领。
+- 每项操作只能计入一项任务。例如,若您为 [DQ2](#_002-retro-renovator) 修复游戏集,解决工单属于该任务的一部分,因此这些工单不能计入 [DQ1](#_001-ticket-massacre)。但某些游戏集可通过不同独立操作获得多项 DevQuest 积分。若您添加 Rich Presence、排行榜并修订游戏集以覆盖此前缺失的内容,则可获得 DQ13、DQ14 和 DQ22 的积分。
+- 对于修订任务([DQ2](#_002-retro-renovator)、[DQ13](#_013-complete-me) 和 [DQ22](#0_22-this-belonged-in-a-museum) Dust-offs),游戏需在批准列表中。您可在开始工作前提议认为应符合条件的游戏,团队将判定是否符合。虽然 [DQ13](#_013-complete-me) 积分有时可与 [DQ2](#_002-retro-renovator) 或 [DQ22](#_022-this-belonged-in-a-museum) 同时获得,但这需经团队投票决定,且仅当现有内容与缺失内容均需大量工作时才允许。
+- 更新任何资产的逻辑时,请在游戏官方论坛保留旧逻辑的备份以供参考。
+- 对于杂项维护任务([DQ1](#_001-ticket-massacre)、[DQ3](#_003-singles-in-your-area)、[DQ5](#_005-trigger-happy) 和 [DQ14](#_014-laudable-leaderboards)),在 DevQuest Remastered 表格中已完成条目的左侧创建一列并填写。仅在完成任务后联系 DevQuest 团队进行审核。对于可重复的任务,该列的一行将用于记录您正在争取的徽章编号。
+
+**Legacy**
+
+Legacy 任务([DQ4](#_004-veteran-developer)、[DQ15](#_015-console-conqueror) 和 [DQ20](#_020-genre-conqueror))完全追溯有效,授予拥有广泛作品集的开发者。
+
+- 您可在达到各项任务规则中规定的最低门槛后请求被追踪。
+- 首次追踪请求后,更新将定期批量进行;这意味着您不必(也不应)每次完成新游戏集时都 @ 团队。每隔几个月,负责该任务批量更新的开发者将更新所有被追踪者的状态,并在 [`#devquest`](https://discord.com/channels/310192285306454017/842845740078334002) 中公布进度。
+
+## 任务列表
+
+### 001 [Ticket Massacre](https://retroachievements.org/game/15940)
+
+
+
+**类型**:维护
+**目标**:解决/关闭 50 个工单
+**可重复**:是(最多 4 次)
+
+1. 虚假关闭工单将导致取消资格。
+2. 以下不计入总数:网络问题、您开发的成就的工单、您提交的工单、代表初级开发者关闭的工单,以及因工单刷屏而关闭的工单。
+3. 被禁止开发的用户的工单计双倍积分。
+4. 作为 DQ2 和 DQ22 完整 dust-off 等其他维护任务的一部分解决的工单不能用于 DQ1。
+5. DQ1 及其续作中最多可使用 10 个“不支持的模拟器/核心”工单。若您已以此方式关闭 10 个,则不再计入此类。DQ 团队将在追踪表中用紫色高亮这些工单。
+
+### 002 [Retro Renovator](https://retroachievements.org/game/15957)
+
+
+
+**类型**:修订、维护
+**目标**:修复提供的批次中的 3 个游戏集
+**可重复**:是(最多 3 次)
+
+1. 从批准的 DQ2 游戏列表中选择游戏,然后在 Discord 的 [`#devquest`](https://discord.com/channels/310192285306454017/842845740078334002) 频道发布认领,或发送至 DevQuest 收件箱。
+2. 按正常修订流程进行:在论坛发布计划,若有变更不在“无需批准列表”上则进行修订投票,若添加成就则进行修订认领。
+3. 解决保留在游戏集中的成就的任何未解决工单。对于将被降级的成就的工单,可简单关闭并注明降级原因。
+4. 修订必须修复维修计划中规定的所有内容。如有任何澄清,请联系 DevQuest 团队。
+5. 如有任何问题请联系 DevQuest 团队。
+6. 游戏集准备就绪后,在文档中您的名下标记,等待 DevQuest 成员签核。
+
+- 若您认为某游戏集应符合 DQ2 资格,请在认领前通知 DevQuest 团队将其加入列表并制定维修计划。所有认领必须在列表中。
+
+### 003 [Singles in Your Area](https://retroachievements.org/game/15953)
+
+
+
+**类型**:维护
+**目标**:收紧 20 个单条件成就的逻辑
+**可重复**:否
+
+1. 这是收紧代码的机会。不要只是添加一行糟糕的代码。
+2. 收紧此类逻辑不需要修订投票。
+3. 成就不能是您自己的,您本就应该修复这些!
+4. 您必须在每个成就上或论坛中评论您所做的更改以供记录。
+
+### 004 [Veteran Developer](https://retroachievements.org/game/15947)
+
+
+
+**类型**:Legacy
+**目标**:完成一系列特殊目标
+**加入**:为第 6 项请求对您的一个游戏集进行代码审查
+
+1. 已发布至少 1000 个成就,并作为唯一或主要开发者参与至少 25 个游戏集。
+2. 已为至少十个不同的系统 ID 创建成就。
+3. 作为活跃开发者至少**两年**。
+4. 至少 85% 的游戏集具有动态 Rich Presence(_Vet Dev I 要求_)。
+5. 已产生的解锁超过 50,000 次。
+6. 作为唯一开发者,提交一个或多个游戏集进行代码审查,并获得至少 22 分的总分。
+7. 已使用至少 75% 的所有当前可用标志和功能(_Vet Dev I 和 VI 要求_)。
+8. 已获得至少两个 DevQuest 徽章。
+9. 通过 DevQuest 获得至少五个徽章。
+
+::: warning 注意
+不断演进的工具包意味着这些要求可能随时更改。
+:::
+
+### 005 [Trigger Happy](https://retroachievements.org/game/15952)
+
+
+
+**类型**:维护
+**目标**:使用 Trigger 和 Measured 标志更新 50 个成就
+**可重复**:否
+
+1. 必须**在适当的地方使用 measured 和/或 triggered**。对游戏集中所有适用的成就进行更新。不必要使用的成就不计入。若您达到 50 个且游戏集中还有更多需要更新,您必须更新游戏集的其余部分。
+2. 您可以在**自己的游戏集**中完成成就,计半积分。将两个成就放在同一行,用 / 分隔。**链接**每个成就 ID 到成就页面。
+3. 您**必须**在游戏集页面上**留下评论**说明您所做的更改以供记录。
+4. **测试所有更改**。确保触发器在应该出现时出现,在不应出现时不出现。确保成就仍能在预期时触发。
+5. **订阅**已更新游戏集的工单,以便捕获任何 `Trigger` 或 `Measured` 相关工单。
+
+### 006 [The Unwanted](https://retroachievements.org/game/15907)
+
+
+
+**类型**:游戏集创建
+**目标**:为随机分配给您的冷门系统开发游戏集
+**可重复**:否
+
+**符合资格的系统**:
+
+- PC Engine CD
+- Sega CD
+- 32X
+- Atari Lynx
+- Neo Geo Pocket/Neo Geo Pocket Color
+- Atari Jaguar
+- Apple II
+- 3DO Interactive Multiplayer
+- ColecoVision
+- Intellivision
+- PC-8800/PC-8000
+- Atari 7800
+- Wonderswan/Wonderswan Color
+- Magnavox Odyssey 2
+- PC-FX
+- Amstrad CPC
+- Arduboy
+- WASM-4
+- Nintendo DSi
+
+::: warning 注意
+除非这些是唯一没有游戏集的游戏类型,否则不允许 hack 或 homebrew。
+:::
+
+1. 必须是完整游戏集,而非仅进度。制作不完整游戏集的开发者将被拒绝徽章。
+2. 您可以重抽一次。重抽需在轮盘旋转后三个月才能进行。
+3. 有任务可恢复您的重抽。详见 [Wheel Spin DevQuest 规则](#wheel-spin-devquest-rules)。
+
+### 007 [Most Wanted](https://retroachievements.org/game/17758)
+
+
+
+**类型**:游戏集创建
+**目标**:为最受请求的游戏之一开发游戏集
+**可重复**:否
+
+::: info 游戏集资格
+认领时,游戏必须位于最新一期 RANews 的 Most Wanted 部分。
+:::
+
+1. RANews 主机特定奖励部分中列出的游戏仅在其展示当月有资格认领,但游戏集不必在同一月发布。
+
+### 008 [World Traveler](https://retroachievements.org/game/15918)
+
+
+
+**类型**:游戏集创建
+**目标**:为两款从未有英文版的游戏开发游戏集
+**可重复**:否
+
+::: info
+英文版指在美国、加拿大、英国或澳大利亚以英文发布的游戏。
1. 所有预期用于此任务的认领必须遵循正常流程。
+:::
+
+1. 必须是完整游戏集。Progression Only 中心的填充内容不计入。
+2. 英文翻译补丁不会使游戏失去此任务资格。
+3. Hack 和 homebrew 不计入任务。未授权作品只要不是明显的盗版移植或另一款游戏的 hack,可计入。如有疑问请询问!
+4. 若游戏在某个系统上有英文版,但移植到另一系统时没有英文版,可为无英文版系统上的移植授予半积分。
+5. 仅在不受支持的系统上以英文发布的游戏将获得全额积分。
+
+### 009 [Launch Party!](https://retroachievements.org/game/15937)
+
+
+
+**类型**:游戏集创建
+**目标**:在 RA 支持新系统后的 6 个月内为其开发游戏集
+**可重复**:否
+
+- 必须是完整游戏集(在游戏能力范围内,参见 Watara vs PSP)
+- 较小系统可能被判定为不符合资格
+
+#### 当前 Launch Party 推广窗口:
+
+- Nintendo Wii
+
+### 010 [It Takes Two](https://retroachievements.org/game/15939)
+
+
+
+**类型**:游戏集创建
+**目标**:与其他开发者合作发布两个合作游戏集
+**可重复**:否
+
+1. 游戏集必须由每位开发者公平分担工作——例如,80%/20% 等极端分配不允许获得积分。
+2. 必须是完整游戏集,涵盖游戏的每个方面。
+3. 每位开发者必须至少发布 20 个成就。
+
+- 对于合集,若您为合集中的一款或多款游戏制作完整游戏集,则此要求可豁免。
+
+4. 成就必须有意义,不能为满足要求而填充。
+
+### 011 [The Genesis of RA](https://retroachievements.org/game/1280)
+
+
+
+**类型**:游戏集创建
+**目标**:为 Sega Genesis/Mega Drive 开发游戏集,庆祝 RA 首个成就周年
+**可重复**:否
+
+1. 必须是完整游戏集或重大/显著修订。
+2. Sega CD 和 Sega 32X 游戏不符合资格。
+3. 不允许原型或 hack。
+4. 允许合作,只要工作分配明显。
+
+### 012 [Hacker's Habit](https://retroachievements.org/game/672)、[Hack at it Again](https://retroachievements.org/game/32908)
+
+ 
+
+**类型**:游戏集创建
+**目标**:为两个稳健的 hack 创建新游戏集
+**可重复**:是(最多 2 次)
+
+1. 用于此任务的游戏集必须完整,涵盖 hack 特有的所有重要内容。
+2. 可接受的 hack 必须是彻底改变关卡设计的完整改造,或引入极大改变游戏进程方式的新机制。
+3. Meme hack、单关 hack 和其他小型修改不符合资格。
+4. 较小的 hack 可能仅获得半积分。
+5. 每个系列限一个完整游戏积分。例如:若您为大型 SMW hack 获得完整游戏积分,则不能为 Mario 64 hack 获得任何积分。若您做了小型 Mega Man 2 hack,则最多可为 Mega Man 3 hack 获得半积分,等等。
+ - 这包括续作任务。续作任务不能重复使用此系列早期任务中的系列。
+
+### 013 [complete.me](https://retroachievements.org/game/795)
+
+
+
+**类型**:修订、维护
+**目标**:为三个仅进度或因不完整而被降级的游戏集提供重要内容
+**可重复**:是(最多 3 次)
+
+1. 从提供的列表中选择或从中心获取,开始前请告知我们以便标记!
+2. 必须按常规进行修订流程!
+3. 请认真对待游戏集,不要只是扔一堆填充内容。
+4. 如有任何问题或建议,请随时联系我们
• 此任务可多次完成(当前限制:3 次)
+
+### 014 [Laudable Leaderboards](https://retroachievements.org/game/862)
+
+
+
+**类型**:维护
+**目标**:为 10 款目前缺少排行榜的游戏创建排行榜
+**可重复**:否
+
+1. 适用时覆盖不同游戏模式/难度。
+2. 尝试覆盖对游戏有意义的排行榜。一些示例:
+ - 对于街机类游戏,仅添加高分排行榜即可,可能还有单命最高分
+ - 对于竞速游戏,赛道的计时赛是标准
+ - 平台游戏的速通
+ - 追踪高分或时间的小游戏是好选择
+ - 等等。如有关于特定游戏的问题请联系我们
+3. 您可以为自己的游戏集获得半积分,只要它们在此 DevQuest(2022-03-02)之前发布。
+4. 您必须在游戏集页面上留下评论说明您添加的内容以供记录。
+5. 通常覆盖没有任何排行榜的游戏集,但若游戏集只有几个排行榜且明显缺少应有的,也符合资格。
+
+### 015 [Console Conqueror](https://retroachievements.org/game/809)
+
+
+
+**类型**:Legacy
+**目标**:为 RetroAchievements 上每个受支持的系统发布游戏集
+**加入**:为 10 个受支持系统开发游戏集,并通过联系团队请求追踪
+
+:::info 持续增长
+每个系统 ID 将有关联的成就。新受支持的系统 ID 意味着新成就!
+:::
+
+1. Meme 游戏集可由 DevQuest 团队自行决定不计入。
+2. 做同类型游戏集(如全是 Flappy Bird 克隆)只计为一个系统。
+3. 解锁的唯一要求是您是该系统 ID 上游戏集的唯一或主要开发者。合作需要至少制作 20 个成就。
+4. 对于更稀缺的系统,具体要求在成就本身中。
+5. 此 DevQuest 100% 追溯有效!您作品的潜在未来修订不会对您不利,所以不用担心失去解锁资格。
+
+### 016 [Wish This Set](https://retroachievements.org/game/2962)
+
+
+
+**类型**:游戏集创建
+**目标**:为曾在 RANews 的 Wish This Set 功能中展示且核心中目前没有游戏集的游戏发布游戏集
+**可重复**:是(最多 2 次)
+
+1. 允许合作,只要双方对游戏集贡献相等,每人至少 20 个成就。
+2. 必须是包含游戏所有内容和适当挑战的完整游戏集。
+3. 撰写 Wish This Set 的人不能是制作游戏集的开发者之一。
+4. 任务全年开放,每期 RANews 都会有新游戏符合资格。
+5. 若在游戏符合此 DevQuest 资格时您已有认领,则必须进度低于 50% 才能计入。
+6. 游戏一旦被展示,将保持资格直到游戏获得游戏集。
+
+### 017 [RA World Cup](https://retroachievements.org/game/15942)
+
+
+
+**类型**:游戏集创建
+**目标**:为两款不同的体育游戏发布 2 个游戏集,其中 1 款必须是实体体育
+**可重复**:否
+
+1. 这意味着两个游戏集必须是**不同的体育**。您不能做两款棒球或两款足球。
+2. 必须是包含游戏所有内容和适当挑战的完整游戏集。
+3. 不允许 Homebrew/Hack/未授权。
+4. 仅限新游戏集。不允许多人子集或修订。
+5. 若资格有疑问,其他选择需经 DQ 团队批准。
+6. 合作必须经 DevQuest 团队批准;通过合作完成的游戏必须有足够的内容或模式来证明符合资格。
+
+### 018 [Subset Station](https://retroachievements.org/game/22564)
+
+
+
+**类型**:游戏集创建
+**目标**:发布 2 个子集
+**可重复**:否
+
+1. 阅读 [子集](/zh/guidelines/content/subsets) 文档以了解更多关于子集的信息。
+2. 默认未批准的子集类型始终需要开发者合规批准。通过[向 DevCompliance 发送站内消息](https://retroachievements.org/createmessage.php?t=DevCompliance&s=Subset%20Approval%20Request%20-%20[Game%20Name]%20-%20[Subset%20Name])寻求批准。尽可能详细说明为什么这是一个好的子集想法。
+3. 若您不是游戏核心游戏集的作者,您需要通过子集计划的修订投票。此外还需要任何必要的开发者合规批准。
+4. 子集必须**来自两款不同的游戏**,但可以来自同一系列。
+5. 子集必须是**两种不同类型的子集**(即不能做两个 Bonus 集,不能做两个 Professor Oak Challenge 等)。
+6. 与核心游戏集同时制作的子集是允许的,但您只能以这种方式完成一个子集。
+
+### 019 [Wheel of Genres](https://retroachievements.org/game/22565)
+
+
+
+**类型**:游戏集创建
+**目标**:根据 Wheel of Genres 旋转结果,为特定类型或子类型的游戏开发游戏集!
+**可重复**:否
+
+1. 所选游戏应有相当数量的内容。短 hack、homebrew 和 demo 等小型游戏可由 DevQuest 团队自行决定拒绝。如有疑问,在 @ 选择任务游戏时询问。
+2. 您可以重抽一次。重抽需在轮盘旋转后三个月才能进行。
+3. 有任务可恢复您的重抽。详见 [Wheel Spin DevQuest 规则](#wheel-spin-devquest-rules)。
+
+### 020 [Genre Conqueror](https://retroachievements.org/game/25672)
+
+
+
+**类型**:Legacy
+**目标**:为每个类型发布游戏集!
+**加入**:为 5 个不同类型的游戏发布游戏集,复制[此处](https://docs.google.com/spreadsheets/u/0/d/1rqYm7q1qh0kl-5qln9SdrNnSMSmZ4TBnpxrlx3TOpJw/edit)链接的加入 Google 表格并提交给团队
+
+1. 此 DevQuest 100% 追溯有效!您作品的潜在未来修订不会对您不利,所以不用担心失去解锁资格。
+2. 此任务使用的类型是主要类型中心。我们会联系您询问首选类型。
+3. 若游戏集属于多个顶级类型,我们会询问您为该游戏集计哪个类型;若之后您做了该类型,可要求我们将游戏集重新分配到另一类型。
+4. 请填写您希望获得积分的所有游戏集的 Genre 字段,并分配到正确的中心。未填写 Genre 字段的游戏集将被跳过。
+5. 虚假填写类型或子类型字段将禁止您参与此 DevQuest。
+6. 唯一或主要开发者将获得积分。若是合作,即使不是主要开发者,达到 20 个成就也可获得积分。
+7. 排除类型:Other 和 Literature。
+8. 新增类型:Party 和 Minigame 子类型合并为 Party or Minigames 类型
+
+### 020 子集 [Subgenre Conqueror](https://retroachievements.org/game/25673)
+
+
+
+**类型**:Legacy
+**目标**:为每个子类型发布游戏集!
+**加入**:为 15 个不同子类型的游戏发布游戏集,复制[此处](https://docs.google.com/spreadsheets/u/0/d/1rqYm7q1qh0kl-5qln9SdrNnSMSmZ4TBnpxrlx3TOpJw/edit)链接的加入 Google 表格并提交给团队。通常与 DQ20 Genre Conqueror 一起处理
+
+1. 此 DevQuest 100% 追溯有效!您作品的潜在未来修订不会对您不利,所以不用担心失去解锁资格。
+2. 此任务使用的类型是子类型中心。
+3. 若游戏集属于多个子类型,全部计入。例外:合集仅计 Subgenre - Compilation。
+4. 请填写您希望获得积分的所有游戏集的 Genre 字段,并分配到正确的中心。未填写 Genre 字段的游戏集将被跳过。
+5. 虚假填写类型或子类型字段将禁止您参与此 DevQuest。
+6. 唯一或主要开发者将获得积分。若是合作,达到 20 个成就也可获得积分,即使不是主要开发者。
+7. 排除子类型:4X、Pachinko、Specific Extreme Sports 子类型(各计 Subgenre - Extreme Sports)、Board Games 和 Card Games 的子类型(各计其 Board Game 或 Card Game 子类型父级)、Literature 子类型。
+8. 子集不计入,除非经 DevQuest 批准。@ DevQuest 团队请求批准。
+
+### 021 [Homebrew Heaven](https://retroachievements.org/game/25677)
+
+
+
+**类型**:游戏集创建
+**目标**:为三款 homebrew 游戏发布新游戏集!
+**可重复**:否
+
+1. 用于此任务的游戏集必须完整,涵盖 homebrew 游戏特有的所有重要内容。
+2. Homebrew 系统(如 WASM-4、Arduboy 和 Uzebox)的游戏集计半积分。
+3. 允许合作。仅对游戏集中有 20 个或更多成就的合作者给予积分。经 DQ 团队自行决定,过度膨胀的游戏集可能不被允许。
+4. 与您已做过的本质上相同的 homebrew 不计入(即多个 Flappy Bird 克隆只能获得一次积分)
+5. 每个大型 homebrew 合集最多一个游戏集(即允许一个 Net Yaroze 2014 Collection 游戏集)
+
+### 022 [This Belonged in a Museum!](https://retroachievements.org/game/25678)
+
+
+
+**类型**:修订、维护
+**目标**:通过 dust-off 旧游戏集,使其达到当前 RA 标准,获得 12 积分
+**可重复**:否
+
+1. 达到目标 12 积分后任务完成。
+ - 完整游戏集 Dust-Off = 4 积分
+ - 杂项任务 = 1 积分
+ - 徽章至少需要一个游戏集 dust-off。
+2. 完整游戏集 Dust-Off:清理旧代码注释、更新成就逻辑以符合现代最佳实践(例如移除不必要的 Hits 和 Reset 以使用 Delta 检查)、更新更清晰的徽章、更新描述和成就标题、新动态 RP。
+3. 杂项任务:更新游戏集以将其从以下 QA 中心移除。不与完整游戏集清理叠加。
+ - [No Dynamic RP](https://retroachievements.org/game/3083)
+ - [Player-Input RP](https://retroachievements.org/game/28506)
+ - [Single Save Support](https://retroachievements.org/game/28449)
+ - [Outdated Version](https://retroachievements.org/hub/29482)
+ - 若您认为某游戏集应符合此类任务资格,只需向团队请求批准。为 hack、homebrew 或语言补丁的更新版本提供支持,若更新需要实际逻辑更新和/或添加成就以覆盖新增内容,将获得 1 积分,无论是否被标记为过时。
+4. 不允许合作。
+5. 游戏集需经 DevQuest 团队批准,以及关于 dust-off 内容的小计划。已在批准的 DQ22 列表中的游戏集不需要批准,只需通知。
+6. 徽章更新需经过 Icon-Gauntlet 修订流程。
+7. 修订规则照常适用,意味着若您只清理逻辑而不改变成就范围,则不需要修订。
+8. 开发者 2024 年之前制作的自己的游戏集在完整 Dust-Off 上有资格获得半积分。与未预先批准的游戏集一样,需要发送给 DevQuest 团队批准。
+
+### 023 [Well of Wishes](https://retroachievements.org/event/170-devquest-023-well-of-wishes)
+
+
+
+**类型**:游戏集创建
+**目标**:为随机选择的活跃用户的请求列表中的游戏开发游戏集!
+**可重复**:否
+
+1. 所选游戏应有相当数量的内容。短 hack、homebrew 和 demo 等小型游戏可由 DevQuest 团队自行决定拒绝。如有疑问,联系 DevQuest 团队询问。
+2. 您可以重抽一次。重抽需在轮盘旋转后三个月才能进行。
+3. 有任务可恢复您的重抽。详见 [Wheel Spin DevQuest 规则](#wheel-spin-devquest-rules)。
+4. 符合资格的用户列表及其当前请求列表将定期拉取。
+5. 随机选择时将对旋转用户的最近记录请求列表进行快照。游戏选择将仅针对此列表进行验证。
+ - 您可以在 DevQuest Sheets 文档的 `Quest23: Elligible Games Lists` 表格中查看此列表。
+6. 您可以与其他参与者交换列表。所有参与者必须确认交换才能执行。允许多方交换(三名或更多开发者)。交换将重置您的三个月重抽计时器。
+
+### 024 [She's Got This!](https://retroachievements.org/event/186-devquest-024-shes-got-this)
+
+
+
+**类型**:游戏集创建
+**目标**:发布两个以女性角色为主要主角的新游戏集!
+**可重复**:否
+
+1. 用于此任务的游戏集必须完整,涵盖游戏特有的所有重要内容。
+2. 允许 Hack,但原版游戏**不得**以女性角色为主要主角。
+ - 小型 hack 的游戏集计半积分。
+3. 允许 Homebrew
+ - 小型 homebrew 游戏的游戏集计半积分。
+ - 最多 1 积分可来自 homebrew。
+4. 允许合作。作为合作完成的游戏集,任何获得此任务积分的合作者计半积分。
+5. 主要主角必须在游戏中某处被明确识别为女性角色。
+ - 没有明确单一主角的游戏是允许的,只要推动故事、情节或游戏行动的主角中的明显多数(即约 2/3)被明确识别为女性角色。
+ - 担任此类主角角色的任何角色应是玩家可控制的。
+ - 玩家创建化身的游戏不将化身计为女性主角,除非化身必须为女性。
+ - 如有疑问,请联系 DevQuest 团队。
+6. 每积分(相当于一个游戏集)必须有不同的女性角色作为主角(或不同的女性角色组合)
+
+## Wheel Spin DevQuest 规则
+
+[DQ6](#_006-the-unwanted)、[DQ19](#_019-wheel-of-genres) 和 [DQ23](#_023-well-of-wishes) 使用轮盘给出随机目标。您可以在旋转后**三个月**再次旋转以更改随机目标。每个任务的前两次旋转是免费的。若想继续旋转,您需要通过完成以下任务之一获得新的重抽代币:
+
+- 解决(非关闭)10 个来自不活跃开发者的工单(可用于 [DQ1](#_001-ticket-massacre) Ticket Massacre)
+- 获得 [DQ3](#_003-singles-in-your-area) Singles in Your Area
+- 为 [DQ5](#_005-trigger-happy) Trigger Happy 更新 10 个成就
+- 获得 [DQ2](#_002-retro-renovator) Retro Renovator 或 [DQ13](#013-complete-me) complete.me 的 1 积分
+- 为 [DQ16](#_016-wish-this-set) Wish This Set 制作游戏集
+
+以此方式刷新旋转只能在您的旋转用完后进行。例如,您不能使用旋转前制作的旧 Wish This Set 游戏。
+
+## 新 DevQuest 与建议
+
+- 新任务将定期推出。没有固定时间表。
+- 若有 DevQuest 建议,请向 DevQuest 账户发送包含以下信息的消息:
+ - **任务名称**
+ - **奖励类型** - 若有特定目标则选择徽章奖励。若有多个目标则选择成就奖励。
+ - **游戏类型** - 说明是否允许 hack、homebrew、原型、未授权和/或子集。
+ - **目标** - DevQuest 的简要描述。例如:“为某某系统开发游戏集”、“开发节日主题游戏集”、“为 10 款游戏创建动态 Rich Presence”等。
+ - **规则** - 列出提交必须满足的任何具体指南和标准。有最低成就数吗?有导致半积分的次要例外吗?提交需要预先批准吗?越简单越好!
diff --git a/docs/zh/developer-docs/difficulty-scale-and-balance.md b/docs/zh/developer-docs/difficulty-scale-and-balance.md
new file mode 100644
index 00000000..ac9edd4a
--- /dev/null
+++ b/docs/zh/developer-docs/difficulty-scale-and-balance.md
@@ -0,0 +1,104 @@
+---
+title: 成就难度等级与平衡
+description: 学习如何运用详细难度等级和最佳实践,创建有趣、易上手且富有挑战性的平衡成就集。
+---
+
+# 难度等级与平衡
+
+本文档提供关于难度、成就集平衡以及保持成就集有趣、易上手且富有挑战性的建议。此处内容并非规则,仅为建议。
+
+**注意**:请了解 [开发者行为准则](/zh/guidelines/developers/code-of-conduct)
+
+## 难度等级:
+
+0. 白送
+1. 简单
+2. 中等
+3. 中难
+4. 困难
+5. 很难
+6. 超难
+
+更多详情见[文末](#definitions-of-difficulty)。
+
+总体而言,难度应有平稳的梯度平衡。制作成就集时应考虑整体难度。不应使成就集过于困难。
+
+以 50 个成就的平均成就集为例,良好的平衡大致为:4 个白送、6 个简单、10 个中等、10 个中难、14 个困难、6 个很难、0 个硬核。
+
+良好平衡的难度分布能让各类玩家都有收获。为每个技能水平提供可完成的目标,直至精通。
+
+**成就不应只是通关游戏的勾选**(太简单),而应为游戏创造有趣的新回忆(挑战多样性)。
+
+为白送成就留出空间,展现游戏中有趣或好奇的元素。期望有足够难度,使精通成就集后即精通游戏。但也不应对玩家要求过高。
+
+同样不应要求玩家进行看似无止境的重复刷怪来显得成就集更难。重复同一任务并不难,通常很枯燥。应几乎始终避免制作马拉松型且末尾陡增的成就(需要长时间准备、难度低或重复,最后突然高难度。不要这样做!)。
+
+成就集应能被投入专注努力的熟练玩家所精通。
+
+成就集应反映游戏内容。在需要刷怪的游戏中有刷怪成就是合理的,但在其它游戏中往往不合适。
+
+成就集还应突破游戏常规预期,推动玩家寻找老手从未考虑过的新解法。
+
+## 成就集数量:
+
+成就集数量不应有硬性规则。质量是关键因素。
+
+成就集数量很大程度上取决于游戏能提供多少乐趣和挑战。因此成就集开发者必须非常了解游戏。
+
+## 成就集多样性:
+
+保持趣味,提供多样性,挑战玩家,让玩家尝试新事物。
+
+某些成就可以像元游戏一样给玩家带来很多乐趣,要求玩家完全重新思考游戏。
+
+一些值得注意的示例:
+
+- **[Fabulous Combo (25)](http://retroachievements.org/achievement/8939)** - 将游戏变成解谜游戏,完成它非常有满足感。
+
+- **[Swordless Adventurer (50)](http://retroachievements.org/achievement/33775)** - 无剑迫使你重新思考整个游戏。你会发现副武器有多好用。非常有趣!
+
+- **[There Are No Bullets in the Energy Zone (10)](http://retroachievements.org/achievement/6770)** - 和平主义挑战(在可能的情况下)迫使玩家更灵活并打破旧习惯。非常有趣!
+
+## 难度定义
+
+### 0 - 白送
+
+几乎所有玩家几乎不费力气即可获得,或玩家在无意识的情况下获得。玩家意外获得,成就弹出时他们可能完全不知道为什么。有些白送好,有些不好。
+
+**示例**:启动游戏、选择角色、收集易得物品、击杀第一个敌人。无意中触发的无需事先考虑的成就,但突出游戏元素。
+
+### 1 - 简单
+
+大多数玩家首次尝试即可获得,少数需二三次尝试。很少有玩家会搞砸。
+
+**示例**:简单关卡进度、获得 100 金币、收集羽毛、收集 20 个戒指。获得第一个升级、到达知名隐藏关卡、打简单 Boss:如超级马里奥世界中的大多数 Boss、完成索尼克早期关卡。
+
+### 2 - 中等
+
+许多玩家首次尝试即可获得。许多几次尝试后可获得。部分需要练习。极少数会卡关。
+
+**示例**:获得超级马里奥世界中所有彩色开关、收集恶魔城关卡中所有物品、在更隐蔽区域获得奖励物品,如 SMW 中的月亮。用科乐美秘籍通关魂斗罗。
+
+### 3 - 中难
+
+少数玩家首次尝试即可获得。部分几次尝试后可获得,大多数需要一定努力和练习才能完成。少数会觉得很有挑战性并放弃。
+
+**示例**:获得索尼克 2 中的部分混沌翡翠。通关超级马里奥世界。
+
+### 4 - 困难
+
+极少数玩家首次尝试即可获得(若已熟悉游戏,还算首次吗?)。大多数通过扎实努力、多次尝试和练习可完成,部分需先练习其它游戏。
+
+**示例**:获得索尼克 1、2、3 中所有混沌翡翠。不用科乐美秘籍通关魂斗罗。
+
+### 5 - 很难
+
+只有极少数玩家首次尝试即可完成。大多数多次尝试后可完成。许多玩家会在此止步,除非是完美主义者或游戏粉丝,否则不愿完成成就集。许多玩家即使尝试很多次也无法完成。通常需要大量练习、高技能、经验、研究或攻略才能完成。
+
+**示例**:一命通关魂斗罗。两分钟内逃离 Zebes(超级银河战士)。无伤击败许多洛克人 Boss。许多无伤关卡,视游戏而定。
+
+### 6 - 超难
+
+大多数玩家尝试数十次后仍无法完成。许多玩家永远无法完成,可能需超出常人反应速度。顶尖高手仍认为极其困难。可能需要马拉松式努力才能重试。
+
+**示例**:无伤通关游戏,尤其当玩家有血条时;大幅限制玩家并需近乎帧级精确才能成功的挑战。一命通关魂斗罗两次。Penniless plumber。无伤通关洛克人。
diff --git a/docs/zh/developer-docs/emulator-hotkeys-for-developers.md b/docs/zh/developer-docs/emulator-hotkeys-for-developers.md
new file mode 100644
index 00000000..5d94a58b
--- /dev/null
+++ b/docs/zh/developer-docs/emulator-hotkeys-for-developers.md
@@ -0,0 +1,102 @@
+---
+title: 成就开发者模拟器快捷键
+description: 成就开发者配置和使用模拟器快捷键的综合指南,包括 RALibRetro、BizHawk、PCSX2、RAMeka 等。
+---
+
+# 成就开发者模拟器快捷键
+
+### BizHawk
+
+可通过 Config > Hotkeys 对话框配置
+
+- 保存状态:`Shift+F1` - `Shift+F10`
+- 加载状态:`F1` - `F10`
+- 显示叠加层:`ESC`(`Backspace` 关闭叠加层)
+- 暂停:`Pause`
+- 逐帧前进:`F`
+- 快进(按住):`Tab`
+
+### PCSX2(使用 -raintegration 命令行参数)
+
+可通过 Settings > Hotkeys 对话框配置
+
+- 保存状态:`F1`(可通过 `Hotkeys` > `Save State to Slot X` 分配单独槽位)
+- 加载状态:`F3`(可通过 `Hotkeys` > `Save State to Slot X` 分配单独槽位)
+- 切换状态索引:`Shift+F2`(上一个)/ `F2`(下一个)
+- 显示叠加层:`ESC`
+- 暂停:`Space`
+- 逐帧前进:可通过 `Hotkeys` > `Frame Advance` 分配
+- 快进(按住):`.`
+- 快进(切换):`Tab`
+
+### RALibRetro
+
+可通过 Settings > Input > Hotkeys 对话框配置
+
+- 保存状态:`Shift+F1` - `Shift+F10`
+- 加载状态:`F1` - `F10`
+- 显示叠加层:`ESC`
+- 暂停:`P`
+- 逐帧前进:`;`
+- 快进(按住):`=`
+- 快进(切换):`-`
+
+### RAMeka
+
+- 保存状态:`F5`
+- 加载状态:`F7`
+- 切换状态索引:`F6`(上一个)/ `F8`(下一个)
+- 显示叠加层:`F12`
+- 逐帧前进:`Ctrl+F12`
+- 快进(切换):`F2`
+
+### RANes
+
+可通过 Config > Map Hotkeys 对话框配置
+
+- 保存状态:`Shift+F1` - `Shift+F10`
+- 加载状态:`F1` - `F10`
+- 显示叠加层:`Pause`
+- 逐帧前进:`\`
+- 快进(按住):`Tab`
+
+### RAProject64
+
+可通过 Options > Configuration 对话框配置(选择 Hotkeys > Game playing (windowed))
+
+- 保存状态:`F5`
+- 加载状态:`F7`
+- 切换状态索引:`1`-`0`
+- 显示叠加层:`Pause`
+- 快进(切换):`F4`(需启用高级设置:`Options` > `Configuration` > `General Settings` > 取消勾选 `Hide advanced settings`)
+
+### RAppleWin
+
+- 保存状态:`F11`
+- 加载状态:`F12`
+- 显示叠加层:`Pause`
+- 逐帧前进:`Shift+Pause`
+- 快进(按住):`ScrollLock`
+
+### RAQUASI88
+
+- 保存状态:`F12` > Misc > Save
+- 加载状态:`F12` > Misc > Load
+- 显示叠加层:可通过 `F12` > Key > Assign `PAUSE` to a function key 分配
+- 快进(按住):可通过 `F12` > Key > Assign `NOWAIT` to a function key 分配
+
+### RASnes9x
+
+- 保存状态:`Shift+F1` - `Shift+F10`
+- 加载状态:`F1` - `F10`
+- 显示叠加层:`Pause`
+- 逐帧前进:`\`
+- 快进(按住):`Tab`
+
+### RAVBA
+
+- 保存状态:`Shift+F1` - `Shift+F10`
+- 加载状态:`F1` - `F10`
+- 显示叠加层:`Pause`
+- 逐帧前进:`Ctrl+N`
+- 快进(切换):可通过 `Options` > `Key Shortcuts` > `Emulation` > `Turbo Mode` 分配
diff --git a/docs/zh/developer-docs/emulator-setup-for-developers.md b/docs/zh/developer-docs/emulator-setup-for-developers.md
new file mode 100644
index 00000000..5f5d6d77
--- /dev/null
+++ b/docs/zh/developer-docs/emulator-setup-for-developers.md
@@ -0,0 +1,134 @@
+---
+title: 成就开发者模拟器配置
+description: 了解如何为 RetroAchievements 成就开发配置模拟器。
+---
+
+# 成就开发者模拟器配置
+
+成就开发需要名为 [RAIntegration](https://github.com/RetroAchievements/RAIntegration) 的仅限 Windows 的 DLL 文件。在大多数情况下,该文件会随 [兼容模拟器](https://retroachievements.org/download.php) 捆绑提供,或在启动时自动下载,包括以下模拟器:
+
+- RALibRetro
+- RAMeka
+- RANes
+- RAP64
+- RAppleWin
+- RAQUASI88
+- RASnes9x
+- RAVBA
+- WinArcadia
+
+
+
+在其他情况下,可能需要手动配置。RAIntegration 的最新版本可从此处下载:
+
+- **https://retroachievements.org/bin/RA_Integration-x64.dll**
+
+不同模拟器的配置说明如下。
+
+## BizHawk
+
+对于 BizHawk,请确保文件命名为 `RA_Integration-x64.dll` 并将其放置在 `BizHawk/dll` 文件夹中。
+
+
+
+完成上述操作后,启动 `EmuHawk.exe`,然后进入 工具 -> RetroAchievements -> 启动 RetroAchievements。您将收到有关 BizHawk 向 RetroAchievements 发送信息的通知;如果接受,系统将要求您登录账户。然后您可以在 工具 -> RetroAchievements 下找到开发者工具,以及每次打开 BizHawk 时自动启动 RetroAchievements 的选项。
+
+
+
+## DuckStation
+
+对于 DuckStation,文件可命名为 `RA_Integration-x64.dll` 或 `RA_Integration.dll`。将其放置在 DuckStation 的主文件夹中。
+
+
+
+首次运行模拟器时,设置向导将引导您完成各种选项,包括启用和登录 RetroAchievements。否则,您可以在 工具 -> 成就 下找到这些选项。
+
+
+
+启用 RetroAchievements 并登录后,勾选“Enable RAIntegration (Development Only)”。随后将出现带有 RAIntegration 工具的菜单。
+
+
+
+注意:如果登录时遇到问题(例如 DuckStation 卡住),请尝试在禁用 RAIntegration 的情况下登录。等待登录完成后再启用它。
+
+## PCSX2
+
+PCSX2 自 v2.0.0 起在其稳定版本中支持 RetroAchievements。
+
+请确保文件命名为 `RA_Integration.dll`(不含 `-x64` 部分)并将其放置在 PCSX2 的主文件夹中。
+
+
+
+有两种方式可以启用 RAIntegration 启动 PCSX2。
+
+### 添加参数
+
+第一种方式是使用参数 `-raintegration` 启动 `pcsx2-qt.exe`。在 Windows 中,一种便捷方式是右键点击 .exe 并创建快捷方式。然后右键点击快捷方式并进入属性。在快捷方式选项卡下的目标字段中,在文件名后输入 `-raintegration`,然后点击确定。
+
+
+
+然后您可以使用此快捷方式启用 RAIntegration 启动模拟器。
+
+### 编辑配置文件
+
+此方法涉及编辑 `C:\Users\YourUsername\Documents\PCSX2\inis` 中的 `PCSX2.ini` 文件。如果看不到这些目录,您可能需要先启动模拟器以生成它们。如果您希望将这些目录保留在 PCSX2 的主文件夹中而不是文档文件夹中,可以在 PCSX2 的主文件夹中创建一个名为 `portable.txt` 的空文件。
+
+在记事本等文本编辑器中打开 `PCSX2.ini`。向下滚动到 `[Achievements]` 部分并添加行 `UseRAIntegration = true`。保存文件。
+
+
+
+RAIntegration 将在启动 `pcsx2-qt.exe` 时启用。
+
+### 开发者工具
+
+使用 RAIntegration 启用启动模拟器并登录账户后,开发者工具可在 工具 -> RAIntegration 下找到。
+
+
+
+当 RAIntegration 有更新时,打开模拟器时会询问您是否要升级。但是,请注意 PCSX2 不支持此自动升级——点击是会出现错误。您必须在更新时手动替换 `RAIntegration.dll`。
+
+## PPSSPP
+
+PPSSPP 自 1.18 版本起在其主版本中支持 RAIntegration。您可以在此处获取最新版本:
+
+- **https://www.ppsspp.org/download/**
+
+如果您想将 PPSSPP 下载为便携式应用程序,绕过安装需求,可以从此处获取开发版本之一:
+
+- **https://www.ppsspp.org/devbuilds/**
+
+运行安装程序或解压到您选择的位置后,启动 PPSSPP 并进入 设置 -> 工具 -> RetroAchievements。您可以在此处的账户选项卡下登录。在开发者工具选项卡下,您可以启用 RAIntegration。可能还需要启用非官方成就才能使用开发者工具查看它们。
+
+
+
+之后,退出 PPSSPP 并重新打开以加载 RAIntegration。RetroAchievements 将拥有自己的菜单和开发者工具。
+
+
+
+如果您获取的是开发版本,可能需要手动将 RA_Integration.dll 的副本放入文件夹。请确保其命名为 `RA_Integration.dll` 并将其放置在 PPSSPP 的主文件夹中。
+
+
+
+完成上述操作后,重启 PPSSPP,它应该能成功识别 RAIntegration。
+
+## Dolphin
+
+Dolphin 自 2503-251 版本起在其开发版本中支持 RAIntegration。
+
+文件可命名为 `RA_Integration-x64.dll` 或 `RA_Integration.dll`。将其放置在 Dolphin 的主文件夹中。
+
+
+
+选项可在 工具 -> 成就 下找到。您可以在此处启用 RetroAchievements 并登录。
+
+
+
+当 RAIntegration 文件存在于 Dolphin 的主文件夹中时,带有开发工具的菜单将自动出现在 工具 -> RetroAchievements Development 下。
+
+
+
+## 其他资源
+
+要熟悉每个模拟器的快捷键,请参阅此页面:
+
+- [成就开发者模拟器快捷键](/zh/developer-docs/emulator-hotkeys-for-developers)
diff --git a/docs/zh/developer-docs/flags/addaddress.md b/docs/zh/developer-docs/flags/addaddress.md
new file mode 100644
index 00000000..6ccd38b8
--- /dev/null
+++ b/docs/zh/developer-docs/flags/addaddress.md
@@ -0,0 +1,148 @@
+---
+title: 理解和使用 AddAddress
+description: 了解如何有效使用 AddAddress 标志来修改条件的内存地址,理解指针类型、计算偏移量以及链接指针以实现高级成就创建。
+---
+
+# `AddAddress`
+
+`AddAddress` 通过计算值修改后续条件的内存地址。它的工作方式与 [`AddSource`](/zh/developer-docs/flags/addsource) 类似,但修改的是地址而不是结果值。此外,它影响条件两侧的地址。
+
+`AddAddress` 只影响下一个条件。如果多个 `AddAddress` 行被链接在一起,链中的每个查找都会被改变;这些值不会全部被加到最终查找上。
+
+
+
+0x0112F8 处的 32 位值是指向队伍中第一个角色数据的指针。当队伍顺序改变时,指针将指向不同的内存块,但块内的数据将具有相同的结构。
+
+- 该值是实际系统表示中的地址,与内存检查器提供的地址不同。但是,你可以放心,内存检查器表示的是相同的内存,所以虽然实际地址可能不同,但字节序列不会改变。
+
+要将实际指针转换为内存检查器地址,我们比较这两个值。例如:
+
+- 0x0112F8 处的 32 位值为 0x800110B8。
+- 我们感兴趣的内存在内存检查器中位于 0x011114。
+- 使用 24 位读取而非 32 位读取可以得到 0x0110B8。
+- 0x011114 - 0x0110B8 = 0x00005C,这就成为第二个条件中的"基地址"。
+
+## 指针类型
+
+`AddAddress` 是 RAIntegration 处理指针的方式。有四种主要的指针支持类型:
+
+**直接指针**:指针包含另一个不经修改就被引用的地址。这最常用于字符串指针。要使用直接指针,指针所加的基地址应为 0。
+
+**间接指针**:指针包含另一个地址,指示某些数据块的起始位置。感兴趣的数据位于数据块中固定字节数之后。这常用于角色/对象的属性。
+
+对于直接指针和间接指针,`AddAddress` 行应引用指针,后续行中的地址应为数据块中与条件相关信息的偏移量。虽然直接指针通常使用 0,但后续行还需包含将实际地址转换为内存检查器地址所需的任何值。
+
+上面的示例是一个间接指针,数据位于数据块中 0x5C 字节处。实际地址到内存检查器地址的转换通过使用 24 位读取而非 32 位读取来处理。
+
+**数组索引**:指针包含要应用于固定指针的偏移量。
+
+**缩放数组索引**:指针包含缩放后要应用于固定指针的偏移量。
+
+对于数组索引,`AddAddress` 行应引用要应用的偏移量,后续行应包含数组第一个元素(索引 0)的地址。例如:
+
+```
+AddAddress 16-bit Mem 0x1234
+ 8-bit Mem 0x4567
+```
+
+这将从 0x1234 读取一个 16 位数,并读取 0x4567 之后相应字节数处的单个字节。
+
+要缩放数组索引,点击数组索引地址 Cmp 列中的空白处并选择 `*` 符号。然后在第二个 mem/val 列中输入每个数组项的大小。例如:
+
+```
+AddAddress 16-bit Mem 0x1234 * Value 4
+ 8-bit Mem 0x4567
+```
+
+这将从 0x1234 读取一个 16 位数,将其乘以 4,并读取 0x4567 之后相应字节数处的单个字节。
+
+## 链接指针
+
+`AddAddress` 可以被链接以执行多步查找,但一次只能执行一步。因此,你可以引用由另一个指针所指向的指针所指向的数据,但你不能引用由另一个指针所指向的数组中的数据,除非数组或数组索引位于固定地址。
+
+#### 在链接指针中使用 Delta
+
+要在 `AddAddress` 链上进行 Delta 检查,你应该只在最终条件上放置 Delta。你需要使用当前值来推导链中每一步的最终结果,你只关心最终值的变化。使用指针的前一帧值会导致读取无效内存,可能会引起问题。
+
+```
+A) AddAddress Mem 0000
+B) AddAddress Mem 0000
+C) Delta 0000
+```
+
+假设 Mem: $0000=0, $0001=2, $0002=4,在最初几帧这将评估为 0,当 Mem 0 变为 1 时,会发生以下情况:
+
+```
+Frame N : A = Mem[0] = 1 (delta[0] = 0), B = Mem[A] = Mem[1] = 2 (delta B = 0), C = Mem[B] = Mem[2] = 4 (delta C = 0)
+Frame N+1: A = Mem[0] = 1 (delta[0] = 1), B = Mem[A] = Mem[1] = 2 (delta B = 2), C = Mem[B] = Mem[2] = 4 (delta C = 4)
+```
+
+可以看到整个 Delta 链在同一帧更新(变化发生后的一帧)。
+
+如果对 A 和 B 使用 Delta,会发生不同的情况:
+
+```
+A) AddAddress Delta 0000
+B) AddAddress Delta 0000
+C) Delta 0000
+```
+
+```
+Frame N : Mem[0] = 1 (delta[0] = 0), B = Mem[deltaA] = Mem[0] = 1 (delta B = 0), C = Mem[deltaB] = Mem[0] = 1 (delta C = 0)
+Frame N+1: Mem[0] = 1 (delta[0] = 1), B = Mem[deltaA] = Mem[1] = 2 (delta B = 1), C = Mem[deltaB] = Mem[1] = 2 (delta C = 1)
+Frame N+2: Mem[0] = 1 (delta[0] = 1), B = Mem[deltaA] = Mem[1] = 2 (delta B = 2), C = Mem[deltaB] = Mem[2] = 4 (delta C = 2)
+Frame N+3: Mem[0] = 1 (delta[0] = 1), B = Mem[deltaA] = Mem[1] = 2 (delta B = 2), C = Mem[deltaB] = Mem[2] = 4 (delta C = 4)
+```
+
+Delta C 不仅需要额外两帧才能正确,而且有两个不正确的中间值。值在一帧内从 0 变到了 4,从未经过 1 或 2。
+
+## 计算偏移量
+
+一旦你认为找到了你的数据以及指向(或接近)你数据的某些东西,你需要计算用于读取该数据的偏移量。
+
+- 位于 `0x821448` 的 32 位数据(RetroAchievements 地址)
+- 位于 `0xA1CA14` 的指针(RetroAchievements 地址)(值为 `0x8C821440`)
+
+首先,确定你需要指针的多少位。对于有 16MB RAM 的系统,你需要 24 位来寻址所有内存(2^24 = 16777216)。对于 32MB,你需要 25 位。对于 8MB,你只需要 23 位。
+
+对于上面提供的数据,我们有 16MB 的内存,所以我们只需要指针的 24 位(`0x8C821440` & `0x00FFFFFF` = `0x821440`)。
+
+然后,从数据地址减去该值以计算偏移量:`0x821448` - `0x821440` = `0x000008`
+
+现在,你可以构建逻辑。将指针地址和大小/掩码放入 `AddAddress` 条件,将偏移量/逻辑放入第二行:
+
+```
+AddAddress Mem 24-bit 0x00A1CA14
+ Mem 32-bit 0x00000008 < 1000
+```
+
+使用提供的数据执行此示例:
+
+- 读取 `0x00A1CA14` 处的 24 位数据:`0x00821440`
+- 加上偏移量:`0x00821440` + `0x00000008 ` = `0x00821448`
+- 读取新地址(`0x00821448`)处的 32 位数据
+
+#### 第二个示例
+
+- 位于 `0x1B385E0` 的 16 位数据(RetroAchievements 地址)
+- 位于 `0xE7B054` 的指针(RetroAchievements 地址)(值为 `0x09B42F0C`)
+- 系统有 32MB RAM(需要 25 位)`0x09B42F0C` & `0x01FFFFFF` = `0x1B42F0C`
+- 计算偏移量:`0x1B385E0` - `0x1B42F0C` = `0xFFFFFFFFFFFF56D4`(截断为 32 位:`0xFFFF56D4`)
+- 构建逻辑:
+ ```
+ AddAddress Mem 32-bit 0x00E7B054 & 0x1FFFFFF
+ Mem 16-bit 0xFFFF56D4 = 0x0E
+ ```
+
+在这个案例中,指针实际上是向后指的,所以偏移量是一个非常大的数。这就是计算机表示负值的方式。由于[二进制补码](https://en.wikipedia.org/wiki/Two's_complement)和溢出的规则,你可以加上这个非常大的数来执行减法。使用提供的数据执行此示例:
+
+- 读取 `0x00E7B054` 处的 32 位数据:`0x09B42F0C`
+- 掩去 25 位:`0x09B42F0C` & `0x01FFFFFF` = `0x01B42F0C`
+- 加上偏移量:`0x1B42F0C` + `0xFFFF56D4` = `0x101B385E0`(截断为 32 位:`0x01B385E0`)
+- 读取新地址(`0x01B385E0`)处的 16 位数据
+
+## 视频教程
+
+经验丰富的成就创作者 [WilHiteWarrior](https://retroachievements.org/user/WilHiteWarrior) 制作了一个很好的视频,展示了如何使用指针和 AddAddress 标志。
+
+你可以在这里查看:。
diff --git a/docs/zh/developer-docs/flags/addhits-subhits.md b/docs/zh/developer-docs/flags/addhits-subhits.md
new file mode 100644
index 00000000..54512b87
--- /dev/null
+++ b/docs/zh/developer-docs/flags/addhits-subhits.md
@@ -0,0 +1,20 @@
+---
+title: 使用 AddHits 和 SubHits 处理成就条件
+description: 掌握 AddHits 和 SubHits 标志在成就条件中管理命中计数的用法,理解其链接效果,并优化复杂场景下的成就逻辑。
+---
+
+# `AddHits` 和 `SubHits`
+
+**注意**:此技术对于简单游戏不是必需的,因此初级开发者不必掌握。
+
+`AddHits` 和 `SubHits` 可以在成就编辑器的 Flag 列中选择。
+
+`AddHits`/`SubHits` 条件不必为真成就才能触发。它们修改另一个条件的[命中计数](/zh/developer-docs/hit-counts),而那个条件必须为真成就才能触发。这一系列条件被称为 `AddHits` 链(即使其中包含 `SubHits`)。
+
+当带有 `AddHits`/`SubHits` 标志的条件为真时,该条件的命中计数会递增。可以在条件上设置命中目标以防止其累计过多次。
+
+链中最终条件的总命中计数会增加链中任何 `AddHits` 条件的命中计数,并减去任何 `SubHits` 条件的命中计数。如果总命中计数达到或超过最终条件的目标命中计数,则该条件被视为真。
+
+如果链的最终条件没有命中目标,则 `AddHits`/`SubHits` 条件对成就没有影响。最终条件只有在其本身为真时才为真。
+
+**注意**:链中最终条件的命中目标既作为总体目标命中计数,也作为该条件的最大命中计数。因此,不可能只使用 `SubHits` 而不使用 `AddHits`,因为 `SubHits` 减去的命中数如果没有单独的 `AddHits` 就无法恢复。同样,如果你需要对链中的最终条件设置条件特定的限制,应将其提取为带有适当限制的 `AddHits` 条件,并使用带有总体命中目标的虚拟最终条件(即 `0=1 (10)`)。虚拟条件不会自身累积任何命中数,仅用于汇总链中的其他值。
diff --git a/docs/zh/developer-docs/flags/addsource.md b/docs/zh/developer-docs/flags/addsource.md
new file mode 100644
index 00000000..c0dae6b3
--- /dev/null
+++ b/docs/zh/developer-docs/flags/addsource.md
@@ -0,0 +1,121 @@
+---
+title: 理解和使用 AddSource 实现累加器逻辑
+description: 了解如何有效使用 AddSource 标志来管理成就条件中的累加器,包括链接、修饰符、溢出处理以及与浮点值的交互。
+---
+
+# `AddSource`
+
+_**注意**:对于简单游戏,很可能不需要此技术。因此,初级开发者不必掌握。_
+
+`AddSource` 可以在成就编辑器的 Flag 列中选择。
+
+当一个条件带有 `AddSource` 标志时,该内存地址的值会被加到累加器上。当到达一个不修改累加器的条件时,累加器会在比较之前加到该条件的地址值上,然后累加器被重置为 0。这可能听起来有些令人困惑,但下面的示例将阐明其工作原理:
+
+#### 简单示例
+
+| ID | Flag | Type | Size | Memory | Cmp | Type | Size | Mem/Val | Hits |
+| --- | --------- | ---- | ----- | ------ | --- | ----- | ---- | ------- | ----- |
+| 1 | AddSource | Mem | 8-bit | 0x8010 | | | | | |
+| 2 | | Mem | 8-bit | 0x8020 | > | Value | | 0x04 | 0 (0) |
+
+在这个示例中,`0x8010` 的值将被加到 `0x8020` 的值上,比较将检查这个和是否大于四。
+
+如果 `0x8010` 的值为 `1`,`0x8020` 的值为 `2`,比较将是 `1 + 2 > 4`,即 `3 > 4`。
+
+尝试用图片总结说明:
+
+
+
+#### 链接
+
+你可以使用 `AddSource` 标志来累加更多地址,如下例所示:
+
+| ID | Flag | Type | Size | Memory | Cmp | Type | Size | Mem/Val | Hits |
+| --- | --------- | ---- | ----- | ------ | --- | ----- | ---- | ------- | ----- |
+| 1 | AddSource | Mem | 8-bit | 0x8010 | | | | | |
+| 2 | AddSource | Mem | 8-bit | 0x8011 | | | | | |
+| 3 | | Mem | 8-bit | 0x8020 | > | Value | | 0x04 | 0 (0) |
+
+这表示 `value(0x8010) + value(0x8011) + value(0x8020) > 4`。
+
+#### 独立性
+
+累加器在使用后会被重置,所以你可以在一个触发器中使用多个 `AddSource` 链,而不必担心它们相互干扰。
+
+| ID | Flag | Type | Size | Memory | Cmp | Type | Size | Mem/Val | Hits |
+| --- | --------- | ---- | ----- | ------ | --- | ----- | ---- | ------- | ----- |
+| 1 | AddSource | Mem | 8-bit | 0x8010 | | | | | |
+| 2 | | Mem | 8-bit | 0x8020 | > | Value | | 0x04 | 0 (0) |
+| 3 | AddSource | Mem | 8-bit | 0x8030 | | | | | |
+| 4 | | Mem | 8-bit | 0x8040 | < | Value | | 0x80 | 0 (0) |
+
+这表示 `value(0x8010) + value(0x8020) > 4 AND value(0x8030) + value(0x8040) < 0x80`。
+
+#### 溢出
+
+累加器及所有执行的逻辑限制为 32 位。如果总值超过 0xFFFFFFFF,将发生溢出,比较中只会使用最低有效的 32 位。
+
+| ID | Flag | Type | Size | Memory | Cmp | Type | Size | Mem/Val | Hits |
+| --- | --------- | ---- | ------ | ------ | --- | ----- | ---- | ---------- | ----- |
+| 1 | AddSource | Mem | 32-bit | 0x8010 | | | | | |
+| 2 | | Mem | 32-bit | 0x8020 | > | Value | | 0x30000000 | 0 (0) |
+
+如果 0x8010 为 0xC0000000,0x8020 为 0x54321ABC,则总和为 0x114321ABC,超过 32 位将被截断为 0x14321ABC,这不大于 0x30000000,因此逻辑将评估为假。
+
+### 使用修饰符
+
+此外,你可以使用 AddSource 来修改值。通过点击 "Cmp" 列,会打开一个包含各种数学和逻辑运算符的下拉菜单。这允许你在将值添加到累加器之前对其进行修改。
+
+`*`:将左侧乘以右侧。
+
+- `AddSource 8-bit Mem 0x8010 * Value 0x14` 将读取 $8010 的 8 位值,乘以 20(十六进制 0x14),然后将结果加到累加器。
+
+`/`:将左侧除以右侧。
+
+- `AddSource 8-bit Mem 0x8010 / Value 0x14` 将读取 $8010 的 8 位值,除以 20(向下取整),然后将结果加到累加器。
+- 注意:如果除数(右侧)为零,结果将被视为值 0。
+
+`%` 取模运算符:将左侧除以右侧并返回除法的余数。
+
+- `AddSource 8-bit Mem 0x8010 % Value 0x14` 将读取 $8010 的 8 位值,除以 20,然后将除法的余数加到累加器。例如,如果 $8010 的值为 43,取模运算的结果为 3,将被加到累加器。
+- 注意:如果除数(右侧)为零,结果将被视为值 0。
+
+`+`:将左侧和右侧相加。
+
+- `AddSource 8-bit Mem 0x8010 + Value 0x14` 将读取 $8010 的 8 位值,加上 20,然后将结果加到累加器。
+
+`-`:从左侧减去右侧。
+
+- `AddSource 8-bit Mem 0x8010 - Value 0x14` 将读取 $8010 的 8 位值,减去 20,然后将结果加到累加器。
+
+`&`:将左侧与右侧进行按位掩码运算。
+
+- `AddSource 8-bit Mem 0x8010 & Value 0x3f` 将读取 $8010 的 8 位值,丢弃第 6 位和第 7 位(0x3f 的二进制为 00111111),然后将结果加到累加器。
+
+`^`:将左侧与右侧进行按位异或运算。
+
+- `AddSource 8-bit Mem 0x8010 ^ Mem 0x8011` 将读取 $8010 和 $8011 的 8 位值,结果中的位在两个操作数的相同位不同时为 1,相同时为 0。此结果将被加到累加器。
+
+你也可以在右侧使用内存引用。`AddSource 8-bit Mem 0x8010 * 8-bit Mem 0x8011` 将读取两个 8 位值,将它们相乘,然后将结果加到累加器。
+
+::: warning 版本说明
+加法、减法和取模运算符计划在 RA_Integration 1.4 版本里程碑中实现。处理支持将在 rcheevos 11.4 版本里程碑中提供。
+:::
+
+### 与浮点数的交互
+
+累加器的类型取决于第一个添加到其中的值。如果链中的第一个 `AddSource`/`SubSource` 是整数,累加器将是整数,任何添加到累加器的浮点数将在添加前被取整。如果链中的第一个 `AddSource`/`SubSource` 是浮点数,累加器将是浮点数,任何添加到累加器的整数将在添加前被转换为浮点数。
+
+注意,当累加器被添加到最终条件时,使用的是最终条件的类型。因此,如果最终条件是浮点数而累加器是整数,累加器将在添加到最终条件之前被转换为浮点数。
+
+要强制 `AddSource` 链中的所有浮点数被取整,你需要额外的首尾条件:
+
+| ID | Flag | Type | Size | Memory | Cmp | Type | Size | Mem/Val | Hits |
+| --- | --------- | ----- | ----- | ------ | --- | ----- | ---- | ------- | ----- |
+| 1 | AddSource | Value | | 0 | | | | | |
+| 2 | AddSource | Mem | Float | 0x1000 | | | | | |
+| 3 | AddSource | Mem | Float | 0x1004 | | | | | |
+| 4 | AddSource | Mem | Float | 0x1008 | | | | | |
+| 5 | | Value | | 0 | > | Value | | 12 | 0 (0) |
+
+第 1 行将累加器初始化为整数,因此第 2-4 行将在添加到累加器之前被取整。第 5 行确保在进行比较之前最终值是整数。没有第 1 行,第 2-4 行将以浮点数形式累加。没有第 5 行,累加器将被添加到最后一个浮点数而不对其取整。
diff --git a/docs/zh/developer-docs/flags/andnext-ornext.md b/docs/zh/developer-docs/flags/andnext-ornext.md
new file mode 100644
index 00000000..4139f2ea
--- /dev/null
+++ b/docs/zh/developer-docs/flags/andnext-ornext.md
@@ -0,0 +1,37 @@
+---
+title: 掌握 AndNext 和 OrNext 实现复杂的成就条件
+description: 了解如何使用 AndNext 和 OrNext 标志为 ResetIf、PauseIf 和命中计数创建复杂的条件逻辑,从而实现灵活精巧的成就需求。
+---
+
+# `AndNext` 和 `OrNext`
+
+`AndNext` 和 `OrNext` 用于将多个条件关联到 [ResetIf](/zh/developer-docs/flags/resetif)、[PauseIf](/zh/developer-docs/flags/pauseif) 或[命中计数](/zh/developer-docs/hit-counts)上。
+
+`AndNext` 和 `OrNext` 可以在成就编辑器的 Flag 列中选择。
+
+当一个条件带有 `AndNext` 标志时,该条件必须与_后续条件_同时为真,后续条件才被认为是真。
+
+当一个条件带有 `OrNext` 标志时,该条件_或后续条件_中任一为真,后续条件就被认为是真。
+
+你可以链接多个 `AndNext` 和 `OrNext` 条件,为单个 `ResetIf`、`PauseIf` 或命中计数创建复杂的要求。
+
+当评估 `AndNext` 和 `OrNext` 条件的组合时,每一行都是单独评估的。
+
+```
+AndNext A = 1
+OrNext B = 1
+AndNext C = 1
+OrNext D = 1
+AndNext E = 1
+ResetIf F = 1
+```
+
+代表以下逻辑语句:
+
+```
+reset if (((((A = 1 and B = 1) or C = 1) and D = 1) or E = 1) and F = 1)
+```
+
+对于大多数用例,[Alt Groups](/zh/developer-docs/alt-groups) 仍然优于 `OrNext`。它们允许在 OR 的每个子句中包含多个条件,并支持两个以上的子句。
+
+`AndNext` 对于简单逻辑不是必需的。组中的所有条件会自动以 AND 连接。`AndNext` 只是允许两个或更多条件影响单个 `PauseIf`、`ResetIf` 或命中计数。
diff --git a/docs/zh/developer-docs/flags/measured.md b/docs/zh/developer-docs/flags/measured.md
new file mode 100644
index 00000000..268f546e
--- /dev/null
+++ b/docs/zh/developer-docs/flags/measured.md
@@ -0,0 +1,43 @@
+---
+title: 有效使用 Measured 追踪成就进度
+description: 了解如何使用 Measured 标志追踪成就条件中的进度、管理进度条并通过提供成就完成的实时反馈来优化用户体验。
+---
+
+# `Measured`
+
+`Measured` 标记一个条件用于追踪进度。它在成就覆盖层中添加一个进度条,告知用户他们距离完成成就有多近。由于用户期望在进度条满时成就触发,因此预期成就中的任何其他条件在大部分时间应为真。
+
+`Measured` 不应用于追踪用户明显可见的内容。如果你有一个获得 500,000 分的成就,当分数显示在屏幕上时,你不需要对其进行 Measure。同样,如果玩家只需打开物品栏就能看到拥有多少物品,那么拥有 100 个某物品的成就也不需要使用 `Measured`。
+
+如果放在带有所需[命中计数](/zh/developer-docs/hit-counts)的条件上,目标值是所需的命中计数,当前值是当前的命中计数。可以使用 [`AddHits`](/zh/developer-docs/flags/addhits-subhits)。
+
+如果放在没有命中计数的条件上,目标值是条件右侧的常量,当前值是条件左侧的计算结果。可以使用 [`AddSource`](/zh/developer-docs/flags/addsource) 和 [`SubSource`](/zh/developer-docs/flags/subsource)。
+
+如果多个条件被标记为 `Measured` 且具有相同的目标值,当前值将是所有 `Measured` 条件中的最大值。
+
+如果多个条件被标记为 `Measured` 且具有不同的目标值,将出现 Parse Error -22。
+
+请注意,`Measured` 值的进度在检查时报告,根据当前值可能会实际下降(命中计数可能被重置,或比较值减少)。
+
+## 限制测量值的显示或变化时机
+
+你会遇到不希望测量值更新或测量值无效的情况。你可以使用 `Pause If` 或 `Measured If` 来管理这些情况。
+
+### 将 Measured If 与 Measured 配合使用:
+要限制 `Measured` 条件的范围,你可以添加 `MeasuredIf` 条件。`MeasuredIf` 条件必须为真,`Measured` 值才能非零(成就才能触发)。你可以使用 `MeasuredIf` 创建需要使用特定角色的成就,或者仅用于防止玩家在游戏的错误部分时显示虚假数据。如果组中任何 `MeasuredIf` 条件为假,该组的 `Measured` 值自动为 0。
+
+总结来说,在以下情况下使用 `Measured If`:
+- 条件使得测量值无效。
+- 存在多个可能的测量来源且你想限制哪个处于活动状态。
+- **示例**:使用了错误的角色。
+- **示例**:在错误的关卡或区域。
+- **示例**:在比赛中进行测量,但单次比赛模式和锦标赛模式之间的测量地址不同。
+
+### 将 Pause If 与 Measured 配合使用:
+由于 [`PauseIf`](/zh/developer-docs/flags/pauseif) 的优先级高于 `Measured`,当组变为暂停时 `Measured` 值将被捕获,捕获的值将一直返回直到组被取消暂停且 `Measured` 可以再次被评估。如果另一个 `Measured` 存在于未暂停的组中,即使其值低于捕获的值,也会返回该值。
+
+总结来说,在以下情况下使用 `Pause If`:
+- 你想阻止测量值更新或变化。
+- 测量的范围有效,但数据不稳定。
+- **示例**:在加载画面期间暂停,此时通常包含或决定测量值的地址被用于其他用途。
+- **示例**:某些临时情况下,你不想在挑战中计数命中(例如在非无敌状态下击败 X 个敌人)。
diff --git a/docs/zh/developer-docs/flags/pauseif.md b/docs/zh/developer-docs/flags/pauseif.md
new file mode 100644
index 00000000..4fce86e0
--- /dev/null
+++ b/docs/zh/developer-docs/flags/pauseif.md
@@ -0,0 +1,22 @@
+---
+title: 使用 PauseIf 控制成就命中计数
+description: 了解如何有效使用 PauseIf 标志来管理成就中的命中计数,防止在特定场景下的意外增长,并理解与其他条件的交互以实现最佳的成就追踪。
+---
+
+# `PauseIf`
+
+`PauseIf` 标志可以在成就编辑器的 Flag 列中选择。
+
+`PauseIf` 通常用于防止命中计数在特定情况下(如游戏暂停时)增加。当你想保留已获得的命中计数,但不想在其他事情发生时增加或重置它时使用。
+
+当一个组被处理时,首先按顺序评估所有 `PauseIf`。一旦任何 `PauseIf` 为真,该组就会停止处理。这意味着真值 `PauseIf` 之后的任何 `PauseIf` **将不会被评估**。这允许一个 `PauseIf` 阻止另一个 `PauseIf` 累积命中数,但通常更好的做法是将第二个 `PauseIf` 与 [`AndNext`](/zh/developer-docs/flags/andnext-ornext) 配合使用以限制其累积命中数的时机。
+
+这也意味着在组暂停期间,组中的任何 [`ResetIf`](/zh/developer-docs/flags/resetif) 都不会被处理。要重置 `PauseIf` 上的命中计数,你必须将 `ResetIf` 放在 alt 组中,或者将 [`ResetNextIf`](/zh/developer-docs/flags/resetnextif) 附加到 `PauseIf` 上。
+
+[Delta 值](/zh/developer-docs/delta-values)不受暂停组的影响。Delta 读取返回的值仍然是前一帧的值,而不是组暂停前那一帧的值。
+
+## 带命中计数的 `PauseIf`
+
+带有命中计数目标的 `PauseIf` 条件只有在命中计数目标达成时才会触发。一旦命中计数目标达成,该组将**保持暂停**,直到命中计数被另一个组中的 `ResetIf` 或附加在 `PauseIf` 上的 `ResetNextIf` 重置。你可能会听到这被称为 PauseLock。
+
+没有命中计数的 `PauseIf` 会在条件不再为真时自动取消暂停。
diff --git a/docs/zh/developer-docs/flags/remember.md b/docs/zh/developer-docs/flags/remember.md
new file mode 100644
index 00000000..c8ae56e0
--- /dev/null
+++ b/docs/zh/developer-docs/flags/remember.md
@@ -0,0 +1,210 @@
+---
+title: 理解和使用 Remember
+description: 学习如何有效使用 Remember 标志来存储值以供后续逻辑使用,以及几个特别有用的用例。
+---
+
+# `Remember`
+
+::: warning 版本说明
+此功能将在 RA_Integration 1.4 里程碑版本中为开发者提供,并将在 rcheevos 11.4 里程碑版本中添加支持。
+:::
+
+`Remember` 条件在资源编辑器的标志列中选择。由于许多用例往往相当复杂,建议在研读下面一些更复杂的示例之前,先熟悉工具包的其他部分。
+
+当条件具有 `Remember` 标志时,条件的值会存储在召回累加器中。此值可在后续逻辑中通过使用 [`Recall`](/zh/developer-docs/recall) 操作数来使用,该操作数可在任意一侧的类型列中找到。
+
+每个*组*(Core、Alt1、Alt2 等)有一个记住的值。此值在评估开始时初始化为值为 0 的无符号整数。如果记住一个新值,它将覆盖之前记住的值。如果记住一个浮点值,记住的值将是浮点值而不是无符号整数。在使用 `Remember` 条件记住值之前使用 `Recall` 将在资源编辑器中生成警告。
+
+`Remember` 条件是组合条件,不会中断它所在的任何链。跟随它的条件被视为链的一部分。
+
+## 基本用法
+
+### 简单示例
+
+| ID | Flag | Type | Size | Memory | Cmp | Type | Size | Mem/Val | Hits |
+| --- | --------- | ----- | ------ | ------ | --- | ---- | ---- | ------- | ---- |
+| 1 | SubSource | Delta | 16-bit | 0x1234 | | | | | |
+| 2 | Remember | Mem | 16-bit | 0x1234 | | | | | |
+
+在此示例中,`0x1234` 的 `Delta` 值(前一帧的值)从 `0x1234` 的 `Mem` 值中减去并记住。
+
+::: info
+`Remember` 设置召回累加器的值。
+:::
+
+### 简单示例 - 使用操作符
+
+| ID | Flag | Type | Size | Memory | Cmp | Type | Size | Mem/Val | Hits |
+| --- | -------- | ---- | ------ | ------ | --- | ----- | ------ | ------- | ---- |
+| 1 | Remember | Mem | 16-bit | 0x1234 | - | Delta | 16-Bit | 0x1234 | |
+
+Remember 条件可以选择性地接受两个操作数,并根据操作符(如乘法、除法、加法、减法等)处理值。在此示例中,我们使用减法操作符来存储与第一个示例等效的值,但我们在单行中完成。
+
+### 使用存储的值
+
+要使用存储的值,将 `Recall` 操作符指定为操作数的类型:
+
+| ID | Flag | Type | Size | Memory | Cmp | Type | Size | Mem/Val | Hits |
+| --- | ---- | ------ | ---- | ------ | --- | ----- | ---- | ------- | ---- |
+| 2 | | Recall | | | = | Value | | 0x05 | |
+
+在此示例中,它使用存储的值并将其与常量值 5 进行比较。但是,仅使用一次存储的值并不能展示 `Remember` 的主要用途。
+
+| ID | Flag | Type | Size | Memory | Cmp | Type | Size | Mem/Val | Hits |
+| --- | -------- | ------ | ------ | ------ | --- | ----- | ------ | ------- | ----- |
+| 1 | Remember | Mem | 16-bit | 0x1234 | - | Delta | 16-Bit | 0x1224 | |
+| 2 | And Next | Recall | | | = | Value | | 0x05 | |
+| 3 | Add Hits | Mem | 8-Bit | 0x1000 | = | Value | | 0x03 | 1 (0) |
+| 4 | And Next | Recall | | | = | Value | | 0x14 | |
+| 5 | Add Hits | Mem | 8-Bit | 0x1000 | = | Value | | 0x03 | 1 (0) |
+| 6 | And Next | Recall | | | = | Value | | 0x64 | |
+| 7 | Add Hits | Mem | 8-Bit | 0x1000 | = | Value | | 0x03 | 1 (0) |
+| 8 | Measured | Value | | 0x00 | = | Value | | 0x00 | 3 (0) |
+
+在此示例中,我们在 Add Hits 链内的多个链中使用存储的值,而无需每次都重新计算值。这里我们查找 `0x1234` 的特定增量,同时 `0x1000` 的值等于 3。也许 `0x1234` 是金钱,`0x1000` 是当前关卡,您希望确保玩家在第 3 关收集价值 5 单位金钱的宝石、价值 20 的宝石和价值 100 的宝石。这里使用 `Recall` 来检查 Mem 和 Delta 之间的所有这些差值,而无需每次都重新计算。有关该条件如何工作的更多信息,请参阅 [`Add Hits`](/zh/developer-docs/flags/addhits-subhits) 文档。
+
+::: info
+`Recall` 检索存储在召回累加器中的值。
+:::
+
+## 与 Pause If 的交互
+
+由于 `Pause If` 逻辑在其他逻辑之前处理,`Pause If` 逻辑只能召回由暂停逻辑记住的值。在 `Pause If` 逻辑期间记住的值在剩余逻辑处理期间继续被记住。
+
+有关该条件如何工作的更多信息,请参阅 [`Pause If`](/zh/developer-docs/flags/pauseif) 文档。
+
+### 与 Pause If 一起使用的示例
+
+| ID | Flag | Type | Size | Memory | Cmp | Type | Size | Mem/Val | Hits |
+| --- | -------- | ------ | ------ | ------ | --- | ----- | ------ | ---------- | ----- |
+| 1 | Remember | Mem | 16-bit | 0x1234 | - | Delta | 16-Bit | 0x1234 | |
+| 2 | Pause If | Recall | | | >= | Value | | 0x80000000 | 1 (0) |
+| 3 | And Next | Recall | | | = | Value | | 0x05 | |
+| 4 | Add Hits | Mem | 8-Bit | 0x1000 | = | Value | | 0x03 | 1 (0) |
+| 5 | And Next | Recall | | | = | Value | | 0x14 | |
+| 6 | Add Hits | Mem | 8-Bit | 0x1000 | = | Value | | 0x03 | 1 (0) |
+| 7 | And Next | Recall | | | = | Value | | 0x64 | |
+| 8 | Add Hits | Mem | 8-Bit | 0x1000 | = | Value | | 0x03 | 1 (0) |
+| 9 | Measured | Value | | 0x00 | = | Value | | 0x00 | 3 (0) |
+
+此示例通过添加一个 `Pause If` 锁定来扩展之前的[使用存储的值](#using-the-stored-value)示例,如果玩家失去金钱\*。由于 `Remember` 是组合条件,它与后续的 `Pause If` 链接形成链,并作为暂停处理的一部分进行处理,允许 `Pause If` 使用该值。记住的值可用于剩余逻辑,因此可由 Add Hits 链使用。
+
+注意事项:
+
+- \* 由于无符号数学的工作方式,减法将在负一时下溢回 0xfffffff,因此任何大于或等于 0x80000000 的值都被视为负数)。
+- 由于暂停处理首先发生,您*可以*将条件 1-2 放在逻辑的末尾,它仍然有效!由暂停逻辑记住的值仍可用于 Add Hits 链。但是,由于这可能是一个令人困惑的效果,我们建议在使用 `Remember` 和 `Recall` 时将暂停逻辑放在开头。
+
+::: tip
+为避免 `Remember` 和 `Recall` 的意外行为,请将使用这些功能的暂停逻辑放在组的顶部。
+:::
+
+### 与 Pause If 的错误用法示例
+
+| ID | Flag | Type | Size | Memory | Cmp | Type | Size | Mem/Val | Hits |
+| --- | -------- | ------ | ------ | ------ | --- | ----- | ------ | --------- | ----- |
+| 1 | Remember | Mem | 16-bit | 0x1234 | - | Delta | 16-Bit | 0x1234 | |
+| 2 | And Next | Recall | | | = | Value | | 0x05 | |
+| 3 | Add Hits | Mem | 8-Bit | 0x1000 | = | Value | | 0x03 | 1 (0) |
+| 4 | And Next | Recall | | | = | Value | | 0x14 | |
+| 5 | Add Hits | Mem | 8-Bit | 0x1000 | = | Value | | 0x03 | 1 (0) |
+| 6 | And Next | Recall | | | = | Value | | 0x64 | |
+| 7 | Add Hits | Mem | 8-Bit | 0x1000 | = | Value | | 0x03 | 1 (0) |
+| 8 | Measured | Value | | 0x00 | = | Value | | 0x00 | 3 (0) |
+| 9 | Pause If | Recall | | | >= | Value | | 0x8000000 | 1 (0) |
+
+在此示例中,`Remember` 条件未与 `Pause If` 链接。因此,`Pause If` 条件将从 `Recall` 操作数读取值 0 并且永远不会暂停,因为暂停逻辑首先处理。不过不用担心,因为验证足够智能,可以识别这一点,并将在条件 9 上生成警告,即在 `Pause If` 中使用 `Recall`,但在 `Pause If` 中未记住值。
+
+::: danger
+在 Pause If 逻辑中使用 `Recall` 类型操作符时,请确保设置要使用的值的 `Remember` 条件位于同一 `Pause If` 链或更早的 `Pause If` 链中。否则召回的值将为 0!
+:::
+
+## 在 `Remember` 条件内使用 `Recall`
+
+您可以对记住的值执行数学运算并记住结果:
+
+| ID | Flag | Type | Size | Memory | Cmp | Type | Size | Mem/Val | Hits |
+| --- | -------- | ------ | ------ | ------ | --- | ----- | ------ | ------- | ---- |
+| 1 | Remember | Mem | 16-bit | 0x1002 | + | Mem | 16-Bit | 0x1004 | |
+| 2 | Remember | Recall | | | \* | Value | | 0x03 | |
+| 3 | Remember | Recall | | | + | Mem | 16-Bit | 0x1000 | |
+| 4 | Remember | Recall | | | % | Value | | 0x05 | |
+| 5 | | Recall | | | = | Value | | 0x00 | |
+
+在此示例中,假设您需要计算 `0x1000` + (`0x1002` + `0x1004`) \* 3 的值,并检查它是否是 5 的倍数。您可以在 `Remember` 条件中使用 `Recall` 对最后记住的值进行操作并存储新结果。
+
+注意事项:
+
+- 如果模数(`%`)运算的值为 0,这意味着除以 5 没有余数,意味着该值是 5 的倍数。
+
+## 使用 `Remember` 计算指针偏移
+
+| ID | Flag | Type | Size | Memory | Cmp | Type | Size | Mem/Val | Hits |
+| --- | ---------- | ---- | ------ | ------ | --- | ------ | ---- | ------- | ---- |
+| 1 | Remember | Mem | 8-bit | 0x0789 | \* | Value | | 0x60 | |
+| 2 | AddAddress | Mem | 32-bit | 0x1234 | + | Recall | | | |
+| 3 | | Mem | 16-bit | 0x08 | > | Value | | 0x00 | |
+
+在此示例中,假设您有一个指向数据表的地址,但为了知道要访问表中的哪个位置,您必须从另一个源计算偏移量。`0x1234` 将用作数据表的指针。`0x0789` 将是表中的索引。表条目数据的大小为 `0x60` 字节。最后,我们关心的数据在数据结构中偏移 `0x08` 字节。也许这是"玩家生命值",我们计算的索引是"玩家数据"存在的表中的索引,我们需要检查此值是否大于 0。
+
+有关该条件如何工作的更多信息,请参阅 [`Add Address`](/zh/developer-docs/flags/addaddress) 文档。
+
+条件分解:
+
+1. 按数据结构的大小缩放索引。现在它表示数据距离表开头的距离。
+2. 使用表的起始地址并向其添加存储的值。现在此 Add Address 指向表中"玩家数据"的开头。
+3. 从地址偏移 `0x08`,它读取玩家生命值的当前内存值,大小为 16 位,然后使用比较检查是否大于零。
+
+## `Remember` 条件的更深层链接
+
+| ID | Flag | Type | Size | Memory | Cmp | Type | Size | Mem/Val | Hits |
+| --- | ---------- | ---- | ------ | ------ | --- | ------ | ---- | ------- | ----- |
+| 1 | Remember | Mem | 8-bit | 0x0789 | \* | Value | | 0x60 | |
+| 2 | AddAddress | Mem | 32-bit | 0x1234 | + | Recall | | | |
+| 3 | And Next | Mem | 16-bit | 0x08 | < | Delta | | 0x08 | 0 (0) |
+| 4 | AddAddress | Mem | 32-bit | 0x1234 | + | Recall | | | |
+| 5 | And Next | Mem | 8-bit | 0x24 | != | Value | | 0xff | 0 (0) |
+| 6 | AddAddress | Mem | 32-bit | 0x1234 | + | Recall | | | |
+| 7 | Remember | Mem | 16-bit | 0x24 | \* | Value | | 0x60 | |
+| 8 | AddAddress | Mem | 32-bit | 0x1234 | + | Recall | | | |
+| 9 | Reset If | Mem | 8-bit | 0x00 | = | Value | | 0xa7 | 0 (0) |
+
+此示例展示了如何使用 `Remember` 继续 And Next 条件链,以及如何在链中记住新值而不影响链的早期部分或中断链。
+
+在此示例中,我们通过将之前的 `Add Address` 示例与其他条件链接来构建它。假设这是一个挑战,如果玩家在持有某个对象时失去生命值就会失败。假设玩家数据在偏移 `0x24` 处存储对象的索引(如果未持有对象,其值为 `0xff`)。假设该索引是保存玩家数据的同一表的索引。此示例展示了完成此操作的重置链。假设对象数据的偏移 `0x00` 保存对象的 8 位 ID。
+
+条件分解:
+
+1. 按数据结构的大小缩放索引。现在它表示数据距离表开头的距离。
+2. 使用表的起始地址并向其添加存储的值。现在此 Add Address 指向表中"玩家数据"的开头。
+3. 检查玩家是否失去生命值,使用之前示例中建立的生命值偏移。
+4. 重新使用玩家数据的起始地址
+5. 检查持有对象的偏移并确保它不是 0xff。
+6. 重新使用玩家数据的起始地址
+7. 存储持有对象的索引乘以对象数据的大小,现在存储的值是对象数据所在表中的位置。
+8. 使用对象表指针 + 对象在表中的位置
+9. 读取对象的 ID,如果持有特定对象且链中的其他两个核心条件为真(玩家失去生命值且持有对象),则重置。
+
+## 其他注意事项
+
+### 与浮点数的交互
+
+记住的值将匹配正在记住的数据类型。如果正在执行运算,第一个操作数通常确定类型,除法除外(第二个操作数确定类型)。如果需要强制将整数值存储为浮点数,可以执行以下任一操作:
+
+| ID | Flag | Type | Size | Memory | Cmp | Type | Size | Mem/Val | Hits |
+| --- | -------- | ----- | ---- | ------ | --- | ---- | ------ | ------- | ---- |
+| 1 | Remember | Float | | 0.0 | + | Mem | 16-Bit | 0x1234 | |
+
+| ID | Flag | Type | Size | Memory | Cmp | Type | Size | Mem/Val | Hits |
+| --- | -------- | ---- | ------ | ------ | --- | ----- | ---- | ------- | ---- |
+| 1 | Remember | Mem | 16-Bit | 0x1234 | / | Float | | 1.0 | |
+
+### 整数溢出
+
+当存储的值是整数时,执行的所有逻辑都限制为 32 位。如果总值超过 0xffffffff,将发生溢出,并且只有 32 个最低有效位将在比较中使用。
+
+| ID | Flag | Type | Size | Memory | Cmp | Type | Size | Mem/Val | Hits |
+| --- | -------- | ------ | ------ | ------ | --- | ---------- | ------ | ------- | ---- |
+| 1 | Remember | Mem | 32-bit | 0x8010 | + | Mem | 32-Bit | 0x8020 | |
+| 2 | | Recall | > | Value | | 0x30000000 | 0 (0) | | |
+
+如果 0x8010 是 0xc0000000 且 0x8020 是 0x54321abc,则总和将为 0x114321abc,超过 32 位并将被截断为 0x14321abc,不大于 0x30000000,因此逻辑将评估为 false。
diff --git a/docs/zh/developer-docs/flags/resetif.md b/docs/zh/developer-docs/flags/resetif.md
new file mode 100644
index 00000000..52401c44
--- /dev/null
+++ b/docs/zh/developer-docs/flags/resetif.md
@@ -0,0 +1,22 @@
+---
+title: 掌握 ResetIf 管理成就命中计数
+description: 了解如何有效使用 ResetIf 标志来重置命中计数并防止意外的成就触发,确保对成就条件和进度的精确控制。
+---
+
+# `ResetIf`
+
+`ResetIf` 可以在成就编辑器的 Flag 列中选择。
+
+如果关联的条件为真,成就中**所有**的[命中计数](/zh/developer-docs/hit-counts)将被重置为 0。这包括其他组中的命中计数(更多信息请参见下方的 [Alt Groups](/zh/developer-docs/alt-groups))。
+
+即使没有带命中计数目标的条件,只要有一个或多个 `ResetIf` 条件为真,成就就不会触发。
+
+你可以在[实际示例页面](/zh/developer-docs/real-examples)中看到许多 `ResetIf` 的使用示例。
+
+## 带命中计数的 `ResetIf`
+
+带有命中计数的 `ResetIf` 条件只有在命中计数目标达成时才会触发。
+
+**注意**:如果另一个 `ResetIf` 条件被满足,所有条件(包括带有命中计数的 `ResetIf`)的命中计数都将被重置为 0。
+
+非常常见的用法是使用一个命中计数为 1 的条件作为成就的起始标记,并使用 `ResetIf` 在结束条件达成之前取消成就。一个常见的例子是无伤成就:"从(关卡/战斗)开始,如果受到伤害则重置,在(关卡/战斗)结束时触发"。当起始条件为真时,会记录一个命中计数。如果在结束条件为真时它仍然被设置,成就就会触发。如果 `ResetIf` 条件被触发,起始条件上的命中计数将被重置为零,这使得在评估结束条件为真时的状态时该条件为假,成就将不会触发。
diff --git a/docs/zh/developer-docs/flags/resetnextif.md b/docs/zh/developer-docs/flags/resetnextif.md
new file mode 100644
index 00000000..5f538de6
--- /dev/null
+++ b/docs/zh/developer-docs/flags/resetnextif.md
@@ -0,0 +1,16 @@
+---
+title: 有效使用 ResetNextIf 管理特定命中计数
+description: 了解如何利用 ResetNextIf 标志选择性地重置特定条件的命中计数,确保对成就进度的精确控制并避免不必要的重置。
+---
+
+# `ResetNextIf`
+
+`ResetNextIf` 标志是 `ResetIf` 标志的特殊版本,它只重置紧随其后的条件的[命中计数](/zh/developer-docs/hit-counts)。
+
+`ResetNextIf` 与其所附加的条件具有相同的优先级。如果后面跟着 `PauseIf`,它可以用来重置该特定的 `PauseIf` 而无需使用 alt。如果附加到标准条件上,则在成就暂停时不会被处理。
+
+`AddAddress`、`AddSource` 和 `SubSource` 是组合修饰条件,不被视为后续条件。`ResetNextIf` 将应用于下一个未被修饰的条件。
+
+`AndNext` 和 `OrNext` 是组合逻辑条件,它们的命中计数将被重置,以及跟在它们后面的任何条件的命中计数也会被重置。
+
+所有其他条件标志,包括 `AddHits` 和 `SubHits`,将导致 `ResetNextIf` 行为的处理停止。
diff --git a/docs/zh/developer-docs/flags/subsource.md b/docs/zh/developer-docs/flags/subsource.md
new file mode 100644
index 00000000..576cc063
--- /dev/null
+++ b/docs/zh/developer-docs/flags/subsource.md
@@ -0,0 +1,91 @@
+---
+title: 使用 SubSource 实现高级成就逻辑
+description: 了解如何有效使用 SubSource 标志从累加器中减去值、追踪特定增量、处理负数结果以及优化复杂的成就条件。
+---
+
+# `SubSource`
+
+_**注意**:对于简单游戏,很可能不需要此技术。因此,初级开发者不必掌握。_
+
+`SubSource` 可以在成就编辑器的 Flag 列中选择。
+
+工作方式与 [`AddSource`](/zh/developer-docs/flags/addsource) 类似,但 `SubSource` 标志会从累加器中减去计算值。
+
+因为它是从累加器中减去,所以 `SubSource A, B` 实际上是 `B - A`。
+
+#### 简单示例
+
+| ID | Flag | Type | Size | Memory | Cmp | Type | Size | Mem/Val | Hits |
+| --- | --------- | ---- | ----- | ------ | --- | ----- | ---- | ------- | ----- |
+| 1 | SubSource | Mem | 8-bit | 0x8010 | | | | | |
+| 2 | | Mem | 8-bit | 0x8020 | > | Value | | 0x04 | 0 (0) |
+
+在这个示例中,`0x8010` 的值将从 `0x8020` 的值中减去,比较将检查这个差是否大于四。
+
+如果 `0x8010` 的值为 `1`,`0x8020` 的值为 `2`,比较将是 `-1 + 2 > 4`,即 `1 > 4`。
+
+**注意:** 当 `0x8010` 的值大于 `0x8020` 的值时,此比较也会被满足。
+
+## 使用 SubSource 计数特定增量
+
+`SubSource` 也可以用于追踪地址的特定增长。下面的条件表示地址 `0x80dc` 当前值减去同一地址前一帧的值必须等于 `2`。实际上,这意味着只要地址 `0x80dc` 的值恰好增加了二,条件就为真。
+
+| ID | Flag | Type | Size | Memory | Cmp | Type | Size | Mem/Val | Hits |
+| --- | --------- | ----- | ----- | ------ | --- | ----- | ---- | ------- | ----- |
+| 1 | SubSource | Delta | 8-bit | 0x80dc | | | | | |
+| 2 | | Mem | 8-bit | 0x80dc | = | Value | | 0x02 | 0 (0) |
+
+## 检查负数结果
+
+累加器及所有执行的逻辑限制为无符号 32 位数。如果总值降到 0 以下,会发生下溢,产生一个非常大的正数。以下是前几个负数的表示:
+
+- `-1` 为 `0xFFFFFFFF`
+- `-2` 为 `0xFFFFFFFE`
+- `-3` 为 `0xFFFFFFFD`
+- `-4` 为 `0xFFFFFFFC`
+- `-5` 为 `0xFFFFFFFB`
+- `-6` 为 `0xFFFFFFFA`
+- `-7` 为 `0xFFFFFFF9`
+- 以此类推...
+
+因此,如果你想查看一个值是否比另一个值小 1,可以这样写:
+
+| ID | Flag | Type | Size | Memory | Cmp | Type | Size | Mem/Val | Hits |
+| --- | --------- | ---- | ----- | ------ | --- | ----- | ---- | ---------- | ----- |
+| 1 | SubSource | Mem | 8-bit | 0x8020 | | | | | |
+| 2 | | Mem | 8-bit | 0x8010 | = | Value | | 0xffffffff | 0 (0) |
+
+如果 $8010 的值 (1) 比 $8020 的值 (2) 小 1,则此条件为真:`1 - 2` = `-1` = `0xFFFFFFFF`。
+
+但是,你应该交换条件使其更易读(`B - A = -1`)等同于(`A - B = 1`):
+
+| ID | Flag | Type | Size | Memory | Cmp | Type | Size | Mem/Val | Hits |
+| --- | --------- | ---- | ----- | ------ | --- | ----- | ---- | ------- | ----- |
+| 1 | SubSource | Mem | 8-bit | 0x8010 | | | | | |
+| 2 | | Mem | 8-bit | 0x8020 | = | Value | | 1 | 0 (0) |
+
+这计算 `-1 + 2 = 1`,为真。
+
+#### 减去负数常量
+
+也可以在 Sub/`AddSource` 运算的左侧部分直接使用负数。为此,记得将 Type 从 `Mem` 更改为 `Value`,并使用如上所述的值,例如 `0xFFFFFFE5` 表示 `-27`,`0xFFFFFFE3` 表示 `-29`:
+
+| ID | Flag | Type | Size | Memory | Cmp | Type | Size | Mem/Val | Hits |
+| --- | --------- | ----- | ------ | ---------- | --- | ----- | ---- | ---------- | ----- |
+| 1 | SubSource | Mem | 32-bit | 0x8020 | | | | | |
+| 2 | | Value | | 0xffffffe5 | = | Value | | 0xffffffe3 | 0 (0) |
+
+如果 $8020 的值为 2,则此条件为真。`-2 + (-27) = -29`,即 `-2 - 27 = -29`,为真。
+
+如果在 `SubSource` 标志中使用负数,将产生双重否定,使数字变回正数。
+
+| ID | Flag | Type | Size | Memory | Cmp | Type | Size | Mem/Val | Hits |
+| --- | --------- | ----- | ---- | ---------- | --- | ----- | ---- | ---------- | ----- |
+| 1 | SubSource | Value | | 0xfffffffe | | | | | |
+| 2 | | Value | | 0xffffffe5 | = | Value | | 0xffffffe3 | 0 (0) |
+
+这意味着 `-(-2) + (-27) = -29`,即 `2 - 27 = -29`,即 `-25 = -29`,为假。
+
+### 使用修饰符
+
+与 `AddSource` 一样,你可以点击 "Cmp" 列添加修饰符来执行在从累加器减去值之前修改该值的运算。详情请参见 [AddSource - 使用修饰符](/zh/developer-docs/flags/addsource#using-modifiers)。
diff --git a/docs/zh/developer-docs/flags/trigger.md b/docs/zh/developer-docs/flags/trigger.md
new file mode 100644
index 00000000..e40659fa
--- /dev/null
+++ b/docs/zh/developer-docs/flags/trigger.md
@@ -0,0 +1,26 @@
+---
+title: 利用 Trigger 标志实现成就指示器
+description: 了解如何使用 Trigger 标志标记触发成就的条件、显示挑战指示器,并通过提示活跃挑战及其状态来增强玩家体验。
+---
+
+# `Trigger`
+
+`Trigger` 将成就中的一个或多个条件标记为预期成为导致成就触发的最终逻辑。这允许运行时知道成就何时即将触发,以便在屏幕上显示挑战指示器。
+
+当除了标记为 `Trigger` 的条件之外,所有成就触发所必须为真的条件都为真时,成就将进入 Primed(就绪)状态。只要所有先前的条件保持为真,或者直到成就触发或被停用,它将保持 Primed 状态。
+
+此功能允许在屏幕上放置指示器,帮助玩家知道挑战何时处于活动状态,或者更重要的是,知道他们何时未能完成挑战。
+
+一个典型的例子是无伤 Boss 战。`Trigger` 标志会放在"Boss 已死亡"条件上。当所有其他条件为真时(例如:在 Boss 战中、Boss 满血([命中计数](/zh/developer-docs/hit-counts) 1)、非演示模式),挑战指示器将显示。如果玩家受到伤害,"Boss 满血"条件上的命中计数将被重置,挑战指示器将消失。
+
+如果玩家没有在尝试挑战,则不应使用 `Trigger`。无需玩家额外努力就能获得的成就不需要告诉玩家它们即将被获得。
+
+最多可以同时显示八个挑战指示器(虽然很少应该超过一到两个)。如果指示器和排行榜追踪器同时可见,追踪器将显示在指示器上方。
+
+### 与 PauseIf 的交互
+
+如果成就在 Primed 状态下被暂停,指示器将被隐藏。
+
+如果在 Primed 之前被暂停,指示器将完全不显示,直到成就被取消暂停。
+
+当成就被取消暂停时,指示器可能会根据非 `Trigger` 条件的状态显示或隐藏。
diff --git a/docs/zh/developer-docs/game-identification.md b/docs/zh/developer-docs/game-identification.md
new file mode 100644
index 00000000..36163755
--- /dev/null
+++ b/docs/zh/developer-docs/game-identification.md
@@ -0,0 +1,209 @@
+---
+title: 各平台游戏识别方法
+description: 详细说明各游戏平台(包括任天堂、世嘉、索尼等)用于游戏识别的哈希方法。
+---
+
+# 游戏识别
+
+本页详细说明每个支持系统使用的哈希方法。
+
+## The 3DO Company
+
+- **3DO Interactive Multiplayer** 使用自定义哈希。
+ - 卷头(扇区 0 的前 132 字节)和 LaunchMe 文件的内容被哈希。
+
+## Amstrad
+
+- **Amstrad CPC** 使用每张磁盘的 MD5 校验和。
+ - 由于保存和其他操作会改变磁盘数据,需要加载镜像的本地副本来确保其哈希在不同会话间不会改变。
+
+## Apple
+
+- **Apple II** 使用每张磁盘的 MD5 校验和。
+ - 由于保存和其他操作会改变磁盘数据,需要加载镜像的本地副本来确保其哈希在不同会话间不会改变。
+
+## Arcade
+
+- **Arcade** 使用自定义哈希。
+ - 不含扩展名的文件名字符串(`path/galaga.zip` -> `galaga`)被哈希。区分大小写。
+
+## Arduboy Inc.
+
+- **Arduboy** 使用自定义哈希。
+ - Arudboy .hex 文件包含 ASCII 文本。我们规范化为 Unix 换行符,然后执行完整文件哈希。
+
+## Atari
+
+- **Atari 2600** 使用 MD5 校验和。
+
+- **Atari 7800** 使用 MD5 校验和,除非 ROM 有头信息。
+ - 如果 ROM 以 `\1ATARI7800` 开头,则忽略前 128 字节并对剩余文件内容进行哈希。如果 ROM 不以 `\1ATARI7800` 开头,则对整个文件进行哈希。
+
+- **Atari Jaguar** 使用 MD5 校验和。
+
+- **Atari Jaguar CD** 使用自定义哈希。
+ - 光盘第一个扇区内有一个头块。该块指示引导代码的位置和大小,引导代码被加载并哈希。
+ - 如果所得哈希为 `254487b59ab21bc005338e85cbf9fd2f`,则为自制游戏的常见引导程序,实际游戏代码位于轨道 2。如果在轨道 2 中找到包含新位置和大小的单独头块,则加载并哈希该数据。
+
+- **Atari Lynx** 使用 MD5 校验和,除非 ROM 有头信息。
+ - 如果 ROM 以 `LYNX\0` 开头,则忽略前 64 字节并对剩余文件内容进行哈希。如果 ROM 不以 `LYNX\0` 开头,则对整个文件进行哈希。
+
+## Bandai
+
+- **WonderSwan** 使用 MD5 校验和。
+
+- **WonderSwan Color** 使用 MD5 校验和。
+
+## Coleco
+
+- **ColecoVision** 使用 MD5 校验和。
+
+## Fairchild
+
+- **Channel F** 使用 MD5 校验和。
+
+## GCE
+
+- **Vectrex** 使用 MD5 校验和。
+
+## Magnavox
+
+- **Odyssey2** 使用 MD5 校验和。
+
+## Mattel
+
+- **Intellivision** 使用 MD5 校验和。
+
+## Microsoft
+
+- **MSX / MSX2** 使用每张磁盘的 MD5 校验和。
+ - 由于保存会改变磁盘数据,需要加载镜像的本地副本来确保其哈希在不同会话间不会改变。我们不相信这能正常工作,但尚未找到保存到磁盘实际有效的游戏。
+
+## NEC
+
+- **PC-8001/PC-8801** 使用每张磁盘的 MD5 校验和。
+ - 由于保存和其他操作会改变磁盘数据,需要加载镜像的本地副本来确保其哈希在不同会话间不会改变。
+
+- **PC Engine / TurboGrafx 16 / SuperGrafx** 使用 MD5 校验和,除非 ROM 有头信息。
+ - 如果文件大小比 128KB 的倍数多 512 字节,则忽略前 512 字节并对剩余文件内容进行哈希。如果文件大小不是 128KB 的倍数多 512 字节,则对整个文件进行哈希。
+
+- **PC Engine CD / TurboGrafx-CD** - 使用自定义哈希。引导代码和光盘标题按以下方式哈希:
+ - 从数据轨道的扇区 1 读取 128 字节(PCE 早于 ISO-9660,因此没有可读取的文件系统)。
+ - 如果数据 32 字节处不存在 `"PC Engine CD-ROM SYSTEM"`,则视为无效并丢弃。
+ - 将数据的最后 22 字节复制到缓冲区。这是光盘标题,通常用于识别游戏。
+ - 数据的前三个字节是引导代码的小端扇区索引。
+ - 第四个字节是引导代码占用的扇区数。
+ - 将引导代码追加到缓冲区(从扇区 X 开始的 N 个扇区)
+ - 对缓冲区进行哈希。
+
+- **PC-FX** 使用自定义哈希。引导代码和光盘标题按以下方式哈希:
+ - 从数据轨道的扇区 0 读取 32 字节(PC-FX 早于 ISO-9660,因此没有可读取的文件系统)。
+ - 如果未读取到 `"PC-FX:Hu_CD-ROM"`,则视为无效并丢弃。
+ - 将数据轨道的扇区 1 的 128 字节读入缓冲区。这是卷头,包含光盘标题。
+ - 缓冲区 32 字节处的 32 位值是引导代码的第一个扇区。
+ - 缓冲区 36 字节处的 32 位值是引导代码占用的扇区数。
+ - 将引导代码追加到缓冲区(从扇区 X 开始的 N 个扇区)
+ - 对缓冲区进行哈希。
+
+## Nintendo
+
+- **Famicom Disk System** 使用 MD5 校验和,除非文件有头信息。
+ - 如果 ROM 以 `FDS\1a` 开头,则忽略前 16 字节并对剩余文件内容进行哈希。
+ - 如果 ROM 不以 `FDS\1a` 开头,则对整个文件进行哈希。
+ - 由于保存会改变磁盘数据,需要加载镜像的本地副本来确保其哈希在不同会话间不会改变。
+
+- **Game Boy** 使用 MD5 校验和。
+
+- **Game Boy Advance** 使用 MD5 校验和。
+
+- **Game Boy Color** 使用 MD5 校验和。
+
+- **GameCube** 使用自定义哈希。初始加载的程序代码按以下方式哈希:
+ - 加载 Apploader 并添加到缓冲区。
+ - 加载 Apploader 中引用的每个 DOL 段(代码和数据)并添加到缓冲区。
+ - 对缓冲区进行哈希。
+
+- **Nintendo 64** 对大端序(`.z64`)ROM 使用 MD5 校验和。
+ - 字节交换(`.v64`)和小端序(`.n64`)使用其大端序对应版本的 MD5 校验和。
+
+- **Nintendo DS** 使用自定义哈希。
+ - NDS ROM 有 0x160 字节的头。此头中有指向图标/标题信息和两个处理器引导代码的指针。哈希方法将头、两段引导代码和图标/标题信息组合并对结果进行哈希。
+ - 图标/标题信息是从头中 $68 处存储的地址开始的 0xA00 字节
+ - arm9 代码地址存储于头的 $20,大小存储于头的 $2C
+ - arm7 代码地址存储于头的 $30,大小存储于头的 $3C
+
+- **Nintendo Entertainment System / Famicom** 使用自定义哈希。
+ - 如果 ROM 以 `NES\1a` 开头,则忽略前 16 字节并对剩余文件内容进行哈希。
+ - 如果 ROM 不以 `NES\1a` 开头,则对整个文件进行哈希。
+
+- **Pokemon Mini** 使用 MD5 校验和。
+
+- **Super Nintendo Entertainment System / Super Famicom / Satellaview / Sufami Turbo** 使用 MD5,除非 ROM 有头信息。
+ - 如果文件大小比 8KB 的倍数多 512 字节,则忽略前 512 字节并对剩余文件内容进行哈希。
+ - 如果文件大小不是 8KB 的倍数多 512 字节,则对整个文件进行哈希。
+- **Virtual Boy** 使用 MD5 校验和。
+
+## SNK
+
+- **Neo Geo CD** 使用自定义哈希。初始加载的程序代码按以下方式哈希:
+ - 加载并解析 `IPL.TXT` 文件。
+ - 文件的每一行是要加载的数据。PRG 文件是可执行代码。加载每个 PRG 文件并添加到缓冲区。
+ - 对缓冲区进行哈希。
+
+- **Neo Geo Pocket** 使用 MD5 校验和。
+
+- **Neo Geo Pocket Color** 使用 MD5 校验和。
+
+## Sega
+
+- **32X** 使用 MD5 校验和。
+
+- **Dreamcast** 使用自定义哈希。光盘元数据和主可执行文件按以下方式哈希:
+ - 将扇区 0 的前 512 字节追加到缓冲区。这包含卷头和 ROM 头。前 16 字节必须为 `"SEGA SEGAKATANA "`。否则视为无效并丢弃。
+ - 将主可执行文件(由卷头标识)的内容追加到缓冲区。
+ - 对缓冲区进行哈希。
+
+- **Game Gear** 使用 MD5 校验和。
+
+- **Master System** 使用 MD5 校验和。
+
+- **Mega Drive / Genesis** 使用 MD5 校验和。
+
+- **SG-1000** 使用 MD5 校验和。
+
+- **Saturn** 使用自定义哈希。
+ - 对轨道 0 的前 512 字节进行哈希。这包含卷头和 ROM 头。前 16 字节必须为 Sega CD 的 `"SEGADISCSYSTEM "` 或 Sega Saturn 的 `"SEGA SEGASATURN "`。否则视为无效并丢弃。
+ - 紧接这 512 字节之后是验证区域并加载主可执行文件的任意数量代码。不处理该代码,我们无法确定要哈希的额外文件,因此确定哈希整个 CD 的替代方案已足够。
+
+- **Sega CD** 使用自定义哈希。
+ - 对轨道 0 的前 512 字节进行哈希。这包含卷头和 ROM 头。前 16 字节必须为 Sega CD 的 `"SEGADISCSYSTEM "` 或 Sega Saturn 的 `"SEGA SEGASATURN "`。否则视为无效并丢弃。
+ - 紧接这 512 字节之后是验证区域并加载主可执行文件的任意数量代码。不处理该代码,我们无法确定要哈希的额外文件,因此确定哈希整个 CD 的替代方案已足够。
+
+## Sony
+
+- **PlayStation** 使用自定义哈希。主可执行文件及其名称按以下方式哈希:
+ - 加载并解析 `SYSTEM.CNF` 文件。主可执行文件由其中的 BOOT= 行标识。
+ - 从 `SYSTEM.CNF` 中提取主可执行文件名称(及其路径)并写入缓冲区。
+ - 将主可执行文件的内容追加到缓冲区。
+ - 对缓冲区进行哈希。
+- **PlayStation 2** 使用自定义哈希。主可执行文件及其名称按以下方式哈希:
+ - 加载并解析 `SYSTEM.CNF` 文件。主可执行文件由其中的 BOOT2= 行标识。
+ - 从 `SYSTEM.CNF` 中提取主可执行文件名称(及其路径)并写入缓冲区。
+ - 将主可执行文件的内容追加到缓冲区。
+ - 对缓冲区进行哈希。
+- **PlayStation Portable** 使用自定义哈希。光盘元数据和主可执行文件按以下方式哈希:
+ - 将 `PSP_GAME\PARAMS.SFO` 文件的内容写入缓冲区。这包含菜单中显示的游戏属性,包括名称和序列号。
+ - 将主可执行文件(`PSP_GAME\SYSDIR\EBOOT.BIN`)的内容追加到缓冲区。
+ - 对缓冲区进行哈希。
+
+## WASM-4
+
+- **WASM-4** 使用 MD5 校验和。
+
+## Watara
+
+- **Supervision** 使用 MD5 校验和。
+
+## Wellback
+
+- **Mega Duck** 使用 MD5 校验和。
diff --git a/docs/zh/developer-docs/getting-started-as-an-achievement-developer.md b/docs/zh/developer-docs/getting-started-as-an-achievement-developer.md
new file mode 100644
index 00000000..fabe26f5
--- /dev/null
+++ b/docs/zh/developer-docs/getting-started-as-an-achievement-developer.md
@@ -0,0 +1,171 @@
+---
+title: 成就开发者入门
+description: 学习为游戏创建成就的基础知识,包括查找内存地址、创建条件和测试成就。
+---
+
+# 成就开发者入门
+
+**欢迎来到成就创作的世界!**
+
+## 基本概念
+
+从技术上讲,**成就是在视频游戏的特定帧中必须满足的一组条件**。
+
+当您在具有 RetroAchievements 功能的模拟器上启动游戏时,模拟器会持续检查这些条件是否在当前帧中满足。当特定成就的所有条件都满足时,成就将被授予,模拟器将停止检查该成就的条件。
+
+创建成就的过程基本上涉及 3 个步骤:
+
+1. 在游戏的 RAM 中找到存储您所需信息的位置(例如:关卡、生命条、时间、金币、持有武器、获得物品等)。
+
+2. 创建必须满足才能授予成就的条件。
+
+3. 测试您的成就是否按预期工作。
+
+您很可能会多次回到第 2 步和第 3 步来完善成就的逻辑。
+
+在本文档中,我们将了解如何完成上述步骤。
+
+当您确定成就会在您想要的条件下触发后,可以将其提交到服务器。我们稍后会详细介绍。
+
+## 第一步
+
+在开始之前,请确保您已从 [RetroAchievements 下载页面](http://retroachievements.org/download.php) 获取 RA 模拟器,并 [创建账户](http://retroachievements.org/createaccount.php) 以便使用模拟器登录。
+
+在本指南中,我们将使用 RALibRetro 和 Genesis Plus GX 核心进行演示,以及游戏 [Sonic the Hedgehog](http://retroachievements.org/Game/1)。我们使用 RALibRetro,但独立模拟器同样适用。
+
+首先,运行 RALibRetro 可执行文件并在提示时登录。如果您之前未使用过 Genesis Plus GX 核心,可以通过 设置 -> 管理核心 -> 在下拉菜单中选择 Sega Genesis -> 点击核心名称右侧的下载 来安装。安装核心后,进入 文件 -> 选择核心 -> Sega Genesis -> Genesis Plus GX。选择核心后,您需要加载游戏。进入 文件 -> 加载游戏 并选择 Sonic the Hedgehog ROM(我们建议默认使用 No Intro ROM)。
+
+## 内存检查器
+
+您现在应该有一个运行 Sonic 的主窗口。我们将使用 3 个其他对话框,可在菜单的 **RetroAchievements** 下找到。我们首先处理 **内存检查器**:
+
+
+
+内存检查器可用于查找我们要使用的 RAM 地址。本质上,您是在进行内存位置的寻宝——此对话框将帮助您在游戏运行时检查和筛选游戏的 RAM。
+
+**注意:如果您想要关于查找内存地址的分步视频说明,可以 [观看此更新视频](https://www.youtube.com/watch?v=7ZMlBVyHl5M)。**
+**如需另一个视频资源,可以 [观看此较旧视频](https://www.youtube.com/watch?v=8nYb_5cgQHY)**。
+
+**另见**:[内存检查器概述](/zh/developer-docs/memory-inspector) 和 [内存挖掘技巧](/zh/developer-docs/tips-and-tricks#memory-digging-tips)。
+
+要开始或重新开始测试,请点击左上角附近的 **Reset**。
+
+为简单起见,我们将从查找存储已收集戒指数量的内存地址开始。我们的步骤如下:
+
+1. 加载 ROM 并开始新游戏。
+
+2. 重置内存对话框:点击 **Reset**。
+
+3. 运行第一个筛选:点击 **Filter Once**。
+
+4. 返回游戏并改变内存中的戒指数量。例如,收集一个戒指。
+
+5. 在内存对话框中,我们现在要筛选“大于先前值”的值(符号 `>`)。我们选择此项,然后再次点击 **Filter**。
+
+每次执行 4 然后 5 时,可能性或“候选”的数量会减少。我们将继续执行此操作,直到候选数量达到非常少的数量(尽可能少),可能需要多次尝试。接下来,我们可以在结果窗口中点击,并在底部的内存查看器中监控该内存地址。继续使用游戏,您应该会看到内存中的值随着您收集戒指而变化。如果没有,或者某些内容看起来不对,请尝试另一个值。对于第一款 Sonic the Hedgehog,戒指数量的内存地址应为 `0xfe20`。
+
+- **注意 1**:使用存档状态(Shift+F1-F10 保存状态,F1-F10 加载状态),您可以在不同状态之间切换,从而改变 RAM 中的内容,并使用此方法筛选掉不良候选。您可以搜索保持不变的值(即如果您知道值没有改变,使用 `=`),或不同的值(使用“不等于”,符号 `!=`)。使用上面的示例,您可以收集一个戒指然后使用“>”筛选,走几步然后使用“=”筛选(因为戒指数量没有改变),收集更多戒指并再次使用“>”筛选,等等。
+
+- **注意 2**:不幸的是,不同游戏开发者存储数据的方式无法保证(4 位、8 位、16 位、二进制编码十进制、负数/反转,即使用 0xff/0xffff 表示“已设置”,或纯随机),但最终您应该会找到一些好的地址。如果您在寻找好的值方面遇到困难,请在 [RetroAchievements.org 开发帮助论坛](http://retroachievements.org/viewforum.php?f=15) 或 [RetroAchievements Discord 服务器](https://discord.gg/dq2E4hE) 发帖。有很多人非常乐意帮助!!
+
+- **提示**:如果您想试验内存,可以尝试直接在 RAM 查看器中输入新值。这可能对游戏产生毁灭性影响,或者可能完全符合您的预期(或者完全没有效果!)不过,看看您能否输入一个值并获得预期的结果可能很有用。请谨慎使用!
+
+当您找到满意的地址后,可以为其写简短说明并点击 **Save Note**,这将将其存储到数据库,并在下次您为此游戏加载内存查看器时自动恢复,无论您身在何处!请注意,点击“Save Note”后,说明将自动存储到数据库并共享,以便所有开发者都能访问这些内存说明。加载 ROM 时会重新下载它们。如果您尝试覆盖说明,会在提交前先与您确认。
+
+您可以在此处找到更多有用的 [内存挖掘技巧](/zh/developer-docs/tips-and-tricks#memory-digging-tips)。
+
+## 成就集
+
+所以戒指数量的内存位置存储在 `0xfe20`——对于非程序员来说,我们使用的是 [十六进制数字系统](https://simple.wikipedia.org/wiki/Hexadecimal_numeral_system),这可能令人望而生畏,但不用担心,本质上它只是用数字和字母代替仅数字,不要忘记开头的 `0x` 表示这是十六进制中的内存位置。我们找到了感兴趣的地址并使用 **Save Note** 存储了它。我们现在想创建一个新成就。
+
+进入菜单中的 **RetroAchievements**,选择 **Achievement Sets**,您将看到此对话框:
+
+
+
+在这里,我们将所有已知的成就分为三组:
+
+1. 核心成就(主要的公开成就集),
+
+2. 非官方/用户成就(公开,但不会授予您积分:用于同行评审),
+
+3. 本地成就(仅限您的电脑)。
+
+在成就对话框中,点击 **Local Achievements**(左上角),然后点击 **Add New Achievement**(右上角)。这将在中心列表中添加一个空白条目。双击它:如果尚未打开,这应选择它并打开 **成就编辑器** 对话框。
+
+## 成就编辑器
+
+看起来是这样的:
+
+
+
+这是我们将所有数据汇集在一起的最终对话框。顶部的大多数字段是不言自明的,即标题、描述、积分。主要部分是“Requirements”(要求)部分。
+
+假设我们想添加一个收集一定数量戒指的成就。为简单起见,假设是 15 个戒指。在填写顶部的字段并选择合适的图标(在此示例中我们使用了金杯徽章 (00136),但您可以上传新的)后,我们需要填写 Requirements。我们有一个要求,**戒指数量至少为 15**。下一步点击 **Add New Requirement**。
+
+点击此按钮将向 Requirements 列表添加几个默认值。这些默认值只是确保添加相对合理的内容。现在,忽略“Special?”字段。当我们点击创建时,默认内存值将是您在内存对话框中最后留下的任何值。
+
+接下来,我们将这些值更改为以下内容:
+
+- **Size**:`16-bit` - 我们使用 16 位是因为该值_可以_超过 255(十六进制为 0xff)
+- **Memory**:`0xfe20`
+- **Cmp**:`>=` - 这是要进行的比较。我们可以在此处进行任何比较,但使用“大于或等于”是合理的。这很重要,因为如果我们获得 10 个戒指然后获得超级戒指盒达到 20 个,我们会错过_恰好_15 个戒指。
+- **Type**:`Value` - 我们将此内存值与固定值比较:15
+- **Size**:`Empty` - 仅在比较内存与内存时相关
+- **Mem/Val**:`15` - 所需的戒指数量:我们正在将内存与之比较的值
+- **Hit Count**:`0` - 暂时忽略,当某件事需要发生一定次数时很有用
+
+设置完成后,我们没有更多条件要添加,因此我们返回 **Achievements Dialog**。为安全起见,我们应该通过点击 **Save Local** 保存进度!这会将所有内容本地保存到文件,以确保我们不会丢失任何进度。
+
+- **注意**:成就应有多个要求以避免在错误时间触发(例如播放演示模式)。在此示例中,我们仅使用一个要求来简化说明。在此处查看更多 [成就创建技巧](/zh/developer-docs/tips-and-tricks#achievement-creation-tips)。
+
+## 测试成就
+
+我们现在可以通过在成就编辑器中勾选右侧 **Active** 旁边的复选框,或在 Achievement Sets 中选择成就并点击 **Activate Selected** 来在本地“激活”此成就。这将开始监控这些内存位置,并在所有条件为真时授予成就。现在我们可以继续测试看看此成就是否有效!
+
+
+
+如果我们在游戏中按 `Esc`,您将看到成就显示为演示其在游戏内叠加层中的外观!
+
+
+
+尽管成就我们的测试中运行良好,但具有类似逻辑的成就尚未准备好正式发布。首先,它只有一个条件:“收集的戒指 >= 15”。问题是用于记录收集戒指数量的内存地址也在游戏以“演示模式”运行(在标题屏幕等待一段时间后 AI 玩游戏)时使用。因此,如果 Sonic 在演示模式中收集 15 个戒指,此成就将触发,这是不希望的。
+
+查看下面下一部分的技巧,了解如何改进成就的逻辑,然后使其可以正式发布。
+
+## 重要技巧
+
+创建成就时,您必须牢记以下技巧:
+
+- **~~永远不要~~尽可能避免仅使用一个条件创建成就**。否则,它很可能在错误的时间弹出。这是**开发者最常见的错误**
+
+- 如果游戏有**演示模式**(在标题屏幕等待一段时间后 AI 玩游戏),请确保 [查找其地址](/zh/developer-docs/tips-and-tricks#finding-the-address-for-demo-mode) 并添加条件,以便您的成就在演示模式中不会触发。您还需要了解如何使用 [PauseIf](/orphaned/achievement-logic-features#pauseif) 和 [ResetIf](/orphaned/achievement-logic-features#resetif)。
+
+- **[PauseIf](/orphaned/achievement-logic-features#pauseif) 作弊码**:如果游戏有增加生命、选择关卡等的作弊码,请确保查找其地址并在成就中添加某种保护。好的,这可能不是非常基础的主题,但创建正式成就集时必须牢记。
+
+- **避免仅为进入关卡创建成就**。因为它可以通过密码或关卡选择作弊码获得。最好为完成关卡创建成就,[如此模板](/zh/developer-docs/achievement-templates#finish-level-n)。此外,**不要仅为开始游戏或“使用角色 X 开始游戏”创建成就**。
+
+- 如果您想为在游戏中获得独特物品创建成就,请添加一些条件以确保玩家在应该获得物品的地方获得了物品,[如此模板](/zh/developer-docs/achievement-templates#collect-an-item-in-a-specific-level)。否则,成就可以通过使用密码或加载存档获得。
+
+- **避免为需要最少努力的简单事情创建过多成就**。**不要**做的示例:在 Super Mario Bros 中获得一个金币或一个蘑菇。
+
+- 注意 [不受欢迎的成就设计概念](/zh/guidelines/developers/code-of-conduct#unwelcome-concepts)。
+
+- **发挥创意设计成就**。涵盖游戏独特功能和细节的成就最受欢迎。当玩家喜爱的游戏的小细节在成就中得到支持时,玩家会很喜欢。阅读 [GameFAQs](https://gamefaqs.gamespot.com/) 上的攻略可以带来一些灵感。
+
+- 理解游戏中的内存工作原理可能需要一段时间,所以尽量花尽可能多的时间研究它,特别是如果这是您第一次开发成就。
+
+您可以在 [技巧与窍门页面](/zh/developer-docs/tips-and-tricks) 找到更多内容。
+
+## 下一步
+
+既然您知道如何使用内存检查器和成就编辑器。是时候学习新技术并练习了:
+
+- 为了完善成就逻辑,您可以在 [成就逻辑功能](/orphaned/achievement-logic-features) 页面查看您拥有的功能。
+
+- 另一种学习方式是查看其他开发者制作的带有额外解释的现有成就,在 [真实示例](/zh/developer-docs/real-examples) 页面。
+
+- 您还可以在 [成就模板](/zh/developer-docs/achievement-templates) 页面查看一些通用示例。
+
+- 一旦您学习了基本技术,可以按照此处解释的步骤继续成为成就开发者的旅程:[如何成为成就开发者](/zh/developer-docs/how-to-become-an-achievement-developer)
+
+祝您愉快!
diff --git a/docs/zh/developer-docs/hit-counts.md b/docs/zh/developer-docs/hit-counts.md
new file mode 100644
index 00000000..b31278b0
--- /dev/null
+++ b/docs/zh/developer-docs/hit-counts.md
@@ -0,0 +1,31 @@
+---
+title: 命中次数
+description: 学习如何在成就编辑器中使命中次数创建必须在多次满足条件后才能触发的成就。
+---
+
+# 命中次数
+
+在成就编辑器中,最右侧的字段是命中次数。
+
+
+
+默认为零,表示条件必须为真才能触发成就。
+
+如果设置目标命中次数(如 5),表示条件必须至少在该数量的帧内为真,一旦达到该命中次数目标,则无需在任何其他时间再次满足。
+
+**请注意**:如果条件具有非零命中次数并达到所需数量,则该条件不再被测试。它保持为真,**除非**你有 [`ResetIf`](/zh/developer-docs/flags/resetif),我们将在下面讨论。
+
+具有 [`ResetIf`](/zh/developer-docs/flags/resetif) 和 [`PauseIf`](/zh/developer-docs/flags/pauseif) 标志的条件也可以有命中次数。请参阅链接了解详情。
+
+在[实际示例](/zh/developer-docs/real-examples)部分有两个很好的示例:
+
+- [使用命中次数作为计时器](/zh/developer-docs/real-examples/using-hit-counts-as-a-timer)
+- [使用 Delta 值和命中次数检测递增](/zh/developer-docs/real-examples/using-delta-values-and-hit-counts-to-detect-an-increment)
+
+### 重置模拟器的影响
+
+当模拟器重置时,所有命中次数会立即清零,成就会恢复为等待状态。然而,模拟器重置不会清除内存,因此命中次数有可能在游戏重新初始化内存之前重新累积。因此,你不应依赖模拟器重置来清除命中次数。
+
+同样,当模拟器首次「通电」时,内存状态不能保证与真实硬件一致,因为真实硬件不会初始化其内存。相反,软件在占用内存部分时会设置一些初始状态。有些游戏实际上依赖未初始化内存的随机性来为其随机数生成器提供种子。
+
+对于这两种情况,你应该对某些可知逻辑有明确的重置,例如玩家在标题屏幕上。
diff --git a/docs/zh/developer-docs/how-to-become-an-achievement-developer.md b/docs/zh/developer-docs/how-to-become-an-achievement-developer.md
new file mode 100644
index 00000000..2001d7d0
--- /dev/null
+++ b/docs/zh/developer-docs/how-to-become-an-achievement-developer.md
@@ -0,0 +1,91 @@
+---
+title: 如何成为成就开发者
+description: 成为 RetroAchievements 开发者的分步指南,包括所需知识、规划和最佳实践。
+---
+
+# 如何成为成就开发者
+
+本文档旨在提供有关如何[加入初级开发者计划](/zh/developer-docs/jr-dev-rules)的指导,并解释一些有助于成就集开发的有用信息。
+
+**只要付出努力,任何人都可以成为 RetroAchievements 开发者。**
+
+初级开发者**必须**加入 RetroAchievements Discord 服务器。该服务器是初级开发者计划的管理所在地。如果你已经知道要开发哪款游戏,可以在 `#role-request` 论坛中创建标记为 `Jr-Dev` 的帖子,发布你的游戏成就集计划(可使用这些[模板](https://docs.google.com/spreadsheets/d/1VC2phJ9AUcZK5Ll4bVuMpJXED8QdM_nw8OdSAuLc3bI/edit)之一),并 @Code-Reviewer 以申请成就集计划批准和初级开发者计划入门。
+
+如果尚未完成,请务必先按照 `#welcome` 中的说明验证你的账户。
+
+## 寻找要开发的游戏
+
+遵循[开发者行为准则](/zh/guidelines/developers/code-of-conduct#working-on-empty-sets)中的指南寻找游戏。在开发成就之前,确保游戏符合[规则与限制](/zh/developer-docs/jr-dev-rules#rules-and-restrictions)。
+
+## 规划你的成就集
+
+找到要开发的游戏后,你需要规划成就集。在网站上认领游戏之前,初级开发者必须在 `#jr-devs-requests` 中提交成就集计划以供批准。
+
+确保你对游戏有足够了解以制定良好的成就集。查阅 GameFAQs、维基,观看长流程视频,尝试了解更多关于游戏、其秘密和细节的信息。
+
+建议将你的计划发布在游戏官方论坛主题中,以便社区留下建议和反馈。
+
+**重要!:保持开放心态接受反馈和建议。**
+
+**另见**:[成就设计](/zh/developer-docs/achievement-design)。这是关于如何设计优秀且有趣成就的详尽指南。它不涉及技术方面,而是概念方面。
+
+## 认领游戏并开始开发
+
+一旦成就集计划获得代码审查者批准,初级开发者即可认领游戏并开始开发。要认领游戏,该游戏必须有论坛主题。如果还没有,你可以在 Discord 服务器的 `#jr-devs-requests` 中请代码审查者创建一个。
+
+我们建议使用请求数不超过 10 个的游戏开发你的第一个成就集。这使你能够专注于学习过程并提升技能,因为初始成就集通常需要迭代改进。较小的受众也有助于管理初始支持请求,避免工单突然激增。
+
+## 所需知识
+
+每位开发者至少必须了解以下两份文档中展示的基本概念和技巧:
+
+1. [作为成就开发者入门](/zh/developer-docs/getting-started-as-an-achievement-developer)
+2. [Achievement Logic Features](/orphaned/achievement-logic-features)
+
+初级开发者计划毕业生必须证明在以下概念方面具备熟练度:
+
+- 扎实的[成就集设计](/zh/developer-docs/achievement-design)
+- 使用[内存检查器](/zh/developer-docs/memory-inspector)进行 RAM 挖掘
+- 适当的成就集呈现和[写作](/zh/guidelines/content/writing-policy)
+- 在有限监督下制作高质量、稳定的成就集
+
+建议学习的初始主题:
+
+- [十六进制表示法](/zh/developer-docs/memory-inspector#decimal-binary-and-hexadecimal-notations)
+- [Mem/Delta 关系](/zh/developer-docs/delta-values)
+- 各种内存大小
+- [命中次数](/zh/developer-docs/hit-counts)
+- [`ResetIf`](/zh/developer-docs/flags/resetif)
+- [备选组](/zh/developer-docs/alt-groups)
+- [`PauseIf`](/zh/developer-docs/flags/pauseif)
+- 除 `=` 之外的成就逻辑比较,如 `>`、`<`、`!=`
+- [为成就创建准确的描述](/zh/guidelines/developers/code-of-conduct#basic-achievement-design-guidelines)
+- 添加适当的[保护](/zh/developer-docs/getting-started-as-an-achievement-developer#important-tips)
+- 将命中次数用作计时器(如[此示例](/zh/developer-docs/real-examples/using-hit-counts-as-a-timer)和[此示例](/zh/developer-docs/real-examples/creating-a-timer-with-reset-if-hits-based-on-the-speed-of-the-game))
+- [ResetIf 检查点](/zh/developer-docs/achievement-templates#finish-level-n-without-dying)
+- [AddSource](/zh/developer-docs/flags/addsource) 和 [SubSource](/zh/developer-docs/flags/subsource) 标志
+- [AddHits 和 SubHits 标志](/zh/developer-docs/flags/addhits-subhits)
+- [递增计数器(Mem > Delta 计数器)](/zh/developer-docs/real-examples/using-delta-values-and-hit-counts-to-detect-an-increment)
+- [Delta 命中计数器,暂停技巧](/zh/developer-docs/achievement-templates#check-for-a-specific-value-changing-to-another-specific-value-ten-times)
+- [小端序](/zh/developer-docs/memory-inspector#endianness)
+- 内存大小:[Lower4、Upper4](/zh/developer-docs/memory-inspector#upper4-and-lower4) 和 [16 位、32 位](/zh/developer-docs/memory-inspector#_16-and-32-bit-mode)
+- 动态 [Rich Presence](/zh/developer-docs/rich-presence)
+- [排行榜](/zh/developer-docs/leaderboards)
+
+[实际示例](/zh/developer-docs/real-examples)和[成就模板](/zh/developer-docs/achievement-templates)页面是了解这些技巧如何运作的有用资源。
+
+## 请求代码审查
+
+创建成就集后,将其发布到 Unofficial,然后在 `#jr-devs-requests` 中创建帖子。遵循[请求代码审查](/zh/developer-docs/jr-dev-rules.html#code-review-requests)的所有要求。
+
+## 我何时会被晋升为开发者?
+
+代码审查者负责确保初级开发者计划的毕业生将成为有价值的 RetroAchievements 开发者。成为开发者不是权利也不是资格。对于项目的健康发展而言,开发者需要技能娴熟、值得信赖、善于团队合作,并能在很少或无需监督的情况下制作高质量成就集,这一点很重要。
+
+代码审查团队将主要根据以下标准的评估来决定是否让初级开发者毕业:
+
+- 其发布的作品达到或超过[开发者行为准则](/zh/guidelines/developers/code-of-conduct)标准的能力
+- 作品的质量和复杂度
+ - 高质量定义为扎实的成就集设计、写作、徽章、代码注释和成就逻辑
+- 他们在规划和开发成就方面投入的时间和思考
+- 表现出谨慎和负责任地使用开发者身份的意愿
diff --git a/docs/zh/developer-docs/index.md b/docs/zh/developer-docs/index.md
new file mode 100644
index 00000000..a6fb5079
--- /dev/null
+++ b/docs/zh/developer-docs/index.md
@@ -0,0 +1,49 @@
+# 成就开发
+
+如果你想成为成就开发者,请查看[如何成为开发者](/zh/developer-docs/how-to-become-an-achievement-developer)。
+
+每位开发者都必须了解并遵守[开发者行为准则](/zh/guidelines/developers/code-of-conduct)。
+
+以下是本部分中一些页面的简要说明。
+
+1. [如何成为成就开发者](/zh/developer-docs/how-to-become-an-achievement-developer):获取开发者身份所需步骤的概述
+
+2. [成就开发者入门](/zh/developer-docs/getting-started-as-an-achievement-developer):面向与成就开发工具(内存检查器和其他成就对话框)的首次接触。**如果你是完完全全的新手,从这里开始!**
+
+3. [初级开发者计划规则](/zh/developer-docs/jr-dev-rules):管理初级开发者计划的规则集
+
+4. [成就评分](/zh/developer-docs/achievement-scoring):决定成就总分数的指南
+
+5. [内存检查器概述](/zh/developer-docs/memory-inspector):成就开发者最常用工具之一的详细介绍。
+
+6. [成就逻辑功能](/zh/orphaned/achievement-logic-features):描述开发者可用于改进成就背后逻辑的可用工具,如 delta 值、命中计数、ResetIf、PauseIf、Alt 组等。
+
+7. [真实示例](/zh/developer-docs/real-examples):展示真实示例并剖析其背后的逻辑。**绝佳学习资源!**
+
+8. [成就模板](/zh/developer-docs/achievement-templates):一些通用模板以供参考。
+
+9. [技巧与窍门](/zh/developer-docs/tips-and-tricks):关于内存挖掘和成就创建的一般技巧与窍门。
+
+10. [难度等级与平衡](/zh/developer-docs/difficulty-scale-and-balance):关于如何平衡成就集难度的指南/建议。
+
+11. [成就设计](/zh/developer-docs/achievement-design):关于如何思考和设计优秀成就的指南,侧重概念而非技术。
+
+12. [成就集修订](/zh/guidelines/content/achievement-set-revisions):关于修订、重新评分和图标挑战的信息。
+
+13. [子集](/zh/guidelines/content/subsets):关于创建特殊挑战集及如何发布的进阶主题。
+
+14. [徽章与图标制作](/zh/guidelines/content/badge-and-icon-guidelines):关于徽章/图标制作的一些指南和技巧。
+
+15. [排行榜](/zh/developer-docs/leaderboards):如何为游戏创建排行榜的说明。
+
+16. [丰富状态](/zh/developer-docs/rich-presence):如何编写丰富状态脚本。
+
+17. [使用正确的 ROM](/zh/guidelines/content/working-with-the-right-rom):关于使用正确 ROM 和哈希的信息。
+
+18. [游戏识别](/zh/developer-docs/game-identification):各系统所用哈希方法的详情。
+
+19. [不支持的模拟器](/zh/developer-docs/unsupported-emulators-and-cores):关于不支持的模拟器和核心、测试进度等的详情。
+
+20. [ROM 改版的成就](/zh/guidelines/content/achievements-for-rom-hacks):开发者关于 ROM 改版的正确纳入(及审批)的详细指南。
+
+21. [各平台特定技巧](/zh/developer-docs/console-specific-tips):了解你喜爱的平台的特性有助于内存挖掘。
diff --git a/docs/zh/developer-docs/jr-dev-rules.md b/docs/zh/developer-docs/jr-dev-rules.md
new file mode 100644
index 00000000..be785310
--- /dev/null
+++ b/docs/zh/developer-docs/jr-dev-rules.md
@@ -0,0 +1,95 @@
+---
+title: 初级开发者计划规则
+description: 初级开发者计划的全面指南,包括规则、指南和说明。
+---
+
+# 初级开发者计划规则
+
+[[toc]]
+
+## 概述
+
+初级开发者计划的目的是帮助有兴趣的人学习如何为 RetroAchievements 创建和维护高质量成就集。该计划面向打算追求毕业并成为正式开发者的人。作为计划的一部分,初级开发者创建成就集以展示在成就集设计、成就集呈现、工具包使用和实现方面的熟练度。
+
+初级开发者需要理解并遵守[开发者行为准则](/zh/guidelines/users/code-of-conduct),除非本文档另有规定。
+
+### 加入要求
+
+要加入初级开发者计划,必须满足以下要求:
+
+- 必须熟悉 RetroAchievements 成就集的结构:这意味着拥有至少 3 个月的账户且至少有 3,000 点。由于成就集必须考虑硬核模式设计,硬核点数优先但不是必须
+- 不得被禁止或暂停成就开发,或非自愿地从竞争性排行榜中取消跟踪
+- 在 [RetroAchievements Discord 服务器](https://discord.gg/dq2E4hE)上验证 Discord 账户
+- 通读所有 [RetroAchievements 开发者文档](/zh/developer-docs/)
+
+### 作为初级开发者开发和发布成就集
+
+作为初级开发者开发成就集的流程遵循以下路线图。特别是,有 3 个步骤需要代码审查者批准才能继续,即**成就集计划**、**准备审查**和**代码审查**:
+
+- 准备详细的**成就集计划**。建议从我们的[模板](https://docs.google.com/spreadsheets/d/1VC2phJ9AUcZK5Ll4bVuMpJXED8QdM_nw8OdSAuLc3bI/edit#gid=0)之一开始,但你可以随时间调整以适合自己的需求。
+- 提交成就集计划以供批准。虽然成就集计划不是最终产品,但必须显示计划成就集的大致轮廓,包括进度、挑战和其他类型的成就。必须包含简要描述和点数。如果在开发过程中与成就集计划有重大偏差,必须提交修订后的成就集计划以供批准。
+ - 如果这是你作为初级开发者的第一个成就集,你必须在 [RetroAchievements Discord 服务器](https://discord.gg/dq2E4hE)的 #role-request 论坛中提交此成就集计划,以及你的 RA 个人资料链接、你希望开发的游戏页面链接,并 @Code-Reviewer。
+ - 如果你已经是初级开发者,你必须在 #jr-devs-requests 上提交此成就集计划。作为至少已发布一个成就集的初级开发者,你可以在制定成就集计划时认领游戏,但在计划获得批准之前不允许进行任何工作。
+- 计划获得批准后,开发你的成就集。这包括 RAM 挖掘、制作资源、创建成就徽章、编写清晰的描述和独特的标题,以及全面测试你的资源。代码审查者和初级开发者同行可在 #jr-devs 中提供帮助!
+- 通过在 #jr-devs-requests 上发布**准备审查**帖子来[请求审查](/zh/developer-docs/am-i-ready-for-review)。仅当你认为成就集已尽可能接近可发布状态时才这样做。
+ - 要在此步骤获得批准,你的成就集必须清除 AutoCR 标记的不良实践。
+ - 一旦在此步骤获得批准,你的成就集将被添加到审查待办列表,你等待深入的代码审查。在此期间,强烈建议阅读其他初级开发者的审查并改进你自己的待审查成就集,每当阅读到同样适用于你工作的反馈时。
+- 与你的代码审查者完成**代码审查**。准备好重做逻辑并学习最佳实践。这可以说是你学习和展示熟练度与理解力的最佳机会。
+- [可能毕业](#graduation-consideration)并成为开发者。这不能在第一个成就集之后发生,取决于包括熟练度和信任在内的多种因素,如下所述。
+- 发布你的成就集供所有 RA 用户享受!
+
+### 规则与限制
+
+以下规则适用于所有初级开发者:
+
+- 必须留在 RA 的 Discord 服务器上以便与代码审查者进行所有沟通
+- 只能为自己拥有有效认领的成就集创建成就、排行榜和 Rich Presence
+ - **这包括本地工作**。这意味着不得从事任何未认领的成就集。不遵守此规则可能导致从初级开发者计划中除名
+ - 初级开发者可以练习 RAM 挖掘未认领的游戏,但不得发布任何代码注释
+- 将[解决未处理工单](#ticket-handling)优先于开发新成就集。特别是,在有任何未处理工单时不能进行新的认领
+- 如果初级开发者需要将认领延长超过 3 个月,他们需要根据[认领系统中延长认领的规则](/zh/guidelines/developers/claims-system.html#extending-a-claim)在游戏官方论坛上发布进度报告。此外,在第二次延期(六个月时)以及任何进一步延期之前,必须向[代码审查团队](https://retroachievements.org/messages/create?to=CodeReviewTeam)发送详细的进度报告以供批准,然后才能进行延期。在进度不足的情况下,团队可能拒绝延期。
+
+毕业前你可以进行的认领类型有限制。你不能:
+
+- 从事子集、合作或修订(不包括你自己的)
+- 如果你已为另一个 hack 发布成就集,则认领 hack
+- 认领你自己开发的 hack 或自制游戏
+- 认领任何 Gamecube 游戏
+- 未经代码审查者明确批准认领以下任何主机的游戏。你可以将此批准作为成就集计划批准的一部分请求,且仅在你之前已发布另一个成就集的情况下:
+ - PlayStation 2
+ - PlayStation Portable
+ - 任何未来的第六代及以后主机,除非特别允许
+ - 使用 [Windows CE 固件](https://retroachievements.org/game/24833)的 Dreamcast 游戏
+
+### 工单处理
+
+初级开发者应将解决未处理工单优先于开发新成就集。
+
+- 如果工单处于 Request 状态,正在等待报告者提供信息,他们可以继续开发新成就集,但一旦报告者回复,必须立即将工单重新优先处理
+ - 要将工单置于 Request 状态,在通过工单评论向报告者请求更多信息后,使用 #jr-devs-requests 请代码审查者将工单转移给报告者。
+- 一旦你完全处理了工单,在工单上留下评论,描述问题的原因以及你为解决该问题所做的工作。
+- 在发表评论后,使用 Discord 上的 #jr-devs-requests 论坛频道联系代码审查者,以适当解决或关闭工单。
+
+### 从初级开发者计划中除名
+
+参与初级开发者计划不是权利。初级开发者应认真对待该计划,付出重大努力,在无法解决问题时寻求帮助,努力制作最高质量的成就集,并成熟地接受和应用代码审查者的反馈。初级开发者可能因以下原因被暂时或永久从计划中除名:
+
+- 违反 [RA 开发者行为准则](/zh/guidelines/developers/code-of-conduct)或本文档中规定的规则
+- 在积极开发或 RA 整体上[不活跃](/zh/guidelines/developers/code-of-conduct#inactivity) 1 个月
+ - 如果你的成就集在审查待办列表中或正在接受审查,则不适用
+ - 首次因不活跃被除名可请求立即恢复初级开发者角色
+ - 后续因不活跃被除名可能需经代码审查者酌情决定,在能够重新加入计划之前接受 30 天冷却期(自降级操作开始)
+- 持有认领 1 个月无进展
+ - 如果你的成就集在审查待办列表中或正在接受审查,则不适用
+ - 你必须向网站推送代码注释、资源或游戏页面更新才能重置此计时器。仅打开游戏不计入
+ - 如果因此被除名并希望重新加入,在角色请求时需要提供进度报告,并推送任何本地工作到网站或提供你的 `GameID-User.txt` 文件
+
+### 毕业考虑
+
+代码审查者在决定初级开发者是否准备好毕业并成为正式开发者时会考虑多种因素。此决定背后的核心问题是「初级开发者能否成功融入开发者团队,并值得信赖地根据 RetroAchievements 的内容指南制作和维护高质量成就集?」此问题通过考虑以下各个方面来评估:
+
+- 初级开发者是否表现出一致成熟度和专业水平,值得信赖获得更高的网站权限?
+- 初级开发者是否在开发者工具包的大部分方面表现出技术熟练度?
+ - [初级开发者毕业成就集成就](https://retroachievements.org/game/3046)提供了工具包的良好概述
+- 初级开发者是否在很少或无需协助的情况下制作了达到或超过开发者行为准则和内容指南要求的成就集?
+- 初级开发者是否表现出强烈的学习意愿,并通过提问、讨论和自学积极寻求自我提升?
diff --git a/docs/zh/developer-docs/leaderboards.md b/docs/zh/developer-docs/leaderboards.md
new file mode 100644
index 00000000..a815b8db
--- /dev/null
+++ b/docs/zh/developer-docs/leaderboards.md
@@ -0,0 +1,163 @@
+---
+title: 排行榜
+description: 了解如何为 RetroAchievements 创建和管理排行榜,包括开始、取消和提交条件。
+---
+
+# 排行榜
+
+[[toc]]
+
+## 概述
+
+以下是游戏排行榜列表在网站上的显示方式:
+
+
+
+中间可以看到所有已创建的排行榜,右侧列显示游戏的**代码注释**。代码注释用于帮助理解下面将介绍的一些条件。
+
+现在你也可以像成就一样,通过从资源列表中选择排行榜,在 GUI 中创建和编辑排行榜:
+
+
+
+以下是单个排行榜各字段的简要说明:
+
+- **Title**(标题):排行榜的标题。
+- **Description**(描述):排行榜的描述。
+- **Format**(格式):指定数值的显示方式。
+- **"LowerIsBetter" 复选框**:决定列表的排序方式。勾选时,较低值在排行榜中显示为较高名次。基于时间的排行榜通常以更快时间(更低值)为优,而基于分数的排行榜则偏好更高值。
+- **Start**(开始):开始条件,即 **STA**。
+- **Cancel**(取消):取消条件,即 **CAN**。
+- **Submit**(提交):提交条件,即 **SUB**。
+- **Value**(数值):数值解释器,即 **VAL**。
+- **Display Order**(显示顺序):排行榜的显示顺序,设为 -1 时也可用于隐藏。只能从网站编辑器编辑。
+
+**注意**:有效的排行榜必须包含以上四个条件,即使它们被设为始终为真(`1=1`)或始终为假(`0=1`)。
+
+最后四个字段非常重要,输入任何字符时都必须格外小心。因此它们值得进一步说明:
+
+**Start**(**STA**)条件是一系列值,与成就类似,必须为真才能开始寻找排行榜提交。
+
+如果 **Cancel**(**CAN**)条件为真,则取消排行榜且不会提交分数。注意:取消优先于开始。若在同一帧内两者都为真,排行榜将不会开始。
+
+如果 **Submit**(**SUB**)条件为真,则提交排行榜分数。注意:取消优先于提交。若在同一帧内两者都为真,分数将不会提交。
+
+最后,**Value**(**VAL**)是特殊情况,将根据内存框中的公式从内存中读取。这是排行榜激活时显示的值,也是 **SUB** 为真时提交的值。
+
+STA/CAN/SUB/VAL 的内存地址格式在[此处](/zh/developer-docs/condition-syntax)定义。
+
+注意:一旦活跃的排行榜被取消或提交,在 **Start** 条件先变为假再变为真之前,无法重新激活。这可以防止排行榜在提交/取消后立即重新激活。
+
+## 示例
+
+最好的入门方式是查看现有排行榜并拆解其工作原理。我们将使用[绿山关卡 1(刺猬索尼克)排行榜](https://retroachievements.org/leaderboardinfo.php?i=2)进行说明。其配置如下:
+
+
+
+**Title/Description** 字段一目了然。
+
+**Type** 为 "Time (Frames)"(时间(帧))。我们追踪的数值每帧更新一次,Genesis 以每秒 60 帧运行(关于其他帧率系统的说明见下方 [Value Format](/zh/developer-docs/leaderboards#value-format))。
+
+**Lower Is Better** 已勾选,因此用时最短者排名第一。
+
+下面我们拆解最重要的部分。
+
+### 开始条件
+
+**STA**: `0xfe10=h0000_0xhf601=h0c_d0xhf601!=h0c_0xfff0=0`
+
+
+
+- `0xfe10=h0000`:若 16 位 RAM 地址 0xfe10 等于十六进制 0000,
+- `_`:且,
+- `0xhf601=h0c`:若 8 位 RAM 地址 0xf601 等于十六进制 0c,
+- `_`:且,
+- `d0xhf601!=h0c`:若上一帧的 8 位 RAM 地址 0xf601 不等于十六进制 0c,
+- `_`:且,
+- `0xfff0=0`:若 16 位 RAM 地址 0xfff0 等于 0。
+
+这可能看起来令人望而生畏,因为我们不知道这些地址的含义。这就是右侧列中**代码注释**的用处!你可以看到这些地址在内存中的标注。在本例中:
+
+- `0xfe10` 是关卡,预期为 `0`(第一关)。
+- `0xf601` 是 8 位内存地址,我们使用前缀 `0xh` 而非 `0x` 表示。`0xf601` 是屏幕模式。开始语句的第二和第三部分表示「当前模式应为 _游戏中_(`0c`),上一帧的模式不应为 _游戏中_」。**注意**:地址前的 `d` 前缀表示 delta,即「上一帧的值」。**总结**:若我们刚进入关卡(关卡开始,要开始计时),则触发。
+- 最后,我们还要求 `0xfff0` 等于 `0`,因为该地址用于演示模式,我们不希望在演示激活时记录排行榜条目!
+
+**提示**:通过网站编辑器创建排行榜时,最常见的错误是在引用 8 位内存地址时忘记 `h`。
+
+**注意**:你可以在 Start/Submit/Cancel 触发中使用 `HitCount`,但你需要负责重置它们。这些触发每帧评估,排行榜状态取决于哪些为真。因此,除非你有显式的 ResetIf 条件,否则 `HitCount` 在排行榜未激活时也会递增。
+
+### 取消条件
+
+**CAN**: `0xhfe13>` 按钮返回到你已退回的结果。一旦应用新筛选,前进的筛选将被丢弃,`>>` 按钮将禁用。
+
+结果信息下方有两个按钮。第一个可从结果集中手动移除所选项目。可使用 Ctrl 和 Shift 选择多项。第二个可为结果集中的项目创建书签,将显示在书签对话框中。
+
+
+
+结果集中的项目显示匹配的地址、当前值以及该地址内存的简要描述。若该地址有代码注释,将显示。否则将显示地址的一般分类。
+
+此外,结果集中的项目可着色:
+
+- 红色 - 项目当前不匹配筛选
+- 灰色 - 项目当前匹配筛选,但自筛选应用以来某时刻曾不匹配
+- 绿色 - 项目已添加书签
+- 蓝色 - 项目有代码注释
+
+点击某行可将所选地址设为该项目。
+
+### 4. 代码注释
+
+提供所选地址的详细信息,并允许用户为搜索过程中找到的地址添加注释。请尽量保持描述简单清晰,便于理解。清晰的注释对成就出现问题时的调试很重要。
+
+文本字段显示内存视图(对话框第 5 部分)中当前所选地址。可手动输入任意地址,或使用上下箭头跳转到有代码注释的下一个或上一个地址。
+
+文本字段右侧是打开代码注释对话框的按钮,可浏览和搜索代码注释。
+
+文本字段下方是用于从所选地址创建书签的按钮。
+
+大文本区域用于修改所选地址的代码注释。注意:除非按下 Save Note 按钮,否则更改不会保存。若在未保存的情况下更改所选地址,更改将丢失。
+
+`Save Note` 和 `Delete` 会立即尝试更新服务器——要么使用修改后的注释文本,要么清除注释文本。
+
+### 5. 内存视图
+
+允许直接浏览内存。模拟器运行时,内存每帧更新一次。
+
+当前所选地址显示为红色。有代码注释的地址显示为蓝色,与书签关联的地址显示为绿色。
+
+可点击内存查看器中的任意数据跳转到对应地址。也可使用键盘在内存中导航(上/下/左/右/pgup/pgdn/home/end)。
+
+当内存查看器获得焦点时,将显示光标。可输入任意十六进制字符将光标处的字符改为另一值。这会立即改变模拟器的值,可能导致意外行为,请自行承担风险。此外,修改内存(通过任何工具)会阻止成就因反作弊机制在服务器上解锁。
+
+### 内存书签
+
+可从 RetroAchievements 菜单打开内存书签对话框。从内存检查器对话框的任一按钮添加书签时也会自动打开。
+
+
+
+使用此功能可同时查看多个指定地址,而无需在检查器中来回切换。已添加书签的地址在内存检查器中显示为绿色。
+
+双击某地址可直接跳转到内存检查器中的该地址。
+
+可通过点击描述重命名书签。这不会更新关联地址的代码注释。
+
+可通过点击字段并从下拉框选择新值来更改书签的大小或格式。点击数值字段可输入书签的新值,将自动写入内存。
+
+在此处还可以冻结任意书签。这对生命值或消耗品等很有用。请注意,冻结在**游戏运行 1 帧后**生效。这意味着即使冻结,数值也会在至少一帧内发生变化后才恢复为冻结值。冻结的书签将显示为黄色。
+
+## 在内存查看器中读取数据
+
+### 十进制、二进制和十六进制表示法
+
+要熟练使用内存查看器,至少需要了解二进制和十六进制表示法的基础。以下是相关信息来源,无需深入细节:
+
+- https://simple.wikipedia.org/wiki/Binary_number
+- https://simple.wikipedia.org/wiki/Hexadecimal_numeral_system
+
+**二进制**使用的数字是 `0` 和 `1`。一个二进制数字也称为**位**(bit)。八位也称为一个**字节**(byte)。
+
+**十六进制**使用的数字是 `0`、`1`、`2`、`3`、`4`、`5`、`6`、`7`、`8`、`9`、`A`、`B`、`C`、`D`、`E` 和 `F`。十六进制表示法也称为 **hex**。
+
+除传统十进制外,这两种表示法存在的主要原因是:
+
+- 十进制是人类理解的表示法。
+- 二进制是计算机「理解」的表示法。
+- 十六进制可视为二进制和十进制之间的折中。因为一个十六进制数字表示 4 位,对人类来说是一种更简短、更易理解的、以计算机「理解」方式工作的表示法。
+
+下表显示等效值的不同表示法。
+
+| Decimal | Hexadecimal | Binary |
+| ------- | ----------- | ------ |
+| `0` | `0x0` | `0000` |
+| `1` | `0x1` | `0001` |
+| `2` | `0x2` | `0010` |
+| `3` | `0x3` | `0011` |
+| `4` | `0x4` | `0100` |
+| `5` | `0x5` | `0101` |
+| `6` | `0x6` | `0110` |
+| `7` | `0x7` | `0111` |
+| `8` | `0x8` | `1000` |
+| `9` | `0x9` | `1001` |
+| `10` | `0xA` | `1010` |
+| `11` | `0xB` | `1011` |
+| `12` | `0xC` | `1100` |
+| `13` | `0xD` | `1101` |
+| `14` | `0xE` | `1110` |
+| `15` | `0xF` | `1111` |
+
+关于不同数字表示法的更多事实:
+
+- 表示十六进制值时使用前缀 `0x`:`0x10 = 16`,`10 = 10`。
+- 两个十六进制数字表示 8 位,范围从 `0` 到 `255`。
+- 四个十六进制数字表示 16 位,范围从 `0` 到 `65535`。
+- 八个十六进制数字表示 32 位,范围从 `0` 到 `4294967295`。
+
+### 内存查看器模式
+
+内存检查器底部是我们所称的内存查看器:
+
+
+
+可使用 8、16 或 32 位模式在内存查看器中查看数据。
+
+#### 8 位模式
+
+默认情况下,内存查看器以 8 位模式显示数据。这将每个内存字节显示为单独的双字符十六进制值,每个字节有自己的地址。
+
+每行显示十六个字节。字节的地址可通过将行索引(显示在查看器左侧)加上列索引(显示在查看器上方)确定。以[上图](#memory-viewer-modes)为例,光标在 `0x002a7`(`0x002a0` + `7`)。
+
+#### 16 位和 32 位模式
+
+在讨论 16 位和 32 位模式之前,了解字节序很重要:
+
+> #### 字节序
+>
+> 字节序描述计算机系统内存中字节序列的存储顺序。两种最常见类型是:**大端**(Big-Endian,也称 BE)和**小端**(Little-Endian,也称 LE)。
+>
+> 在**大端**顺序中,数字的「大端」(序列中最高有效值)首先存储(放在最低地址)。在下面的图中,数字 `0x12345678` 以大端顺序存储在地址 `0x100`。注意最高有效字节 `0x12` 在地址 `0x100`:
+>
+> 
+>
+> 在**小端**顺序中,数字的「小端」(序列中最低有效值)首先存储。在下面的图中,数字 `0x12345678` 以小端顺序存储在地址 `0x100`。注意最低有效字节 `0x78` 在地址 `0x100`:
+>
+> 
+
+需要超过 8 位的值(即大于 255)必须存储在多个字节中。然而,我们使用的模拟系统以小端顺序存储多字节值。
+
+在[上面的内存查看器图](#memory-viewer-modes)中,地址 `0x0002c0` 的十六进制值为 `ce`,`0x0002c1` 的值为 `39`。切换到 16 位模式时,`ce` 和 `39` 在 `0x0002c0` 处组合并显示为 `39ce`。这是因为它会自动将每两个字节分组并显示为 16 位十六进制值。
+
+**注意**:虽然 16 位值通常对齐到偶地址,但并非总是如此。实际上在 `0x0002c1` 处有一个未显示的 16 位值。由于 `0x0002c1` 的值为 `39`,`0x0002c2` 的值为 `29`,`0x0002c1` 地址的 16 位值为 `0x2939`。
+
+同样,在 32 位模式下,从 `0x0002c0` 到 `0x0002c3` 的四个字节在地址 `0x0002c0` 处显示为单个 32 位值 `0x252939ce`,但在 `0x0002c1`、`0x0002c2` 和 `0x0002c3` 处也有 32 位值。
+
+### 使用小于 8 位的大小
+
+除上述 8 位、16 位和 32 位大小外,编写成就时(在成就编辑器中)还可使用其他大小。
+
+#### 单个位
+
+在内存查看器中选择 8 位地址时,你会看到类似下面的内容(图中:选中值为 `6f` 的字节;位用橙色圆圈标出):
+
+
+
+游戏中将重要信息存储为单个位非常常见。因为位只能有两个可能的值(`1` 或 `0`),有时用于表示「是」或「否」、「开」或「关」、「有物品」或「无物品」等。一些游戏,尤其是内存有限的游戏,大量使用位开关。
+
+**注意**:双击单个位的值可在 0 和 1 之间切换。
+
+**重要**:你可以在成就编辑器中单独引用这些位中的每一个。
+
+游戏内存中位开关的常见含义:
+
+- 拥有物品
+- 按下按钮(非常常见)
+- 已探索区域
+- 游戏中触发器已激活
+- 作弊已激活
+- 演示模式
+
+在内存查看器中只能输入十六进制值,因此了解十六进制和二进制表示法之间的等效关系很重要。可查看「[十进制、二进制和十六进制表示法](#decimal-binary-and-hexadecimal-notations)」部分的表格,但通常使用计算器即可(MS Windows 默认计算器的程序员视图即可)。
+
+#### Upper4 和 Lower4
+
+**Upper4** 是字节的高四位(位:7、6、5、4),显示为单个十六进制字符。**Lower4** 是字节的低四位(位:3、2、1、0),显示为单个十六进制字符。
+
+看下面的[内存大小示意图](#memory-sizes-diagram),选中了地址 `0x00a274` 的字节(值 `0x23`)。第一个字符 `2` 是 Upper4 值。第二个字符 `3` 是 Lower4 值。
+
+有时你只关心单个十六进制数字。以[内存大小示意图](#memory-sizes-diagram)为例,`Upper4 0x00a274 = 0x2` 的成就条件将为真。`Lower4 0x00a274 = 0x3` 的条件将为真。
+
+### 内存大小示意图
+
+
diff --git a/docs/zh/developer-docs/minimum-required-versions-for-logic-features.md b/docs/zh/developer-docs/minimum-required-versions-for-logic-features.md
new file mode 100644
index 00000000..dfc150c5
--- /dev/null
+++ b/docs/zh/developer-docs/minimum-required-versions-for-logic-features.md
@@ -0,0 +1,47 @@
+---
+title: 逻辑功能最低所需版本
+description: RetroAchievements 各项逻辑功能所需最低版本的详细概述。
+aside: false
+---
+
+# 逻辑功能最低所需版本
+
+有时了解功能何时添加/变更及其影响很有用,尤其是在处理工单时。将工单时间戳与工具包版本对比,可确定玩家当时会受何种行为影响。
+
+| Feature | RA_Integration | RetroArch | rcheevos |
+| ------------------------------------------------------------- | :--------------------: | :---------------------: | :--------------------: |
+| Leaderboard Cancel AND | 0.073
(31 Aug 2018) | 1.7.0
(25 Dec 2017) | n/a |
+| Full 32-bit value support | 0.073
(31 Aug 2018) | 1.7.0
(25 Dec 2017) | n/a |
+| `ResetIf`/`PauseIf` `HitCount` | 0.073
(31 Aug 2018) | 1.7.4
(30 Aug 2018) | n/a |
+| Leaderboard OR | 0.073
(31 Aug 2018) | 1.7.4
(30 Aug 2018) | n/a |
+| Delay achievement processing for 100 frames on load | 0.073
(31 Aug 2018) | n/a | n/a |
+| Replace 100 frame delay with delayed activation logic | 0.075
(04 Feb 2019) | 1.6.3
(28 Jul 2017) | n/a |
+| `AndNext` | 0.76
(21 Jun 2019) | 1.7.7
(7 May 2019) | 8.0
(4 May 2019) |
+| `Prior` | 0.76
(21 Jun 2019) | 1.7.7
(7 May 2019) | 8.0
(4 May 2019) |
+| 24-bit read | 0.77
(30 Nov 2019) | 1.8.2
(25 Dec 2019) | 8.0.1
(18 Jun 2019) |
+| `AddAddress` | 0.77
(30 Nov 2019) | 1.8.2
(25 Dec 2019) | 8.1
(21 Nov 2019) |
+| `Measured` | 0.77
(30 Nov 2019) | 1.8.2
(25 Dec 2019) | 8.1
(21 Nov 2019) |
+| `Measured` syntax for leaderboard values | 0.77
(30 Nov 2019) | 1.8.2
(25 Dec 2019) | 8.1
(21 Nov 2019) |
+| Detect and report Unsupported achievements | 0.79
(22 May 2021) | 1.8.2
(25 Dec 2019) | n/a |
+| `OrNext` | 0.78
(18 May 2020) | 1.8.7
(17 May 2020) | 9.0
(9 May 2020) |
+| `BitCount` | 0.78
(18 May 2020) | 1.8.7
(17 May 2020) | 9.0
(9 May 2020) |
+| `MeasuredIf` | 0.78
(18 May 2020) | 1.8.7
(17 May 2020) | 9.0
(9 May 2020) |
+| `Trigger` | 0.79
(22 May 2021) | 1.8.7
(17 May 2020) | 9.0
(9 May 2020) |
+| Include hits in save states | 0.073
(31 Aug 2018) | 1.9.1
(28-Mar 2021) | 9.0
(9 May 2020) |
+| `SubHits` | 0.79
(22 May 2021) | 1.9.4
(29 May 2021) | 10.0
(15 May 2021) |
+| `ResetNextIf` | 0.79
(22 May 2021) | 1.9.4
(29 May 2021) | 10.0
(15 May 2021) |
+| Ranges in rich presence lookups | 0.79
(22 May 2021) | 1.9.4
(29 May 2021) | 10.0
(15 May 2021) |
+| Maxof($) for `Measured` leaderboard values | 0.79
(22 May 2021) | 1.9.4
(29 May 2021) | 10.0
(15 May 2021) |
+| `ResetIf`/`PauseIf` support for `Measured` leaderboard values | 0.79
(22 May 2021) | 1.9.4
(29 May 2021) | 10.0
(15 May 2021) |
+| Big Endian memory reads | 1.0
(29 Jan 2022) | 1.9.9
(5 Sep 2021) | 10.2
(27 Aug 2021) |
+| `Measured` raw/percent flag | 1.0
(29 Jan 2022) | 1.9.9
(5 Sep 2021) | 10.2
(27 Aug 2021) |
+| Floating point memory reads | 1.0
(29 Jan 2022) | 1.10.1
(6 Mar 2022) | 10.3
(14 Jan 2022) |
+| Built-in macros for rich presence | 1.0
(29 Jan 2022) | 1.10.1
(6 Mar 2022) | 10.3
(14 Jan 2022) |
+| MBF32 LE memory read | 1.1
(15 Nov 2022) | 1.13.0
(19 Nov 2022) | 10.5
(12 Nov 2022) |
+| XOR modifier | 1.1
(15 Nov 2022) | 1.13.0
(19 Nov 2022) | 10.5
(12 Nov 2022) |
+| Float BE memory reads | 1.3
(17 Apr 2024) | 1.17.0
(3 Feb 2024) | 11.0
(2 Nov 2023) |
+| FixedN leaderboard/RP sizes | 1.3
(17 Apr 2024) | 1.17.0
(3 Feb 2024) | 11.1
(21 Jan 2024) |
+| Double32 memory reads | 1.3
(17 Apr 2024) | 1.19.0
(30 May 2024) | 11.2
(31 Mar 2024) |
+| `%` on modifiers (i.e. AddAddress/AddSource conditions) | 1.3.1
(28 Aug 2024) | 1.19.0
(30 May 2024) | 11.3
(10 May 2024) |
+| `+`/`-` on modifiers (i.e. AddAddress/AddSource conditions) | 1.3.1
(28 Aug 2024) | 1.20.0
(5 Jan 2025) | 11.4
(17 Jun 2024) |
+| `Remember`/`Recall` | 1.3.1
(28 Aug 2024) | 1.20.0
(5 Jan 2025) | 11.4
(17 Jun 2024) |
diff --git a/docs/zh/developer-docs/prior-values.md b/docs/zh/developer-docs/prior-values.md
new file mode 100644
index 00000000..6b1f82be
--- /dev/null
+++ b/docs/zh/developer-docs/prior-values.md
@@ -0,0 +1,23 @@
+# `Prior` 值
+
+`Prior` 值是地址上的前一值。它与 [Delta](/zh/developer-docs/delta-values) 类似,但仅在当前值变化时更新,而 Delta 每帧都会更新。
+
+**注意**:使用 `Prior` 时,隐含你引用的是地址而非值。
+
+使用示例:
+
+- 确保玩家访问了上一关而非通过密码到达:`prior level = 6` 仅在玩家当前不在第 6 关、且自第 6 关以来只去过当前关时才为真。若他们直接从菜单进入,`prior level` 可能为 0。
+
+### 多帧内存类型对比:
+
+| Frame | Mem | Delta | Prior |
+| ----- | --- | ----- | ----- |
+| 1 | 25 | 0 | 0 |
+| 2 | 25 | 25 | 0 |
+| 3 | 30 | 25 | 25 |
+| 4 | 35 | 30 | 30 |
+| 5 | 35 | 35 | 30 |
+| 6 | 35 | 35 | 30 |
+| 7 | 40 | 35 | 35 |
+
+Delta 始终比 Mem 落后一帧。Prior 仅在 Mem 变化时更新。
diff --git a/docs/zh/developer-docs/ratools.md b/docs/zh/developer-docs/ratools.md
new file mode 100644
index 00000000..49a5693a
--- /dev/null
+++ b/docs/zh/developer-docs/ratools.md
@@ -0,0 +1,70 @@
+# RATools
+
+## 关于 RATools
+
+[RATools](https://github.com/Jamiras/RATools) 是一款独立可执行程序,旨在协助 retroachievements.org 社区的开发者。其主要目的是为成就开发提供脚本语言。
+
+- [**Releases**](https://github.com/Jamiras/RATools/releases)
+- [**Wiki**](https://github.com/Jamiras/RATools/wiki)
+
+## RAScript
+
+- [**RAScript**](https://github.com/Jamiras/RATools/wiki/Script-File-Syntax) 是一种领域特定语言(DSL),让 retroachievements.org 的成就开发者能够使用编程语言提供的诸多现代便利(如变量、循环和注释)来设计成就。
+
+## 教程
+
+用户 [Etron](https://retroachievements.org/user/Etron) 撰写了一系列持续更新的 [RATools 教程](https://github.com/Etron-RA/RetroAchievements/tree/main/Tutorials),每月在 RANews 中发布。
+
+- [**Getting Started**](https://github.com/Etron-RA/RetroAchievements/tree/main/Tutorials/00_Getting_Started#tutorial-0---getting-started):RATools 入门
+- [**Memory**](https://github.com/Etron-RA/RetroAchievements/tree/main/Tutorials/01_Memory#tutorial-1---memory-basics):变量和函数示例 - 示例游戏:刺猬索尼克
+- [**`AddHits`**](https://github.com/Etron-RA/RetroAchievements/tree/main/Tutorials/02_Add_Hits#tutorial-2---add-hits):使用计数器的示例 - 示例游戏:怒之铁拳 2
+- [**Bitflags**](https://github.com/Etron-RA/RetroAchievements/tree/main/Tutorials/03_Bitflags#tutorial-3--bit-flags):使用 For 循环计数位标志的示例 - 示例游戏:精灵宝可梦 红/蓝
+- [**Arithmetic Operations**](https://github.com/Etron-RA/RetroAchievements/tree/main/Tutorials/04_Arithmetic_Operations#tutorial-4--arithmetic-operations):使用算术函数将二进制编码十进制(BCD)值转换的示例 - 示例游戏:陷阱!
+- [**Pointers**](https://github.com/Etron-RA/RetroAchievements/tree/main/Tutorials/05_Pointers#tutorial-5--pointers):指针使用和数据结构示例 - 示例游戏:蜘蛛侠
+- [**If/else**](https://github.com/Etron-RA/RetroAchievements/tree/main/Tutorials/06_If_Else#tutorial-6--ifelse):使用逻辑条件构建成就的示例 - 示例游戏:俄罗斯方块 DX
+- [**Challenges Part 1**](https://github.com/Etron-RA/RetroAchievements/tree/main/Tutorials/07_Challenges_Part_1#tutorial-7--challenges-part-1):无伤、无死亡和武器限制挑战示例 - 示例游戏:洛克人
+- [**Challenges Part 2**](https://github.com/Etron-RA/RetroAchievements/tree/main/Tutorials/08_Challenges_Part_2#tutorial-8--challenges-part-2):速通和其他时间挑战示例 - 示例游戏:超级马里奥世界
+- [**Triggers and Measure**](https://github.com/Etron-RA/RetroAchievements/tree/main/Tutorials/09_Trigger_and_Measure#tutorial-9--trigger-and-measure-together):结合使用这些标志的示例 - 示例游戏:街头霸王 II
+- [**Strings**](https://github.com/Etron-RA/RetroAchievements/tree/main/Tutorials/10_Strings#tutorial-10--strings):使用特定数组的示例 - 示例游戏:Rez
+- [**Rich Presence**](https://github.com/Etron-RA/RetroAchievements/tree/main/Tutorials/11_Rich_Presence#tutorial-11--rich-presence):编写动态 Rich Presence 脚本的示例
+- [**Leaderboards**](https://github.com/Etron-RA/RetroAchievements/tree/main/Tutorials/11_Rich_Presence#tutorial-11--rich-presence):各类游戏内排行榜示例 - 示例游戏:毁灭战士
+
+## RAScript 仓库
+
+许多成就开发者的 RAScript 公开可用,是熟悉它的绝佳资源:
+
+- [AlmightyXor](https://github.com/MagmarFire/RetroAchievements)
+- [AuburnRDM](https://github.com/AuburnRDM/RetroAchievements)
+- [authorblues](https://github.com/authorblues/retroachievements)
+- [Bartis1989](https://github.com/Bartis1989/rascripts)
+- [BenGhazi](https://github.com/Ben-Ghazi/RAScripts)
+- [Biendeo](https://github.com/Biendeo/RAScripts)
+- [Bilalscape12](https://github.com/Bilalscape12/RetroAchievements)
+- [BoomEX](https://github.com/BoomEX-UK/RetroAchievements)
+- [Bryan1150](https://github.com/Bryan1150/RAScripts)
+- [Dreaker](https://github.com/Dreaker75/RetroAchievements)
+- [Etron](https://github.com/Etron-RA/RetroAchievements)
+- [FRAN269](https://github.com/FRAN269/RAScripts)
+- [gde](https://github.com/gdeOo/ra_sets)
+- [Gudra](https://github.com/GudraFree/RAScripts)
+- [Guinea](https://github.com/Bregann/RAToolsScripts)
+- [Hexadigital](https://github.com/Hexadigital/RAScript)
+- [Jamiras](https://github.com/Jamiras/RAScripts)
+- [lordpsycho](https://github.com/lordpsych0/RAScripts)
+- [meleu](https://github.com/meleu/rascripts)
+- [pinguupinguu](https://github.com/pinguupinguu/rascripts)
+- [Searo](https://github.com/Tsearo/RAScripts)
+- [Sines](https://github.com/CarnavalSines/RAScript)
+- [SlashTangent](https://github.com/slashtangent/RetroAchievements)
+- [Snow](https://github.com/snowpin/rascripts)
+- [soopercool101](https://github.com/soopercool101/RAScripts)
+- [Souzooka](https://github.com/Souzooka/RAScripts)
+- [suXin](https://github.com/suXinjke/RAScripts)
+- [televandalist](https://github.com/televandalist/retroachievements)
+- [theanxietybuster](https://github.com/bedwardly-down/RAScript-Repo)
+- [timenoe](https://github.com/timenoe/RAScripts)
+- [tomojin](https://github.com/tomojira/RAScripts)
+- [TwosomesUP](https://github.com/TwosomesUP/RAScripts)
+- [WCopeland](https://github.com/wescopeland/RetroAchievements)
+- [wolfman2000](https://github.com/wolfman2000/rascripts)
+- [zxmega](https://github.com/miagui/RAScripts)
diff --git a/docs/zh/developer-docs/real-examples.md b/docs/zh/developer-docs/real-examples.md
new file mode 100644
index 00000000..7258964a
--- /dev/null
+++ b/docs/zh/developer-docs/real-examples.md
@@ -0,0 +1,14 @@
+---
+title: 实际示例
+description: 探索成就逻辑的实际示例,包括使用命中计数作为计时器、Delta 值、管理计数器等。通过实际案例学习有效的成就开发技巧。
+---
+
+# 实际示例
+
+最好的学习资源之一是查看一些实际示例。本节我们将深入分析一些成就并拆解其背后的逻辑。
+
+- [使用命中计数作为计时器](real-examples/using-hit-counts-as-a-timer)
+- [使用 Delta 值和命中计数检测递增](real-examples/using-delta-values-and-hit-counts-to-detect-an-increment)
+- [规避同一帧内计数器递增两次的问题](real-examples/circumvent-the-problem-of-a-counter-incrementing-twice-in-the-same-frame)
+- [基于游戏速度创建带 ResetIf 命中的计时器](real-examples/creating-a-timer-with-reset-if-hits-based-on-the-speed-of-the-game)
+- [使用 AddSource 和 Delta 实现收集品及类似成就](real-examples/using-add-source-and-deltas-for-collectibles-and-similar-achievements)
diff --git a/docs/zh/developer-docs/real-examples/circumvent-the-problem-of-a-counter-incrementing-twice-in-the-same-frame.md b/docs/zh/developer-docs/real-examples/circumvent-the-problem-of-a-counter-incrementing-twice-in-the-same-frame.md
new file mode 100644
index 00000000..dbf98a90
--- /dev/null
+++ b/docs/zh/developer-docs/real-examples/circumvent-the-problem-of-a-counter-incrementing-twice-in-the-same-frame.md
@@ -0,0 +1,60 @@
+---
+title: 解决同一帧内计数器增加两次的成就问题
+description: 学习如何使用 SubSource 和 AddHits 标志处理同一帧内计数器增加两次的问题,确保同时收集物品的游戏中的成就逻辑准确。
+---
+
+# 解决同一帧内计数器增加两次的问题
+
+在本示例中,你将了解如何通过结合 [SubSource](/zh/developer-docs/flags/subsource) 和 [AddHits](/zh/developer-docs/flags/addhits-subhits) 来解决同一帧内计数器增加两次的问题。
+
+在 Game Boy Advance 游戏库中有一款名为 [《圣诞老人 Jr. Advance》](http://retroachievements.org/Game/7152) 的圣诞平台游戏。每个奖励关卡都有收集全部拐杖糖的成就。
+
+此类成就本应相当简单,如下所示:
+
+| ID | Special? | Memory | Cmp | Type | Mem/Val | Hits |
+| --- | -------- | --------- | --- | ----- | --------- | ---- |
+| 1 | | 0xCANDIES | != | Delta | 0xCANDIES | (N) |
+| 2 | ResetIf | 0xSTAGE | != | Value | 0xBONUS | |
+
+这表示“检查拐杖糖计数器在奖励关卡中是否变化了 `N` 次”。
+
+**注意**:我们使用 `0xCANDIES != Delta 0xCANDIES`(使用 `!=` 而非 `>`),因为当玩家有 99 个糖果并再收集一个时,计数器会归零。
+
+然而,此游戏(以及许多其他游戏)存在一种情况:如果玩家同时收集 2 个拐杖糖,计数器会在同一帧内增加 2。发生这种情况时,hit 计数器增加 1,而糖果计数器增加 2。显然,这会破坏上述逻辑。
+
+为解决此问题,我们需要使用 [使用 SubSource 计算特定增量](/zh/developer-docs/flags/subsource#using-subsource-to-count-specific-increments) 的技术,并结合 [`AddHits` 标志](/zh/developer-docs/flags/addhits-subhits)。
+
+让我们查看成就逻辑及其解释:
+
+## 地址
+
+- `0x80dc`:拐杖糖计数器
+- `0x809c`:关卡 ID
+
+因此,成就结构将如下所示:
+
+
+
+## 条件
+
+1. 与条件 2 一起,用于检查 `0xCANDIES - Delta 0xCANDIES = 2`。换句话说,糖果计数器增加了 2。
+
+2. 与条件 1(如上所述)和 3 一起使用。如[其相应页面](/zh/developer-docs/flags/addhits-subhits)所述,当 `AddHits` 条件为真时,下一个条件的 hit 计数器会增加。因此,在本示例中,当条件 2 为真时,条件 3 的 hit 计数器会增加。
+
+3. 统计糖果计数器变化的次数。
+
+4. 如果不在奖励关卡,则重置计数器。
+
+所有这些条件可以理解为“在奖励关卡中,如果糖果计数器变化 99 次则触发成就,如果糖果计数器在同一帧内增加 2,则额外计一次糖果计数器的变化。”
+
+那么,现在 100% 解决了吗?嗯,实际上几乎解决了。仍有一个非常小的例外。还记得之前说过使用 `!=` 而不是 `>` 是因为**当玩家有 99 个糖果并再收集一个时,计数器会归零**吗?
+
+这意味着,如果我们在同一帧获得两个拐杖糖(已经很少见),有很小的可能性变化是 `98 -> 00` 或 `99 -> 01`。在这两种情况下,我们的代码将不起作用,因为 `00 - 98` 不是 2,而是 `-98`。`01 - 99` 同理,不是 2,也是 `-98`。
+
+尽管可能性很小,我们仍应处理这种情况。因此,我们将在代码中添加两个额外要求,最终如下所示:
+
+
+
+与之前相同,唯一的变化是第 3 行和第 4 行,代表额外的 `SubSource + AddHits` 来检查 `0xCANDIES - Delta 0xCANDIES = -98`,仅用于处理刚才提到的这个非常小的例外。
+
+现在解决了!
diff --git a/docs/zh/developer-docs/real-examples/creating-a-timer-with-reset-if-hits-based-on-the-speed-of-the-game.md b/docs/zh/developer-docs/real-examples/creating-a-timer-with-reset-if-hits-based-on-the-speed-of-the-game.md
new file mode 100644
index 00000000..896fd4e0
--- /dev/null
+++ b/docs/zh/developer-docs/real-examples/creating-a-timer-with-reset-if-hits-based-on-the-speed-of-the-game.md
@@ -0,0 +1,42 @@
+---
+title: 基于游戏速度使用 ResetIf Hits 创建游戏内计时器
+description: 学习如何使用 ResetIf 标志创建精确的游戏内计时器以考虑游戏帧率,在各种游戏场景中实现准确的计时机制。
+---
+
+# 基于游戏速度使用 `ResetIf` Hits 创建计时器
+
+在本示例中,你将学习如何根据游戏的帧率速度创建游戏内计时器。
+
+每个游戏都有一个不断增加的地址,其功能就像汽车的引擎,无论你做什么都在不断运转,游戏一开始就启动。游戏本身是你的车,有些车比其他的更快。
+
+> 请注意:PAL 游戏(50hz)的帧率低于 NTSC 游戏(60hz),与此方法不兼容。建议基于游戏的 NTSC 版本创建所有计时器,除非只有 PAL 版本且没有 NTSC 补丁可用。
+
+## 地址
+
+- `0x19`:演示模式:`01`=激活,`00`=未激活
+- `0x1a`:游戏引擎(基于帧率的速度)
+- `0x25`:游戏暂停:`01`=是,`00`=否
+- `0x2c`:游戏进度:`03`=关卡开始前,`04`=关卡已开始,`08`=关卡已完成
+- `0x30`:关卡 ID(本示例中为关卡 1)
+
+
+
+成就链接:[Contra Speedrun](https://retroachievements.org/achievement/65443)
+
+YouTube:[ResetIfHits Demo: Contra Stage 1 60 seconds Speedrun](https://youtu.be/6PpdG04tM4s)
+
+## 条件
+
+1. 进入关卡时激活成就的 'Hit'(每个关卡中 `03` 仅出现一次)。
+
+2. 关卡完成时触发成就。
+
+3. 当前关卡(本示例中为关卡 1)。
+
+4. 如果游戏“暂停”,则暂停成就(停止成就中的计时器)。
+
+5. 如果达到 `60` 秒 `3600` Hits,则重置成就。`1` 秒 = `60Hits`(NTSC 60fps),`50Hits`(PAL 50fps)。
+
+6. 如果演示模式激活,则重置成就。
+
+7. 进入新关卡时重置成就的计时器。
diff --git a/docs/zh/developer-docs/real-examples/using-add-source-and-deltas-for-collectibles-and-similar-achievements.md b/docs/zh/developer-docs/real-examples/using-add-source-and-deltas-for-collectibles-and-similar-achievements.md
new file mode 100644
index 00000000..67179198
--- /dev/null
+++ b/docs/zh/developer-docs/real-examples/using-add-source-and-deltas-for-collectibles-and-similar-achievements.md
@@ -0,0 +1,31 @@
+---
+title: 使用 AddSource 和 Delta 实现收集类成就
+description: 学习如何有效使用 AddSource 标志和 Delta 创建收集类成就,确保准确追踪并防止过早触发。
+---
+
+# 使用 `AddSource` 和 Delta 实现收集类及类似成就
+
+本示例展示了一种在成就逻辑中使用 `AddSource` 标志的简单方法。
+
+我们将查看 [《幻想水浒传》(PlayStation)](https://retroachievements.org/game/11255) 中的成就 [Treasure Hunter - Dragon Knights' Domain](http://retroachievements.org/Achievement/80100):
+
+## 使用的地址
+
+- `0x1b8244`:bit0-bit4 为 Soniere 的宝物,bit5 为北方检查站的宝物,bit6-bit7 为龙穴的宝物。
+- `0x1b8245`:bit0 为龙穴的宝物,bit1-bit5 为 Seek Valley 的宝物,bit6-7 为 Kalekka 的宝物。
+- `0x1b824b`:bit0-bit1 为 Hidden Rune 村的宝物,bit2 未使用,bit3-4 为龙骑士堡垒的宝物,bit5-6 为 Teien 的宝物,bit7 为 Luiken 之家的宝物。
+
+
+
+此成就仅需要龙骑士堡垒、龙穴和 Seek Valley 的宝物;因此,我们只需要 `0x1b8244` 的 bit6-7、`0x1b8245` 的 bit0-bit5 和 `0x1b824b` 的 bit3-bit4。
+
+## 逻辑分解
+
+- 有两组各十个条件,主要区别在于 Delta 类型和总数。这是为了确保玩家从已获得九个宝物变为获得全部十个宝物。_注意:记得在 `AddSource` 总数中使用十六进制!_
+- 由于我们在此使用位标志,单个条件的总数只会是 0x00 或 0x01。显然,我们希望触发时全部为 0x01,但我们不希望有人仅通过加载已找到全部十个宝物的存档来获得成就。
+- 触发器是玩家从九个宝物变为十个宝物的第一帧。这有助于防止成就在不该触发时触发。
+- 最后一个条件使用 `Measured` 标志,以便玩家可以查看距离目标的进度。如果玩家有十个中的八个宝物,成就将在叠加层(RAEmus)或成就菜单(RetroArch)中显示 80% 完成。
+
+此方法在 Delta 类型和 Mem 类型的总数之间仅相差 0x01 时最为实用,但也可用于各种类型的成就:一次只能获得一个的收集品、地图完成(如随进入新区域而揭示地图的 dungeon-crawler)、可学习技能、图鉴、完成一定数量的支线任务等。
+
+如果遇到 `AddSource` 链中多个位标志在同一帧切换的情况,你仍可使用此模板。但需要克隆 Delta 条件,使两个总数形成一个范围。仍以上述成就为例,现有总数可改为 `<= 0x09`,第二组的总数可改为 `>= 0x05`。这样,当总数从 5-9 个宝物变为 10 个宝物时,成就就会触发。
diff --git a/docs/zh/developer-docs/real-examples/using-delta-values-and-hit-counts-to-detect-an-increment.md b/docs/zh/developer-docs/real-examples/using-delta-values-and-hit-counts-to-detect-an-increment.md
new file mode 100644
index 00000000..bebe6078
--- /dev/null
+++ b/docs/zh/developer-docs/real-examples/using-delta-values-and-hit-counts-to-detect-an-increment.md
@@ -0,0 +1,26 @@
+---
+title: 使用 Delta 值和 Hit Counts 检测增量
+description: 学习如何使用 Delta 值和 hit counts 准确检测成就的增量,以《怒之铁拳 2》为例进行详细说明。
+---
+
+# 使用 Delta 值和 Hit Counts 检测增量
+
+让我们以 [《怒之铁拳 2》(Mega Drive)](http://retroachievements.org/Game/3) 和成就 [Steel Grip - Defeat 10 enemies without dropping your weapon](http://retroachievements.org/Achievement/55) 为例。该成就依赖四个条件:
+
+**地址**
+
+- `0xef33`:持有武器
+- `0xef37`:武器类型
+- `0xef4e`:KO 数量(玩家 1)
+
+
+
+**条件**
+
+1. 玩家持有武器。我们要求此条件为真一次。实际上并非必需,但有助于显示进度。我们要求玩家至少持有一次武器。
+
+2. 玩家造成的 KO 数量。该值为 16 位(即值可超过 255),通过使用 delta 和“大于”符号,我们要求 KO 数量大于前一帧的值,且需要发生 10 次。每次当前值大于前一帧的值时,hit count 增加 1。下一帧,“delta”值将增加到与当前值相同,这确保每次击杀后 KO 计数器增加 1,hit count 也增加 1。**限制**:如果同一帧内 KO 数量增加 2,hit count 只会增加 1。这是一个小缺陷,发生的频率比预期略高……虽不够精确,但能相当接近地估算击杀数。
+
+3. 如果**武器类型**与上次已知的武器类型不同,则重置所有进度。
+
+4. 如果玩家不再持有武器,则重置**所有**进度。
diff --git a/docs/zh/developer-docs/real-examples/using-hit-counts-as-a-timer.md b/docs/zh/developer-docs/real-examples/using-hit-counts-as-a-timer.md
new file mode 100644
index 00000000..60f05113
--- /dev/null
+++ b/docs/zh/developer-docs/real-examples/using-hit-counts-as-a-timer.md
@@ -0,0 +1,27 @@
+---
+title: 使用 Hit Counts 作为成就计时器
+description: 学习如何使用 hit counts 作为计时器,创建需要在一定时间内保持条件的成就,以《超级 Hang-On》为例进行说明。
+---
+
+# 使用 Hit Counts 作为计时器
+
+在本示例中,你将了解如何使用 hit counts 作为计时器,在条件保持 10 秒时授予成就。
+
+让我们看看 [《超级 Hang-On》(Mega Drive)](http://retroachievements.org/Game/16) 的成就 [Speed Freak - Maintain at least 300kph for 10 seconds](http://retroachievements.org/Achievement/71) 在成就编辑器对话框中的配置:
+
+**地址**
+
+- `0x0055a`:速度
+- `0x0c757`:游戏未暂停时为 0x00
+
+
+
+对于此成就,我们寻找连续满足 600 次的条件。原因是 Genesis 锁定为每秒处理 60 帧逻辑(至少 NTSC 如此)。我们检查的条件是“速度超过 300”。此外,我们希望玩家在不暂停游戏的情况下保持速度超过 300。
+
+**条件**
+
+1. 玩家速度在 600 帧内(或 10 秒内)保持超过 300。
+
+2. 如果速度低于 300,则重置 hit 计数器。
+
+3. 如果玩家暂停游戏,则重置 hit 计数器。
diff --git a/docs/zh/developer-docs/recall.md b/docs/zh/developer-docs/recall.md
new file mode 100644
index 00000000..ef8954eb
--- /dev/null
+++ b/docs/zh/developer-docs/recall.md
@@ -0,0 +1,28 @@
+---
+title: 理解和使用 Recall
+description: 了解如何使用 Recall 操作数类型表示之前记住的值。
+---
+
+# `Recall`
+
+::: warning 版本说明
+此功能将在 RA_Integration 1.4 版本中向开发者开放,rcheevos 11.4 版本将添加支持。
+:::
+
+`Recall` 值是 [`Remember` 标志](/zh/developer-docs/flags/remember)存储的最后一个值。
+
+`Recall` 累加器的值用于当前帧的逻辑求值。它不会在求值之间持久化,也不会为后续求值保留其值。每个组(Core、Alt1、Alt2 等)都有各自独立的 `Recall` 累加器;因此在一个组中记住的值无法在另一个组中召回。在使用 `Remember` 条件记住值之前使用 `Recall` 会在资源编辑器中生成警告。
+
+使用示例:
+
+- 召回计算值以在逻辑中多次使用。
+- 对记住的值进行连续运算,以完成比 `Add Source` 和 `Sub Source` 更复杂的数学运算。
+- 召回计算出的地址+偏移量以在 `Add Address` 中使用。
+
+要使用记住的值,将 `Recall` 操作符指定为操作数的 Type:
+
+| ID | Flag | Type | Size | Memory | Cmp | Type | Size | Mem/Val | Hits |
+| --- | ---- | ------ | ---- | ------ | --- | ----- | ---- | ------- | ---- |
+| 2 | | Recall | | | = | Value | | 0x05 | |
+
+在此片段中,召回的值与常量 5 进行相等比较。
diff --git a/docs/zh/developer-docs/rich-presence.md b/docs/zh/developer-docs/rich-presence.md
new file mode 100644
index 00000000..3f2f7923
--- /dev/null
+++ b/docs/zh/developer-docs/rich-presence.md
@@ -0,0 +1,346 @@
+---
+title: Rich Presence
+description: Rich Presence (RP) 功能概述,展示玩家在游戏中的活动状态。了解如何创建、监控和理解报告游戏进度和关键信息的 RP 脚本。
+---
+
+# Rich Presence
+
+[[toc]]
+
+## 简介
+
+Rich Presence (RP) 是对活跃玩家当前在游戏中活动状态的**简要**概述。要让游戏拥有 RP,需要开发者创建 Rich Presence 脚本。该脚本会检查玩家的游戏内存,并报告开发者指定的某些地址的值,例如玩家所在的关卡、剩余生命数、游戏模式、玩家完成的内容等。这些信息每两分钟向网站报告一次。
+
+良好的 Rich Presence 应告知其他用户你在游戏中的进度(关卡/城镇/地下城),并大致反映玩家的表现(分数/剩余生命/角色等级)。根据游戏上下文,其他细节可能也有用。但不要过度添加细节。其他玩家不关心你剩余多少子弹或计时器还剩多少时间,尤其是 RP 每两分钟才更新一次。此外,在 Rich Presence 显示中添加的冗余信息越多,重要信息就越容易被稀释。
+
+## 目标受众
+
+Rich Presence 是为网站浏览者编写的,**而非**正在玩游戏的玩家本人。其目的是回答“这位玩家在做什么?”这一问题。设计 RP 时不要假设上下文,它应仅报告简要说明玩家在游戏中活动的事实数据。
+
+强烈建议保持 RP 清晰、简洁,并考虑到浏览者可能对游戏知之甚少。Rich Presence 简单易懂很重要。表情符号往往含义不清,且在不同平台上显示不一致。仅在非常明显的情况下谨慎使用,或干脆不用。
+
+**RP 实际效果示例:**
+
+
+
+### 工作原理
+
+游戏的 Rich Presence 脚本会与成就和排行榜数据一起下载。模拟器验证数据后,会立即为用户启动会话。这会将用户的“最后出现于”设置为“正在玩 [游戏]”。30 秒后,Rich Presence 脚本会被评估,结果发送到服务器。这将更新玩家的“最后出现于”,该信息也用于首页的“活跃玩家”列表。此后每两分钟,Rich Presence 脚本会再次评估,“最后出现于”会再次更新。该过程持续到用户关闭模拟器为止。
+
+如果游戏没有 Rich Presence 脚本、用户已禁用 Rich Presence,或用户修改了 Rich Presence 脚本,文本将保持为“正在玩 [游戏]”。
+
+如果用户打开了任何工具窗口,其“最后出现于”也可能显示“修复成就”或“开发成就”。若该游戏已有已发布的成就,则显示前者;若尚无已发布的成就,则显示后者。
+
+游戏的 Rich Presence 脚本可在每个游戏页面的开发部分找到:
+
+
+
+
+
+## 示例(超级马里奥兄弟)
+
+```
+Format:Digit
+FormatType=VALUE
+
+Lookup:Mode
+0=[Demo]
+2=[World Complete]
+
+Lookup:Paused
+0x81=▌▌
+0x80=▌▌
+1=▌▌
+
+Lookup:Star
+5=🌟
+4=🌟
+3=🌟
+2=🌟
+1=🌟
+
+Lookup:Powerup
+0=Small
+1=Super
+2=Fire
+
+Lookup:Swimming
+1= swimming
+
+Lookup:Status
+0= [Loading]
+1= taking a vine warp
+2= entering a warp pipe
+3= entering a warp pipe
+4= 🚩
+5= [Stage Complete]
+6= [Game Over]
+7= [Entering Area]
+9= growing
+0xA= shrinking
+0xB= 💀
+0xC= powering up
+
+Lookup:Quest
+0x0=1st
+0x1=2nd
+
+Display:
+@Mode(0xh770)@Paused(0xh776)@Star(0xM79f_0xN79f_0xo79f_0xP79f_0xQ79f_0xR79f)@Powerup(0xh0756) Mario in @Digit(0xh75f_v1)-@Digit(0xh75c_v1)@Swimming(0xh704)@Status(0xhe), 🚶:@Digit(0xh75a_v1), @Quest(0xh7fc) Quest
+```
+
+它由一系列 Lookup 对象、Format 对象和一个 Display 对象组成。
+
+## 宏
+
+宏将值转换为用户友好的字符串。宏放在显示字符串中,在评估显示字符串时会被替换。宏以 `@` 开头,后跟宏名称、左括号、要评估的值和右括号。
+
+`@Macro(0xh1234)` 表示读取 $1234 处的字节,使用 `Macro` 宏进行转换,并将结果放入宏所在的显示字符串中。
+
+每个宏的参数使用[值定义](/zh/developer-docs/value-definition)构建。
+
+### Lookup
+
+Lookup 定义如下:
+
+```
+Lookup:NameOfLookup
+1=Text When 1
+2=Text When 2
+...
+```
+
+当显示字符串引用 Lookup 时,其值会在表中查找,并显示关联的文本。
+
+**注意**:Lookup 中的值应为十进制。若要使用十六进制值,请添加 `0x` 前缀。(例如 `0x12=Eighteen`)
+
+你也可以为单个文本字符串指定多个值:
+
+```
+1-5,10=Text When These Values
+*=Text For All Other Values
+```
+
+在此示例中,值 1、2、3、4、5 和 10 都映射到第一个文本字符串。
+
+任何与 Lookup 表中定义项不匹配的内容将返回与 `*` 关联的文本。如果 Lookup 表中没有 `*`,则没有条目的值将不返回任何文本。
+
+### Format
+
+Format 表定义如下:
+
+```
+Format:Score
+FormatType=VALUE
+```
+
+以 `Format:` 开头,后跟 Format 转换器的名称。下一行给出 `FormatType=`,然后选择以下之一:
+
+| FormatType | Name | 0 | 1 | 12345 | Description |
+| :------------: | :-----------------: | :------: | :------: | :----------: | ---------------------------------------------------------------------------- |
+| `SCORE` | Score | 000000 | 000001 | 012345 | Generic value, padded with leading 0s to 6 digits |
+| `FRAMES` | Time (Frames) | 0:00.00 | 0:00.01 | 3:25.75 | Number of frames elapsed (assuming 60 fps). Will be turned into MIN:SEC.CENT |
+| `MILLISECS` | Time (Centiseconds) | 0:00.00 | 0:00.01 | 2:03.45 | Number of hundredths of a second elapsed. Will be turned into MIN:SEC.CENT |
+| `SECS` | Time (Seconds) | 0:00 | 0:01 | 3h25:45 | Number of seconds elapsed. Will be turned into MIN:SEC |
+| `MINUTES` | Time (Minutes) | 0h00 | 0h01 | 205h45 | Number of minutes elapsed. Will be turned into HRShMIN |
+| `SECS_AS_MINS` | Time (Seconds) | 0h00 | 0h00 | 3h25:45 | Number of seconds elapsed. Will be turned into HRShMIN |
+| `VALUE` | Value | 0 | 1 | 12345 | Generic value (signed) |
+| `UNSIGNED` | Value (Unsigned) | 0 | 1 | 12345 | Generic value (unsigned) |
+| `TENS` | Value (Tens) | 0 | 10 | 123450 | Generic value with an appended 0 (if non-zero) |
+| `HUNDREDS` | Value (Hundreds) | 0 | 100 | 1234500 | Generic value with two appended 0s (if non-zero) |
+| `THOUSANDS` | Value (Thousands) | 0 | 1000 | 12345000 | Generic value with three appended 0s (if non-zero) |
+| `FIXED1` | Value (Fixed1) | 0.0 | 0.1 | 1234.5 | Generic value with a decimal point inserted one character from the end |
+| `FIXED2` | Value (Fixed2) | 0.00 | 0.01 | 123.45 | Generic value with a decimal point inserted two characters from the end |
+| `FIXED3` | Value (Fixed3) | 0.000 | 0.001 | 12.345 | Generic value with a decimal point inserted three characters from the end |
+| `FLOAT1` | Value (Float1) | 0.0 | 1.0 | 12345.0 | Decimal value with one digit after the decimal (Rich Presence only) |
+| `FLOAT2` | Value (Float2) | 0.00 | 1.00 | 12345.00 | Decimal value with two digits after the decimal (Rich Presence only) |
+| `FLOAT3` | Value (Float3) | 0.000 | 1.000 | 12345.000 | Decimal value with three digits after the decimal (Rich Presence only) |
+| `FLOAT4` | Value (Float4) | 0.0000 | 1.0000 | 12345.0000 | Decimal value with four digits after the decimal (Rich Presence only) |
+| `FLOAT5` | Value (Float5) | 0.00000 | 1.00000 | 12345.00000 | Decimal value with five digits after the decimal (Rich Presence only) |
+| `FLOAT6` | Value (Float6) | 0.000000 | 1.000000 | 12345.000000 | Decimal value with six digits after the decimal (Rich Presence only) |
+
+说明:
+
+- `FRAMES` 计算将值乘以 100 再除以 60。若帧率不是 60,需自行转换并使用 `MILLISECS`。
+- `TIME` 是 `FRAMES` 的有效别名,但推荐使用 `FRAMES`。
+- `POINTS` 是 `SCORE` 的有效别名,但推荐使用 `SCORE`。
+- `MILLISECS` 是传统格式,一直表示百分之一秒(非毫秒)。该别名容易误导。
+- 若 `FRAMES`、`MILLISECS` 或 `SECS` 超过 59 分钟,格式将变为包含 HRSh
+
+### 内置宏
+
+自 DLL 1.0 版本起,可使用预定义宏表示最常见格式。以下宏现已隐式可用:
+
+| Macro | FormatType | Description |
+| :---------------: | :---------: | --------------------------------------------------------------------------------------------------------------------- |
+| `@Number()` | `VALUE` | A generic value with no leading zeroes (-2147483648 - 2147483647) |
+| `@Unsigned()` | `UNSIGNED` | A generic value with no leading zeroes (0 - 4294967295) |
+| `@Score()` | `SCORE` | A generic value, padded with leading zeroes to six digits |
+| `@Centiseconds()` | `MILLISECS` | The number of hundredths of a second elapsed, and will be formatted as `00:00.00` |
+| `@Seconds()` | `SECS` | The number of seconds elapsed, and will be formatted as `00:00` |
+| `@Minutes()` | `MINUTES` | The number of minutes elapsed, and will be formatted as `0h00` |
+| `@Fixed1()` | `FIXED1` | A number with a decimal inserted one character before the end |
+| `@Fixed2()` | `FIXED2` | A number with a decimal inserted two characters before the end |
+| `@Fixed3()` | `FIXED3` | A number with a decimal inserted three characters before the end |
+| `@Float1()` | `FLOAT1` | A floating point number, formatted with one digit after the decimal |
+| `@Float2()` | `FLOAT2` | A floating point number, formatted with two digits after the decimal |
+| `@Float3()` | `FLOAT3` | A floating point number, formatted with three digits after the decimal |
+| `@Float4()` | `FLOAT4` | A floating point number, formatted with four digits after the decimal |
+| `@Float5()` | `FLOAT5` | A floating point number, formatted with five digits after the decimal |
+| `@Float6()` | `FLOAT6` | A floating point number, formatted with six digits after the decimal |
+| `@ASCIIChar()` | n/a | Converts a value from 0x20-0x7F into a character using the ASCII character map. Other values will be converted to `?` |
+| `@UnicodeChar()` | n/a | Converts a value into a character using the 16-bit Unicode character map. Unknown values will be converted to `�` |
+
+## Display
+
+Display 是显示在首页“活跃玩家”框和玩家资料“最后出现于”部分的字符串。
+
+它通过将显示字符串中的宏替换为 Lookup 的文本或 Format 转换器的格式化值来构建。每个宏由单个 `@` 标识,后跟 Lookup 或 Format 的名称(区分大小写!),紧接着括号内是要发送给该 Lookup 或 Format 对象的值。
+
+`Using @Powerup(0xh756)!`
+
+这表示使用名为 `Powerup` 的 Lookup 或 Format,并传入地址 0x756 的 8 位值。转换后,将结果放在 "Using " 和 "!" 之间。
+
+**注意**:Lookup/Format 名称区分大小写,必须与 Display 字符串中的用法完全匹配:`@test(0x1234)` 找不到 `Format:Test`
+
+**注意**:Lookup/Format 定义中名称前后不能包含空格。`@test(0x1234)` 找不到 `Format:test ` 或 `Format: test`
+
+### Lookup 解析示例
+
+- `@Mode(0xh770)` - 显示游戏是否处于演示模式或世界已完成的地址的 Lookup。
+- `@Paused(0xh776)` - 显示游戏是否暂停的地址的 Lookup(使用 3 个值,其中两个用于暂停和取消暂停)。
+- `@Star(0xM79f_0xN79f_0xo79f_0xP79f_0xQ79f_0xR79f)` - 马里奥是否有星星无敌的地址的 Lookup。稍后详述。
+- `@Powerup(0xh756)` - 显示马里奥是小、大还是有火焰能力的地址的 Lookup。
+- `Mario in` - 用于将 Lookup 和 Format 对象串联的静态文本。
+- `@Digit(0xh75f_v1)` - `Digit` 是定义为值的 Format 对象。地址 0xh75f 是 World 减 1(因为从 0 开始计数)。`_v1` 表示 + 值 1。`_v+1` 也正确。
+- `-` - 分隔 World 和 Level 的更多静态文本,如 World 1-1 中的连字符。
+- `@Digit(0xh75c_v1)` - `Digit` Format 对象的另一用法。这次查找关卡。World 1-X。
+- `@Swimming(0xh704)` - 显示玩家是否在游泳的地址的 Lookup。
+- `@Status(0xhe)` - 显示马里奥状态的地址的 Lookup,例如穿过管道。
+- `, 🚶:` - 更多静态文本。🚶 是生命数的符号。
+- `@Digit(0xh75a_v1)` - `Digit` Format 对象的第三次使用。这次检查玩家生命地址。
+- `, ` - 静态文本。
+- `@Quest(0xh7fc)` 用于查看玩家处于普通模式还是第二关(硬核模式)的 Lookup。
+- ` Quest` - 静态文本。
+
+### 条件显示字符串
+
+```
+Display:
+?0x 000085=0?Title Screen
+?0xT00007c=1?Custom Map in @Landscape(0xH00016c)
+Playing Battle @Battle(0x 00007c*0.2) in @Landscape(0xH00016c)
+```
+
+现有的 `Display:` 标记仍用于指示显示块的开始。若下一行以问号开头,则视为条件显示字符串。两个问号之间的部分为条件子句。若条件子句评估为真,则使用该行剩余部分作为显示字符串。若评估不为真,则继续处理下一行。若以问号开头,则重复相同过程。若不以问号开头,则整行用作默认显示字符串。
+
+**注意**:需要默认显示字符串,以防所有条件显示字符串都不匹配。若仅有条件显示字符串,脚本将看似无任何效果。
+
+看此示例,若 $0085 的 16 位值为 0,显示字符串为 `Title Screen`。否则检查下一行。若 $007C 的第 7 位为 1,显示字符串为 `Custom Map in @Landscape(0xH00016c)`。否则,最后一行没有条件子句,直接使用。
+
+与条件子句关联的显示字符串支持与默认显示字符串相同的语法。在此示例中,`@Landscape` Lookup 在条件显示字符串和默认显示字符串中均有使用。Lookup 本身只需定义一次。
+
+条件短语支持前述所有地址访问器,以及 AND (\_) 和 OR (S) 逻辑,其中 S 标记 Alt 组的开始。注意 OR 子句仍需要“核心”组,[与成就相同](/zh/developer-docs/alt-groups)。
+
+- `?0xH1234=32_0xH2345=0?and example`
+
+ 若 $1234 的 8 位值为 32 **且** $2345 的 8 位值为 0,则显示 `and example`
+
+- `?0xH1234=32S0xH2345=1S0xH2345=2?or example`
+
+ 若 $1234 的 8 位值为 32(核心组)**且** $2345 的 8 位值为 1 **或** 2(Alt 组),则显示 `or example`
+
+- `?0xH1234=32_0xH5678=33S0xH2345=1S0xH2345=2?and/or example`
+
+ 若 $1234 的 8 位值为 32 **且** $5678 的 8 位值为 33(核心组)**且** $2345 的 8 位值为 1 **或** 2(Alt 组),则显示 `and/or example`
+
+**技巧**:可使用[成就编辑器](/orphaned/achievement-logic-features)创建条件。定义好条件后,使用 `Copy Def` 按钮将成就定义复制到剪贴板,以便粘贴到 Rich Presence 脚本中。
+
+## 限制
+
+- 脚本 60,000 字符限制
+- 脚本 65,535 字节限制(非 ASCII 字符占用超过一字节)
+- 显示内容 255 字节限制(非 ASCII 字符占用超过一字节)
+
+## Rich Presence 自定义名称限制
+
+禁止在 Rich Presence 中直接显示玩家输入的自定义文本。最常见的例子是直接将玩家输入的角色名或存档名显示在 Rich Presence 中。
+
+此限制有助于防止不当或冒犯性内容出现在网站各页面,使 Rich Presence 的审核更易管理,并保护玩家隐私,因为玩家可能不知道其文本会被公开显示。
+
+## 技巧与窍门
+
+- 可在脚本任意位置添加注释。双斜杠 (`//`) 表示处理脚本时应忽略该行剩余部分。注意:注释仍计入脚本大小限制。
+- 若需节省几个字符,Lookup 名称可短至单个字符。
+- 可从地址中移除前导零(`0xh0001` 可简写为 `0xh1`)。
+- 将所有值从十六进制转为十进制可占用更少字符。
+- Unicode 字符并不总是“占用更少空间”。它们通常占用最多四个系统字符。
+- 每个 `Lookup` 或 `Format` 命名映射可用相同或不同地址多次引用。可定义单个 `Format:Number FormatType=VALUE`,而不必为生命、分数、等级等分别定义。
+- 在 Lookup 中适当添加空格有时可在不需要时隐藏某些 Lookup,如 `@Pause`、`@Star`、`@Swimming` 和 `@Mode` 所示。
+
+### 值属性
+
+使用 Lookup 和 Format 对象 `@object()` 时,可组合并执行计算。宏参数是[值定义](/zh/developer-docs/value-definition),因此可使用乘法、加法甚至部分逻辑来生成内存中不直接可用的值。
+
+**示例**
+`@Score(0xh28*10_0xh29*1000_0xh26*100000) points`
+
+这表示使用 Lookup 或 Format `Score`,并传入以下总和:
+
+- 0x28 处的 8 位值乘以 10,加上
+- 0x29 处的 8 位值乘以 1000,加上
+- 0x26 处的 8 位值乘以 100000
+
+## Unicode 标准符号
+
+你可以在 Rich Presence 中使用以下符号:
+
+▌▌=暂停
+🔁=续关
+⏰=游戏内时间/游戏时钟
+🔑=钥匙
+💣=炸弹
+❤️ 或 ❤=有心形生命值的游戏(如塞尔达)
+💰=金钱
+🚩=关卡/阶段
+
+制作 Rich Presence 时,开发者需注意清晰传达信息。若使用非标准符号,可能对你来说有意义,但对他人可能完全令人困惑。**使用非标准符号时,请与他人确认**或让几个人看看你使用的符号是否有意义。若没有,请使用更好的符号、文字或符号与文字结合。
+
+对于自定义 Unicode/表情符号,[ShapeCatcher](http://shapecatcher.com/) 是很好的资源,你可以画出要找的符号,AI 会找到类似匹配。但注意不要使用**过于冷门**的 Unicode,因为它们并非在所有系统上都能显示。
+
+注意社区显示偏好:
+
+
+
+## 开发 Rich Presence
+
+工具包目前没有集成的 Rich Presence 编辑器,但可以在上传到服务器之前测试本地修改。启动游戏且当前 Rich Presence 已从服务器下载后,可在 `RACache\Data\XXX-Rich.txt` 中找到,其中 XXX 为游戏 ID。
+
+Rich Presence 监视器(可从 RetroAchievements 菜单打开)会读取此文件,并在窗口打开时每秒显示当前值。
+
+若修改 `XXX-Rich.txt` 文件并重新选择菜单选项,它将读取新修改并允许你立即测试,而无需将修改应用到服务器。继续修改并重新选择菜单选项,直到脚本按预期运行,然后将内容复制到服务器页面供他人使用。
+
+**注意**:每次打开游戏时,`XXX-Rich.txt` 文件都会被当前服务器数据覆盖。只要在编辑器中保持文件打开,重新打开游戏后始终可以保存修改覆盖更新后的文件。
+
+### 条件语法
+
+Rich Presence 文件在引用地址时使用[条件语法](/zh/developer-docs/condition-syntax)。开发 Rich Presence 时应使用此语法,以便 Rich Presence 监视器能按预期读取地址。条件语法涵盖以下引用地址的方式:
+
+- [内存大小](/zh/developer-docs/condition-syntax#memory-sizes)。这允许 Rich Presence 脚本区分 8 位地址和 32 位地址等。
+- [前缀](/zh/developer-docs/condition-syntax#prefixes)。这允许 Rich Presence 脚本对地址应用特殊修饰符,例如地址是否为 [BCD 格式](/zh/developer-docs/value-definition#binary-coded-decimal)。
+- [逻辑标志](/zh/developer-docs/condition-syntax#logical-flags)。若需在显示可能分布在多个地址的特定值时进行额外操作,这会很有帮助。
+
+### 解析错误
+
+| Code | Enum | Description |
+| ---- | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| -2 | `INVALID_MEMORY_OPERAND` | A memory operand was expected and not found. Memory operands start with `0x`, then a size indicator. The most common causes of this are forgetting the `0x` or having an `_S` or `__` in the script. |
+| -3 | `INVALID_CONST_OPERAND` | A lookup key could not be evaluated. The most common cause of this is using hex without the `0x` prefix. This may also occur on older versions of RetroArch when using CSV or range keys for lookups. |
+| -6 | `INVALID_OPERATOR` | An unknown operator was encountered. The most common cause of this is using `!` instead of `!=` |
+| -16 | `MISSING_VALUE` | A macro was encountered without providing a value (i.e. `@Points` instead of `@Points(0xh1234)`) |
+| -18 | `MISSING_DISPLAY_STRING` | The rich presence script did not contain a `Display:` element, or contained only conditional display strings |
+| -20 | `RC_INVALID_VALUE_FLAG` | A non-combining flag is used in a non-trigger context. Combining flags are AddSource, SubSource, AddHits, AddAddress and AndNext. |
+
+此外,若看到 `[Unknown macro]`,表示无法解析宏名称。例如未定义 `Format:Points` 的 `@Points(0xh1234)` 会生成 `[Unknown macro]Points(0xh1234)`。
+
+此问题有时在 `RACache>Data` 文件夹的 `-Rich.txt` 文件中创建 Rich Presence 时发生。这种情况下,可在文件开头添加空行来修复。
diff --git a/docs/zh/developer-docs/rollouts.md b/docs/zh/developer-docs/rollouts.md
new file mode 100644
index 00000000..b61c27eb
--- /dev/null
+++ b/docs/zh/developer-docs/rollouts.md
@@ -0,0 +1,76 @@
+# Rollouts
+
+## 简介
+
+Rollouts 是旨在模拟主机发布的活动。参与 Rollouts 的开发者投入时间为成就集工作,目标是在主机对所有玩家开放支持时准备好多个成就集。
+
+## 通用指南
+
+值得注意的是,这些是适用于所有 Rollouts 的通用指南。个别 Rollout 可能需要额外指南。
+
+- 每个 Rollout 需要协调员/管理员处理各种任务,确保 Rollout 顺利进行。
+
+ - 协调员/管理员的任务
+ - 评估成就开发者的参与兴趣。
+ - 跟踪认领情况,确保无重叠并让认领管理员了解最新状态。
+ - 与参与者保持密切沟通,回答问题并解决可能出现的冲突。
+ - 向技术团队报告模拟器/核心错误及其他问题。
+ - 如适用,向 RANews 团队提供必要信息。
+ - 维护时间表,让开发者知道何时在论坛正式认领选择、何时测试人员可开始测试成就集、以及主机支持何时正式上线。
+ - 确保主机支持上线时网站验证主机 ID,或至少与网站团队保持联系以完成验证。
+
+- 开发者一次只能主导一个成就集,但可同时协作另一个成就集,只要不是其主要认领。认领须经 Rollout 和 Writing 团队签字,协作认领需所有部分完成后才能签字。签字后可申请另一认领。
+
+- Rollout 认领受[特殊认领](/zh/guidelines/developers/claims-system#special-claims)规则约束。
+
+- 根据开发者行为准则,开发者须无未处理工单才能锁定认领。他们还必须有空闲的认领槽位。
+
+- 由于 Rollout 的总体目标是在主机支持上线时提供成就集,若开发者不活跃或未在所选成就集上工作,其认领将被失效。换言之,认领成就集后闲置是不可接受的,将导致失效。
+
+- 若 Rollout 期间主要 Rollout 认领被放弃,该认领将暂时不可用。Rollout 团队会与所有 Rollout 参与者讨论此认领,感兴趣的开发者将进入抽签。当然,你当前的优先认领仍须完成才能接手。与常规认领一样,若有怀疑为让朋友认领而囤积认领的行为,将被移出 Rollout 参与并受到下次 Rollout 的处罚。
+
+- 若你的 Rollout 认领之一是协作,其中一名参与开发者打算做一个或多个子集,而另一名开发者无意参与,则核心集签字后,该认领将为他们释放。当然,打算做子集的开发者仍须优先完成核心集,以免其他开发者无法开发其他游戏。若非如此,协作伙伴可联系 Rollout 团队。
+
+- 若 Rollout 期间出现不当行为,如拒绝与相关团队合作或给其他开发者造成问题,Rollout 团队可采取补救措施。这可能包括降低未来 Rollout 认领选择的优先级,或在当前 Rollout 期间移除认领。
+
+## Rollout 流程
+
+- **步骤 1:新集成提案** - 管理团队研究可用核心或联系独立模拟器开发者。同样,模拟器开发者可通过站内消息联系 RAdmin,提议为其模拟器或核心提供支持。该提案将由管理团队评估,若接受,将指导开发者在其模拟器中构建 RetroAchievements 集成。
+- **步骤 2:构建成就支持** - 集成开发者在模拟器中构建成就支持,包括任何新系统的哈希支持。此过程可能需要数月甚至数年。
+- **步骤 3:集成测试** - Rollout 团队测试新支持以发现任何问题,并向集成开发者提供反馈。此步骤期间也可能进行公开测试,以征求所有成就开发者的反馈。
+- **步骤 4:Rollout 选择** - Rollout 团队和 RAdmin 对集成满意后,私下联系开发者了解参与兴趣。开发者将提供优先选择、备选选择或完全不选。收集所有选择后,所有开发者姓名进入抽签,按以下优先级选择:
+ - 1:参与上次 Rollout 并按时发布成就集的开发者,以及(新)从未参与任何 Rollout 的开发者。
+ - 2:未参与上次 Rollout 但参与过其他 Rollout 的开发者。
+ - 3:在上次参与的 Rollout 中收到大量工单或潜在成就集降级,或远超 Rollout 结束日期才发布 Rollout 成就集的开发者。此优先级将逐案判断。
+ - 4:至少有一个开放工单且超过一个月无进展的开发者。
+- **步骤 5:选择规划** - Rollout 团队评估选择。若某游戏有多个优先选择,团队将与感兴趣的开发者合作鼓励协作。注意:开发者限于一个优先认领(单独或协作),但可加入另一开发者的主要认领寻找协作伙伴,一次一个。
+- **步骤 6:锁定** - 开发者被告知其优先选择是否确认。RAdmin 将为确认的游戏添加哈希,开发者可发起认领。认领在 Rollout 期间将成为免费 Rollout 特殊认领。Rollout 团队会提前告知开发者 Rollout 结束日期以便规划。该结束日期旨在作为新系统/模拟器支持的**实际发布日期**,但发布日期前一个月会征求开发者意见,讨论是否同意 Rollout 满足技术预期。若非如此,日期可能推迟。
+- **步骤 7:成就集开发** - 开发者开始在其认领上工作。开发者应在此期间积极工作,Rollout 团队会沟通检查日期。若步骤 4 未向 Rollout 团队提供优先选择,开发者现在可联系 Rollout 团队申请成就集。
+- **步骤 8:签字** - 开发者提交完成的认领供审核,通过 ping Writing 团队进行初步检查,使成就集符合[写作政策](/zh/guidelines/content/writing-policy)。Writing 团队成员会私下与你讨论必要修改,请确保给他们空间,如通过 Discord 私信。检查完成后,他们将 ping Rollout 团队,检查[成就集要求](/zh/guidelines/content/achievement-set-requirements)。注意:协作须在所有协作者完成其部分后才能签字。
+- **步骤 9:额外认领** - 开发者在其初始认领签字后可进行新认领,或协作签字后可加入另一协作。一次只能有一个主要认领和一个非主要协作认领。
+- **步骤 10:发布准备** - Rollout 接近完成时,联系 RANews 和活动团队等其他团队,以便他们进行与 Rollout 相关的准备。
+- **步骤 11:发布日** - 新系统发布,开发者推广其成就集,或若开发者不可用,RAdmin 将推广新成就集。玩家现在可以玩采用新系统的成就集!注意:对开发者而言,签字期将在发布日后持续一个月,意味着成就集仍须经 Writing 和 Rollout 团队检查。
+
+## 以往 Rollouts
+
+| Launch Date | Console | Number of Sets on Launch Day | Relevant Links |
+| :---------: | :-----------------------------------------------------------: | :--------------------------: | :----------------------------------------------------------------: |
+| 2019-09-07 | PlayStation | 28 | [Forum Topic](https://retroachievements.org/viewtopic.php?t=9302) |
+| 2021-10-01 | PlayStation Portable | 38 | [Forum Topic](https://retroachievements.org/viewtopic.php?t=14016) |
+| 2022-02-12 | Dreamcast | 34 | [Forum Topic](https://retroachievements.org/viewtopic.php?t=15276) |
+| 2022-03-28 | Amstrad CPC | 30 | [Forum Topic](https://retroachievements.org/viewtopic.php?t=15835) |
+| 2022-05-08 | Arduboy
WASM-4 | 38
25 | [Forum Topic](http://retroachievements.org/viewtopic.php?t=16456) |
+| 2022-07-28 | Fairchild Channel F
Mega Duck | 21
18 | [Forum Topic](https://retroachievements.org/viewtopic.php?t=17590) |
+| 2022-10-01 | PlayStation 2 | 92 | [Forum Topic](https://retroachievements.org/viewtopic.php?t=11108) |
+| 2023-04-16 | Nintendo DSi | 45 | [Forum Topic](https://retroachievements.org/viewtopic.php?t=21246) |
+| 2023-06-04 | Atari Jaguar CD | 12 | [Forum Topic](https://retroachievements.org/viewtopic.php?t=21898) |
+| 2023-07-01 | Interton VC 4000
Elektor TV Games Computer
Arcadia 2001 | 31
23
22 | [Forum Topic](https://retroachievements.org/viewtopic.php?t=22335) |
+| 2023-08-12 | Uzebox | 30 | [Forum Topic](https://retroachievements.org/viewtopic.php?t=22887) |
+| 2023-11-15 | Neo Geo CD | 23 | [Forum Topic](https://retroachievements.org/viewtopic.php?t=24443) |
+| 2024-07-15 | GameCube | 107 | [Forum Topic](https://retroachievements.org/viewtopic.php?t=27191) |
+| Pending | Wii | ?? | Pending |
+| Pending | MS-DOS | ?? | Pending |
+| Pending | ZX Spectrum | ?? | Pending |
+| Pending | 3DS | ?? | Pending |
+| Pending | Commodore 64 | ?? | Pending |
+| Pending | TI-83 | ?? | Pending |
diff --git a/docs/zh/developer-docs/save-and-password-protection.md b/docs/zh/developer-docs/save-and-password-protection.md
new file mode 100644
index 00000000..543d2b61
--- /dev/null
+++ b/docs/zh/developer-docs/save-and-password-protection.md
@@ -0,0 +1,224 @@
+---
+title: 实现存档保护和密码保护
+description: 了解为何应使用存档和密码保护、如何实现以及实现后应测试的内容。
+---
+
+# 存档与密码保护
+
+存档和密码保护需要在任何使用存档或密码的游戏成就集上实现。RPG 最为常见,但在 PS2 等较新系统上,存档通常用于存储进度、解锁、收集品、最高分等。
+
+[[toc]]
+
+## 什么是存档与密码保护?
+
+存档和密码保护是使用条件来防止在加载存档或输入密码加载时解锁成就。由于加载存档时内存会初始化,若不实施保护,许多成就会在此时触发。这是为了确保玩家无法从网站下载存档并用其解锁大部分成就集。
+
+存档和密码保护**不会**阻止玩家使用自己的存档或密码。它并不意味着诸如在玩家访问存档或加载界面时阻止成就(除非成就明确禁止使用存档)。
+
+为简洁起见,本文档其余部分将使用 `存档保护` 涵盖存档和密码保护。
+
+## 如何实现强存档保护
+
+实现可靠存档保护的方法有很多,有些甚至可以组合使用以获得更好效果。最佳方案取决于游戏及其内存中的可用内容,以及何时可以保存和加载。若玩家可随时在游戏中切换并保存,则需要的存档保护比玩家只能在有限位置保存且这些位置从未发生事件时更强。
+
+在考虑如何实现存档保护之前,请务必注意游戏的以下方面:
+
+- 玩家可以在哪里保存?
+- 玩家可以在哪里加载存档?
+- 游戏是否在 RAM 中为多个槽位保存内容?
+- 游戏保存什么?
+- 是否有特定的存档/加载界面,以及是否有方法判断玩家在该界面?
+- 被检查内容的内存如何/何时初始化?
+
+牢记这些,因为根据处理方式,某些类型的存档保护可能比其他类型更有效。
+
+### 实现存档或密码保护后应测试的内容
+
+实现存档或密码保护后,应测试以下内容:
+
+- 若在事件发生后加载存档,成就不应触发。如可能,在游戏中多个时间点测试。
+- 成就在预期时间触发。
+- 事件确实发生在特定位置 ID!未测试时,错误的位置 ID 很容易导致工单。
+
+## 存档保护类型
+
+以下是不同类型。请注意,这不是完整列表,只是最常见和最有用的形式。根据 RAM 中的内容,其他形式也可能适用于特定成就或游戏。良好存档保护的第一步始终是对游戏进行扎实的 RAM 挖掘,以便有充足内容可用。对游戏内存理解越深,实现良好存档保护就越容易。
+
+### 位置 ID 检查
+
+这是检查玩家是否处于成就正常游戏条件下会触发的简单条件。例如,若成就是击败 Boss,则检查玩家是否在 Boss 所在位置是个好补充。
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val | Hits |
+| --: | :--- | :---- | :----------- | :-: | :---- | :--------- | :--: |
+| 1 | | Mem | 0x`LOCATION` | = | Value | `BOSSROOM` | 0 |
+| 2 | | Delta | 0x`BOSSDEAD` | = | Value | `FALSE` | 0 |
+| 3 | | Mem | 0x`BOSSDEAD` | = | Value | `TRUE` | 0 |
+
+**适用于:**
+
+- 存档位置有限的游戏,如存档点
+- 位置仅在该事件期间可访问或玩家无法在该区域保存的成就
+
+**不适用于:**
+
+- 玩家可随时保存和加载的游戏
+- 与存档点同房间发生的事件
+- 在常用位置(如枢纽世界)发生的事件
+- 可在多个位置发生的事件,如获取收集品
+
+这种形式的一大优点是,在某些单独效果不佳的情况下,与其他形式组合效果很好。
+
+### 游戏状态检查
+
+这是检查上一帧的游戏状态不是加载界面/状态。当状态在数据加载后的帧从加载变为游戏时,这很有效。通过确保我们不在加载状态,任何 Delta 到 Mem 的检查都会被阻止。
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val | Hits |
+| --: | :--- | :---- | :------------ | :-: | :---- | :------ | :--: |
+| 1 | | Delta | 0x`GAMESTATE` | != | Value | `LOAD` | 0 |
+
+若没有游戏状态,通常可检查位置 ID 是否稳定且有效(通常 location = 0x00 不是有效位置)
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val | Hits |
+| --: | :--- | :--- | :----------- | :-: | :---- | :--------- | :--: |
+| 1 | | Mem | 0x`LOCATION` | != | Delta | `LOCATION` | 0 |
+| 1 | | Mem | 0x`LOCATION` | != | Value | `INVALID` | 0 |
+
+**适用于:**
+
+- 在内存中暴露加载状态的游戏
+- 加载前重新初始化内存的游戏
+- 没有特定发生位置的成就,如百分比物品收集
+
+**不适用于:**
+
+- 状态与加载数据在不同帧变化的游戏,或数据需要多帧加载
+- 可直接从一个存档加载到下一个而无法检测加载界面的游戏
+
+### Delta 检查
+
+这是检查某物的 Delta 是否为真。最常用于 AddSource 链中检查某物从 n-1 变为 n,也可用于分数等,检查 Delta 大于 0 且小于目标。还可检查游戏状态的 Delta 不是存档/加载界面,作为非常简单但可靠的保护形式。这也可能涉及检查关卡从完成变为未完成,或玩家从关卡 1 到关卡 2,或从关卡 1 回到枢纽世界。
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val | Hits |
+| --: | :-------- | :---- | :------------ | :-: | :---- | :------ | :--: |
+| 1 | AddSource | Delta | 0x`FLAG1` | | | | 0 |
+| 2 | AddSource | Delta | 0x`FLAG2` | | | | 0 |
+| 3 | | Delta | 0x`FLAG3` | = | Value | 2 | 0 |
+| 4 | AddSource | Mem | 0x`FLAG1` | | | | 0 |
+| 5 | AddSource | Mem | 0x`FLAG2` | | | | 0 |
+| 6 | | Mem | 0x`FLAG3` | = | Value | 3 | 0 |
+| 7 | | Delta | 0x`GAMESTATE` | != | Value | `LOAD` | 0 |
+
+**适用于:**
+
+- 收集品成就
+- 分数成就
+
+**不适用于:**
+
+- 使用 `Mem > Delta` 检查单次事件的成就(除非与其他条件组合)
+- 加载的内存可能不在同一帧全部初始化的游戏
+- 值仅在特定界面填充的游戏
+
+### Prior 检查
+
+这种不太常用,尤其单独使用,但在处理诸如在常用位置发生事件的情况时很有用。以下是 Prior 用作存档保护的示例:
+
+在此情况下,事件发生在玩家经常去保存的常用枢纽位置。此外,游戏在事件发生后会提示玩家保存,加载该存档时,玩家将处于与事件相同的位置。加上游戏允许玩家在战斗和过场之外随时保存和加载。这是个大问题,因为在此情况下,使用多种其他存档保护类型的玩家仍可通过加载存档解锁成就。
+
+因此,在条件 1 的位置 ID 上使用 Prior,确保玩家通过正常游戏到达该位置,而非加载存档。加载存档时,Prior 将为 0 或来自另一存档的值,因此该条件不成立。正常游戏时,Prior 将是条件 1 中的值。
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val | Hits |
+| --: | :--- | :---- | :------------ | :-: | :---- | :------------ | :--: |
+| 1 | | Prior | 0x`LOCATION` | = | Value | `PROLOGUE` | 0 |
+| 1 | | Mem | 0x`LOCATION` | = | Value | `COMMON_AREA` | 0 |
+| 2 | | Delta | 0x`EVENTFLAG` | = | Value | `FALSE` | 0 |
+| 3 | | Mem | 0x`EVENTFLAG` | = | Value | `TRUE` | 0 |
+
+但别忘了 Prior 在值本身改变之前不会改变。大多数情况下 Delta 最佳,但当值在成就应触发的不同时间点改变,且需要检查前一值以确保玩家通过正常游戏到达该点时,Prior 非常有用。若值未改变,Prior 默认为 0,或切换到另一存档时会有上一存档的值 lingering。使用 Prior 时要非常小心,因为使用不当会导致在错误时间触发或不触发。对于初级开发者,当 Prior 用于存档保护时,预计在审核过程中需要向代码审核员解释为何使用 Prior,因为它是常被误用的标志,且总体上很少使用。然而,如上例所示,它确实有很多用途。
+
+**适用于:**
+
+- 在常用位置发生的事件
+
+**不适用于:**
+
+- Delta 检查或其他存档保护形式更合适的情况
+- 地址发生改变之前可能发生的情况
+- 可随时切换存档且上一存档的 Prior 可能导致成就触发问题的游戏
+
+### 事件标志守卫
+
+在具有线性进度和事件标志的 RPG 及其他游戏中,这将是最有用的存档保护形式。添加很简单。只需检查下一事件尚未完成。因此,若使用普通位标志,则检查位标志为 0;若使用反向位标志,则为 1。
+
+使用时要谨慎!若使用的事件标志实际上是可选事件,效果不佳。有些游戏可能稍后取消或重用事件标志,不应使用这些。若可能顺序破坏,效果也不佳。
+
+通常,应将其与任何其他存档保护形式组合使用。
+
+事件标志用于存档保护的另一个好用途是检查非常早期事件的 Delta 或成就前事件的 Delta = 1(或使用反向位标志时为 0)。
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val | Hits |
+| --: | :--- | :---- | :------------- | :-: | :---- | :---------- | :--: |
+| 1 | | Mem | 0x`LOCATION` | = | Value | `EVENT_LOC` | 0 |
+| 2 | | Delta | 0x`EARLYEVENT` | = | Value | `COMPLETE` | 0 |
+| 3 | | Delta | 0x`ACHV_EVENT` | = | Value | `FALSE` | 0 |
+| 4 | | Mem | 0x`ACHV_EVENT` | = | Value | `TRUE` | 0 |
+| 5 | | Mem | 0x`NEXT_EVENT` | = | Value | `FALSE` | 0 |
+
+**适用于:**
+
+- 线性、不可错过的进度成就
+
+**不适用于:**
+
+- 可选且非不可错过事件的成就
+- 可能顺序破坏的成就
+- 事件间隔时间很长的游戏(尤其若玩家可在下一事件前保存)
+- 可按任意顺序完成的事件
+
+### 游戏内计时器检查
+
+适用于玩家可随时保存或加载的游戏的可靠存档保护形式。有两种实现方式:
+
+1. 检查计时器不是默认值:通常这是对计时器的简单 Delta 检查,即不为 0 或游戏的初始值。
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val | Hits |
+| --: | :--- | :--- | :----------- | :-: | :---- | :-------------- | :--: |
+| 1 | | Mem | 0x`GAMETIME` | = | Value | `NEW_GAME_TIME` | 0 |
+
+**适用于:**
+
+- 只能从标题界面加载但可随时保存的游戏
+- 加载时计时器在一帧内归零的游戏
+
+**不适用于:**
+
+- 允许玩家随时加载存档且计时器立即切换到新存档值的游戏
+
+2. 使用 SubSource 检查计时器的大幅变化:
+
+在大部分游戏过程中这将保持为真,但加载存档时在一帧内不成立,而这一帧正是内存初始化的最关键帧。因此,它将防止在切换到不同存档或从标题界面加载存档时解锁成就。
+
+| ID | Flag | Type | Memory | Cmp | Type | Mem/Val | Hits |
+| --: | :-------- | :---- | :----------- | :-: | :---- | :--------------- | :--: |
+| 1 | SubSource | Delta | 0x`GAMETIME` | | | | 0 |
+| 1 | | Mem | 0x`GAMETIME` | < | Value | `TOO_LARGE_INCR` | 0 |
+
+**适用于:**
+
+- 允许玩家自由保存和加载的游戏
+- 任何基于帧的计时器游戏
+
+**不适用于:**
+
+- 缺乏基于帧计时器的游戏
+- 计时器在其余内存之前或之后初始化的游戏
+
+## 组合多种存档保护形式
+
+组合多种存档保护形式不仅可行,而且强烈建议。很多时候一种形式单独效果不佳,但与另一种类型组合后变得非常可靠。在许多情况下,某种存档保护形式单独效果不佳的示例,与其他形式组合后可变得可靠。例如,在玩家可随时保存和加载的游戏中,位置 ID 可能效果不佳,但与计时器检查或事件标志检查组合后效果会好很多。
+
+只有在存档保护阻止满足成就条件的玩家使用自己的存档获得成就时,才算存档保护过多。始终测试存档保护,既要测试其阻止成就触发,也要测试其在加载超过该点的存档时保护成就不触发。
+
+## 存档保护与即时存档
+
+初级开发者常问关于即时存档以及是否应针对其进行保护。请记住,即时存档是创建状态时内存的快照,因此大多数存档保护无法防止加载成就会触发的状态。此外,由于即时存档仅在规则较宽松的软核模式中允许,因此这不是那么关键。大多数存档保护形式也会在需要时保护即时存档。总体而言,不必过于担心专门针对加载状态进行保护。存档保护的目的是确保加载电池或记忆卡存档时不会触发任何成就。
diff --git a/docs/zh/developer-docs/tips-and-tricks.md b/docs/zh/developer-docs/tips-and-tricks.md
new file mode 100644
index 00000000..a2be40b9
--- /dev/null
+++ b/docs/zh/developer-docs/tips-and-tricks.md
@@ -0,0 +1,90 @@
+---
+title: 技巧与窍门
+description: 内存挖掘、成就创建和 RetroAchievements 开发最佳实践技巧。包括识别内存地址、避免常见陷阱以及使用创意策略制作成就的指导。
+---
+
+# 技巧与窍门
+
+[[toc]]
+
+## 内存挖掘技巧
+
+另见:[内存检查器概述](/zh/developer-docs/memory-inspector)。
+
+- 在内存查看器中从 8 位视图开始。查看更大的内存块会使事情复杂化,但会让经验丰富的开发者工作更轻松。如果你刚开始接触且不了解**字节序**和**位序**等术语(或眼睛疲劳时),最好在 8 位视图中进行观察。这样更简单!
+
+- 在成就编辑器中**取消勾选「显示十进制值」**,这样你就可以输入在内存查看器中看到的十六进制值。这比使用程序员计算器更好!
+
+- 如果你找到了一个地址,也搜索其周围区域,可能会发现更多有用的地址。
+
+- 你可以在内存查看器中输入值来查看是否会影响游戏。
+
+- 即使游戏中某物在视觉上在减少(如生命值),内存的行为可能不同。它可能在增加,所以既然你通常无法确定,建议使用 `!=` 和 `=` 过滤器。
+
+- 如果你实在无法减少过滤结果,可以尝试猜测一些值或至少猜测值的表现方式(`>` 或 `<`)。例如,无生命通常为 `0`,第 1 关通常为 `0`,第 2 关通常为 `1`,具体取决于游戏类型。
+
+- **16/32 位视图**:请记住,在使用 16 或 32 位地址时,右侧的地址在许多系统中优先。例如:如果 8 位视图中显示为 `AB CD WX YZ`,在 16 位视图中会变为 `CDAB YZWX`,在 32 位视图中会变为 `YZWXCDAB`。这种将值的较高有效位存储在较高地址的排序方式称为「[小端字节序](https://en.wikipedia.org/wiki/Little_endian)」。你可以忽略这些技术术语,只需记住在 16 位视图及以上,数据是**反向**存储的。注意:某些系统使用大端字节序( notably GameCube),因此会相反。
+
+- **位域**:对于只改变单个位的事物使用单个位。在内存检查器中,当选中一个地址时,地址上方会显示 `Bits: 7 6 5 4 3 2 1 0`。这些数字下方会显示 `0` 或 `1`,如下图中 `0 0 1 0 0 0 1 1`。如果 `bit5` 下方有 `1`,则该地址的 `bit5=1`。单比特 usage 对于游戏物品/事件/解锁等非常常见。这可能令人困惑,但理解它非常重要。一些内存空间有限的游戏大量使用位域!这是一项重要的学习技术。
+
+
+
+## 成就创建技巧
+
+另见:[不受欢迎的概念](/zh/guidelines/developers/code-of-conduct#unwelcome-concepts)和[成就设计](/zh/developer-docs/achievement-design)。
+
+- **~~永远不要~~尽量避免只使用一个条件**。当只使用一个条件时,成就很可能在错误的时间弹出。这是**开发者最常见的错误**。
+
+- 如果游戏有**演示模式**(在标题画面等待一段时间后 AI 会玩游戏),请务必找到其地址并添加条件,以便你的成就在演示模式下不会触发。你可能需要了解如何使用 [PauseIf](/orphaned/achievement-logic-features#pauseif) 和 [ResetIf](/orphaned/achievement-logic-features#resetif)。
+
+- **`PauseIf` 作弊码**:如果游戏有增加生命、选择关卡等的作弊码。请务必找到其地址并在成就中添加某种保护。
+
+- 如果你想为**收集游戏中特定且独特的物品**创建成就,请添加一些条件以确保玩家在应该获得物品的地方获得了物品,[如此处模板所示](/zh/developer-docs/achievement-templates#collect-an-item-in-a-specific-level)。否则成就可能因使用密码、加载存档等而触发。
+
+- **OR 条件**:如果需要 OR 条件,你需要使用 [Alt 组](/orphaned/achievement-logic-features#alt-groups)。
+
+- **避免成就刷屏**。如果游戏有 100 关,不要为每一关都做成就。大约每 25 关做一个。考虑休闲玩家解锁这些渐进式成就的时间段。如果休闲玩家通常可以在半小时内解锁此类渐进式成就集中的全部,那就是填充设计,不推荐。
+
+- **创意与趣味**:尽可能发挥创意制作成就。「在不使用/不做 Y 的情况下击败 X」、「在 5 秒内击败 X」、「3 心通关」。确保休闲玩家仍能通过努力获得这些成就。如果对休闲玩家来说太难就没意思了!(参见:下方**奖励集技巧**了解真正的挑战!)。有一整页关于[成就设计](/zh/developer-docs/achievement-design)的内容,可以提供关于如何思考好成就的建议。
+
+- **请勿使用漏洞!**:不要制作需要漏洞的成就。漏洞在大多数情况下会破坏和使游戏内存和 RAM 不稳定。它们会破坏整个成就集。然而,明智的做法是编写阻止玩家使用漏洞轻松获得精通的墙壁代码。
+
+- **避免依赖文本和图形**:大多数情况下,需要触发特殊事件的成就可以绑定到事件标志(通常是单个位或字节),或绑定到玩家收到的物品。使用这些值比检查文本框中显示的文本 ID 更好,或者更糟的是,检查视频 RAM(与屏幕上实际显示的图形相关的内存),因为它们通常不太稳定。尤其是在同一游戏的不同版本之间,而且它们更难调试。
+
+- **我们热爱艺术**:漂亮的徽章是有回报的徽章!它应该在视觉上代表成就本身,或暗示游戏中秘密的位置。与游戏的艺术风格匹配效果很好。Google 图片搜索「Sprite Sheets」是包含一些游戏艺术的实用技巧。如果你是优秀的图形艺术家,更新徽章就是你大显身手的时候!更多信息请参阅[徽章和图标创建页面](/zh/guidelines/content/badge-and-icon-guidelines)。
+
+- **地区考虑**:对于有文本触发成就的游戏(尤其是 RPG),建议查找事件标志而不是依赖文本或文本 ID。文本呈现因地区版本而异,使多地区支持变得困难。
+
+## 命名约定技巧
+
+- **无符号**:不要使用重音/特殊字符,如 Pokemon 中的 `é`,因为它们目前会破坏一些功能(如 feed)。没有特殊字符时在搜索中也不可见。UTF-8 通用表情符号代码也是如此。**允许的例外**:[Rich Presence 脚本](/zh/developer-docs/rich-presence)。
+
+- **注意英语**:避免语法错误。由于 RetroAchievements 是一个国际社区,使用英语编写代码注释是良好的实践,因为其他开发者将来可能会使用你的注释。
+
+## 窍门
+
+### 查找演示模式的地址
+
+开始过滤地址以查找演示模式的常用技巧是让演示开始,然后开始过滤 `=`「上次已知值」并多次按「Filter」,在演示结束前停止(注意不要在演示结束后过滤)。
+
+现在正常启动游戏,当你能控制角色时,将过滤器改为 `!=`,然后过滤**一次**。过滤后的地址是自演示模式以来已更改的地址。
+
+现在将过滤改回 `=`,然后开始一系列游玩-过滤。即玩一会儿,在场景中移动,击败一些敌人,然后过滤。
+
+**专业提示**:在不同关卡有存档状态非常非常有用,这样你可以在不同场景中进行游玩-过滤,使过滤更有效。
+
+在得到几个地址作为结果后,演示值通常是 `1`(有时也是 `ff`)。如果你找到潜在地址,将其编辑为 `0` 并检查你是否能控制角色。如果是,BINGO!那就是你要找的地址。
+
+### 地址监视器
+
+这是一个使用虚拟成就监视地址任何变化的简单技巧,这是你经常想知道的事情。
+
+
+
+**条件说明**
+
+1. `Value 1 = Value 0`;这是为了防止成就永远为真,因为值 0 永远不等于 1。
+2. `Value 1 = Value 1`;为使此技巧生效,成就需要 hits 来重置。当 1 = 1 时,会向此条件添加 hits。
+3. `ResetIf Mem 0x10 != Delta 0x10`;这是你想监视的地址。任何时候有变化,成就都会重置。
+
+- 最后确保勾选 `Pause on Reset` 和 `Active`。现在每次此地址变化时,你都会收到弹窗,模拟会暂停。
diff --git a/docs/zh/developer-docs/unsupported-emulators-and-cores.md b/docs/zh/developer-docs/unsupported-emulators-and-cores.md
new file mode 100644
index 00000000..ad94bb81
--- /dev/null
+++ b/docs/zh/developer-docs/unsupported-emulators-and-cores.md
@@ -0,0 +1,434 @@
+---
+title: 不支持的模拟器和核心
+description: 关于 RetroAchievements 不支持的模拟器和核心的信息。
+---
+
+# 不支持的模拟器和核心
+
+## Amiga
+
+- ❓ libretro 核心:**FS-UAE**
+- ❌ libretro 核心:**P-UAE**
+ - 需要内存映射以查看暴露的内存
+ - 锁定磁盘文件,无法打开进行哈希
+ - 硬盘支持?
+- ❓ libretro 核心:**PUAE 2021**
+- ❓ libretro 核心:**UAE4ARM**
+
+## Amstrad CPC
+
+- ❌ libretro 核心:**CrocoDS**
+
+## Apple II
+
+- ⌛ BizHawk 核心:**Virtu**
+ - 测试中
+ - 2023 年 6 月 4 日 - woz 文件不支持
+ - 2023 年 6 月 4 日 - 摇杆不支持。键盘需手动映射。
+ - 2023 年 6 月 4 日 - 多磁盘游戏需手动创建并加载多磁盘包。磁盘仅按索引通用标注。
+
+## Arcade
+
+- ❌ libretro 核心:**FB Alpha**
+ - 已弃用
+- ❌ libretro 核心:**MAME**
+- ❌ BizHawk 核心:**MAME**
+
+## Atari 2600
+
+- ❓ libretro 核心:**Stella 2014**
+
+## Atari 5200
+
+- ❌ _不支持_ - 需要哈希方法和内存映射
+- ❌ libretro 核心:**atari800**
+ - 似乎运行正常,但核心使用起来有些头疼。
+ - BIOS 需在核心内配置(F1 > Emulator Configuration > System ROM settings)
+ - 无法弄清控制 - 摇杆是否也需要在核心内配置?
+ - 允许从内部菜单加载任意文件,这会绕过哈希
+- ❌ libretro 核心:**a5200**
+ - 不暴露内存
+
+## Atari ST
+
+- ❌ _不支持_ - 需要哈希方法和内存映射
+- ❌ libretro 核心:**Hatari**
+ - 内存未暴露
+
+## Casette Vision
+
+- ❌ _不支持_ - 需要哈希方法和内存映射
+
+## CHIP-8
+
+- ❌ _不支持_ - 需要主机 ID、哈希方法和内存映射
+- ❌ libretro 核心:**Emux CHIP-8**
+- ❌ libretro 核心:**JAXE**
+ - 2022 年 4 月 16 日 - 我们准备好时似乎就绪
+ - 可能需要设置黑名单以防止降低速度
+
+## Commodore 128
+
+- ❌ _不支持_
+- ❌ libretro 核心:**VICE x128**
+
+## Commodore 64
+
+- ❌ libretro 核心:**vice_x64**
+ - 注意:摇杆默认在端口 2。使用虚拟键盘上的 JOY 按钮(select)切换到端口 1。
+ - 2022 年 5 月 1 日 - 重置不会自动运行游戏
+- ⌛ BizHawk 核心:C64Hawk
+ - 测试中
+- ❓ libretro 核心:**Frodo**
+
+## ColecoVision
+
+- ❌ libretro 核心:**Gearcoleco**
+
+## Elektronika BK-0010/0011
+
+- ❌ _不支持_
+- ❌ libretro 核心:**M**
+
+## Enterprise 128
+
+- ❌ _不支持_
+- ❌ libretro 核心:**ep128emu**
+
+## Fairchild Channel-F
+
+- ❓ BizHawk 核心:**ChannelFHawk**
+
+## FM Towns
+
+- ❌ _不支持_ - 需要哈希方法和内存映射
+
+## Game & Watch
+
+- ❌ _不支持_ - 需要哈希方法和内存映射
+- ❌ libretro 核心:**gw**
+ - 不暴露内存
+
+## Game Boy
+
+- ❌ libretro 核心:**DoubleCherryGB**
+ - 不暴露所有内存,部分成就会显示为不支持
+- ❓ libretro 核心:**Emux GB**
+- ❓ libretro 核心:**fixGB**
+- ❓ libretro 核心:**SameBoy**
+- ❓ libretro 核心:**TGB Dual**
+
+## Game Boy Color
+
+- ❓ libretro 核心:**DoubleCherryGB**
+ - 不暴露所有内存,部分成就会显示为不支持。
+- ❓ libretro 核心:**Emux GB**
+- ❓ libretro 核心:**fixGB**
+- ❓ libretro 核心:**SameBoy**
+- ❓ libretro 核心:**TGB Dual**
+
+## Game Boy Advance
+
+- ❓ libretro 核心:**gpSP**
+- ❓ libretro 核心:**Meteor**
+- ❓ libretro 核心:**TempGBA**
+
+## GameCube
+
+- ⌛ libretro 核心:**Dolphin**
+ - 测试中
+
+## J2ME
+
+- ❌ _不支持_ - 需要主机 ID、哈希方法和内存映射
+- ❌ libretro 核心:**freej2me**
+
+## Magnavox Odyssey 2
+
+- ❓ BizHawk 核心:**O2Hawk**
+
+## Master System / Mark III
+
+- ❓ BizHawk 核心:**SMSHawk**
+- ❓ libretro 核心:**Emux SMS**
+
+## MicroW8
+
+- ❌ _不支持_
+- ❌ libretro 核心:**MicroW8**
+
+## MS-DOS
+
+- ❌ _不支持_ - 需要哈希方法和内存映射
+- ❌ libretro 核心:**dosbox-core**
+- ❌ libretro 核心:**dosbox-SVN**
+- ❌ libretro 核心:**dosbox-pure**
+ - 需要一种方法防止使用用户指定的命令行参数启动
+ - 需要一种方法防止 TSR
+ - 需要一种方法在游戏返回命令提示符时停用成就
+
+## MSX
+
+- ❓ libretro 核心:**fMSX**
+
+## Neo Geo Pocket
+
+- ❓ libretro 核心:**RACE**
+
+## Neo Geo Pocket Color
+
+- ❓ libretro 核心:**RACE**
+
+## NES / Famicom
+
+- ❌ libretro 核心:**NEStopia**
+ - 不映射 SRAM
+- ❓ libretro 核心:**Emux NES**
+- ❓ libretro 核心:**fixNES**
+
+## Nintendo 3DS
+
+- ❌ _不支持_ - 需要哈希方法和内存映射
+- ❌ libretro 核心:**Citra**
+ - 仅暴露 64MB 内存 - 文档显示应有 128MB。
+ - 不支持存档状态
+- ❌ libretro 核心:**Citra 2018**
+- ❌ libretro 核心:**Citra Canary**
+
+## Nintendo 64
+
+- ⌛ BizHawk 核心:**Mupen64Plus**
+ - 测试中(使用 angrylion 插件可修复一些图形问题)
+
+## Nintendo DS
+
+- ❌ libretro 核心:**DeSmuME 2015**
+
+## Nintendo DSi
+
+- ❌ libretro 核心:**DeSmuME**
+- ❌ libretro 核心:**melonDS**
+
+## Nokia N-Gage
+
+- ❌ _不支持_ - 需要哈希方法和内存映射
+
+## Oric
+
+- ❌ _不支持_
+
+## Palm OS
+
+- ❌ _不支持_
+- ❌ libretro 核心:**Mu**
+
+## PC Engine CD / TurboGrafx-CD
+
+- ❌ libretro 核心:**Beetle PCE**
+ - 不暴露 PC Engine CD 所需的 RAM
+
+## PC-6001
+
+- ❌ _不支持_ - 需要哈希方法和内存映射
+
+## PC-8800
+
+## PC-9800
+
+- ❌ _不支持_ - 需要哈希方法和内存映射
+- ❌ libretro 核心:**Neko Project II Kai**
+ - 内存未暴露。
+ - 根据所选 RAM 大小,某些游戏中似乎会暴露,但似乎是机器 RAM 而非实际与游戏相关。
+- ❌ libretro 核心:**Neko Project II**
+
+## Philips CD-i
+
+- ❌ _不支持_ - 需要哈希方法和内存映射
+- ❌ libretro 核心:**CDi 2015**
+- ❌ libretro 核心:**SAME CDi**
+
+## Philips P2000
+
+- ❌ _不支持_
+- ❌ libretro 核心:**M2000**
+
+## Pico-8
+
+- ❌ _不支持_ - 需要哈希方法和内存映射
+- ❌ libretro 核心:**FAKE-08**
+- ❌ libretro 核心:**Retro8**
+
+## PlayStation
+
+- ❌ libretro 核心:**PCSX ReARMed**
+ - 此核心不需要 BIOS,会将 Kernel RAM 清零。
+- ❓ BizHawk 核心:**Octoshock** (Mednafen)
+- ❓ BizHawk 核心:**Nymashock** (Mednafen)
+- ❓ libretro 核心:**Rustation**
+
+## PlayStation 2
+
+- ❌ 独立模拟器:**AetherSX2**
+ - 不再开发,存在已知不兼容性。开发者无法解决问题。
+- ❌ libretro 核心:**LRPS2**
+ - 仍处于 alpha 状态
+ - 不暴露内存
+- ❌ libretro 核心:**Play!**
+ - 与大多数商业游戏兼容性低
+ - 黑屏伴卡顿音效
+
+## PocketStation
+
+- ❌ _不支持_ - 需要主机 ID、哈希方法和内存映射
+- ❌ libretro 核心:**pockystation**
+ - 核心似乎无法运行,即使在 RetroArch 中
+
+## SAM Coupé
+
+- ❌ _不支持_
+- ❌ libretro 核心:**SimCoupe**
+ - 仍处于 alpha 状态
+
+## Sega Dreamcast
+
+- ❓ libretro 核心:**Flycast GLES2**
+
+## Sega Genesis / Mega Drive
+
+- ❌ libretro 核心:**Blastem**
+ - 虽然部分成就可能有效,但核心在内存的 Game RAM 部分存在问题。
+
+## Sega Pico
+
+- ❌ _不支持_ - 需要哈希方法和内存映射
+- ❌ libretro 核心:**picodrive**
+ - 需要与附加书籍翻页相关的控制
+
+## Sega Saturn
+
+- ❌ libretro 核心:**Yabause**
+ - 技术上支持;不推荐。
+- ❌ libretro 核心:**Kronos**
+ - 保存和加载状态经常锁定 RALibretro 的 UI
+ - 技术上支持;不推荐。
+- ❓ libretro 核心:**YabaSanshiro**
+
+## SG-1000
+
+- ❌ libretro 核心:**Gearsystem**
+ - 有大量未暴露的内存
+
+## Sharp X1
+
+- ❌ _不支持_ - 需要哈希方法和内存映射
+- ❌ libretro 核心:**X1 Millennium**
+ - 2022 年 4 月 16 日 - 磁盘写入会修改源介质,这会破坏哈希
+
+## Sharp X68K
+
+- ❌ _不支持_ - 需要哈希方法和内存映射
+- ❌ libretro 核心:**px68k**
+ - 加载游戏时使 RALibretro 崩溃
+
+## SNES / Super Famicom / Satellaview / Sufami Turbo
+
+- ❓ libretro 核心:**Beetle bsnes**
+- ❌ libretro 核心:**Beetle Supafaust**
+ - 2024-06-11 - 不暴露内存
+- ❓ libretro 核心:**bsnes**
+- ❓ libretro 核心:**bsnes 2014 Accuracy**
+- ❓ libretro 核心:**bsnes 2014 Balanced**
+- ❓ libretro 核心:**bsnes 2014 Performance**
+- ❓ libretro 核心:**bsnes C++98 (v085)**
+- ❌ libretro 核心:**bsnes-hd beta**
+ - 2025-12-29 - 内存检查器仅显示零。请勿使用。
+- ❓ libretro 核心:**bsnes-mercury Accuracy**
+- ❓ libretro 核心:**bsnes-mercury Balanced**
+- ❓ libretro 核心:**bsnes-mercury Performance**
+- ❓ libretro 核心:**higan Accuracy**
+- ❓ libretro 核心:**nSide Balanced**
+- ❓ libretro 核心:**Snes9x 2002**
+- ❓ libretro 核心:**Snes9x 2005**
+- ❓ libretro 核心:**Snes9x 2005+**
+- ❌ libretro 核心:**Snes9x 2010**
+ - 请停止使用此核心制作成就!!!!
+- ❓ BizHawk 核心:**BSNES**
+- ❓ BizHawk 核心:**BSNESv115+**
+
+## SpectraVideo SVI 318/328
+
+- ❌ _不支持_
+- ❌ libretro 核心:**blueMSX**
+
+## Super Casette Vision
+
+- ❌ libretro 核心:**EmuSCV**
+ - 根据 [libretro 文档](https://docs.libretro.com/library/emuscv/)未完成。
+ - 不暴露内存。似乎通过 RETRO_MEMORY_SAVE_RAM 接口[导出存档状态](https://gitlab.com/MaaaX-EmuSCV/libretro-emuscv/-/blob/master/src/libretro.cpp#L223-229),我们尝试将其塞入 $E000,因为该系统标记为 Cartridge RAM。
+
+## Thomson TO8/TO8D
+
+- ❌ _不支持_ - 需要哈希方法
+- ❌ libretro 核心:**Theodore**
+ - 似乎可以工作
+ - 不确定核心如何处理磁盘/磁带写入。可能影响哈希。
+
+## TI-83
+
+- ⌛ libretro 核心:**Numero**
+ - 测试中
+- ⌛ BizHawk 核心:**TI83Hawk**
+ - 测试中
+
+## TIC-80
+
+- ❌ _不支持_ - 需要哈希方法
+- ❌ libretro 核心:**TIC-80**
+ - 内存导出不正确。只能看到 8 字节。
+
+## VIC-20
+
+- ❌ _不支持_ - 需要哈希方法和内存映射
+- ❌ libretro 核心:**VICE xvic**
+
+## VMU
+
+- ❌ _不支持_ - 需要主机 ID、哈希方法和内存映射
+- ❌ libretro 核心:**VeMUlator**
+
+## Wii
+
+- ⌛ 独立模拟器:**Dolphin**
+ - 测试中
+- ⌛ libretro 核心:**Dolphin**
+ - 测试中
+
+## Wii U
+
+- ❌ _不支持_ - 需要哈希方法和内存映射
+
+## Xbox
+
+- ❌ _不支持_ - 需要哈希方法和内存映射
+- ❌ libretro 核心:**DirectXbox**
+ - 仍处于 alpha 状态
+
+## Zeebo
+
+- ❌ _不支持_ - 需要哈希方法和内存映射
+
+## ZX81
+
+- ❌ _不支持_ - 需要哈希方法和内存映射
+- ❌ libretro 核心:**EightyOne**
+ - 内存未暴露
+
+## ZX Spectrum
+
+- ❌ _不支持_ - 需要哈希方法和内存映射
+- ❌ libretro 核心:**FUSE**
+ - 需要能够将键盘映射到端口 3
+ - 存档支持不确定。似乎无法插入存档磁盘
+- ⌛ - BizHawk 核心:**ZXHawk**
+ - 哈希需要修正
+ - 测试中
diff --git a/docs/zh/developer-docs/value-definition.md b/docs/zh/developer-docs/value-definition.md
new file mode 100644
index 00000000..3384494f
--- /dev/null
+++ b/docs/zh/developer-docs/value-definition.md
@@ -0,0 +1,88 @@
+# 值定义
+
+值定义用于[排行榜](/zh/developer-docs/leaderboards#value)和 [Rich Presence](/zh/developer-docs/rich-presence#value-properties)。
+
+值通过评估一个或多个[内存读取](/zh/developer-docs/condition-syntax)来计算。读取的值可以缩放(乘法)或求和(加法)以得出最终值。
+
+**注意**:值计算使用 32 位有符号整数执行。因此,最大值为 2147483647,最小值为 -2147483648。超过最大值的数会回绕并显示为非常大的负数。
+
+### 来自 `Measured` 的值
+
+从 0.77 DLL(和 RetroArch 1.8.2)开始,你可以使用 [`Measured`](/zh/developer-docs/flags/measured) 标志生成值。这支持成就编辑器支持的所有逻辑,但每个条件必须有一个以某种方式影响 `Measured` 值的标志(即 [AddSource](/zh/developer-docs/flags/addsource)、[AddAddress](/zh/developer-docs/flags/addaddress))。注意,`Measured` 条件不能直接有乘数。如果最终子句需要乘以某数,请使用额外的 AddSource 和 Measure 0。
+
+**VAL**:`A:0xhfe24_A:0xhfe25*60_A:0xhfe22*3600_M:0`
+
+上面提供的示例解读为:
+
+```
+AddSource 8-bit 0xfe24
+AddSource 8-bit 0xfe25 * Value 60
+AddSource 8-bit 0xfe22 * Value 3600
+Measured Value 0
+```
+
+这些地址分别代表帧、秒和分钟,分别乘以相应值后相加,创建可提交到数据库的总帧数。
+
+### 来自 `HitCount` 的值
+
+有时你想计算某事发生的次数并将其作为值提交。你也可以使用 `Measured` 语法实现。只需在最终条件上添加比较。不要包含显式的 Hit 目标,否则那将是可提交的最大值。
+
+当排行榜开始时,条件上的 [`HitCount`](/zh/developer-docs/hit-counts) 会自动设置为 0,当排行榜提交触发器激活时,`HitCount` 会作为值提交。你可以在值条件中使用 [PauseIf](/zh/developer-docs/flags/pauseif) 和 [ResetIf](/zh/developer-docs/flags/resetif) 来进一步控制行为。
+
+例如:
+
+```
+M:0xH1234!=d0xH1234
+```
+
+将提交排行榜激活期间 $1234 处字节变化的次数。
+
+```
+N:0xH1234!=20_M:0xH1234!=d0xH1234
+```
+
+将提交排行榜激活期间 $1234 处字节变为 20 以外值的次数。
+
+### 旧版语法:
+
+**VAL**:`0xhfe24*1_0xhfe25*60_0xhfe22*3600`
+
+在引入 `Measured` 标志之前,值使用自己的语法编写。有些人仍然更喜欢这种语法,因为通常更容易手写。旧版值是内存值乘以修饰符的集合的总和。
+
+`address*modifier`(地址乘以修饰符)
+
+`_` 下划线运算符分隔各个值并充当「加」。因此上面的示例表示:
+
+```
+8-bit 0xfe24 乘以 1,加
+8-bit 0xfe25 乘以 60,加
+8-bit 0xfe22 乘以 3600
+```
+
+这些地址分别代表帧、秒和分钟,分别乘以相应值后相加,创建可提交到数据库的总帧数。
+
+要添加常量,使用 `_vN`,其中 N 是十进制常量(即 `_v10`)会将 10 加到结果中。你也可以对 N 使用负值(即 `_v-10` 会从结果中减去 10)。
+
+**提示**:修饰符可以是非整数值,所以如果需要除以二,可以乘以 0.5:`0xhfe24*0.5`
+
+### 修饰符
+
+#### 最大值
+
+多个值计算可以用 `$` 连接。这类似于触发器中的 alt 组,但不是任一 alt 组需要为真,而是 whichever「alt 值」最大将用作表达式的整体值。
+
+`M:0xH1234$M:0xH1235` 将返回 $1234 或 $1235 处值的较大者。
+
+#### 二进制取反
+
+单个内存引用可以加 `~` 前缀以对其执行二进制取反。从内存读取值后,每一位都会切换(0 变 1,1 变 0)。
+
+通常用于有条件地加减值:
+
+`A:0xH1234*~0xM1233_M:0xH1235` 如果 $1233 的 bit0 未设置,则将 $1234 处的字节加到 $1235 处的字节。
+
+#### 二进制编码十进制
+
+二进制编码十进制(BCD)是指内存中的值以每个十六进制数字位置存储为十进制数字。例如,如果内存检查器在内存的某个字节显示 86,它通常表示十进制值 134(0x86 十六进制 = 134 十进制)。BCD 解码该值保留各个十进制数字,结果为 86(0x86 十六进制 = 86 BCD)。
+
+你可以通过在内存引用前加 `b` 前缀让运行时解码 BCD 值(即 `b0xW1234`)。你仍需要指定 BCD 内存地址的大小。b0x1234 读取 16 位值。b0xh1234 读取 8 位值,b0xX1234 读取 32 位值。注意:16 位和 32 位 BCD 解码支持是 0.075 工具包的功能。
diff --git a/docs/zh/developer-docs/why-delta.md b/docs/zh/developer-docs/why-delta.md
new file mode 100644
index 00000000..3280c2a7
--- /dev/null
+++ b/docs/zh/developer-docs/why-delta.md
@@ -0,0 +1,87 @@
+---
+title: 我真的需要使用 `Delta` 吗?
+description: 深入探讨为什么 Delta 条件几乎总是添加到任何成就中的好主意。
+---
+
+# 我真的需要使用 `Delta` 吗?
+
+最近,尤其是随着 [AutoCR 工具](https://authorblues.github.io/retroachievements/AutoCR/)的推出,很多人一直在问关于 [`Delta` 条件](/zh/developer-docs/delta-values)的问题,以及它们是否真的像人们说的那样必要。
+
+**简短回答:是的。**
+
+`Delta` 类型与 `Mem` 类型类似,只是它检查的是上一帧的内存值而不是当前帧的。其主要用途是确保你的成就条件在上一帧不为真,同时配合检查当前帧为真的其他条件。这是**唯一几种**将逻辑限制在单帧的方法之一,如下图所示:
+
+
+
+从概念上讲,你应该将成就逻辑视为定义_条件变为真的时刻_的一种方式。这种思维方式将帮助你避免误触发,并让你精确控制玩家的体验。
+
+## 使用 `Delta` 的实用原因
+
+### 误触发
+
+这是 `Delta` 重要的首要原因。如果你从这篇文章中只记住一件事,那就是:**将成就限制为仅在单帧触发,可以在如此多的情况下防止误触发,以至于添加它始终是个好主意。**
+
+游戏有启动序列,游戏有闪烁或不可预测的内存;你的某些成就条件很可能在你不想触发时变为真。这些条件_在同一帧_变为真的可能性要小得多。如果你有一个应该在通关关卡时弹出的成就,将其限制为在关卡_变为已通关_时弹出,当游戏中其他部分发生各种其他内存变化时会有很大帮助。不可能考虑到所有可能的情况,但 `Delta` 是在不可预见情况下减轻误触发的重要方法。
+
+### 存档保护
+
+_另见:[存档和密码保护](/zh/developer-docs/save-and-password-protection)_
+
+通常,仅仅说「这些条件现在为真吗?」来触发成就是不够的。通常有很多方式可以以不应触发成就的方式达到这些条件,加载存档文件就是其中之一。单独的 `Delta` 条件_可能_不足以进行存档保护,因为加载存档时内存中的值仍然会变化,但它们通常是其中的一部分。
+
+即使你的游戏没有存档或密码,请记住很多人在软核模式下玩游戏,他们可以随时保存和加载状态,理想情况下你也会保护 against 这种情况。所以即使你认为不会受益的游戏仍然可以!
+
+_(注:如果上一段让你问「当加载状态时这些内存地址仍然会变化,`Delta` 怎么可能防止存档状态触发成就?」,技术答案是存档状态也会保存读取它的条件的 `Delta` 状态,所以加载存档状态不会激活基于加载前状态的 `Delta` 条件。)_
+
+### 测试/开发
+
+如果你在成就条件已经为真时激活或编辑成就,它将卡在「等待」状态,直到再次变为假。在此状态下,即使对你有益,也不会处理或高亮任何条件。与其必须加载更早的状态或退出结束画面等来重新激活它,使用限制条件为单帧的 `Delta` 将完全避免此问题。
+
+## 常见疑虑
+
+### `Delta` 条件会使我的成就在不该触发时触发。
+
+你应该_同时_添加 `Delta` 条件和检查当前帧内存的条件。由于这是对成就条件的额外限制,它不应该导致没有它就不会发生的额外触发。
+
+### `Delta` 条件会阻止我的成就在我想要时触发。
+
+在正常情况下,当条件从假变为真时,你的成就总是会触发。如果你正确识别_哪个_特定条件在你想要触发的时刻变为真,为该条件添加 `Delta` 检查不应阻止在该时刻触发。
+
+### 我不知道成就触发时上一帧的状态会是什么。
+
+没关系!`Delta` 检查不必检查特定状态。一般来说,你的条件应该尽可能具体,而不阻止你想要的触发(这适用于成就逻辑 in general,不仅仅是 `Delta`)。以下是一些示例:
+
+- 我想在玩家收集 5 个东西时触发成就。你一次只能收集一个。
+
+```
+Delta 8-bit 0x = 0x04
+Mem 8-bit 0x = 0x05
+```
+
+- 我想在玩家击败 Boss 时触发成就。有很多不同的武器造成不同的伤害。
+
+```
+Delta 8-bit 0x > 0x00
+Mem 8-bit 0x = 0x00
+```
+
+- 我想在玩家进入房间 3 时触发成就。房间 3 有两个入口,来自房间 1 和房间 2。
+
+```
+OrNext Delta 8-bit 0x = 0x01
+ Delta 8-bit 0x = 0x02
+ Mem 8-bit 0x = 0x03
+```
+
+- 我想在游戏状态变为 0xFF 时触发成就,对应「游戏胜利」。游戏状态很复杂,上一帧的值可能是几乎任何其他值。
+
+```
+Delta 8-bit 0x != 0xFF
+Mem 8-bit 0x = 0xFF
+```
+
+### 我不需要 `Delta`,因为当前帧条件为真且成就不应触发的情况不存在。
+
+首先,这永远不可能为真——参见上面关于存档保护的段落。即使没有存档系统的游戏也可以在软核模式下使用存档状态。
+
+即使你认为你有一个完全不会受益于使用 `Delta` 的成就——好吧,即使那是真的,添加它也不会有什么坏处。养成到处使用它的习惯很重要——它经常足够防止误触发,添加它始终是个好决定,以防万一。
diff --git a/docs/zh/general/about-us.md b/docs/zh/general/about-us.md
new file mode 100644
index 00000000..a141aa8c
--- /dev/null
+++ b/docs/zh/general/about-us.md
@@ -0,0 +1,205 @@
+---
+title: 关于我们
+description: 探索 RetroAchievements 社区的历史与角色,从 Scott Breen 创立到如今维持项目发展的各个团队。了解工作人员、其职责以及社区多年来的发展。
+---
+
+# 关于我们
+
+## RA 工作人员
+
+RetroAchievements 项目最初是 [Scott Breen](http://scottbreen.info/) 的个人项目,早期只有管理员、成就创作者和普通用户。当时管理员的职责包括:
+
+- 关注成就质量
+- 关注是否有人修改他人成就(无意或有意)
+- 欢迎新成就创作者并展示开始贡献所需的信息
+- 审核新成就创作者的作品
+- 处理捣乱者
+- 处理作弊者
+- 确保无人分享盗版或受版权保护的内容
+- 有时举办游戏活动
+- 除了这些工作外,RAdmin 们也有兴趣玩老游戏……
+
+随着社区持续发展,维持运营所需的工作量、时间和精力也在增长。为确保项目繁荣发展,避免管理员 burnout 和退出项目,创建了具有特定任务的各类角色。
+
+这些角色尚未在网站上显示,但大多数在 Discord 上可见。本页列出各角色及其职责。
+
+- [团队账户](#team-accounts)
+- [管理员](#administrators)
+- [版主](#moderators)
+- [开发者合规团队](#developer-compliance-team)
+- [质量保证团队](#quality-assurance-team)
+- [防作弊团队](#cheat-prevention-team)
+- [代码审核团队](#code-reviewer-team)
+- [技术团队](#tech-team)
+- [子团队负责人](#sub-team-leads)
+
+### 团队账户
+
+由各自团队成员共享的账户:
+
+- [DevCompliance](https://retroachievements.org/user/DevCompliance)
+- [DevQuest](https://retroachievements.org/user/DevQuest)
+- [QATeam](https://retroachievements.org/user/QATeam)
+- [RAArtTeam](https://retroachievements.org/user/RAArtTeam)
+- [RAdmin](https://retroachievements.org/user/RAdmin)
+- [RACheats](https://retroachievements.org/user/RCheats)
+- [RAEvents](https://retroachievements.org/user/RAEvents)
+- [RANews](https://retroachievements.org/user/RANews)
+- [TheUnwanted](https://retroachievements.org/user/TheUnwanted)
+- [TicketHounds](https://retroachievements.org/user/TicketHounds)
+- [WritingTeam](https://retroachievements.org/user/WritingTeam)
+
+### 管理员
+
+一群敬业且可信的用户,承担多种职责,其中最重要的是就项目和社区发展方向做决策:
+
+- [AuburnRDM](https://retroachievements.org/user/AuburnRDM)
+- [Hotscrock](https://retroachievements.org/user/Hotscrock)
+- [Jamiras](https://retroachievements.org/user/Jamiras)
+- [KickMeElmo](https://retroachievements.org/user/KickMeElmo)
+- [luchaos](https://retroachievements.org/user/luchaos)
+- [MrOwnership](https://retroachievements.org/user/MrOwnership)
+- [Scott](https://retroachievements.org/user/Scott)
+- [SnowPin](https://retroachievements.org/user/SnowPin)
+- [SporyTike](https://retroachievements.org/user/SporyTike)
+- [tele](https://retroachievements.org/user/tele)
+- [WCopeland](https://retroachievements.org/user/WCopeland)
+- [WilHiteWarrior](https://retroachievements.org/user/WilHiteWarrior)
+
+### 版主
+
+负责维护社区健康的团队(至少对遵守[用户行为准则](/zh/guidelines/users/code-of-conduct)并认同[RetroAchievements 宣言](/zh/guidelines/users/retroachievements-manifesto)的用户而言):
+
+- [AuburnRDM](https://retroachievements.org/user/AuburnRDM)
+- [Hexadigital](https://retroachievements.org/user/Hexadigital)
+- [Hotscrock](https://retroachievements.org/user/Hotscrock)
+- [KickMeElmo](https://retroachievements.org/user/KickMeElmo)
+- [LordAndrew](https://retroachievements.org/user/LordAndrew)
+- [Nepiki](https://retroachievements.org/user/Nepiki)
+- [Searo](https://retroachievements.org/user/Searo)
+- [SnowPin](https://retroachievements.org/user/SnowPin)
+- [SporyTike](https://retroachievements.org/user/SporyTike)
+- [Suffa](https://retroachievements.org/user/Suffa)
+
+### 社区经理
+
+社区经理协助玩家与工作人员之间的沟通,化解误解和冲突,管理各类社交平台,并为版主团队提供支持:
+
+- [Nepiki](https://retroachievements.org/user/Nepiki)
+
+### 开发者合规团队
+
+负责遵守并推动[开发者行为准则](/zh/guidelines/developers/code-of-conduct)更新的团队。
+
+- [cdpowe](https://retroachievements.org/user/cdpowe)
+- [DoctorV](https://retroachievements.org/user/DoctorV)
+- [Excessiveiser](https://retroachievements.org/user/Excessiveiser)
+- [Fridge](https://retroachievements.org/user/Fridge)
+- [Gollawiz](https://retroachievements.org/user/Gollawiz)
+- [Hexadigital](https://retroachievements.org/user/Hexadigital)
+- [KiwiTaco](https://retroachievements.org/user/KiwiTaco)
+- [LogicalFallacy](https://retroachievements.org/user/LogicalFallacy)
+- [MrOwnership](https://retroachievements.org/user/MrOwnership)
+- [psyduck](https://retroachievements.org/user/psyduck)
+- [suspect15](https://retroachievements.org/user/suspect15)
+- [TheMysticalOne](https://retroachievements.org/user/TheMysticalOne)
+- [Whithbrin](https://retroachievements.org/user/Whithbrin)
+- [zxmega](https://retroachievements.org/user/zxmega)
+
+### 质量保证团队
+
+负责确保成就集整体质量的团队:包括逻辑、正确标题与描述、可用的排行榜、可用的 Rich Presence 以及哈希兼容性:
+
+- [BiPolarScientist](https://retroachievements.org/user/BiPolarScientist)
+- [ChaoticAdventure](https://retroachievements.org/user/ChaoticAdventure)
+- [Darky](https://retroachievements.org/user/Darky)
+- [Raichi](https://retroachievements.org/user/Raichi)
+- [Souzooka](https://retroachievements.org/user/Souzooka)
+- [suspect15](https://retroachievements.org/user/suspect15)
+- [Sutarion](https://retroachievements.org/user/Sutarion)
+- [xClawz](https://retroachievements.org/user/xClawz)
+- [Yurana](https://retroachievements.org/user/Yurana)
+
+### 防作弊团队
+
+负责调查作弊举报的团队。
+
+### 代码审核团队
+
+负责帮助初级开发者学习如何制作成就集并审核其作品,确保其理解足以独立制作成就集的团队:
+
+- [AaronDobbe](https://retroachievements.org/user/AaronDobbe)
+- [authorblues](https://retroachievements.org/user/authorblues)
+- [BigDonRob](https://retroachievements.org/user/BigDonRob)
+- [cdpowe](https://retroachievements.org/user/cdpowe)
+- [ChaoticAdventure](https://retroachievements.org/user/ChaoticAdventure)
+- [CySlaytor](https://retroachievements.org/user/CySlaytor)
+- [Fridge](https://retroachievements.org/user/Fridge)
+- [Homuki](https://retroachievements.org/user/Homuki)
+- [KiwiTaco](https://retroachievements.org/user/KiwiTaco)
+- [Layton](https://retroachievements.org/user/Layton)
+- [lonegraywolf2000](https://retroachievements.org/user/lonegraywolf2000)
+- [Pilzkopf](https://retroachievements.org/user/Pilzkopf)
+- [RyCuLe](https://retroachievements.org/user/RyCuLe)
+- [Souzooka](https://retroachievements.org/user/Souzooka)
+- [SporyTike](https://retroachievements.org/user/SporyTike)
+- [thatbard](https://retroachievements.org/user/thatbard)
+- [TheMysticalOne](https://retroachievements.org/user/TheMysticalOne)
+- [TheXIIIthX](https://retroachievements.org/user/TheXIIIthX)
+- [Whithbrin](https://retroachievements.org/user/Whithbrin)
+- [Yanbetari](https://retroachievements.org/user/Yanbetari)
+
+### 技术团队
+
+更专注于技术方面的团队,无论是网站、模拟器、Discord 机器人等:
+
+- [AlmightyXor](https://retroachievements.org/user/AlmightyXor)
+- [amine456](https://retroachievements.org/user/amine456)
+- [clymax](https://retroachievements.org/user/clymax)
+- [DanielARP](https://retroachievements.org/user/DanielARP)
+- [drisc](https://retroachievements.org/user/drisc)
+- [Jamiras](https://retroachievements.org/user/Jamiras)
+- [KickMeElmo](https://retroachievements.org/user/KickMeElmo)
+- [Krylan](https://retroachievements.org/user/Krylan)
+- [LootusMaximus](https://retroachievements.org/user/LootusMaximus)
+- [luchaos](https://retroachievements.org/user/luchaos)
+- [meleu](https://retroachievements.org/user/meleu)
+- [mosquitobird11](https://retroachievements.org/user/mosquitobird11)
+- [MrOwnership](https://retroachievements.org/user/MrOwnership)
+- [oddgoo](https://retroachievements.org/user/oddgoo)
+- [Scott](https://retroachievements.org/user/Scott)
+- [Searo](https://retroachievements.org/user/Searo)
+- [TeddyWestside](https://retroachievements.org/user/TeddyWestside)
+- [tele](https://retroachievements.org/user/tele)
+- [WCopeland](https://retroachievements.org/user/WCopeland)
+- [Xymjak](https://retroachievements.org/user/Xymjak)
+
+### 子团队负责人
+
+负责监督 QA 子团队之一的用户:
+
+- [Gollawiz](https://retroachievements.org/user/Gollawiz) - 美术团队负责人
+- [Sutarion](https://retroachievements.org/user/Sutarion) - 活动团队负责人
+- [TimeCrush](https://retroachievements.org/user/TimeCrush) - 试玩团队负责人
+- [Nepiki](https://retroachievements.org/user/Nepiki) - 写作团队负责人
+- [Excessiveiser](https://retroachievements.org/user/Excessiveiser) - 清理团队负责人
+
+## 简史
+
+RetroAchievements 项目由 **[Scott Breen](http://scottbreen.info/)** 于 [2012 年](https://web.archive.org/web/20121121150009/http://www.retroachievements.org/)创建。他修改了一些开源模拟器以添加 RetroAchievements 功能,并几乎独自编写了所有后端/网站代码。
+
+到 2014 年 1 月,已有 4 款 RA 模拟器、超过 5000 个可获得的成就(感谢许多[热情的成就开发者](http://retroachievements.org/developerstats.php)的奉献)以及超过 1000 名注册玩家。几年后,Scott 因现实生活原因,网站开发进入停滞期,只有零星的改进(尽管成就开发者仍在持续为更多游戏制作成就)。
+
+2015 年底 **[leiradel](https://github.com/leiradel)** 开始将 RetroAchievements 功能集成到 [RetroArch](https://retroarch.com/)。由于 RetroArch 可在多种平台(如 Mac 和 Linux)和设备(如 Android 手机和树莓派)上运行,极大地提升了 RetroAchievements 项目的知名度。
+
+随着网站缓慢发展,带宽成本也在增加,因此 2016 年底 Scott 向社区求助,大家建议通过 Patreon 维持网站运营。实施后,社区反响热烈,使网站得以**完全无广告**地持续运营。
+
+2017 年中 **[RetroAchievements Discord 服务器](https://discord.gg/dq2E4hE)** 启动,使社区内的沟通更加便捷。此后,许多有经验的成员(程序员、网页开发者等)加入并志愿为项目贡献。
+
+在此之前,所有成就制作知识分散在多个论坛帖子中,新手很难学习如何创建成就。2017 年底 **[meleu](https://github.com/meleu)** 启动了 RADocs 项目,得益于许多经验丰富的成就创作者的贡献,现已成为相当可靠的信息资源,帮助数十名初级开发者(甚至经验丰富的开发者)为社区创作内容。
+
+2018 年初 Scott 开源了后端/网站,这是整个 RetroAchievements 项目发展史上的转折点([在 GitHub 上查看我们](https://github.com/RetroAchievements/))。
+
+同年晚些时候,更精简的团队开始成形,如今已成为出色的团队。这些人才让项目持续运转,并清楚表明 RA 社区充满活力,比以往更强大。
+
+在某些方面,项目可能仍像测试版,但我们正在不断努力改进。
diff --git a/docs/zh/general/contributing-to-the-docs.md b/docs/zh/general/contributing-to-the-docs.md
new file mode 100644
index 00000000..356fdcfa
--- /dev/null
+++ b/docs/zh/general/contributing-to-the-docs.md
@@ -0,0 +1,312 @@
+---
+title: 如何贡献 RetroAchievements 文档
+description: 了解如何通过本指南贡献 RetroAchievements 文档,包括快速编辑、详细贡献和最佳实践。
+---
+
+# 贡献文档
+
+**欢迎所有对文档的贡献。**
+
+我们感谢你的贡献热情。无论你是 Git 新手还是资深开发者,我们都能满足你的需求。以下是你如何帮助改进我们文档的方法:
+
+## 快速编辑
+
+如果你只想对现有页面进行快速编辑,请按以下简单步骤操作:
+
+1. **编辑此页**:访问文档站点的任意页面,滚动到底部,点击「编辑此页」链接。
+2. **Fork 仓库**:点击「Fork this repository」按钮。这将创建你自己的文档副本。
+3. **进行修改**:使用屏幕上的 Markdown 编辑器进行修改并预览。
+4. **提交修改**:点击「Commit changes」按钮。为你的修改填写标题和描述,然后提交。
+5. **创建 Pull Request**:点击「Create pull request」按钮。为你的 Pull Request 填写标题和描述,然后提交审核。
+
+## 详细贡献
+
+如果你想创建新页面或处理多个页面,请按以下步骤操作:
+
+### 1. Fork 仓库
+
+- 前往[仓库页面](https://github.com/RetroAchievements/docs)并点击「Fork」按钮。
+- 在出现的表单中点击「Create fork」。
+
+### 2. 在 VSCode 中打开
+
+- 当你在查看你的 fork 时(通常位于 `github.com/your-username-here/docs`),按键盘上的句号(".")键在浏览器中打开 VSCode。
+- 使用左侧的文件树浏览文档,特别是展开「docs」文件夹。
+- 使用 Ctrl+P 快捷键搜索文件,例如「README」。
+
+
+
+### 3. 编辑和预览
+
+- 使用 Ctrl+Shift+P(或 Firefox 中的 F1)打开命令面板,搜索「markdown preview」,选择「Markdown: Open Preview to the Side」。
+- 使用 Markdown 预览在编写时查看你的修改。
+
+
+
+### 4. 创建分支
+
+- 点击 VSCode 左下角的分支名称(通常为 `main`)。
+- 点击「Create branch」,输入分支名称,按 Enter,然后点击「Switch to Branch」。
+
+
+
+
+
+### 5. 保存并提交
+
+- 使用 Ctrl+S 在工作时保存文件。
+- 点击左侧的 Source Control 图标,右键点击你修改的文件,点击「Stage Changes」。
+- 填写提交信息,然后点击「Commit & Push」按钮。
+
+
+
+### 6. 创建 Pull Request
+
+- 使用 Ctrl+Shift+P(或 Firefox 中的 F1)打开命令面板,使用「Create Pull Request」命令。
+- 填写表单的标题和描述,然后点击「Create」。
+
+
+
+
+
+## 添加新页面
+
+如果你想添加新页面,需要更新 [en.ts 文件](https://github.com/RetroAchievements/docs/blob/main/docs/.vitepress/config/en.ts) 中的 `sidebar` 配置。这是将导航连接到新页面的方法。
+
+例如,如果你的新 Markdown 文件是 _docs/general/my-file.md_,在 `sidebarGeneral()` 中添加:
+
+```js
+{
+ text: "My New Page",
+ link: "/general/my-file",
+}
+```
+
+最佳实践是将其添加到其他语言的配置中以保持同步,即使注释掉也可以:
+
+```js
+// {
+// text: "My New Page",
+// link: "/general/my-file",
+// }
+```
+
+## 本地运行文档站点
+
+在计算机上运行文档站点:
+
+1. [下载并安装 Node.js v20](https://nodejs.org/en/download/prebuilt-installer)。
+
+2. 安装 Git。如果你是 Windows 用户,请[下载并安装 Git](https://git-scm.com/download/win)。
+
+3. 打开命令提示符/终端并克隆仓库:
+
+```bash
+git clone https://github.com/RetroAchievements/docs.git
+```
+
+4. 进入克隆的仓库并运行本地开发服务器:
+
+```bash
+cd docs
+npm install
+npm run dev
+```
+
+完成!你的本地服务器现在应该正在运行,可以预览你的修改。
+
+## Markdown 注意事项
+
+Markdown 是一种轻量级且极易学习的标记语言,具有纯文本格式化语法。要在我们的项目中贡献,你至少需要了解 Markdown 的基础知识。这里有一个很好的单页参考:[http://commonmark.org/help/](http://commonmark.org/help/),以及[这里可以尝试 10 分钟教程](http://commonmark.org/help/tutorial/)。
+
+### 标题
+
+标题(由 `#` 定义)应遵循页面内容层级的自然递进。
+
+```
+✅ 正确
+
+# 标题
+## 主标题一
+### 子标题一
+### 子标题二
+## 主标题二
+```
+
+每个页面_必须_以标题(`#`)开头。
+
+```
+🛑 错误
+
+## 主标题一
+### 子标题一
+### 子标题二
+## 主标题二
+```
+
+你_不能_有两个标题(`#`)。
+
+```
+🛑 非常错误
+
+# 标题
+# 标题二
+## 主标题一
+### 子标题一
+### 子标题二
+## 主标题二
+```
+
+### 链接
+
+内部文档链接应遵循此语法,省略 `.md` 和 `.html` 扩展名:
+
+```
+✅ 正确
+
+[技巧与窍门](/zh/developer-docs/tips-and-tricks)
+
+[规则](/zh/guidelines/users/code-of-conduct#rules)
+```
+
+在引用文档中另一页时**不要**使用绝对路径。VitePress 会自动检测并警告断开的链接,但此检测对绝对路径不生效。
+
+```
+🛑 错误
+
+[技巧与窍门](https://docs.retroachievements.org/developer-docs/tips-and-tricks.html)
+
+[规则](https://docs.retroachievements.org/guidelines/users/code-of-conduct.html#rules)
+```
+
+### 图片
+
+你可以通过将图片放在 _docs/public_ 目录中来添加图片。
+
+图片链接应遵循此语法:
+
+```
+✅ 正确
+
+
+```
+
+链接中应省略 `/public`,因为不需要。
+
+尽量不要引用任何外部站点的图片,包括 RetroAchievements 本身。引用不在 _docs/public_ 中的图片很危险,因为它们可能随时失效。
+
+```
+🛑 错误
+
+
+```
+
+务必确保方括号内的 alt 文本具有可访问性。如果图片因任何原因失效,用户将看到此文本。它应是图片的简洁描述。Google 会惩罚没有此文本的页面,有时会完全将其从搜索结果中移除,导致人们无法找到它们。这非常重要。
+
+```
+🛑 非常错误
+
+
+```
+
+### 表格
+
+简单表格如下所示:
+
+```
+| First Header | Second Header | Third Header |
+| ------------ | ------------- | ------------ |
+| Content Cell | Content Cell | Content Cell |
+| Content Cell | Content Cell | Content Cell |
+| Content Cell | Content Cell | Content Cell |
+```
+
+渲染效果如下:
+
+| First Header | Second Header | Third Header |
+| ------------ | ------------- | ------------ |
+| Content Cell | Content Cell | Content Cell |
+| Content Cell | Content Cell | Content Cell |
+| Content Cell | Content Cell | Content Cell |
+
+你可以通过在分隔线中添加冒号来指定每列的对齐方式:
+
+```
+| First Header | Second Header | Third Header |
+| :----------- | :-----------: | -----------: |
+| Left | Center | Right |
+| Left | Center | Right |
+| Left | Center | Right |
+```
+
+结果:
+
+| First Header | Second Header | Third Header |
+| :----------- | :-----------: | -----------: |
+| Left | Center | Right |
+| Left | Center | Right |
+| Left | Center | Right |
+
+## VitePress 组件
+
+VitePress 支持许多超越传统 GitHub Markdown 的额外功能。可在此[参考](https://vitepress.dev/guide/markdown)。
+
+### 自动目录
+
+**输入**
+
+```md
+[[toc]]
+```
+
+**输出**
+
+[[toc]]
+
+### 提示框
+
+**输入**
+
+```md
+::: info
+这是一个信息框。
+:::
+
+::: tip
+这是一个提示。
+:::
+
+::: warning
+这是一个警告。
+:::
+
+::: danger
+这是一个危险警告。
+:::
+
+::: details
+这是一个详情块。
+:::
+```
+
+**输出**
+
+::: info
+这是一个信息框。
+:::
+
+::: tip
+这是一个提示。
+:::
+
+::: warning
+这是一个警告。
+:::
+
+::: danger
+这是一个危险警告。
+:::
+
+::: details
+这是一个详情块。
+:::
diff --git a/docs/zh/general/emulator-support-and-issues.md b/docs/zh/general/emulator-support-and-issues.md
new file mode 100644
index 00000000..18d305c2
--- /dev/null
+++ b/docs/zh/general/emulator-support-and-issues.md
@@ -0,0 +1,439 @@
+---
+title: 模拟器支持
+description: RetroAchievements 硬核合规与兼容性综合指南,包括各主机相关问题以及各类核心与模拟器的推荐。
+---
+
+# 模拟器支持
+
+::: info
+本页聚焦于符合硬核要求的模拟器。有关详细合规要求,请参阅[硬核合规要求](/zh/general/hardcore-compliance-requirements)页面。有关不受支持的模拟器和核心的详细说明,请查看[不受支持的模拟器页面](/zh/developer-docs/unsupported-emulators-and-cores)。
+:::
+
+libretro 核心可在以下符合硬核要求的前端上运行。您可在[下载页面](https://retroachievements.org/downloads)找到它们,其中列出了所有可用的核心:
+
+- [RetroArch](https://www.retroarch.com/index.php?page=platforms) - 支持 40+ 平台。
+- [RALibRetro](https://retroachievements.org/downloads) - 支持 40+ 平台。
+- [Firelight](https://biscuitcakes.itch.io/firelight) - 支持 10+ 平台。
+- [Delta (iOS)](https://apps.apple.com/us/app/delta-game-emulator/id1048524688) - 支持 5+ 平台。
+
+BizHawk 核心只能在 [BizHawk](https://tasvideos.org/Bizhawk) 上运行。有关 BizHawk 核心的更多详情请参见[此处](https://tasvideos.org/BizHawk)。
+
+### 32X
+
+| 名称 | 类型 | 备注 |
+| :------------ | :------------ | :--------------------------------------------------------------------------------------------------- |
+| **PicoDrive** | libretro 核心 | - 部分游戏存在问题,若成就显示为不支持或游戏运行不佳,请使用 BizHawk。
- 似乎仍存在未映射的 RAM。 |
+| **PicoDrive** | BizHawk 核心 | 最推荐。 |
+
+### 3DO Interactive Multiplayer
+
+| 名称 | 类型 | 备注 |
+| :-------- | :------------ | :------------------------------- |
+| **Opera** | libretro 核心 | 根据 BIOS 不同可能存在一些问题。 |
+
+### Amstrad CPC
+
+| 名称 | 类型 | 备注 |
+| :------------ | :------------ | :------------------------------------------------- |
+| **Caprice32** | libretro 核心 | 该核心目前不支持写入磁盘,实现后可能影响哈希计算。 |
+
+### Apple II
+
+| 名称 | 类型 | 备注 |
+| :------------------------------------------------------- | :--------- | :--- |
+| **[RAppleWin](https://retroachievements.org/downloads)** | 独立模拟器 | |
+
+### Arcade
+
+| 名称 | 类型 | 备注 |
+| :------------------------------------------------------------ | :------------ | :----------------------------------------------------------------------------------------------------------------- |
+| **FinalBurn Neo** | libretro 核心 | 部分基板可能未完全支持。 |
+| **Flycast** | libretro 核心 | 用于 Atomiswave 和 NAOMI 1/2。 |
+| **[Flycast](https://github.com/flyinghead/flycast/releases)** | 独立模拟器 | - 用于 Atomiswave 和 NAOMI 1/2。
- 成就开发者无法直接排查问题,若成就无法正常工作请先尝试使用核心,再提交工单。 |
+
+### Arcadia 2001
+
+| 名称 | 类型 | 备注 |
+| :---------------------------------------------------- | :--------- | :--- |
+| **[WinArcadia](https://amigan.1emu.net/releases/)** | 独立模拟器 | |
+| **[DroidArcadia](https://amigan.1emu.net/releases/)** | 独立模拟器 | |
+
+### Arduboy
+
+| 名称 | 类型 | 备注 |
+| :---------- | :------------ | :-------------------- |
+| **Ardens** | libretro 核心 | |
+| **Arduous** | libretro 核心 | 无法模拟 Arduboy FX。 |
+
+### Atari 2600
+
+| 名称 | 类型 | 备注 |
+| :---------------- | :------------ | :------------------------------------------------------- |
+| **Stella** | libretro 核心 | |
+| **Atari2600Hawk** | BizHawk 核心 | 需要模拟器重置的成就无法工作。请提交工单以便修复该成就。 |
+
+### Atari 7800
+
+| 名称 | 类型 | 备注 |
+| :------------ | :------------ | :--- |
+| **ProSystem** | libretro 核心 | |
+| **A7800Hawk** | BizHawk 核心 | |
+
+### Atari Jaguar
+
+| 名称 | 类型 | 备注 |
+| :----------------- | :------------ | :--------------------------------------------------------------------------------------------------------------------------------- |
+| **Virtual Jaguar** | libretro 核心 | - 不支持即时存档。
- 不支持 Jaguar CD。
- [模拟存在诸多问题](https://github.com/libretro/virtualjaguar-libretro/issues/38)。 |
+| **Virtual Jaguar** | BizHawk 核心 | |
+
+### Atari Jaguar CD
+
+| 名称 | 类型 | 备注 |
+| :----------------- | :----------- | :--- |
+| **Virtual Jaguar** | BizHawk 核心 | |
+
+### Atari Lynx
+
+| 名称 | 类型 | 备注 |
+| :-------------- | :------------ | :------------------------------ |
+| **Handy** | libretro 核心 | 最推荐。 |
+| **Beetle Lynx** | libretro 核心 | |
+| **Handy** | BizHawk 核心 | 特别地为 Mednafen 分支。 |
+
+### ColecoVision
+
+| 名称 | 类型 | 备注 |
+| :---------------------------------------------------- | :------------ | :--- |
+| **blueMSX** | libretro 核心 | |
+| **ColecoHawk** | BizHawk 核心 | |
+| **[RAMeka](https://retroachievements.org/downloads)** | 独立模拟器 | |
+
+### Dreamcast
+
+| 名称 | 类型 | 备注 |
+| :------------------------------------------------------------ | :------------ | :--------------------------------------------------------------------------- |
+| **Flycast** | libretro 核心 | 需禁用多线程渲染才能正确使用即时存档。 |
+| **[Flycast](https://github.com/flyinghead/flycast/releases)** | 独立模拟器 | 成就开发者无法直接排查问题,若成就无法正常工作请先尝试使用核心,再提交工单。 |
+
+### Elektor TV Games Computer
+
+| 名称 | 类型 | 备注 |
+| :---------------------------------------------------- | :--------- | :--- |
+| **[WinArcadia](https://amigan.1emu.net/releases/)** | 独立模拟器 | |
+| **[DroidArcadia](https://amigan.1emu.net/releases/)** | 独立模拟器 | |
+
+### Fairchild Channel F
+
+| 名称 | 类型 | 备注 |
+| :----------- | :------------ | :--- |
+| **FreeChaF** | libretro 核心 | |
+
+### Game Boy
+
+| 名称 | 类型 | 备注 |
+| :----------------------------------------------------------- | :------------ | :--------------------------------- |
+| **Gambatte** | libretro 核心 | 最推荐。 |
+| **Gearboy** | libretro 核心 | |
+| **mGBA** | libretro 核心 | |
+| **VBA-M** | libretro 核心 | |
+| **Gambatte** | BizHawk 核心 | 特别地为 Pokémon 速通分支。 |
+| **GBHawk** | BizHawk 核心 | |
+| **[RAVBA](https://retroachievements.org/downloads)** | 独立模拟器 | |
+| **[Pizza Boy C Basic & Pro](https://pizzaemulators.com/)** | 独立模拟器 | |
+| **[SkyEmu](https://github.com/skylersaleh/SkyEmu/pull/321)** | 独立模拟器 | |
+| **[Playback](https://www.epilogue.co/)** | 独立模拟器 | 需要 GB Operator 设备。 |
+| **[Linkboy](https://retroachievements.org/downloads)** | 独立模拟器 | |
+
+### Game Boy Color
+
+| 名称 | 类型 | 备注 |
+| :----------------------------------------------------------- | :------------ | :--------------------------------- |
+| **Gambatte** | libretro 核心 | 最推荐。 |
+| **Gearboy** | libretro 核心 | |
+| **mGBA** | libretro 核心 | |
+| **VBA-M** | libretro 核心 | |
+| **Gambatte** | BizHawk 核心 | 特别地为 Pokémon 速通分支。 |
+| **GBHawk** | BizHawk 核心 | |
+| **[RAVBA](https://retroachievements.org/downloads)** | 独立模拟器 | |
+| **[Pizza Boy C Basic & Pro](https://pizzaemulators.com/)** | 独立模拟器 | |
+| **[SkyEmu](https://github.com/skylersaleh/SkyEmu/pull/321)** | 独立模拟器 | |
+| **[Playback](https://www.epilogue.co/)** | 独立模拟器 | 需要 GB Operator 设备。 |
+| **[Linkboy](https://retroachievements.org/downloads)** | 独立模拟器 | |
+
+### Game Boy Advance
+
+| 名称 | 类型 | 备注 |
+| :----------------------------------------------------------- | :------------ | :---------------------- |
+| **mGBA** | libretro 核心 | 最推荐。 |
+| **VBA-M** | libretro 核心 | |
+| **Beetle GBA** | libretro 核心 | |
+| **VBA Next** | libretro 核心 | |
+| **mGBA** | BizHawk 核心 | |
+| **[RAVBA](https://retroachievements.org/downloads)** | 独立模拟器 | |
+| **[Pizza Boy A Basic & Pro](https://pizzaemulators.com/)** | 独立模拟器 | |
+| **[SkyEmu](https://github.com/skylersaleh/SkyEmu/pull/321)** | 独立模拟器 | |
+| **[Playback](https://www.epilogue.co/)** | 独立模拟器 | 需要 GB Operator 设备。 |
+| **[Linkboy](https://retroachievements.org/downloads)** | 独立模拟器 | |
+
+### GameCube
+
+| 名称 | 类型 | 备注 |
+| :------------------------------------------------------------------------ | :--------- | :------------------------------------------------------------------------------------------ |
+| **[Dolphin](https://retroachievements.org/download.php#dolphin)** | 独立模拟器 | - 必须使用 2407-68 或更高版本。
- 请确保取消勾选「启用双核(加速)」选项,因其不受支持。 |
+| **[DolphinUWP](https://github.com/SternXD/dolphin/releases/tag/1.1.9.0)** | 独立模拟器 | |
+
+### Game Gear
+
+| 名称 | 类型 | 备注 |
+| :---------------------------------------------------------- | :------------ | :--- |
+| **Genesis Plus GX** | libretro 核心 | |
+| **Gearsystem** | libretro 核心 | |
+| **[RAMeka](https://retroachievements.org/downloads)** | 独立模拟器 | |
+| **[Pizza Boy SC Basic & Pro](https://pizzaemulators.com/)** | 独立模拟器 | |
+
+### Genesis/Mega Drive
+
+| 名称 | 类型 | 备注 |
+| :---------------------------------------------------------- | :------------ | :--------------------- |
+| **Genesis Plus GX** | libretro 核心 | 最推荐。 |
+| **PicoDrive** | libretro 核心 | |
+| **Genplus-gx** | BizHawk 核心 | 亦称 Genesis Plus GX。 |
+| **[Pizza Boy SC Basic & Pro](https://pizzaemulators.com/)** | 独立模拟器 | |
+
+### Intellivision
+
+| 名称 | 类型 | 备注 |
+| :-------------- | :------------ | :------------------------------------------------------------------- |
+| **FreeIntv** | libretro 核心 | - 游戏重置时会崩溃。
- 部分崩溃可能与 Intellivoice 未被模拟有关。 |
+| **IntelliHawk** | BizHawk 核心 | |
+
+### Interton VC 4000
+
+| 名称 | 类型 | 备注 |
+| :---------------------------------------------------- | :--------- | :--- |
+| **[WinArcadia](https://amigan.1emu.net/releases/)** | 独立模拟器 | |
+| **[DroidArcadia](https://amigan.1emu.net/releases/)** | 独立模拟器 | |
+
+### Magnavox Odyssey 2
+
+| 名称 | 类型 | 备注 |
+| :------- | :------------ | :--- |
+| **O2EM** | libretro 核心 | |
+
+### Master System/Mark III
+
+| 名称 | 类型 | 备注 |
+| :---------------------------------------------------------- | :------------ | :--- |
+| **Genesis Plus GX** | libretro 核心 | |
+| **Gearsystem** | libretro 核心 | |
+| **[RAMeka](https://retroachievements.org/downloads)** | 独立模拟器 | |
+| **[Pizza Boy SC Basic & Pro](https://pizzaemulators.com/)** | 独立模拟器 | |
+
+### Mega Duck
+
+| 名称 | 类型 | 备注 |
+| :----------- | :------------ | :--- |
+| **SameDuck** | libretro 核心 | |
+
+### MSX
+
+| 名称 | 类型 | 备注 |
+| :---------- | :------------ | :--- |
+| **blueMSX** | libretro 核心 | |
+
+### Neo Geo CD
+
+| 名称 | 类型 | 备注 |
+| :-------- | :------------ | :--- |
+| **NeoCD** | libretro 核心 | |
+
+### Neo Geo Pocket (Color)
+
+| 名称 | 类型 | 备注 |
+| :---------------- | :------------ | :------------------------------ |
+| **Beetle NeoPop** | libretro 核心 | |
+| **NeoPop** | BizHawk 核心 | 特别地为 Mednafen 分支。 |
+
+### NES/Famicom
+
+| 名称 | 类型 | 备注 |
+| :------------------------------------------------------------- | :------------ | :--------------------------- |
+| **FCEUmm** | libretro 核心 | 最推荐。 |
+| **Mesen** | libretro 核心 | |
+| **QuickNES** | libretro 核心 | 不支持 Famicom Disk System。 |
+| **[RANes](https://retroachievements.org/downloads)** | 独立模拟器 | |
+| **[NES RA Adapter](https://github.com/odelot/nes-ra-adapter)** | 主机适配器 | |
+
+### NES/Famicom Disk System
+
+| 名称 | 类型 | 备注 |
+| :--------------------------------------------------- | :------------ | :------- |
+| **FCEUmm** | libretro 核心 | 最推荐。 |
+| **Mesen** | libretro 核心 | |
+| **[RANes](https://retroachievements.org/downloads)** | 独立模拟器 | |
+
+### Nintendo 64
+
+| 名称 | 类型 | 备注 |
+| :-------------------------------------------------------------------------------- | :------------ | :----------------------------------------------- |
+| **Mupen64Plus-Next** | libretro 核心 | - 最推荐。
- 分为 OpenGL ES 2 和 3 两个核心。 |
+| **ParaLLEl N64** | libretro 核心 | |
+| **[RAProject64](https://retroachievements.org/downloads)** | 独立模拟器 | |
+| **[Luna's Project64](https://github.com/Luna-Project64/Luna-Project64/releases)** | 独立模拟器 | |
+
+### Nintendo DS
+
+::: info
+麦克风支持有限。
+:::
+
+| 名称 | 类型 | 备注 |
+| :-------------------------------------------------------------------------------- | :------------ | :----------- |
+| **DeSmuME** | libretro 核心 | 不支持 DSi。 |
+| **melonDS** | libretro 核心 | |
+| **melonDS DS** | libretro 核心 | |
+| **melonDS** | BizHawk 核心 | |
+| **[melonDS Android](https://github.com/rafaelvcaetano/melonDS-android/releases)** | 独立模拟器 | |
+
+### Nintendo DSi
+
+| 名称 | 类型 | 备注 |
+| :-------------------------------------------------------------------------------- | :------------ | :------------------- |
+| **melonDS DS** | libretro 核心 | 目前不支持即时存档。 |
+| **melonDS** | BizHawk 核心 | |
+| **[melonDS Android](https://github.com/rafaelvcaetano/melonDS-android/releases)** | 独立模拟器 | |
+
+### PC Engine/TurboGrafx-16/SuperGrafx
+
+| 名称 | 类型 | 备注 |
+| :-------------------- | :------------ | :------------------------------------------------- |
+| **Beetle SuperGrafx** | libretro 核心 | 最推荐。 |
+| **Beetle PCE Fast** | libretro 核心 | SuperGrafx 游戏在 Beetle PCE Fast 核心上无法运行。 |
+| **PCEHawk** | BizHawk 核心 | |
+
+### PC Engine CD/TurboGrafx-CD
+
+| 名称 | 类型 | 备注 |
+| :-------------------- | :------------ | :------- |
+| **Beetle SuperGrafx** | libretro 核心 | 最推荐。 |
+| **Beetle PCE Fast** | libretro 核心 | |
+| **PCEHawk** | BizHawk 核心 | |
+
+### PC-8000/8800
+
+| 名称 | 类型 | 备注 |
+| :------------------------------------------------------- | :------------ | :--- |
+| **QUASI88** | libretro 核心 | |
+| **[RAQUASI88](https://retroachievements.org/downloads)** | 独立模拟器 | |
+
+### PC-FX
+
+| 名称 | 类型 | 备注 |
+| :--------------- | :------------ | :------------------------------ |
+| **Beetle PC-FX** | libretro 核心 | |
+| **T.S.T.** | BizHawk 核心 | 特别地为 Mednafen 分支。 |
+
+### PlayStation
+
+| 名称 | 类型 | 备注 |
+| :---------------------------------------------- | :------------ | :---------------------------------------------------------- |
+| **Beetle PSX HW** | libretro 核心 | 最推荐。 |
+| **Beetle PSX** | libretro 核心 | |
+| **SwanStation** | libretro 核心 | |
+| **[DuckStation](https://www.duckstation.org/)** | 独立模拟器 | 使用即时存档时可能出现内存泄漏和/或烧屏,可能影响软核模式。 |
+
+### PlayStation 2
+
+| 名称 | 类型 | 备注 |
+| :----------------------------------------------------------------------- | :--------- | :--- |
+| **[PCSX2](https://pcsx2.net/)** | 独立模拟器 | |
+| **[NetherSX2](https://github.com/Trixarian/NetherSX2-classic/releases)** | 独立模拟器 | |
+| **[XBSX2](https://github.com/XboxEmulationHub/XBSX2/releases)** | 独立模拟器 | |
+
+### PlayStation Portable
+
+| 名称 | 类型 | 备注 |
+| :----------------------------------------- | :------------ | :--- |
+| **PPSSPP** | libretro 核心 | |
+| **[PPSSPP](https://ppsspp.org/download/)** | 独立模拟器 | |
+
+### Pokémon Mini
+
+| 名称 | 类型 | 备注 |
+| :----------- | :------------ | :--- |
+| **PokeMini** | libretro 核心 | |
+
+### Saturn
+
+| 名称 | 类型 | 备注 |
+| :-------------------------------------------- | :------------ | :---------------------------------------- |
+| **Beetle Saturn** | libretro 核心 | |
+| **Saturnus** | BizHawk 核心 | 无法运行 Beetle Saturn 的用户的良好选择。 |
+| **[Yaba Sanshiro](https://yabasanshiro.com)** | 独立模拟器 | 目前仅支持 Android。 |
+
+### Sega CD
+
+::: info
+这些核心似乎仍存在未映射的 RAM。
+:::
+
+| 名称 | 类型 | 备注 |
+| :------------------ | :------------ | :--- |
+| **Genesis Plus GX** | libretro 核心 | |
+| **PicoDrive** | libretro 核心 | |
+
+### SG-1000
+
+| 名称 | 类型 | 备注 |
+| :---------------------------------------------------- | :------------ | :------- |
+| **Genesis Plus GX** | libretro 核心 | 最推荐。 |
+| **blueMSX** | libretro 核心 | |
+| **[RAMeka](https://retroachievements.org/downloads)** | 独立模拟器 | |
+
+### SNES/Super Famicom/Satellaview/Sufami Turbo
+
+| 名称 | 类型 | 备注 |
+| :------------------------------------------------------------------ | :------------ | :------- |
+| **Snes9X** | libretro 核心 | 最推荐。 |
+| **Mesen-S** | libretro 核心 | |
+| **[RASnes9x](https://retroachievements.org/download.php#rasnes9x)** | 独立模拟器 | |
+| **[RA2Snes](https://github.com/Factor-64/RA2Snes/releases)** | 主机适配器 | |
+
+### Uzebox
+
+| 名称 | 类型 | 备注 |
+| :--------- | :------------ | :--- |
+| **Uzebox** | libretro 核心 | |
+| **Uzem** | BizHawk 核心 | |
+
+### Vectrex
+
+| 名称 | 类型 | 备注 |
+| :------- | :------------ | :--- |
+| **vecx** | libretro 核心 | |
+
+### Virtual Boy
+
+| 名称 | 类型 | 备注 |
+| :---------------- | :------------ | :------------------------------ |
+| **Beetle VB** | libretro 核心 | |
+| **Virtual Boyee** | BizHawk 核心 | 特别地为 Mednafen 分支。 |
+
+### WASM-4
+
+| 名称 | 类型 | 备注 |
+| :--------- | :------------ | :--- |
+| **WASM-4** | libretro 核心 | |
+
+### Watara Supervision
+
+| 名称 | 类型 | 备注 |
+| :---------- | :------------ | :--- |
+| **Potator** | libretro 核心 | |
+
+### WonderSwan (Color)
+
+| 名称 | 类型 | 备注 |
+| :--------------- | :------------ | :------------------------------ |
+| **Beetle Cygne** | libretro 核心 | |
+| **Cygne** | BizHawk 核心 | 特别地为 Mednafen 分支。 |
diff --git a/docs/zh/general/events.md b/docs/zh/general/events.md
new file mode 100644
index 00000000..fb8087b6
--- /dev/null
+++ b/docs/zh/general/events.md
@@ -0,0 +1,64 @@
+---
+title: RetroAchievements 活动
+description: 探索当前和过去的 RetroAchievements 活动,从持续挑战到季节性竞赛。本页提供活跃和以往活动的链接与详情,一窥社区活动。
+---
+
+# 活动
+
+## 当前活动
+
+| 活动名称 | 当前主办方 | 相关链接 | 更多信息 |
+| -------------------------------------- | --------------- | ------------------------------------------------------------------ | ------------------------ |
+| 每周成就(Achievement of the Week) | Various | [论坛主题](https://retroachievements.org/viewtopic.php?t=24926) | |
+| AotW: 鸟山明致敬(Akira Toriyama Tribute) | Various | [论坛主题](https://retroachievements.org/viewtopic.php?t=26722) | |
+| 赏金猎人(Bounty Hunters) | s0uth | [论坛主题](https://retroachievements.org/viewtopic.php?t=26501) | |
+| 挑战联盟(Challenge League) | Sutarion | [论坛主题](https://retroachievements.org/viewtopic.php?t=24927) | |
+| [DevJam](/zh/developer-docs/devjam) | televandalist | [论坛主题](https://retroachievements.org/viewtopic.php?t=22368) | 开发者活动 |
+| [DevQuests](/zh/developer-docs/devquests) | Various | [论坛主题](https://retroachievements.org/viewtopic.php?t=13060) | 开发者活动(系列) |
+| 画出你的宝可梦(Draw Your Pokemon) | StingX2 | [论坛主题](https://retroachievements.org/viewtopic.php?t=21011) | |
+| 常青活动(Evergreen Events) | Various | [论坛主题](https://retroachievements.org/viewtopic.php?t=25332) | |
+| 最终幻想 V 四职业嘉年华(Final Fantasy V Four Job Fiesta) | Sutarion | [论坛主题](https://retroachievements.org/viewtopic.php?t=26862) | |
+| 大扫除(House Cleaning) | Falcus | [论坛主题](https://retroachievements.org/viewtopic.php?t=21939) | |
+| 每月排行榜(Leaderboard of the Month) | drisc | [论坛主题](https://retroachievements.org/viewtopic.php?t=19693) | |
+| 地平线上(On the Horizon) | AuburnRDM | [论坛主题](https://retroachievements.org/viewtopic.php?t=25374) | |
+| 巅峰连胜(Peak Streak) | Bendyhuman | [论坛主题](https://retroachievements.org/viewtopic.php?t=12108) | |
+| PlayJam | Sutarion | [论坛主题](https://retroachievements.org/viewtopic.php?t=26319) | |
+| 累积积分(Rack It Up) | StingX2 | [论坛主题](https://retroachievements.org/viewtopic.php?t=24535) | |
+| RetroAchievements 轮盘(RAWR) | StingX2 | [论坛主题](https://retroachievements.org/viewtopic.php?t=25399) | |
+| [Rollouts](/zh/developer-docs/rollouts) | | | |
+| 简单月度精通(Simple Monthly Master) | JAM | [论坛主题](https://retroachievements.org/viewtopic.php?t=25995) | |
+| 不受欢迎者(The Unwanted) | AuburnRDM | [论坛主题](https://retroachievements.org/viewtopic.php?t=14787) | |
+| VGM 竞赛(VGM Contest) | Yunalle | [论坛主题](https://retroachievements.org/viewtopic.php?t=26700) | |
+
+## 过去或季节性活动
+
+| 活动名称 | 以往主办方 | 相关链接 | 更多信息 |
+| ---------------------------- | ----------------------------------------------------- | ------------------------------------------------------------------ | --------------------- |
+| AotW: 大片票房爆炸(Big Box Office Blast) | Various | [论坛主题](https://retroachievements.org/viewtopic.php?t=22847) | |
+| AotW: 愚人月(Month of Fools) | Various | [论坛主题](https://retroachievements.org/viewtopic.php?t=21062) | |
+| 馊主意游戏(Bad Idea Game) | StingX2 | | |
+| 打到完成(Beaten Into Completion) | StingX2 | [论坛主题](https://retroachievements.org/viewtopic.php?t=23062) | 开发者活动 |
+| Bendyhuman 的大师任务(Master Quest) | Bendyhuman | | |
+| 社区同玩(CommuniPlay) | SporyTike
theelkspeaks | | |
+| 主机大战(Console Wars) | BahamutVoid | [论坛主题](https://retroachievements.org/viewtopic.php?t=20706) | |
+| 精华之选(Cream of the Crop) | Bendyhuman | [论坛主题](https://retroachievements.org/viewtopic.php?t=20940) | |
+| 每日分心(Daily DistRActions) | Bendyhuman | [论坛主题](https://retroachievements.org/viewtopic.php?t=19253) | |
+| Devember | kdecks
wilhitewarrior
SlashTangent
Falcus | [论坛主题](https://retroachievements.org/viewtopic.php?t=24475) | |
+| 万圣节 2023(Halloween 2023) | Scott | [论坛主题](https://retroachievements.org/viewtopic.php?t=24016) | |
+| 蛙跳(Leapfrog) | Boldewin
HolyShinx
Nevermond12
televandalist | | |
+| 马里奥派对 RA(Mario Party RA) | freezestar | [论坛主题](https://retroachievements.org/viewtopic.php?t=22460) | |
+| 月度大师(Master of the Month) | JAM | | |
+| PS2 发布活动(PS2 Launch Event) | Various | [论坛主题](https://retroachievements.org/viewtopic.php?t=18243) | |
+| 重评贡献者(Rescoring Contributor) | kdecks | | |
+| RetroAchievements 锦标赛(Tournament) | diegoplantes | | |
+| 复古奥运会(RetroOlympics) | Searo
voiceofautumn | [网站](https://retroolympics.com/) | |
+| 复古对战(Retro Battle) | Thoreau | | |
+| 复古清理 2019(Retro Clean-Up 2019) | SporyTike | | 开发者活动 |
+| 复古游戏秀(Retro Game Show) | Thoreau | | |
+| 复古 VGM 测验(Retro VGM Quiz) | Thoreau | | |
+| RPM | JAM
Xymjak | | |
+| 春季大扫除 2020(Spring Cleaning 2020) | wilhitewarrior | | 开发者活动 |
+| 💀大成就 2020💀(The Big Achievement 2020) | televandalist | | |
+| 南瓜王(The Great Jacko) | StingX2 | | 开发者活动 |
+| 南瓜之王(The Pumpkin King) | kdecks | | |
+| UserQuests(?) | Various | | 玩家活动(系列) |
diff --git a/docs/zh/general/faq.md b/docs/zh/general/faq.md
new file mode 100644
index 00000000..ab33bc42
--- /dev/null
+++ b/docs/zh/general/faq.md
@@ -0,0 +1,238 @@
+# 常见问题
+
+[[toc]]
+
+## RetroAchievements 常见问题
+
+### 什么是硬核模式(HARDCORE)?
+
+如果你想完全复刻过去玩复古游戏的方式,那么硬核模式正是你所需要的。该功能限制玩家加载即时存档(在非硬核模式下创建即时存档用于练习或工单目的是允许的)、使用作弊码,以及任何改变游戏速度的功能,如倒带、慢动作、使用模拟器内置功能逐帧推进游戏等。注意,改变速度的唯一例外是快进,快进是允许的。简而言之,你是在没有模拟器那些改变游戏体验的增强功能的情况下玩游戏。
+
+虽然你在普通模式(Softcore)下仍可获得成就,但只有在硬核模式下游玩才能获得游戏的精通(Mastery),在游戏页面上以游戏大师的身份展示你的技能和实力,并出现在主排行榜上。在硬核模式下游玩还可以让你在游戏专属排行榜上记录时间、分数或参与各种挑战。
+
+**注意**:如果你想在禁用硬核模式(也称为「普通模式」)下游玩,可能会遇到一些问题。请阅读[此链接:为什么不应使用加载即时存档功能](/zh/orphaned/load-state-feature)。
+
+### 白点是什么?
+
+白点,即 RetroPoints,是根据成就稀有度计算的次要积分,**但目前该功能尚不够准确**。详见[此处](https://retroachievements.org/viewtopic.php?t=1015)。
+
+### RetroAchievements 会支持某某主机吗?
+
+**简短回答**:会的。
+
+**详细回答**:唯一正确的答案是「当有具备技能和意愿的人编写支持时就会支持。」——这里的每个人都是志愿者,所以额外的支持和功能会在有人做的时候出现。在许多情况下,对主机的支持取决于模拟器(核心)开发者,不在 RetroAchievements 的控制范围内。
+
+有关特定主机的更多信息,可在此查看:
+[System X When?](/zh/orphaned/system-x-wen)
+
+### 如何申请成就集?
+
+每个游戏页面上都有「Request Set」(申请成就集)链接。
+
+
+
+点击后会将你的名字添加到该游戏的申请用户列表中。再次点击可撤回申请。要查看其他申请该成就集的用户,请点击游戏封面下方的「Set Requestors」(成就集申请者)链接。
+
+
+
+
+
+申请总数会统计并显示在[最受欢迎成就集](https://retroachievements.org/setRequestList.php)页面上,也可按主机筛选。当成就集创建后,用户申请将自动返还,可用于申请其他游戏。
+
+用户可用的申请次数按以下方式确定:
+
+- 账户每满一年可获得 1 次
+- 每获得一个活动徽章可获得 1 次
+- 达到 1250、2500、5k、7500、10k 各可获得 1 次
+- 10k 至 100k 之间每 5k 可获得 1 次
+- 100k 之后每 10k 可获得 1 次
+
+**注意**:所有成就开发者都是志愿者,申请成就集不保证一定会制作。申请功能的目的是让开发者了解玩家最想要什么。你也可以在游戏的论坛页面上提出成就建议,帮助推动成就集的制作。
+
+---
+
+## 模拟器常见问题
+
+### 在哪里可以找到 ROM?
+
+不在这里。托管或分发受版权保护的 ROM 是违法的。不过我们有一个[免费游戏](/zh/orphaned/free-games)页面,你可以在那里找到一些很棒的自制游戏。
+
+### 为什么会出现部分成就不受支持的消息?
+
+
+
+
+
+此消息告知用户,部分成就无法激活,可能是因为其 RetroArch 和/或所用核心的版本不支持某些较新的逻辑功能,或因为成就处理所需的 RAM 区域未暴露。
+
+在大多数情况下,更新到最新版本的 RetroArch 可以解决问题,或者更新或使用不同的[支持的核心](#which-retroarch-core-should-i-use)也能解决。
+
+### 成就无法正常工作时该怎么办?
+
+当成就出现问题时,无论是成就未授予你还是在不该授予时授予了,都有解决方案可以修复问题并让你获得应有的积分!首先你需要[报告损坏的成就](#how-do-i-report-a-broken-achievement)。(这是为社区改进做出贡献的好方法!)这会为成就开发者创建工单报告,他们将审查问题并寻找解决方案。
+
+如果成就未授予,你可以申请[手动解锁](#how-do-i-request-a-manual-unlock)。你需要[报告损坏的成就](#how-do-i-report-a-broken-achievement)并提供[完成证明](#in-detail-how-to-request-a-manual-unlock)。
+
+### 如何报告损坏的成就?
+
+有两种方式可以报告损坏的成就。在模拟器标题栏中进入 **RetroAchievements** ⇒ **Report Broken Achievements**(报告损坏的成就):
+
+1. 仅限[官方 RetroAchievements 模拟器](#official-retroachievementsorg-emulators):
+
+
+
+2. [RetroArch](#retroarch-emulators) 用户可以直接通过网站提交报告。在每个成就页面上,你会看到「Report an issue for this achievement」(报告此成就问题)的链接,如下图所示:
+
+
+
+如果你使用[官方 RetroAchievements 模拟器](#official-retroachievementsorg-emulators),也可以从网站成就页面报告问题,但建议使用模拟器内置的方式。
+
+#### 损坏成就报告中_必须_添加哪些信息?
+
+你必须添加以下信息,以便开发者识别问题:
+
+- 问题类型(未触发或在错误时间触发)
+- 使用的模拟器(若使用 RALib/Retroarch 则包括核心)
+- RA 哈希(校验和)以识别游戏版本
+
+#### 损坏成就报告中应添加哪些信息?
+
+如有可能,在损坏成就报告的**评论**中粘贴截图或视频(更好)的链接,显示问题发生的位置。建议将截图发布到 [imgur](https://imgur.com/),视频发布到 [YouTube](https://www.youtube.com)。
+
+还需添加以下详细信息:
+
+- 何时授予/未授予;
+- 游戏模式(硬核模式/普通模式);
+- 选择的难度或其他设置;
+- 游玩时长;
+- 最近一次死亡或续关的时间;
+- 你认为问题可能是什么或任何可能有帮助的细节。
+
+这样成就开发者才能知道问题所在。
+
+### 什么是 RA 哈希?
+
+RA 哈希是由 32 个十六进制数字组成的唯一字符串,用于区分不同的游戏及其版本,每个游戏都有一个。
+
+#### 如何查看正在游玩的游戏的 RA 哈希?
+
+- RetroArch:Quick Menu ⇒ Information,底部有「RetroAchievements Hash」,即 RA 哈希
+- Standalones/RaLibretro:顶部 RetroAchievement 选项卡 ⇒ Get ROM Checksum,会显示 RA 哈希
+
+### 如何申请手动解锁?
+
+#### Discord 用户(推荐方式):
+
+在 [#unlock-requests](https://discord.com/channels/310192285306454017/1029858289221116104) 频道按[此置顶帖](https://discord.com/channels/310192285306454017/1029858289221116104/threads/1029875838327463966)中的格式发布申请。此方式便于更快沟通或更新,也便于上传视频和图片作为证明。
+
+#### 网站申请:
+
+有两种方式可通过网站发送申请。
+
+- 直接向 [RAdmin](https://retroachievements.org/user/RAdmin) 用户发送消息,标题为:**Manual Unlock Request**(手动解锁申请)
+- 在单个成就页面点击「Report an issue」链接,然后点击「Request Manual Unlock」按钮,会自动格式化发送给 [RAdmin](https://retroachievements.org/user/RAdmin) 的消息供你编辑和发送。
+
+通过网站发送手动解锁申请时,消息必须包含以下所有内容。缺少任何一项的申请将被自动拒绝,且不会有后续跟进:
+
+1. 成就识别:
+
+ - 提供要申请解锁的成就 ID 的直接链接。
+ - 如果申请包含超过三个成就,请同时提供逗号分隔的 ID 列表,例如 `123, 456, 789`。
+ - 说明申请的是普通模式还是硬核模式解锁。
+
+2. 损坏成就工单:
+
+ - 如果与损坏的成就相关,请包含你创建的工单链接。
+ - 例外:如果成就在模拟器中正确触发但因网络问题未同步到你的个人资料,则无需创建工单。请明确说明是网络问题。
+ - 阅读[优质工单剖析](https://news.retroachievements.org/issues/2022-06/goodticket.html)了解如何写出有帮助的工单。
+
+3. 完成证明:
+
+ - 一般证明要求:
+ - 提供证明的直接纯文本链接(不要使用网站 Markdown 或嵌入式图片)。
+ - 使用外部托管服务(如 imgur、YouTube 或云服务)存放截图或视频。不接受本地文件链接或嵌入式图片。
+ - 按成就类型的证明:
+ - 进度成就:提供游戏中较后解锁的另一进度成就的链接即可。否则适当的截图通常足够。
+ - 挑战成就:需要从挑战开始到结束的完整视频证据。即使成就显示挑战图标,也必须提供视频证明。证据需捕捉触发时刻、显示活动挑战图标(或错误消失时),并确认硬核模式已激活(若为硬核申请)。
+ - 其他成就:清晰的截图或相关成就的链接(仅当所申请成就已完成时才有可能)通常足够。若认为需要视频,请自行判断。
+ - 网络问题:若在关闭模拟器前发现,显示成就已在模拟器中解锁的清晰截图是最佳证明。否则仍适用上述类型。
+
+4. 链接验证:
+ - 发送前使用预览功能验证所有链接是否有效。我们没有能力修复或跟进损坏/格式错误的链接,任何无效链接将导致立即拒绝。
+
+#### 重要提醒:
+
+- 制定这些指南是因为我们收到大量手动解锁申请,其中许多不完整或格式不当。缺少或无效的信息将导致拒绝且不予回复。
+- 即使你的提交符合所有要求,RA 团队保留在认为所提供证明不足时拒绝申请的权利。
+- 手动解锁面向有证明已获得成就但因 bug 或网络问题未在网站上触发的玩家。**不**面向、也不会授予在成就集可用之前游玩过游戏、或在本身不支持的平台上(例如原版硬件)游玩、或在开始使用 RetroAchievements 之前游玩的玩家。
+- 若数日后仍未收到解锁,请再次确认你的申请是否符合这些指南。如需进一步澄清或认为处理有误,请联系版主团队。
+
+#### 手动解锁申请简要步骤
+
+1. **创建工单(如适用):**
+
+ - 通过创建工单报告问题,清楚描述成就的问题。
+ - 注意:若成就正确触发但存在网络同步问题,则无需创建工单——只需在手动解锁申请中说明网络问题即可。
+
+2. **收集充分证明:**
+
+ - 提供你满足所有成就要求的证据。可接受的证明形式包括:
+ - **截图**:显示你在硬核模式下游玩且满足成就要求。
+ - **视频**:捕捉成就应触发的关键时刻。(挑战成就和硬核提交尤其必要。)
+ - **对比成就证据**:例如,若你获得了更高级别的成就(如 10k 积分成就)但漏掉了所需的较低级别成就(如 5k 积分)。
+
+3. **提交申请:**
+ - **Discord 用户**:在 [#unlock-requests](https://discord.com/channels/310192285306454017/1029858289221116104) 按[此置顶帖](https://discord.com/channels/310192285306454017/1029858289221116104/threads/1029875838327463966)发布消息
+ - **网站用户**:登录 RetroAchievements.org 后,向 RAdmin 用户发送包含上述所需信息的申请
+
+### 如果获得了不该获得的成就怎么办?
+
+与未获得应得成就的情况类似,在大多数情况下你需要[创建工单报告](#how-do-i-report-a-broken-achievement),说明出了什么问题。你还应从获得历史中重置这些成就,以便真正获得它们时获得满足感。
+
+### 如何重置成就?
+
+有三种方式:
+
+- 在成就页面:
+ 
+
+- 在游戏页面(当你想或需要重置游戏中所有获得时):
+ 
+
+- 在用户设置页面底部附近:
+ 
+
+### 只有我有这个问题吗?
+
+如果成就对你无法正常工作,很可能其他人也有同样问题。你可以在成就页面上查看「The achievement has 'X' open tickets」(该成就有 X 个未解决工单):
+
+
+
+如果游戏有工单,点击「open tickets」链接。会显示损坏成就的报告列表。你可以在这些工单上评论,添加有用的细节或说明你也有此成就的问题。
+
+---
+
+## 账户常见问题
+
+### 为什么看不到新头像?
+
+按 `Ctrl + F5`(大多数浏览器)。有时更改头像(也称为 avatar 或 user pic)后需要刷新浏览器缓存;在大多数浏览器中 `Ctrl + F5` 是最快的方式。
+
+### 欢迎邮件不见了!
+
+遗憾的是,有时欢迎邮件可能会丢失。如果发生这种情况,请使用注册时的用户名/密码登录,然后访问设置页面。顶部会有重新发送注册邮件的选项。
+
+### 如何重置密码?(如果忘记密码)
+
+在此处:
+[https://retroachievements.org/resetPassword.php](https://retroachievements.org/resetPassword.php)
+
+在网站上,未登录时首页:
+
+
+
+### 成为赞助人会有特权吗?
+
+在网站上你会有一个表示「我资助了 RA!」的徽章。在 Discord 服务器上你可以访问专属频道。尽管**我们非常感谢赞助人的贡献**,除此之外没有其他福利。
+
+感谢 [Patreon 贡献](https://www.patreon.com/bePatron?u=5403777),RetroAchievements 项目能够支付体面的服务器来运行网站、运行 Discord 机器人并进行定期备份(以便在灾难发生时恢复数据),这一切都是无广告体验。整个社区都要感谢赞助人。
diff --git a/docs/zh/general/hardcore-compliance-requirements.md b/docs/zh/general/hardcore-compliance-requirements.md
new file mode 100644
index 00000000..c042f24c
--- /dev/null
+++ b/docs/zh/general/hardcore-compliance-requirements.md
@@ -0,0 +1,99 @@
+---
+title: 硬核模式合规要求
+description: 模拟器达到 RetroAchievements 硬核模式合规的全面要求,包括功能支持、规则执行和技术规范。
+---
+
+# 硬核模式合规要求
+
+本页概述模拟器必须满足的全面要求,才能被视为与 RetroAchievements 硬核模式合规。这些要求确保公平游戏、正确功能以及跨所有平台的一致体验。硬核合规的模拟器可获准参与竞争性硬核模式排行榜。它们也会列在我们的[下载页面](https://retroachievements.org/downloads)上,提供稳定持续的自由流量。
+
+## A. RetroAchievements 功能
+
+RetroAchievements 功能必须按预期工作:
+
+- **成就**:触发器必须正确评估。Measured 和 Trigger 标志必须正常工作。
+- **Rich Presence 和排行榜**:必须正常运行。
+- **离线队列**:离线时创建的解锁必须安全缓存,并在恢复连接时同步到 RetroAchievements。
+- **即时存档命中存储**:命中次数应存储在即时存档中。虽非严格要求,但强烈建议,因为这对调试复杂成就逻辑很重要,并确保普通模式下的正确功能。没有此功能,玩家可能会遇到问题,开发者将难以排查。
+- **工具包支持**:如果你发布模拟器的 Windows 版本,请考虑添加 [RAIntegration DLL](https://github.com/RetroAchievements/RAIntegration) 支持。这不是必需的,但如果不包含,我们的下载页面上会显示一条简要说明,玩家在尝试打开工单时会收到非常明显的警告。
+- **存档文件兼容性**:存档文件(记忆卡、SRAM、EEPROM、电池存档等)应使用与同系统其他模拟器兼容的标准格式。强烈建议,因为这对用户(可在不丢失进度的情况下切换模拟器)和开发者(可通过在支持 RAIntegration 的模拟器中加载存档来验证手动解锁申请)都有利。
+
+## B. 硬核模式规则执行
+
+以下规则必须在硬核模式中执行:
+
+- **作弊在硬核模式下禁用**,包括:
+ - 内置作弊引擎
+ - 可挂载的作弊设备(GameShark、Game Genie 等)
+ - 非用于小幅体验改进(宽屏补丁等)的外部作弊文件
+- **倒带在硬核模式下禁用**。
+- **减速和逐帧推进在硬核模式下禁用**。
+- **加载即时存档在硬核模式下始终禁止**。
+- **Rich Presence 和排行榜在硬核模式下不可禁用**。支持在任一模式下禁用排行榜弹窗是可以的。
+- 如果模拟器支持**「恢复/快速恢复」功能**,恢复的会话必须降级为普通模式。
+- **模式切换**:不允许在会话中途从普通模式切换到硬核模式。**此操作必须导致游戏完全重置。** 允许在会话中途从硬核模式切换到普通模式。
+- 应允许用户在硬核模式下创建即时存档用于调试目的,但这些存档在启用硬核模式时不可加载。
+- 内存编辑器、调试器和/或脚本/TAS/录制输入回放严格禁止。
+
+## C. 客户端身份与完整性
+
+模拟器必须使用以下格式的独特、稳定的用户代理:
+
+```
+EmulatorName/v1.0.0 (OSName 10.0) core_name/v0.5.0
+```
+
+我们的用户代理格式有三个部分:
+
+- A. **必需。** 模拟器名称和版本。版本必须为数字且递增,可选「v」前缀除外。
+- B. 可选。操作系统名称和版本。
+- C. 可选,但**如果模拟器支持多核心则强烈建议。** 核心名称和版本。版本理想情况下应为数字或遵循 semver 约定。
+
+以下是有效用户代理的示例:
+
+```
+RetroArch/1.20.0 (Android 13.0) genesis_plus_gx_libretro_android/v1.7.4_8ea39ee
+PPSSPP/v1.19.3
+PCSX/v2.5.103 (Microsoft Windows 10+)
+RALibRetro/1.8.1 (WindowsNT 10.0) fbneo_libretro/v1.0.0.03__e90b821
+```
+
+## D. 默认设置与用户体验
+
+- 当用户登录 RetroAchievements 账户时,**建议默认启用硬核模式**,但非必需。如果普通模式为默认,启用硬核必须一键/点击即可,且清晰标示。
+- **硬核状态必须在游玩期间的 UI 中可见标示**。通常在玩家开始游戏时完成——他们可以看到一条简要信息说明他们处于何种模式。
+
+## E. 透明度与合法性
+
+必须满足以下透明度和法律要求:
+
+- **变现披露**:如果模拟器涉及任何变现/商业化,你必须发布功能矩阵(免费 vs 付费)及确切限制(例如云存档配额)。付费功能不得破坏硬核规则。
+- **许可证与声明**:发布一个页面(或以其他方式可访问)列出每个分发的 FOSS 核心、其许可证以及任何相关上游链接。
+ - 如有任何商业化且未经版权方书面许可,不得分发非商业许可证。
+ - 必须满足 GPL/LGPL/MPL 等对任何分发二进制文件的要求。
+- **隐私政策**:发布易于找到的隐私政策,包括:
+ - 数据保留期限。
+ - 服务器位置/国家。
+ - 如有任何保留的遥测,模拟器如何满足 GDPR 合规。
+
+## F. 自动失败标准
+
+以下任何一项将导致模拟器**自动拒绝**硬核验证:
+
+- 在硬核模式下加载即时存档。
+- 在硬核模式下允许倒带/慢动作/逐帧推进。
+- 在硬核模式下允许改变游戏玩法的作弊。
+- 能够在无需重置游戏的情况下切换到硬核模式。
+- 使用非唯一用户代理向服务器标识模拟器。
+- 在存在任何商业化或应用内购买的情况下分发非商业核心,且未经必要版权方书面许可。
+- 隐私政策存在占位符/矛盾(例如缺少数据仓库位置、「无第三方」但使用社交登录/分析)。
+
+## G. 禁止的模拟器
+
+以下模拟器在 RetroAchievements 上永久禁止硬核验证。来自这些模拟器的工单将被关闭,被发现使用这些模拟器进行硬核模式游玩的玩家将被取消追踪。
+
+- **Afterplay。** 曾临时向硬核玩家提供可访问的作弊工具,违反 B 节。在 6 个月硬核验证暂停后,该模拟器被其开发者修改以绕过暂停,违反 C 节并触发 F 节下的自动失败标准。
+
+::: warning 重要
+满足这些要求对于模拟器在 RetroAchievements 上被列为硬核合规至关重要。我们保留定期重新评估合规模拟器以确保持续合规的权利。未能保持合规可能导致从批准的模拟器列表和我们的下载页面中移除。
+:::
diff --git a/docs/zh/general/how-ra-works.md b/docs/zh/general/how-ra-works.md
new file mode 100644
index 00000000..8ffe0fb4
--- /dev/null
+++ b/docs/zh/general/how-ra-works.md
@@ -0,0 +1,52 @@
+---
+title: RA 工作原理
+description: 用简单术语描述 RA 成就如何由模拟器创建和处理。面向可能对成为开发者感兴趣的玩家。
+---
+
+# RetroAchievements 工作原理
+
+RetroAchievements(RA)使用户能够从 RA 成就集中获得复古游戏的成就。它通过将游戏内存(以下简称 RAM)与 RA 开发者编写的成就代码进行比较来授予成就。成就代码,也称为逻辑,是开发者选择的一系列内存条件,当所有条件在同一帧同时为真时,将授予成就。
+
+[[toc]]
+
+## 什么是成就集?
+
+成就集是特定游戏的单个成就和排行榜的汇编。成就包括成就逻辑、标题、描述、积分值和徽章。此外,核心集应包含 Rich Presence 脚本,为网站用户提供活跃玩家在游戏中的位置信息。成就集可以有排行榜,追踪玩家在游戏中某些方面的表现,如通关关卡的速度、得分等。RA 用户与所有这些组件和子组件交互。每一个都是玩家体验的重要组成部分。
+
+## 成就代码是什么以及如何编写?
+
+RA 成就代码是一种由支持 RA 的模拟器解释的自定义基于文本的语言。如果你是有意支持 RA 的模拟器开发者,[请参阅我们的模拟器集成指南](https://github.com/RetroAchievements/rcheevos/wiki/rc_client-integration)了解如何实现。用于 RA 的代码由开发者使用一两种成就开发工具编写。开发者可使用他们偏好的任何工具。RAIntegration 工具包中的成就编辑器无需编程知识。另一方面,[RATools](/zh/developer-docs/ratools) 是为更习惯用脚本语言编写成就集的开发者设计的独立可执行文件。成就编辑器和 RATools 都生成用于所有成就、排行榜和 Rich Presence 的类似代码。
+
+### 成就代码如何被处理?
+
+RAM 是游戏在任何给定时间存储其内存的地方。当由主机或模拟器处理时,RAM 可用于识别游戏中发生的情况。游戏以一系列帧处理,通常每秒 60、50、30 或 25 帧,取决于主机和格式。RA 每帧处理集中所有未获得的成就逻辑。因此,开发者可以创建逻辑,使得当所有条件同时为真时,能唯一精确地识别游戏中发生的某事并授予成就、激活排行榜并提供准确的 Rich Presence。成就开发者的工作是充分理解游戏的 RAM,以便能够构建此逻辑。
+
+理解开发者打算在其逻辑中使用的 RAM 的工作原理对于创建稳定地按预期授予成就、提交排行榜分数和准确显示 Rich Presence 的成就集至关重要。RA 开发者使用开发者模拟器工具检查游戏的 RAM,确定哪些地址负责他们打算用于逻辑的内容。开发者有多种方式精确定义必须为真才能构建逻辑的内存条件,包括保留先前在内存中发生但可能不再为真的知识。
+
+### 成就代码和处理示例
+
+举个简单的例子,要为在《塞尔达传说 II:林克的冒险》中获得锤子授予成就,开发者需要找出游戏中与获得锤子的几个独特方面相关的内存地址。有多种方法可以做到这一点。开发者可能采用的一种方法是找到房间 ID 的地址以确保玩家在锤子所在的房间,可能还有区域 ID 以确保玩家在游戏的正确部分,最后是指示玩家是否实际获得锤子的地址。房间和区域 ID 很重要的原因是,当玩家加载已收集锤子的存档时,内存会显示锤子持有状态从假变为真,但这不是成就应该授予的地方。房间和区域 ID 条件将确保玩家实际上是在游戏中获得锤子,而不是仅仅加载已经拥有锤子的存档。可以构建一个可靠的成就,在以下情况同时为真时授予:
+
+```
+Room ID = 锤子所在的房间
+Area ID = 锤子所在的游戏区域
+锤子持有状态从未拥有变为已拥有
+```
+
+这是在成就编辑器中此成就的样子
+
+
+
+在此示例中,地址 0x0561 是房间 ID,当玩家在锤子所在的房间时其值为 0x15,地址 0x076e 是区域 ID,当在锤子所在的死亡山时其值为 0x02,地址 0x078b 的 Bit0 表示玩家是否有锤子。当玩家获得锤子时,此位从 0 变为 1,因此成就检查此位大于前一帧的帧,这正是获得锤子的时刻,因为位只能是 1 或 0。如果所有三个条件在同一帧为真,则授予成就。这只能在玩家在死亡山的锤子房间获得锤子时发生,而不是在其他时间,例如加载存档时。
+
+玩家玩游戏的每一帧,RAM 都会与成就逻辑进行比较,以检查该帧上所有条件是否为真。对于此示例成就,所有条件只能在玩家在获得锤子的房间和区域并且玩家获得锤子时在同一帧为真。当发生这种情况时,逻辑中定义的所有条件将同时为真,成就将立即授予。
+
+## 排行榜和 Rich Presence 代码
+
+排行榜在逻辑方面与成就非常相似,但需要一系列条件来告诉排行榜何时激活、何时取消自身以及何时向排行榜提交什么值。创建排行榜本质上就像创建几个将按顺序处理的小成就。
+
+Rich Presence 代码与成就和排行榜代码非常相似,但由于网站处理方式的不同而略有不同。Rich Presence 作为脚本编写并提交给 RA,而不是像成就和排行榜那样的代码字符串。它仍然使用与成就和排行榜相同的基本语法,但有一些附加功能,如可能使用的自定义宏。
+
+## 要点
+
+编写可靠代码的关键是首先理解 RAM 中什么可用于识别开发者打算授予成就、用于排行榜或 Rich Presence 的特定游戏事件。下一步是找到识别事件发生所需的必要内存地址及其值,并构建逻辑以创建一系列条件,这些条件仅在预期帧上同时为真。
diff --git a/docs/zh/general/index.md b/docs/zh/general/index.md
new file mode 100644
index 00000000..e92cb777
--- /dev/null
+++ b/docs/zh/general/index.md
@@ -0,0 +1,17 @@
+# 索引
+
+欢迎来到 RetroAchievements 文档!
+
+文档目前正在大力建设中,请经常回来查看!各章节出现在侧边栏中,以下是各类别的简要说明:
+
+- **指南**:社区、用户/玩家、开发者和内容政策的详细说明。
+- **通用**:常见问题、入门指南、支持/故障排除,以及其他对社区所有成员有用的信息。
+- **成就开发**:关于制作成就的概念和技术方面的详尽信息。
+
+我们鼓励所有社区成员加入我们的 [Discord 服务器](https://discord.gg/dq2E4hE);我们的大部分交流都在此进行。
+
+翻译
+
+- [中文](/zh/general/index)
+- [葡萄牙语](/pt/general/index)
+- [西班牙语](/es/general/index)
diff --git a/docs/zh/general/overlay-themes.md b/docs/zh/general/overlay-themes.md
new file mode 100644
index 00000000..05456ea2
--- /dev/null
+++ b/docs/zh/general/overlay-themes.md
@@ -0,0 +1,33 @@
+---
+title: 叠加主题
+---
+
+# 叠加主题
+
+[预览图库](https://bit.ly/RAOPreviews)
+
+[默认主题文件](https://github.com/RetroAchievements/RAInterface/blob/master/overlay/theme-coloredgrey.json) 显示所有可用设置。放入 `overlay` 子目录时必须命名为 `theme.json`。
+
+### 单一主题
+
+- [Default](https://bit.ly/RAODefault) by [Scott](https://retroachievements.org/User/Scott)
+- [Crash Bandicoot](https://bit.ly/RAOCrash) by [Dexterspet](https://retroachievements.org/User/Dexterspet)
+- [Mega Man Classic](https://bit.ly/RAOMegamanC) by [Salsa](https://retroachievements.org/User/Salsa)
+- [Nintendo Mix (Slumber Party)](https://bit.ly/RAONSlumber) by [Salsa](https://retroachievements.org/User/Salsa)
+- [Roll-chan Evolution](https://bit.ly/RAORollchan) by [Salsa](https://retroachievements.org/User/Salsa)
+- [The Legend of Zelda Classic](https://bit.ly/RAOZeldaC) by [Salsa](https://retroachievements.org/User/Salsa)
+- [Ys Book I & II](https://bit.ly/RAOYs12) by [Salsa](https://retroachievements.org/User/Salsa)
+- [Sonic](https://bit.ly/RAOSonicM) by [matheus2653](https://retroachievements.org/User/matheus2653)
+- [Arnold Schwarzenegger](https://bit.ly/RAOArnold) by [Salsa](https://retroachievements.org/User/Salsa)
+- [Reginaldo Rossi](https://bit.ly/RAORRossi) by [Salsa](https://retroachievements.org/User/Salsa)
+- [Spyro](https://bit.ly/SpyroRA) by [rabbids4eva](https://retroachievements.org/user/rabbids4eva)
+- [Gex](http://bit.ly/2X54iYo) by [rabbids4eva](https://retroachievements.org/user/rabbids4eva)
+- [PlayStation 2](http://bit.ly/2ISxu0X) by [rabbids4eva](https://retroachievements.org/user/rabbids4eva)
+- [LittleBIGPlanet](http://bit.ly/2RATOPk) by [rabbids4eva](https://retroachievements.org/user/rabbids4eva)
+- [Kula World / Roll Away](https://mega.nz/#!doongahR!l1L1KVT0SJ7csHZq2M6BCp0CRSRligl0U5VnVSlUe70) by [rabbids4eva](https://retroachievements.org/user/rabbids4eva)
+- [MediEvil](https://mega.nz/#!w1wDTI5Q!YpTHp2k6MuM-JQd6ynXtML-qjK1dWDRdn9vkKRQd6T0) by [rabbids4eva](https://retroachievements.org/user/rabbids4eva)
+- [wip3out](https://mega.nz/#!EhxDhYBR!PjyK-Z5zmPf0NQBAd5xONY3GelCym7whN5dTy7an8lM) by [rabbids4eva](https://retroachievements.org/user/rabbids4eva)
+
+### 多主题(可自定义)
+
+- [The Legend of Zelda franchise](https://bit.ly/RAOZeldaM) by [kdecks](https://retroachievements.org/User/kdecks)
diff --git a/docs/zh/general/rabot.md b/docs/zh/general/rabot.md
new file mode 100644
index 00000000..6ec87b7d
--- /dev/null
+++ b/docs/zh/general/rabot.md
@@ -0,0 +1,240 @@
+---
+title: RABot
+description: 了解 RABot,官方 RetroAchievements Discord 机器人,探索其提供的实用命令。
+---
+
+# RABot,RA Discord 机器人
+
+RABot 是官方 RetroAchievements Discord 机器人。因此,要与之交互,你需要成为 [RA Discord 服务器](https://discord.gg/dq2E4hE) 的成员。
+
+RABot 有许多酷炫实用的命令,本页将展示其中一些的使用示例。
+
+RABot 由 [JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript)、[Node.js](https://nodejs.org/)、[discord.js](https://discord.js.org/) 和 [Commando](https://discord.js.org/#/docs/commando/master/general/welcome) 驱动。
+
+**特别感谢**:[DragonFire 的 Xiao 机器人](https://github.com/dragonfire535/xiao/) 是 RABot 中许多酷炫命令的重要灵感来源,如 [`!bulbapedia`](#bulbapedia)、[`!manga`](#manga)、[`!translate`](#translate)、[`!define`](#define) 等。
+
+## 获取帮助
+
+### `!help`
+
+此命令让 RABot 发送包含可用命令列表的私信。
+
+如需特定命令的帮助,使用 `!help command_name`。
+
+### `!docs`
+
+提供 RetroAchievements 文档链接。
+
+
+
+
+
+### `!rarch`
+
+提供 RetroArch 的基本信息。
+
+
+
+### `!rules`
+
+显示规则或特定规则。
+
+
+
+### `!about`
+
+显示 RABot 的信息。
+
+
+
+### `!panic`
+
+网站宕机时该怎么办。
+
+
+
+## 创建投票
+
+### `!poll`
+
+创建简单投票。人们可以通过添加反应来投票,也可以使用未列出的反应投票。若你对更高级、正式的投票感兴趣,请参阅 [`!tpoll`](#tpoll)。
+
+
+
+### `!tpoll`
+
+创建限时投票。在此类投票中,只有第一个反应被视为投票,若人们使用未列出的反应投票则作废。
+
+
+
+## 数字处理
+
+### `!hex`
+
+将非负整数从十进制(或二进制)转换为十六进制(或反之)。
+
+
+
+### `!bin`
+
+将非负整数从十进制(或十六进制)转换为二进制(或反之)。
+
+
+
+### `!calculator`
+
+**别名**:`!calc`
+
+计算给定的数学表达式并返回结果。
+
+
+
+## 获取 RetroAchievements.org 信息/链接
+
+### `!ragame`
+
+**别名**:`!game`
+
+在 RetroAchievements.org 上搜索游戏并显示链接。
+
+
+
+### `!tickets`
+
+返回给定游戏名称的未解决工单页面 URL。
+
+
+
+### `!whatgame`
+
+**别名**:`!wg`
+
+随机返回一个有成就的游戏。
+
+
+
+
+
+### `!whatcheevo`
+
+随机返回一个成就。
+
+## 随机趣闻
+
+### `!funfact`
+
+返回复古游戏趣闻。
+
+**注意**:你可以[在此](https://github.com/RetroAchievements/RABot/issues/2)建议更多趣闻条目。
+
+
+
+### `!memefact`
+
+**别名**:`!meme`
+
+返回 RetroAchievements 梗趣闻。
+
+**注意**:你可以[在此](https://github.com/RetroAchievements/RABot/issues/6)建议更多梗趣闻条目,但请牢记这两条简单规则 **1)** 你不能建议自己的引用;**2)** 建议引用时,务必获得作者和/或被提及者的同意。
+
+
+
+## 获取游戏相关信息
+
+### `!gamefaqs`
+
+**别名**:`!gamefaq`、`!gfaq`
+
+在 GameFAQs 上搜索游戏并显示链接。
+
+
+
+### `!longplay`
+
+**别名**:`!lplay`、`!lp`
+
+在 YouTube 上搜索长流程视频并发布链接。
+
+
+
+### `!vgmaps`
+
+**别名**:`!vgmap`
+
+在 vgmaps.com 上搜索电子游戏地图。
+
+
+
+### `!howlongtobeat`
+
+**别名**:`!hltb`
+
+在 howlongtobeat.com 上搜索游戏并显示链接。
+
+
+
+## 杂项
+
+### `!define`
+
+**别名**:`!dictionary`、`!dict`
+
+定义单词。
+
+
+
+### `!translate`
+
+**别名**:`!tr`
+
+将文本翻译成特定语言。**由 提供支持**
+
+
+
+
+
+### `!urban`
+
+使用 Urban Dictionary 定义单词。
+
+
+
+### `!wikipedia`
+
+**别名**:`!wp`
+
+在 Wikipedia 上搜索你的查询。
+
+
+
+### `!youtube`
+
+**别名**:`!yt`
+
+在 YouTube 上搜索视频并发布找到的第一个。
+
+
+
+### `!bulbapedia`
+
+在 Bulbapedia 上搜索你的查询。
+
+
+
+### `!movie`
+
+在 TMDB 上搜索你的查询,获取电影结果。
+
+
+
+### `!manga`
+
+在 AniList 上搜索你的查询,获取漫画结果。
+
+
+
+### `!anime`
+
+在 AniList 上搜索你的查询,获取动漫结果。
+
+
diff --git a/docs/zh/general/setup-guide.md b/docs/zh/general/setup-guide.md
new file mode 100644
index 00000000..07cc2e5f
--- /dev/null
+++ b/docs/zh/general/setup-guide.md
@@ -0,0 +1,122 @@
+---
+title: 安装指南
+description: 安装指南
+---
+
+# 安装指南
+
+进行中页面
+
+[[toc]]
+
+## 模拟器
+
+### Bizhawk
+
+待定
+
+---
+
+### DuckStation
+
+待定
+
+---
+
+### PCSX2
+
+待定
+
+---
+
+### RALibretro
+
+待定 - 目前请参阅 [RALibretro](/zh/orphaned/ralibretro)
+
+---
+
+### RAMeka
+
+待定
+
+---
+
+### RANes
+
+待定
+
+---
+
+### RAP64
+
+待定
+
+---
+
+### RAppleWin
+
+待定
+
+---
+
+### RAQUASI88
+
+RAQUASI88 基于 [QUASI88kai](https://github.com/rzumer/quasi88),是 [QUASI88](https://www.eonet.ne.jp/~showtime/quasi88/) 的衍生版本,包含多项改进。
+
+文档可在发布归档或项目的 [仓库](https://github.com/rzumer/quasi88/tree/develop/document) 中获取。不以 `.EN.TXT` 结尾的文件仅提供日文版本。
+
+| 文件 | 描述 |
+| ------------------ | -------------------------------------------------------------------- |
+| QUICK-START.EN.TXT | 面向首次用户的 PC-8801 和 QUASI88(kai) 通用信息 |
+| RAQUASI88[.EN].TXT | RetroAchievements 和 RAQUASI88 专用信息 |
+| QUASI88.TXT | 以易读格式呈现的 QUASI88(kai) 专用信息 |
+| MANUAL.TXT | 面向高级用户的 QUASI88(kai) 选项与系统的详尽说明 |
+| COMPATIBILITY.TXT | 运行或正确运行游戏所需的游戏专用选项 |
+
+[PC-8000/8800 支持](https://retroachievements.org/viewtopic.php?t=8329) 论坛主题以及各游戏页面和论坛主题也包含一些信息。
+
+---
+
+### RASnes9x
+
+待定
+
+---
+
+### RAVBA
+
+待定
+
+---
+
+### RetroArch
+
+待定
+
+---
+
+### WinArcadia
+
+待定
+
+---
+
+## 核心
+
+### Final Burn Neo
+
+待定
+
+---
+
+### Flycast
+
+待定
+
+---
+
+### PPSSPP
+
+待定
+
+---
diff --git a/docs/zh/general/standalone-support.md b/docs/zh/general/standalone-support.md
new file mode 100644
index 00000000..079e5a9d
--- /dev/null
+++ b/docs/zh/general/standalone-support.md
@@ -0,0 +1,34 @@
+---
+title: 独立游戏支持
+description: RetroAchievements 对独立游戏的支持指南,包括要求、评估标准和不需要模拟器的游戏的提案流程。
+---
+
+# 独立游戏
+
+我们为不使用模拟器连接 RetroAchievements 的独立游戏提供支持。这是通过直接向我们的模拟器集成 API(「Connect API」)发出 HTTP 调用来实现的,无论是直接修改游戏还是创建包含连接 RetroAchievements 服务器所需代码的模组。然而,所有独立游戏支持必须遵守严格的要求,并需经 RetroAchievements 管理员批准。即使满足以下所有指南,也不能保证我们会接受你的提案。为提高成功几率,向管理员提交高度详细的计划至关重要。
+
+[[toc]]
+
+## 开发独立游戏支持的要求是什么
+
+独立游戏支持有必须满足的严格不可协商要求。
+
+- 提案人必须是 RetroAchievements 的开发者,或至少有一个已发布成就集的初级开发者,因为这些成就集仍须遵循我们的全球[成就设计](https://docs.retroachievements.org/developer-docs/achievement-design.html)规则。我们不能信任任何尚未向我们展示其成就集设计能力的人。请注意,若你是初级开发者且提案被接受,你的独立游戏项目**不会**计入毕业,因为它不涉及代码审核员评分的常规成就开发。同样,你仍须努力毕业。
+ - 或者,提案人可以在未开发过成就集的情况下建议独立游戏,但必须有负责成就集设计的 RetroAchievements 开发者支持。
+- 你必须能够执行[全球排行榜和成就狩猎规则](https://docs.retroachievements.org/guidelines/users/global-leaderboard-and-achievement-hunting-rules.html)中所示的硬核模式限制。例如黑名单/白名单降低成就挑战的其他模组和/或作弊,或禁止多人游戏以防止不公平优势。这些优势应仅保留给普通模式玩家(如适用)。
+- 我们期望你了解为游戏添加独立游戏支持所需的工具。这取决于你正在开发的游戏,有些游戏需要 C# 等编程语言的专业知识,而其他游戏可能有可用的广泛模组工具可用于开发成就集。另请查看[独立游戏集成指南](https://api-docs.retroachievements.org/connect/standalone.html)了解如何将独立游戏项目连接到 RetroAchievements。
+
+### 我们在独立游戏支持中寻找什么
+
+我们将在下面列出一些我们寻找的指南。然而,请始终记住,**RetroAchievements 管理员团队决定我们是否要推进你的提案。** 因此,必须始终提交良好的计划或原型。
+
+- 允许为已在其他平台(如 Steam)有成就集的游戏申请独立游戏支持。
+ - 然而,RetroAchievements 上的成就集必须与现有成就集有显著不同。不允许抄袭其他平台,我们的成就集需要提供官方成就集中不存在的独特体验。
+- MMO 私服的官方支持必须与服务器主机合作提案,因为这些很可能需要构建在服务器代码中,除非有罕见例外。
+- 同人游戏是允许的,但请注意我们不会在社区内托管这些游戏以避免潜在的法律问题。你必须确保用户能够访问所需的一切,而不依赖我们的社区。
+
+### 如何申请独立游戏支持
+
+牢记上述所有指南,你必须创建包含独立游戏提案的详细计划。它必须至少包括核心集和潜在子集的完整成就集计划、你计划如何解决硬核模式限制的担忧,以及你的独立游戏项目将如何与 RetroAchievements 连接。完成计划后,你可以将其发送给 [RAdmin](https://retroachievements.org/user/radmin),届时将进行讨论。若获批准,我们将与你联系如何继续,包括开发工作原型以便我们充分了解此独立游戏支持的可行性。
+
+我们要强调,独立游戏提案的概念验证越完整,在管理员之间进行的讨论中就越有分量。
diff --git a/docs/zh/general/teams/devquest-team.md b/docs/zh/general/teams/devquest-team.md
new file mode 100644
index 00000000..a25a3b0d
--- /dev/null
+++ b/docs/zh/general/teams/devquest-team.md
@@ -0,0 +1,319 @@
+---
+title: DevQuest 团队
+description: 列出 RetroAchievements DevQuest 团队的职责和说明。
+---
+
+# DevQuest 团队
+
+DevQuest 团队负责处理开发者的 DevQuest 申请、确定哪些游戏、成就集和其他操作适合各类 DevQuest、对相关案例进行投票,以及规划新 DevQuest 和所有 DevQuest 的规则。
+
+[[toc]]
+
+
+## DevQuest 团队职责
+
+与 DevQuest 相关的一切都是团队的职责:
+
+- 回答开发者的问题
+- 对 DevQuest 相关决策进行投票,可能包括成就集资格、新任务、将游戏添加到列表等
+- 将 Wish This Set 游戏添加到 DQ16 游戏列表
+- 当开发者申请积分并 @ 团队时,验证游戏、成就集和其他工作以授予 DevQuest 积分
+
+## 投票政策
+
+对于需要团队意见的大多数决策,在 Discord 的团队频道中创建新主题。最好先进行讨论,除非是无需太多信息的简单决策。@DevQuest 以确保团队被添加到主题中。
+
+在完成任何必要讨论后,应使用 3 天期限的 Discord 投票进行表决。如果投票在结束前达到整个团队的 60% 多数,则可立即采取多数行动。对于接近的投票(相差 1 票),建议进行进一步讨论并再次投票。
+
+## 将游戏添加到列表
+
+部分 DevQuest 维护合格游戏列表,由 DevQuest 团队添加游戏:
+
+- DevQuest 002: Retro Renovator(复古翻新者)
+- DevQuest 013: complete.me(完成我)
+- DevQuest 016: Wish This Set(希望有此成就集)
+- DevQuest 022: This Belonged in a Museum!(这属于博物馆!)
+
+### 如何选择 DQ2、DQ13、DQ22?
+
+1. 如果成就集需要「修复」,如添加或修复保护(作弊、存档、密码等)、修复使成就集变得琐碎的可利用漏洞,或修复导致大量工单的问题,该成就集应分配给 DevQuest 002 - Retro Renovator
+2. 如果成就集缺少使成就集「不完整」的内容(缺少进度、缺少值得注意的支线内容等),该成就集应分配给 DevQuest 013 - complete.me
+3. 如果成就集需要代码注释清理、Rich Presence 改进和逻辑更新,但否则稳定且不缺少值得注意的内容,若所需工作量足以保证全额积分,该成就集应分配给 DevQuest 022
+ - 需要修复的成就集不应分配给 DevQuest 022;用户仅当已完全完成 DevQuest 002 且非修复相关工作符合 DevQuest 022 除尘目标时,才可将此类成就集用于此任务
+
+::: tip 双重积分
+如果成就集需要适合 DQ2 的修复,同时也有适合 DQ13 的值得注意的缺失内容,它可能同时出现在两个列表中。开发者可执行两项操作并获得两项积分。这不视为「重复计算」,因为所涉操作是不同的(修复为一项操作,完成为另一项操作)。
+:::
+
+### 批准添加到 DQ2、DQ13、DQ22
+
+大多数情况下,遵循上述投票政策。
+
+**例外**:
+
+- 如果 QA 团队降级了成就集,可直接添加到适当的 DevQuest 而无需讨论(通常为 DQ2 或 DQ13)。联系 QAM 了解详情,以便你制定修复/完成计划。
+
+## 创建新 DevQuest
+
+### DevQuest 创意
+
+我们会定期对新 DevQuest 进行投票。创意存储在[新 DevQuest 创意汇总帖](https://discord.com/channels/310192285306454017/971157393813696522)。任何团队成员都可以在此发布创意。通常所有创意都会被置顶。如果非团队成员开发者联系团队提出创意,我们也会添加。
+
+### 新 DevQuest 投票
+
+新任务投票与标准 DevQuest 团队投票政策不同。
+
+投票由团队高级成员在新主题中进行。投票主持人将提供所有可能的 DevQuest 列表及简要描述。此后,每位团队成员选择其前 3 名选择。第 1 名得 3 分,第 2 名得 2 分,第 3 名得 1 分。所有成员投票后,得分最高的选择被选中。
+
+### 确定新任务的参数
+
+任务选定后,成员应在团队频道中为新任务开设主题。将进行不同方面的讨论和投票。投票应遵循标准投票政策。参数确定后,成员应起草规则,并对该规则集进行团队投票。
+
+团队还应提供可能的徽章美术创意给美术团队。若有多个可选方案,最终徽章美术应进行投票。
+
+最后,应创建新任务活动并将规则添加到 DevQuest 文档。
+
+## 处理 DevQuest
+
+大多数表格有大量自动更新信息。通常只需输入用户名和游戏 ID 并勾选一些复选框。
+
+### 转盘
+
+- 复制相关的随机选择列表,使用 wheelofnames.com 等网站构建转盘
+- 使用 ShareX 等工具录制转盘旋转(使用 Capture > Screen Recording (Gif))
+- 将结果输入 DevQuest 表格并在 #DevQuest-logs 中记录
+- 与申请者分享结果
+ - 提示:用 `||` 和 `||` 包围结果项以标记为剧透
+ - DQ23: Well of Wishes 产生的文件可能非常大,可能需要 Discord Nitro 才能分享。如能编辑颜色模式和分辨率,可能可以满足 10MB 限制,也可以使用 imgur 或类似网站协助分享
+
+### 成就集申请的一般流程(创建和维护)
+
+如果用户为 DQ2 等维护任务的创建申请成就集,请执行以下操作。
+
+- 更新该任务的跟踪和申请表格
+- 确保在任务的总体跟踪表格和任务的申请表格新行中输入开发者姓名。(注意:只需一个成就集的 DevQuest 将有一个同时充当两者的单一表格)
+- 姓名应大写并与 RA 网站上的拼写完全一致
+- 在 Discord 的 #DevQuest-logs 频道中记录申请条目
+
+::: info 非必需
+请注意,这不是对开发者的要求,但对 Most Wanted 或 Wish This Set 等成就集可能在开发中期变得合格的任务有帮助。
+:::
+
+### 授予积分的一般流程
+
+1. **验证**工作已在正确时间范围内完成
+ - 大多数工作不能追溯积分,必须在开发者申请积分后一周内完成
+ - 若用户此前已通知我们他们为该特定 DevQuest 申请该工作,可给予例外
+ - 这适用于成就集创建 DevQuest 和成就集维护 DevQuest(DQ2、DQ13 和 DQ22)
+2. **基于成就集的 DevQuest(创建和维护)**:
+ - 更新该任务的跟踪和申请表格
+ - 确保在任务的总体跟踪表格和任务的申请表格新行中输入开发者姓名。(注意:只需一个成就集的 DevQuest 将有一个同时充当两者的单一表格)
+ - 姓名应大写并与 RA 网站上的拼写完全一致
+ - 对于成就集创建 DevQuest,将成就集添加到该 DevQuest 的 Sets 中心并在表格上勾选
+3. **成就/工单/排行榜 DevQuest**
+ - 检查用户列上的所有条目并验证
+ - 通常,可接受时标绿,有问题或需要更多信息时标黄/棕,工作无效或不适用于任务时标红
+4. **徽章** 若用户已完成足够工作获得徽章:
+ - 登录 DevQuest 账户
+ - 导航到 DevQuest 的活动页面
+ - 向下滚动到徽章的成就
+ - 点击命令点(撰写时在最右侧)并选择 Award
+ - 输入开发者姓名并提交
+5. **记录**
+ - 在 Discord 的 #DevQuest-logs 频道中记录所有采取的操作
+
+### 哪些任务可以「叠加」?
+
+- DQ2: Retro Renovator 和 DQ13: complete.me - 只要所需操作是不同的,开发者可对同一款游戏完成这两项
+- DQ14: Laudable Leaderboards 可与 DQ2: Retro Renovator 和/或 DQ13: complete.me 叠加。添加排行榜的操作与这些维护任务中的任一项都是不同的操作
+- DQ22: This Belonged in a Museum! 不能与其他修订任务叠加。若 DQ2 或 DQ13 适用,应改用它们
+- DQ4: Veteran Developer、DQ15: Console Conqueror 和 DQ20: Genre and Subgenre Conquerors 与所有任务重叠。假设所有其他 DevQuest 都不知道这些任务
+
+#### 补充指导:可能无法叠加的事项
+- 作为 DQ2 一部分解决的工单不能用于 DQ1: Ticket Massacre。解决工单是 DQ2 修复的必需部分
+- DQ3: Singles in your area 不应与 DQ2: Retro Renovator 或 DQ22: This Belonged in a Museum! 叠加,因为这两项任务都应在其工作中修正单条件成就
+- DQ14: Laudable leaderboards 不应与 DQ22: This Belonged in a Museum! 叠加,因为通过添加排行榜改进旧成就集符合除尘主题
+
+### DevQuest 001: Ticket Massacre
+
+验证工单时:
+
+- 确保工单描述的问题不是由申请积分的开发者之前的编辑引起的
+- 确保工单不是针对该开发者的成就之一
+- 确保工单不是网络问题
+- 确保这些工单未被该开发者用于 DQ2(该任务要求解决所有工单)
+
+当列完成且获得徽章时,在该列的徽章行标记「GIVEN BADGE」并将列移到右侧所有未完成条目之后。
+
+### DevQuest 002: Retro Renovator
+
+- 遵循一般流程
+- 确保所有工单已解决
+- 共三个徽章,每个需要修复 3 个成就集
+- 获得时勾选 Badge Awarded 列
+- **切勿**忘记填写*完成日期*。RA News 用此获取给定徽章级别的正确三款游戏
+
+### DevQuest 003: Singles in Your Area
+
+- 验证旧逻辑已备份
+- 验证新逻辑不仅仅是伪装的单条件成就,并添加了一些额外的稳健性(例如除 delta->mem 检查外的游戏内检查)
+
+### DevQuest 004: Veteran Developer
+
+- 要选择加入,开发者必须提交其作为唯一开发者或完整开发者发布的成就集供审核。已在 jr 中审核过的成就集,或工作分工不清晰的合作成就集不允许
+- 将用户添加到 DQ4 表格并填写前 6 列
+- 将成就集添加到 Vet Dev Review 表格必须由同时是 DevQuest 团队成员的代码审核员完成,但任何代码审核员都可以审核该成就集
+- 若你未进行审核,不要动 Vet Review 或 75% of toolkit 列。代码审核员会处理
+- 前 6 列显示为绿色后无需更新值。右侧的适当列将显示为黄色,以便你可以在 DQ4 活动中授予适当的「成就」,并在授予后按常规勾选
+
+### DevQuest 005: Trigger Happy
+
+- 验证添加的 Trigger 为玩家增加价值而非只是噪音
+- 验证 Measured 标志在测量有价值的内容
+- Measured 标志不应测量游戏中容易向玩家显示的内容(如分数或持有物品数量)
+- 验证开发者未部分更新游戏。Trigger 和 Measured 应添加到该任务触及的成就集中所有适当的成就,即使这会导致超过 50 个成就被更新
+
+### DevQuest 006: The Unwanted
+
+- 确保成就集是为零售版开发的(除非该主机没有零售版)
+- 对于需要少于完整成就集的主机,验证满足条件
+- 主机由转盘决定
+- 100 个成就集或库完成 50% 为移除阈值
+- 主机必须发布 6 个月后才符合资格
+- 若距上次旋转已过 3 个月且开发者尚未在此任务中使用其重旋代币,允许重旋。参见 DevQuests 文档了解开发者如何获得新重旋的规则
+
+### DevQuest 007: Most Wanted
+
+- 验证成就集出现在申请时活跃的 Most Wanted 列表上,或成就集出现在列表上时开发程度低于 50%
+- 当开发者在这些时间报告申请时,此任务受益。若他们申请积分时申请已在表格上,可以给予积分(即使可能超过申请完成后的的一周窗口)
+
+### DevQuest 008: World Traveler
+
+- 同时有总体跟踪和申请表格。别忘了更新两者
+- 添加申请时,有四个选项。1 分和 0.5 分选项,均有未完成(尚未积分)和已完成(授予积分)。用户需要 2 分获得徽章
+- 验证在另一支持主机上是否有英文版。mobygames.com 对此有帮助。若有,则为 0.5 分积分
+- 标准相当低。例如,若是一款有相当多英文文本且无需阅读文本即可理解的日本游戏,仍然算数!「英文版」基于发行地区
+- 若在澳大利亚、加拿大、英国或美国发行,即为英文版
+
+### DevQuest 009: Launch Party!
+
+- 发布后通常最好询问谁想申请积分
+- 6 个月窗口从发布开始
+
+### DevQuest 010: It Takes Two
+
+- 同时有总体跟踪和申请表格。别忘了更新两者
+- 开发者不必都将成就集用于 It Takes Two。若某开发者可将其用于另一任务(罕见,但部分允许合作),他们可以选择另一任务
+- 确保申请积分的开发者完成了其应得份额并有 20 个或更多成就(除非是合集,在此情况下若他们在合集中开发了完整游戏则可以有更少)
+
+### DevQuest 011: The Genesis of RA
+
+- 允许合作
+- 不允许原型和 hack
+
+### DevQuest 012: Hacker's Habit & Hack at it Again
+
+- 此任务中的每个「积分」必须来自不同系列
+ - 这适用于任务中的所有徽章。撰写时有两个徽章。所有四个积分必须来自不同系列
+- 若 hack 很小,但大于 mem hack 或微不足道的 hack,仅授予半分。否则为满分
+
+### DevQuest 013: complete.me
+
+- 同时有总体跟踪和申请表格。别忘了更新两者
+- 共三个徽章,每个需要更新 3 个成就集以完成
+- 获得时勾选 Badge Awarded 列
+- **切勿**忘记填写*完成日期*。RA News 用此获取给定徽章级别的正确三款游戏
+
+### DevQuest 014: Laudable Leaderboard
+
+验证排行榜时:
+
+- 若排行榜是开发者自己的成就集的,必须来自此任务存在之前的成就集发布。这些成就集授予半分(两个成就集放在一行。这种情况越来越罕见
+- 当列完成且获得徽章时,在该列的徽章行标记「AWARDED」并将列移到右侧所有未完成条目之后
+
+### DevQuest 015: Console Conquerer
+
+- 全面检查由高级成员处理(撰写时为 `TheMysticalOne`)
+ - 工程团队成员应进行检查的成员的请求对数据库运行特定查询
+- 应劝阻「速通」此任务
+- 若用户反复为大多数主机提交小型成就集或重复典型成就集(如:Flappy Bird),可酌情拒绝积分
+
+### DevQuest 016: Wish This Set
+
+- 同时有总体跟踪和申请表格。别忘了更新两者
+- 共两个徽章,每个需要创建 1 个成就集以完成
+- 获得时勾选 Badge Awarded 列
+- 验证成就集在申请时间之前出现在 Wish This Set 上,或成就集上次出现在 Wish This Set 时开发程度低于 50%
+- 当开发者在这些时间报告申请时,此任务受益。若他们申请积分时申请已在表格上,可以给予积分(即使可能超过申请完成后的的一周窗口)
+- 撰写时没有完成日期列。考虑在备注列添加完成日期
+
+### DevQuest 017: RA World Cup
+
+- 同时有总体跟踪和申请表格。别忘了更新两者
+- 两项运动必须不同
+- 一项运动必须可识别为「体能」运动(如美式足球、高尔夫、拳击、排球等)
+ - 大多数或所有极限运动也符合
+- 摩托车运动在此任务中视为运动(更真实的赛车和摩托车赛等)
+- 允许合作
+
+### DevQuest 018: Subset Station
+
+- 同时有总体跟踪和申请表格。别忘了更新两者
+- 两个子集必须针对不同游戏
+- 子集必须是不同类型的子集
+- 若子集与基础成就集同时开发,确保此任务完成的其他子集没有相同情况
+
+### DevQuest 019: Wheel of Genres
+
+- 验证其成就集与分配的类型匹配
+- 分配的类型由转盘决定
+- 若距上次旋转已过 3 个月且开发者尚未在此任务中使用其重旋代币,允许重旋。参见 DevQuests 文档了解开发者如何获得新重旋的规则
+
+### DevQuest 020: Genre Conquerer & Subgenre Conqueror
+
+- 全面检查由高级成员处理(撰写时为 `TheMysticalOne`)
+ - 工程团队成员应进行检查的成员的请求对数据库运行特定查询
+- 应劝阻「速通」此任务
+- 若用户反复为大多数主机提交小型成就集,可酌情拒绝积分
+- 用户必须选择加入并提供包含其所有成就集的表格
+- 成就集记录在成就集跟踪表格上(以便我们检查重复或将来进行积分调整等)
+- 任何验证成就集的用户都应进行研究以确保类型匹配
+- 争议通过遵循标准团队投票政策的团队投票解决
+
+### DevQuest 021: Homebrew Heaven
+
+- 同时有总体跟踪和申请表格。别忘了更新两者
+- 自制主机(WASM、Arduboy 等)上的成就集 worth 半分
+- 需要三个成就集(或六个半分成就集,或相当于三个成就集的有效组合)才能获得徽章
+- 小型自制游戏为满分(若为自制主机则为半分)。有趣的零食级游戏是自制文化的一部分。这也是此任务需要三个的原因
+
+### DevQuest 022: This Belonged in a Museum!
+
+- 同时有总体跟踪和申请表格。别忘了更新两者
+- 授予徽章前,验证开发者完成了至少一次完整除尘。总体跟踪表格上有复选框可标记此项
+
+### DevQuest 023: Well of Wishes
+
+- 总体跟踪表格也是申请表格
+- 在跟踪表格上输入游戏 ID,它将根据用户列表验证游戏 ID
+- 此处填写的主要列是开发者姓名、拥有分配列表的用户的显示名、游戏 ID 以及冒号分隔的有效游戏列表
+- 其申请列表分配给开发者的用户由转盘选择
+- Query Data 表格由 MrOwnership 定期更新(约每月一次)
+- 使用 Query Data 的 Display Name 列构建转盘。检查最后更新日期,若与上次构建转盘时不同则构建新转盘。有疑问时,构建新转盘
+- 在 Query Data 中找到旋转到的用户并复制冒号分隔的游戏 ID 列表
+- 将其粘贴到跟踪表格上开发者的角色(如需要请添加开发者)
+- 也解析到 *Eligible Games Lists* 表格的 `Games List Generator`。这将生成带链接的特定游戏列表
+- 在 Eligible Games 表格上,如需要插入新列(*请插入使其正确按字母顺序排列*)。复制生成的列表并粘贴到该用户的列中
+- 通知用户其旋转结果(理想情况下使用 ShareX 等屏幕录制程序录制转盘旋转的 gif)
+- 通知用户在 *Eligible Games Lists* 表格上验证列表,以防用户自上次更新后更新了其列表
+- 当用户申请游戏或申请积分时,在跟踪表格上输入游戏 ID 将根据游戏 ID 列表进行验证
+
+### DevQuest 024: She's Got This!
+
+- 同时有总体跟踪和申请表格。别忘了更新两者
+- 我们接受跨性别女性作为女性角色
+- 需要两个成就集(或四个半分成就集,或相当于两个成就集的有效组合)才能获得徽章
+- 小型 hack/自制游戏为半分,任何合作也是半分
+- 验证 hack 的基础游戏**不**以女性为主要主角
+- 验证两个积分「点」有不同的主要主角
+- 当用户申请游戏或申请积分时,在跟踪表格上输入游戏 ID 将根据游戏 ID 列表进行验证
diff --git a/docs/zh/general/teams/qa-team.md b/docs/zh/general/teams/qa-team.md
new file mode 100644
index 00000000..338fe53c
--- /dev/null
+++ b/docs/zh/general/teams/qa-team.md
@@ -0,0 +1,35 @@
+---
+title: 质量保证团队
+description: 列出 RetroAchievements 质量保证团队的职责和权限。
+---
+
+# 质量保证团队
+
+质量保证(QA)团队负责确保 RetroAchievements 成就集正常运行、展示良好,并根据[行为准则](/zh/guidelines/users/code-of-conduct)中的内容指南进行组织。
+
+[[toc]]
+
+## 谁在 QA 团队?
+
+QA 团队由经验丰富的开发者组成,他们致力于制作高质量成就集以及修复和改进其他现有成就集。
+
+当前团队成员可在[关于我们](/zh/general/about-us#quality-assurance-team)页面找到。
+
+## QA 的职责与权限
+
+QA 的主要职责包括以下任务:
+
+- 进行哈希管理并管理[玩家兼容性测试](/zh/guidelines/content/player-compatibility-testing)
+- 确保 RetroAchievements 库中成就集的稳定性
+ - 修复或降级不稳定或可被利用的成就集
+ - 解决或关闭不活跃开发者的工单
+ - 确保排行榜的维护
+ - 确保 Rich Presence 的维护
+- 将[不合规的写作](/zh/guidelines/content/writing-policy)标记给写作团队处理
+- 确保类型标记准确
+- 处理其他杂项质量问题
+- 维护 RetroAchievements 内容指南
+
+QA 拥有纠正 RetroAchievements 成就集中质量相关问题的固有权限。对于有活跃开发者的内容中的任何质量问题,QA 应首先联系活跃开发者通知问题并确定解决时间框架,但有一项例外——QA 可在与活跃开发者建立双向沟通之前,对存在严重不稳定或可被利用问题的内容进行降级。
+
+QA 可将任何成就集添加到适用的 Meta|QA 中心。
diff --git a/docs/zh/general/tutorials/how-to-configure-obs-studio.md b/docs/zh/general/tutorials/how-to-configure-obs-studio.md
new file mode 100644
index 00000000..fa7dd484
--- /dev/null
+++ b/docs/zh/general/tutorials/how-to-configure-obs-studio.md
@@ -0,0 +1,30 @@
+---
+title: 如何配置 OBS Studio 以显示成就弹窗
+description: 学习如何配置 OBS Studio 以捕获 RetroAchievements 弹窗。
+---
+
+# 如何配置 OBS Studio 以显示成就弹窗
+
+在「窗口捕获」模式下,OBS Studio 无法捕获弹窗。弹窗使用「分层窗口」渲染,OBS Studio 已移除对捕获分层窗口的支持。
+
+如果你想在直播中包含弹窗,有两个选择:切换到「显示器捕获」模式,或为「TransparentOverlayWindow」添加第二个「窗口捕获」。本页将指导你完成第二种方式。
+
+向场景添加第二个「窗口捕获」源。在弹窗对话框中,选择「TransparentOverlayWindow」。
+
+
+
+你可能会注意到窗口是粉色的。
+
+
+
+为第二个「窗口捕获」添加滤镜
+
+
+
+添加「色度键」滤镜,将键颜色类型设置为「自定义颜色」,然后使用选择颜色对话框输入 `#FF01FE` 作为颜色。将相似度降至 1,不透明度降至 90。
+
+
+
+最后,如果仍有少量粉色边框显示,启用缩放滤镜。它们似乎都能消除残留,选择你喜欢的即可。
+
+
diff --git a/docs/zh/general/tutorials/how-to-play-subsets.md b/docs/zh/general/tutorials/how-to-play-subsets.md
new file mode 100644
index 00000000..57d3bddb
--- /dev/null
+++ b/docs/zh/general/tutorials/how-to-play-subsets.md
@@ -0,0 +1,38 @@
+---
+title: 如何游玩子集
+description: 子集的简要说明以及如何为子集打补丁 ROM 的简单教程。
+---
+
+# 如何游玩子集
+
+## 什么是子集?
+
+子集是游戏的补充成就集,包含可能不太适合主(核心)成就集的成就。有[多种类型的子集](/zh/guidelines/content/subsets#types-of-subsets)。子集通常需要额外的补丁,有时需要游戏的其他修订版/版本。
+
+## 入门
+
+当你想游玩的子集需要补丁时,请按以下步骤操作。这些步骤也可用于为 hack 打补丁 ROM。
+
+**步骤 1:** 下载所选子集的补丁。我们以[此子集](https://retroachievements.org/game/7596)为例(本例为 Super Mario Land [Subset - Bonus])。补丁托管在 [RAPatches](https://github.com/RetroAchievements/RAPatches)。
+
+
+
+**步骤 2:** 前往 [ROM Patcher JS](https://www.marcrobledo.com/RomPatcher.js/),一个免费的在线 ROM 打补丁工具。
+
+
+
+**步骤 3:** 在上方字段选择你的 ROM,在下方选择补丁文件。确保你使用的是补丁对应的正确 ROM(参见补丁通常附带的 readme 文件)。检查两个字段之间的 CRC32、MD5 和 SHA-1 哈希也有帮助(本例中,子集为原版未修改的 Super Mario Land 和 Super Mario Land DX hack 都提供补丁。本教程中我们使用未修改游戏的补丁)。Rom Patcher JS 也会告诉你补丁工作所需的 CRC32 哈希。
+
+
+
+
+
+**步骤 4:** 点击/点击「Apply patch」并下载打补丁后的 ROM。
+
+
+
+**步骤 5:** 打开你选择的模拟器,然后加载打补丁后的 ROM,看看是否出现弹窗告诉你正在使用「X Game [Subset - X]」。如果是,恭喜!你已正确打补丁 ROM!否则,请重复上述所有步骤。
+
+
+
+要查看可以尝试的子集完整列表,请查看[此中心](https://retroachievements.org/game/20156)。
diff --git a/docs/zh/general/tutorials/multi-disc-games.md b/docs/zh/general/tutorials/multi-disc-games.md
new file mode 100644
index 00000000..52866c57
--- /dev/null
+++ b/docs/zh/general/tutorials/multi-disc-games.md
@@ -0,0 +1,64 @@
+---
+title: 多碟游戏
+description: 在 RetroArch 中处理多碟 PlayStation 游戏的综合指南,包括换碟说明。
+---
+
+# 多碟游戏
+
+## m3u 文件
+
+在 PlayStation 上换碟需要为你的碟片创建播放列表文件(.m3u)。这可能听起来令人生畏,但实际上非常简单。
+
+**步骤 1:** 将你的 .bin 和 .cue 文件放在所需位置。
+
+**步骤 2:** 打开记事本
+
+**步骤 3:** 输入你的 .cue 文件名称,_完全_按照文件上的命名。完成后,你的文本文档应类似这样:
+
+
+
+完成后,将文本文档保存在与游戏碟片相同的位置,名称随意。
+
+**步骤 4:** 重命名文档,将扩展名从 .txt 改为 .m3u
+
+
+
+**注意:** 如果看不到文本文档标题末尾的 .txt 扩展名,需要更改设置以显示已知文件扩展名。在 Windows 10 中很简单,可以在文件夹的「查看」下找到,有一个显示「文件扩展名」的复选框
+
+
+
+完成了!简单吧?从此以后,当你启动游戏时,使用你刚创建的 .m3u 文件加载游戏。
+
+**注意:** 如果你已经玩过游戏的第一碟并发现存档不见了,可以通过导航到模拟器的「saves」文件夹,找到第一碟的存档并将其重命名为与创建的 .m3u 匹配来恢复。例如:
+
+'Metal Gear Solid (v1.1) (Disc 1).mcr' > 'Metal Gear Solid (v1.1).mcr'
+
+## 在 RAlibretro 中换碟
+
+在 RAlibretro 中换碟时,当游戏提示时,进入文件菜单并按以下步骤操作
+
+
+
+**步骤 1:** 文件 > CD-ROM > 打开托盘
+
+**步骤 2:** 文件 > CD-ROM > 所需碟片
+
+**步骤 3:** 文件 > CD-ROM > 关闭托盘
+
+完成!
+
+## 在 RetroArch 中换碟
+
+你可以在 RetroArch 的「Quick Menu > Disk Control」下找到该选项
+
+
+
+
+
+**步骤 1:** 选择「Disk Cycle Tray Status」(注意:如果开启了「Pause when menu activated」选项,需要先关闭再打开菜单,这样游戏才能知道碟片托盘已打开)
+
+**步骤 2:** 选择「Disk Index」(左右切换碟片)
+
+**步骤 3:** 再次选择「Disk Cycle Tray Status」
+
+完成!
diff --git a/docs/zh/general/tutorials/turbo-button.md b/docs/zh/general/tutorials/turbo-button.md
new file mode 100644
index 00000000..4232d8a9
--- /dev/null
+++ b/docs/zh/general/tutorials/turbo-button.md
@@ -0,0 +1,177 @@
+---
+title: 如何在 RetroArch 中设置连发键
+description: 学习如何在 RetroArch 中设置和配置连发键,以便在游戏中快速输入按键。
+---
+
+# 如何设置连发键
+
+连发键,也称为连发、自动开火或快速连按,允许你通过按住按键快速输入。该功能常见于游戏主机的第三方手柄,也常在模拟器中实现。
+
+::: info
+
+RetroAchievements [允许使用连发键](/zh/guidelines/users/global-leaderboard-and-achievement-hunting-rules#_6-turbo-is-allowed)获得成就,包括硬核模式。
+
+RetroAchievements 为经典游戏添加 PlayStation 和 Xbox 风格的成就。[在 RetroAchievements.org 注册](https://retroachievements.org)即可开始。
+
+:::
+
+本教程将说明如何在 RetroArch 中设置连发键,包括全局和游戏特定配置。也会说明其他支持 RetroAchievements 的模拟器。
+
+## RetroArch
+
+### 全局配置
+
+RetroArch 有影响所有模拟器核心的全局连发键设置。默认未分配,可通过以下菜单选项找到:
+
+1. Settings(设置)
+2. Input(输入)
+3. RetroPad Binds(RetroPad 绑定)
+4. Port 1 Controls(端口 1 控制)
+
+连发在列表底部。选择它,然后按住按键直到超时结束以完成分配。
+
+
+
+游戏运行时,可在此处找到更多选项:
+
+1. Settings(设置)
+2. Input(输入)
+3. Turbo Fire(连发)
+
+或在此处:
+
+1. Main Menu(主菜单)
+2. Quick Menu(快速菜单,默认可按 F1 键在游戏运行时直接访问)
+3. Controls(控制)
+4. Turbo Fire(连发)
+
+可用选项:
+
+- **Turbo Period**(连发周期):设置连发输入的频率。
+- **Turbo Duty Cycle**(连发占空比):设置每次连发输入的持续时间。
+- **Turbo Mode**(连发模式):
+ - Classic(经典):允许你同时按住连发键和任意其他按键,使该按键连发。
+ - Single Button (Toggle)(单键切换):允许连发键切换一个分配的按键,按住该按键时连发。
+ - Single Button (Hold)(单键按住):允许按住连发键本身使一个分配的按键连发。
+- **Turbo Default Button**(连发默认按键):分配用于 Single Button (Toggle) 和 Single Button (Hold) 模式的单键。
+- **Allow Turbo D-Pad Directions**(允许连发方向键):不言自明。
+
+你可以通过选择以下选项确保 RetroArch 的配置被保存:
+
+1. Main Menu(主菜单)
+2. Configuration File(配置文件)
+3. Save Current Configuration(保存当前配置)
+
+要在 RetroArch 退出时自动保存配置,在以下菜单下启用该选项:
+
+1. Settings(设置)
+2. Configuration(配置)
+3. Save Configuration on Quit(退出时保存配置)
+
+在较新版本的 RetroArch 中,这可能已默认启用。
+
+### 游戏特定配置
+
+如果只想在玩某些游戏时使用连发键,可以使用 RetroArch 的覆盖功能。覆盖允许你为每个游戏、每个核心或每个内容目录(例如 NES 游戏文件夹)应用不同版本的全局配置。游戏运行时,可在以下菜单下找到这些选项:
+
+1. Main Menu(主菜单)
+2. Quick Menu(快速菜单)
+3. Overrides(覆盖)
+4. Save Game Overrides(保存游戏覆盖)、Save Content Directory Overrides(保存内容目录覆盖)或 Save Core Overrides(保存核心覆盖)
+
+这在管理不同系统之间的手柄冲突时很有帮助。例如,如果你在玩 NES 游戏时将连发键分配给手柄的 R 键,那么在玩 SNES 游戏时可能会与实际 R 键冲突。如果 NES 和 SNES 游戏分别放在不同文件夹中,可以保存内容目录覆盖,以便为 NES 和 SNES 加载不同的连发键选项。
+
+### 核心特定配置
+
+除了 RetroArch 的全局连发键外,某些核心有自己的选项来分配内置连发键。游戏运行时,可在以下菜单下访问这些选项:
+
+1. Main Menu(主菜单)
+2. Quick Menu(快速菜单)
+3. Controls(控制)
+4. Port 1 Controls(端口 1 控制)
+
+以下列出部分适用核心及其默认 RetroPad 按键:
+
+#### Game Boy - Gambatte
+
+- Turbo A(默认:Y)
+- Turbo B(默认:X)
+
+#### Game Boy Advance - mGBA
+
+- Turbo A(默认:Y)
+- Turbo B(默认:X)
+- Turbo L(默认:左扳机)
+- Turbo R(默认:右扳机)
+
+#### NES - FCEUmm
+
+- Turbo A(默认:Y)
+- Turbo B(默认:X)
+- Turbo A+B(默认:右摇杆)
+
+在 Quick Menu -> Core Options -> Input 下,有选项可为玩家 1 和/或玩家 2 启用这些连发键。也可设置 Turbo Delay。
+
+#### NES - Mesen
+
+- Turbo A(默认:Y)
+- Turbo B(默认:X)
+
+在 Quick Menu -> Core Options -> Input 下,有选项可更改连发输入速度。
+
+#### PC Engine - Beetle SuperGrafx
+
+- III(默认:X)
+- IV(默认:Y)
+
+在 Quick Menu -> Core Options -> Input 下,Turbo Hotkey Mode 选项可启用 III 和 IV 按键的连发功能。可设置为 Toggle(按一次 III 或 IV 使 II(默认:A)或 I(默认:B)按键在按住时连发)或 Dedicated(按住 III 或 IV 直接使 II 或 I 连发)。还有 Alternate Turbo Hotkey,当 Toggle 设置时,允许 L3(左摇杆)和 R3(右摇杆)输入切换 II 和 I 的连发功能。Turbo Delay 选项可更改连发输入的频率。
+
+## BizHawk
+
+BizHawk 使用 autofire(自动开火)一词表示此功能——turbo 在 BizHawk 中指的是提高模拟速度。游戏运行时,可在此菜单下访问 autofire 配置:
+
+1. Config(配置)
+2. Controllers(手柄)
+3. Autofire Controls 选项卡(自动开火控制)
+
+Autofire 可分配给当前核心的任意按键。
+
+
+
+或者,可在此菜单下分配切换式 autofire 按键:
+
+1. Config(配置)
+2. Hotkeys(热键)
+3. General 选项卡(常规)
+
+
+
+使用方法:按住 autofire 按键的同时按任意其他按键,使该按键快速输入。再次按住 autofire 按键并按按键可禁用。
+
+在 Config -> Autofire 下可找到更改按键按下频率和持续时间的其他选项。可通过选择 Config 菜单底部的选项保存或加载不同配置。
+
+## DuckStation 和 PCSX2
+
+DuckStation 和 PCSX2 中的宏功能可用于此用途。两个模拟器中的用法相同,可在此处访问:
+
+1. Settings(设置)
+2. Controllers(手柄)
+3. Controller Port 1(手柄端口 1)
+4. Macros 选项卡(宏)
+
+
+
+选择要快速输入的按键,然后分配触发按键。复选框允许你将其用作切换(如需要)。将页面底部的频率设置为允许宏用作连发键。PCSX2 还有几个与按键压力和死区相关的额外选项。
+
+## PPSSPP
+
+PPSSPP 使用 rapid fire(快速连按)一词表示此功能。默认分配给左 Shift,但可在此菜单下更改:
+
+1. Settings(设置)
+2. Controls(控制)
+3. Control Mapping(控制映射)
+4. 向下滚动到 Control Modifiers 部分(控制修饰键)
+
+
+
+按住此按键的同时按住任意其他按键,使该按键快速输入。在 Settings -> Controls 下,可向下滚动到 Keyboard Control Settings 部分,找到更改快速连按间隔的选项。
diff --git a/docs/zh/general/tutorials/working-with-dlc-for-the-psp.md b/docs/zh/general/tutorials/working-with-dlc-for-the-psp.md
new file mode 100644
index 00000000..bbfb4a44
--- /dev/null
+++ b/docs/zh/general/tutorials/working-with-dlc-for-the-psp.md
@@ -0,0 +1,32 @@
+---
+title: 处理 PlayStation Portable 的 DLC
+description: 学习如何在 PPSSPP 中安装和管理 PlayStation Portable 游戏的 DLC,包括标准、基于存档的 DLC 和更新。
+---
+
+# 处理 PlayStation Portable 的 DLC
+
+各种 PlayStation Portable 游戏支持 DLC 内容。根据游戏不同,可能以不同格式提供,安装流程也不同。
+
+## 标准
+
+传统(通常为付费)DLC 由 PlayStation Store 安装到游戏目录中。大多数情况下,这包括一个或多个 edat 文件和一个 param.pbp。有时还需要更多文件或目录。如果你已有此格式的解密 DLC,请按原格式放置在 saves/PSP/GAME// 中。游戏 ID 必须与你游玩的游戏区域匹配。例如,Dissidia 012 美版使用 ULUS10566,欧版使用 ULES01505。对于从真机转储数据的用户,需要使用自制固件和 npdecrypter 插件来解密 DLC 为 PPSSPP 可用的格式。更多信息请参阅插件的 readme。
+
+## 存档文件
+
+许多游戏以游戏的额外存档文件形式分发(通常为免费)DLC。这些有各自特定命名的目录,放置在 saves/PSP/SAVEDATA/ 中你的游戏存档旁边。在少数罕见情况下,使用此方法的游戏可能有多组无法同时安装的 DLC。对于从真机转储数据的用户,只需从记忆棒复制到相同位置即可。简单明了。尽管此类 DLC 是免费的,我们认为我们没有合法权利自行分发,所以请不要询问。
+
+## 更新
+
+这可能有点复杂。目前应用更新的唯一方式往往是在真机上解密后,将更新打补丁到 iso 本身。这很麻烦且不理想,但目前没有其他办法。你需要使用 UMDGen 等工具打开 iso,在 usrdir 中插入/替换更新的文件。具体的每款游戏操作说明超出本指南范围。值得注意的是,Little Big Planet 和 Bleach: Heat the Soul 7 的 DLC 需要此步骤才能使用,其他游戏可能也需要。希望未来可以跳过此步骤。
+
+更多信息:https://github.com/hrydgard/ppsspp/issues/12344
+
+## Killzone Liberation
+
+此游戏的最终章节仅作为 DLC 提供。此游戏有非常奇怪的 DLC 配置,需要通过 PSP 浏览器下载一个免费的「游戏」,运行它以解包 DLC 文件,然后在玩真正的游戏时保留第二个「游戏」。不幸的是,它使用了多种此游戏独有的内核调用,目前尚未被模拟。即使 DLC 处于解包后的状态,也会导致游戏在存在时冻结。目前无法模拟游戏的最终章节。
+
+更多信息:https://github.com/hrydgard/ppsspp/issues/12343
+
+#### 注意
+
+虽然此处提供了 github 问题链接,但除非你有关于所涉问题的建设性信息,否则请不要在问题上评论。简单的支持性点赞表示对问题的兴趣即可。
diff --git a/docs/zh/general/useful-links.md b/docs/zh/general/useful-links.md
new file mode 100644
index 00000000..ca83d5c2
--- /dev/null
+++ b/docs/zh/general/useful-links.md
@@ -0,0 +1,50 @@
+---
+title: 实用链接
+description: 探索游戏开发、ROM 修改和成就创作相关的宝贵资源。本页包含游戏攻略、调试工具、校验和工具等链接,助你在游戏与开发的各个方面获得帮助。
+---
+
+# 实用链接
+
+## https://gamefaqs.gamespot.com/
+
+查找游戏攻略的好去处,几乎涵盖你想了解的所有游戏内容,可查找作弊码、开发工具,以及针对作弊码的正确防护。
+
+## https://www.vgmaps.com/
+
+数千张你最喜爱的电子游戏地图/截图。
+
+## https://tcrf.net/
+
+致力于发掘和研究电子游戏中未使用及删减内容的网站。从调试菜单到未使用的音乐、图形、敌人或关卡,许多游戏都有开发者以外的人从未见过的内容——甚至本打算面向所有人,但因时间/预算限制而被删减。
+
+## [累积概率计算器](https://www.danielsoper.com/statcalc/calculator.aspx?id=71)
+
+在处理带有 RNG 因素的成就时,你通常需要知道玩家在给定尝试次数下的成功概率。(参见 [不受欢迎的概念:低概率成就](/zh/guidelines/developers/code-of-conduct#unwelcome-concepts))。用它计算 P(X>=1),假设玩家在多次尝试中只需成功一次,以估算运气较差的玩家可能需要多少次尝试。
+
+## https://www.zapstudio.net/framecalc/
+
+用于在给定时间与帧数之间相互换算的简单工具。
+
+## https://www.romhacking.net
+
+最大的 ROM 修改补丁仓库。
+
+## http://datacrystal.romhacking.net/wiki/Hashes
+
+解释哈希是什么。如果你不知道,建议阅读此文。
+
+## https://emn178.github.io/online-tools/crc32_checksum.html
+
+拖放式校验和检查工具。你也可以从模拟器的 RetroAchievements 菜单中获取已加载 ROM 的校验和。
+
+## http://www.marcrobledo.com/RomPatcher.js
+
+在线 ROM 打补丁工具。
+
+## http://jsonviewer.stack.hu
+
+查看原始成就的绝佳工具
+
+## http://gamehacking.org
+
+提供许多 Pro Action、Game Genie 和 Game Shark 代码,可在该网站上转换为 RAW 地址。
diff --git a/docs/zh/general/ways-to-contribute.md b/docs/zh/general/ways-to-contribute.md
new file mode 100644
index 00000000..d6db359a
--- /dev/null
+++ b/docs/zh/general/ways-to-contribute.md
@@ -0,0 +1,82 @@
+---
+title: 非开发者如何贡献
+description: 如果你不想成为成就开发者,但仍想为 RetroAchievements 做出贡献,有多种方式可以做到。
+---
+
+# 非开发者如何贡献
+
+如果你不想成为成就开发者,但仍想为 RetroAchievements 做出贡献,有多种方式可以做到:
+
+[[toc]]
+
+## 报告损坏的成就
+
+如果成就在错误的时间触发或根本没有触发,请报告。我们知道许多用户喜欢免费积分,但请即使成就在错误的时间触发也要报告!
+
+另一个需要报告的重要情况是成就通过使用某种游戏作弊(例如选关密码)或加载存档来触发。
+
+报告损坏成就的方式有两种:直接在模拟器中或通过网站。两种情况下,都要添加游戏状态的详细信息、何时触发/未触发、游戏模式、发生/未发生时你在哪里、是否最近重置过游戏,以及你认为可能与成就相关的任何其他信息。这对于我们的系统是必要的,以便开发者知道问题在哪里。
+
+### 通过网站报告
+
+在每个成就页面上,你会看到「Report an issue for this achievement」(报告此成就问题)的链接,如下图所示:
+
+
+
+### 通过模拟器报告
+
+进入 RetroAchievements -> Report Broken Achievements(报告损坏的成就),此功能仅在 RALibretro 等第一方模拟器上可用(RetroArch 上不可用)。
+
+参见此示例:
+
+.
+
+## 建议成就创意
+
+如果你非常了解某款游戏,可能可以想出一些很酷的挑战创意。在游戏相关的论坛主题中发布你的想法。
+
+我们有一份[关于如何思考和设计优质成就的指南](/zh/developer-docs/achievement-design),不是技术方面而是概念方面。即使是非开发者也可以从该信息中获得一些灵感。
+
+## 提供反馈
+
+在论坛中对你喜欢或不喜欢的成就集提供反馈。要具体并留下细节。
+
+## 创建徽章和游戏图标
+
+如果你喜欢玩图形,可以为成就徽章或游戏图标创作一些美术。使用模拟器本身的截图功能可以帮助完成此操作,然后你可以编辑以制作出很酷的东西。
+
+你可以在[徽章和图标创作页面](/zh/guidelines/content/badge-and-icon-guidelines)查看更多信息。
+
+## 帮助文档
+
+如果你有 GitHub 账户并了解 Markdown 基础知识,可以帮助文档工作。修复拼写错误、语法或不准确的信息。
+
+查看此页了解详情:[文档贡献](/zh/general/contributing-to-the-docs)
+
+## 参与活动
+
+例如每周成就、每月排行榜或[我们 Discord 服务器](https://discord.gg/dq2E4hE)上发生的其他活动。
+
+## 报告标题和描述错误
+
+待定
+
+## 试玩测试
+
+待定
+
+## 兼容性测试
+
+待定
+
+## 为 RANews 撰稿
+
+待定 - 目前请参阅 [RANews 仓库](https://github.com/RetroAchievements/RANews)。
+
+## 创建 RAGuides
+
+待定 - 目前请参阅 [RAGuides 仓库](https://github.com/RetroAchievements/guides)。
+
+## 帮助 RAPatches
+
+待定 - 目前请参阅 [RAPatches 仓库](https://github.com/RetroAchievements/RAPatches)。
diff --git a/docs/zh/guidelines/content/achievement-set-requirements.md b/docs/zh/guidelines/content/achievement-set-requirements.md
new file mode 100644
index 00000000..1c102f57
--- /dev/null
+++ b/docs/zh/guidelines/content/achievement-set-requirements.md
@@ -0,0 +1,51 @@
+---
+title: 成就集要求
+description: 本指南概述了创建和提交成就集的基本要求,包括游戏通关覆盖、防止轻松解锁的保护以及正确的游戏信息。
+---
+
+# 成就集要求
+
+[[toc]]
+
+## 每个成就集必须包含
+
+- **填写完整的游戏页面信息**
+ - 不要仅链接发行商、开发商和类型中心:在开发者面板或管理应用中填写字段,以便此信息显示在所有展示它的列表中。
+- **上传所有游戏图片**
+ - 自制游戏和改版游戏的封面在游戏或改版创作者未提供时可豁免。
+- **每个成就的游戏徽章**
+ - 它们不必彼此不同,只是不要留空。
+- **覆盖至通关的内容**,只要游戏可以通关。无论是击败最终 Boss、完成第一轮循环还是完成所有谜题,未至少覆盖通关游戏的成就集被视为未完成,因此可能被降级。
+ - 以高分为主的无限游戏(如吃豆人和水晶城堡)可豁免此规则。
+ - 关于合集游戏,如 [Intellivision Classic Games (PlayStation)](https://retroachievements.org/game/13908),不要求合集中的每个游戏都有成就。但是,有成就的游戏必须遵守上述政策。
+- **动态 Rich Presence**
+ - 动态 Rich Presence 的输出会根据游戏中发生的情况而变化。
+ - 具有非动态 Rich Presence 的旧版集会被添加到 [No Dynamic RP](https://retroachievements.org/game/3083) 中心。请在可能时更新。
+- **在适用的成就上标记进度和通关条件**。完整指南请参阅 [进度与通关条件标注](/zh/guidelines/content/progression-and-win-condition-guidelines)
+- **保护**玩家无需努力即可获得成就的情况,例如:
+ - 演示模式;
+ - 游戏内作弊码;
+ - 电池存档;
+ - 密码。
+ - **另见**:[成就模板](/zh/developer-docs/achievement-templates)、[真实示例](/zh/developer-docs/real-examples) 和 [实现存档保护](/zh/developer-docs/save-and-password-protection) 了解一些众所周知的保护技术。
+- **支持在*每个*存档槽位解锁成就**
+ - 玩家不得被要求使用特定存档槽位进行游戏。
+ - 这通常可以通过 alt 组或索引指针来实现。
+ - 仅支持单个存档的旧版集会被添加到 [Single Save Support](https://retroachievements.org/game/28449) 中心,因此原因在集上创建的工单应视为有效,且不得在不解决问题的情况下关闭。
+- **支持在链接哈希中包含的每种语言上解锁成就**
+ - 更改游戏语言不得阻止获得成就。
+ - 虽然并非每个哈希都必须链接到集,但链接到集的哈希必须支持这些哈希中包含的每种语言。
+ - 因此原因在集上创建的工单应视为有效,且不得在不解决此问题的情况下关闭。
+
+::: info 注意
+可能存在无法支持所有链接语言和存档槽位的合法原因,例如当逻辑长度超过字符限制时。如果您认为这适用于您,请联系开发者合规团队请求豁免。
+:::
+
+## 推荐但非必需
+
+- 分数和时间挑战的排行榜。
+- 为适用的成就添加易错过类型,尤其是 RPG 和长游戏。
+ - 避免过度使用。如果成就集的大部分被标记为易错过,该标记对该集就失去了意义。
+ - 在添加易错过标注之前,在成就标题末尾使用 `[m]` 是标记易错过成就的标准格式。**请勿**以这种方式标记易错过成就。请使用成就类型系统。
+- 成就指南。指南可以创建并发布在[此处](https://github.com/RetroAchievements/guides/wiki)。
+- 对于有文本触发成就的游戏(尤其是 RPG),建议查找事件标志而不是挂钩文本或文本 ID。文本呈现因地区版本而异,使多地区支持变得困难。
diff --git a/docs/zh/guidelines/content/achievement-set-revisions.md b/docs/zh/guidelines/content/achievement-set-revisions.md
new file mode 100644
index 00000000..4f26fec3
--- /dev/null
+++ b/docs/zh/guidelines/content/achievement-set-revisions.md
@@ -0,0 +1,243 @@
+---
+title: 成就集修订
+description: 修订 RetroAchievements 成就集的指南,包括标准修订、重新计分和图标更改。了解对现有成就进行更新的步骤、审批流程和投票要求。
+---
+
+# 成就集修订
+
+[[toc]]
+
+## 修订类型
+
+对已有成就的集进行的任何更改均视为修订。修订通常在有人在游戏论坛主题和 Discord 的 `#revision-voting` 频道提出计划并经成就创作者社区批准后进行。
+
+修订有三种类型:
+
+- [标准修订](#标准修订) - 影响其他开发者工作的成就集更改。包括添加成就、移除成就、重做现有成就,以及为成就添加进度和通关条件类型。
+- [重新计分](#重新计分) - 成就分值更改。
+- [图标 Gauntlet](#icon-gauntlet) - 精通集时授予的游戏页面图标更改,以及各个成就徽章的更改。
+
+每种类型都有各自的 Discord 角色:
+
+| 类型 | 角色 | 获取角色 | 谁可获得角色 |
+| ------------- | ------------------ | -------------------------------------------------------------------------------------------------------------- | ------------------------- |
+| 标准修订 | `@revision-voting` | 在此处用 🗳️ 反应 [here](https://discord.com/channels/310192285306454017/400088351224627201/770045526833496084) | 成就创作者 |
+| 重新计分 | `@rescore` | 在此处用 💯 反应 [here](https://discord.com/channels/310192285306454017/400088351224627201/770045526833496084) | 成就创作者 |
+| 图标 Gauntlet | `@icon-gauntlet` | 在此处用 🎨 反应 [here](https://discord.com/channels/310192285306454017/340033893522604062/758854476139593748) | 任何已验证的 Discord 用户 |
+
+::: info 新开发者
+新开发者在从初级开发者计划毕业时将获得全部三个角色。
+:::
+
+## 标准修订
+
+任何想要修订集的开发者需要:
+
+1. **准备计划**(当您不是原作者时)
+
+ - 添加
+ - 降级
+ - 成就重做
+
+2. **联系**集的每位活跃作者。他们可能有宝贵的见解或资源可帮助您的修订。**等待**回复(72 小时后可无回复继续)。
+
+ - 部分作者选择不要求联系。请查看[公开选择退出表](https://docs.google.com/spreadsheets/d/e/2PACX-1vRRSNI9R-ezC0ma7x2BoU2JiZgMu26iht-sIPc56otfJa2sd_8QQCO-V4JXbfsfSUbrl54wib68-Pjp/pubhtml?gid=1195161231&single=true)。若作者列为此修订类型选择退出,则无需联系。要更新您自己的选择退出信息,请使用[此表单](https://forms.gle/mgzv7RHbJEPCrxc77)。
+
+3. **在游戏的论坛主题中发布计划**。**注意**:尽可能具体。社区应充分了解您的意图。
+
+::: danger 拆分并行发行集
+其基础集当前已合并的并行发行游戏(示例:_Pokémon Red Version | Pokemon Blue Version_)可拆分为独立集,但这样做有超出标准修订的额外要求。请参阅 [并行发行游戏](/zh/guidelines/content/games-with-parallel-releases) 文档中的完整规则。
+:::
+
+4. **发起讨论**,在 `#revision-discussion-forum` 中创建新帖子。
+
+ - 帖子标题应包含游戏名称和平台。例如:"Revision proposal - Super Mario Bros. (NES)"
+ - 您的初始评论必须复制您在游戏论坛中发布的计划,并链接到游戏页面和包含计划的论坛帖子。
+ - 然后,用 "Revision discussion for _Game Name_"(或等效内容)的消息 ping `@revision-voting` 作为后续评论。
+ - 此评论也可稍后编辑以在创建后链接到投票。
+ - 讨论应至少进行 2 天(48 小时),之后若对计划满意,修订流程可进入投票阶段。
+ - 务必**回应关切**:回复社区的任何评论、关切或反对意见(在 Discord 和网站论坛上),并根据需要调整计划。
+ - 计划必须在投票前定稿。投票开始后不允许编辑。
+
+::: warning 投票前定稿
+投票创建后对修订计划的任何更改将导致修订取消。在这种情况下,修订流程需要从头重新开始。屡次违反此规则可能导致纪律处分。
+:::
+
+::: warning 讨论礼仪
+讨论主题应专注于建设性批评和计划反馈。任何不当行为或对修订计划提出者的个人攻击将导致用户被移出主题。
+:::
+
+5. **开始投票阶段**,在所需讨论期结束后在 Discord 的 `#revision-voting` 频道创建投票。
+
+- 创建投票者必须 ping `@revision-voting` 和集上的任何活跃作者(除非他们放弃 ping)。
+- 投票模板可在置顶中找到。
+ - 提示:在 Discord 中,如果粘贴复制的模板,在提交投票命令之前,将光标放在每个 ping 的末尾并选择用户或角色,以确保其处于活动状态并会发送通知。
+- 投票时长应设为 3 天(72 小时)。
+- 投票不得匿名。
+- 投票应总结提案、链接到游戏页面,并链接到讨论主题中的计划。
+- 投票创建后对计划的编辑将使投票无效,必须进行新的讨论。
+- 投票创建后,在讨论主题中作为新评论并在链接到论坛帖子的评论中编辑链接到投票。
+- 投票结束后,若达到 60% 多数,修订通过并可继续。
+
+::: info 匿名修订提案
+如需要,开发者可选择在投票过程中保持匿名提出修订计划。只需联系版主或管理员,请求代表您提交计划。
+:::
+
+::: tip 有新想法?
+若计划通过后有新想法,请为新想法启动新的附录修订计划。初始修订仍将获批,任何通过的修订附录将补充或调整先前通过的修订。
+:::
+
+### 进行修订时
+
+- 进行修订应始终以使其成为最终修订为目标,在修订完成后集完全实现。
+
+- 避免在发布集后“以防万一”遗漏任何内容而提出修订申请。发布前彻底研究游戏。查阅在线资源并考虑联系可能了解隐藏内容的知情玩家。
+
+- 为在精通排行榜上获得更高排名而进行修订是被禁止的。
+
+- 不要复制现有成就并降级现有等效成就。这样做是重新授权,需要[开发者合规](https://retroachievements.org/message/create?to=DevCompliance)的许可。若当前成就存在问题,请修复现有成就。
+
+- 解决将保留在集中的成就的任何未解决工单。被降级成就的工单可仅以降级为由关闭。若修订仅为降级一个或多个成就,开发者无需处理集中其他成就的工单。
+
+- 若您添加与集中已有概念**类似**的概念,在可能的情况下重用旧概念并更新,而非创建新的。这可以防止玩家不必要地重新获得成就,限制对集的无谓更改,并保留高质量的开发者工作和概念。
+
+- 由于修订调整的内容量各不相同,它们与成就集预留的处理方式相同。若自修订计划获批以来已过三个月,您需要提供详细说明当前进度的更新。否则将使修订无效,计划需要重新投票获批。
+
+### 无需审批投票
+
+- 对您为原作者且无其他开发者修订过的成就或成就集进行更改;在论坛中发布您的更改计划仍是好做法。
+- 添加成就,且所有修订作者已是集上的作者,且集上所有其他活跃作者同意。
+- 解决由[开发者列表](https://retroachievements.org/developerstats.php)中列为**不活跃**的开发者制作的成就的工单或错误。
+ - 更改描述以澄清或纠正以匹配已存在的逻辑不需要修订投票
+ - 以任何方式改变成就目标始终需要修订投票
+ 在这些情况下,您只能修复成就以匹配描述;不要在不经过上述修订流程的情况下改变成就意图。若您发现**活跃开发者**制作的成就存在问题,请创建工单或联系他们协助解决。
+- 为**不活跃**开发者的成就添加电池存档、作弊码或密码保护。(请务必正确测试您的更改)。若他们**活跃**,请创建工单或联系他们协助应用改进。
+- 修复成就名称或描述中的拼写错误、语法错误和其他笔误。在某些情况下,这些可能是故意的,因此请在论坛中注明。
+- 更新游戏页面信息和标题/截图/封面图片。
+- 若集缺少标准的“通关游戏”成就且集上无活跃开发者,则添加标准的“通关游戏”成就。标准的“通关游戏”成就是在正常/默认难度下完成游戏且无额外要求的成就。添加通关游戏成就的计划仍须在论坛发布。若不确定如何继续,请联系 [DevCompliance](https://retroachievements.org/createmessage.php?t=DevCompliance)
+- 当成就的标题或描述中以其他方式标明为易错过时,将成就类型设为易错过。
+ - 对全部不活跃作者的集添加易错过标记的所有其他情况需要修订投票。
+ - 修订开发者应在论坛中注明更改。
+- 为不活跃开发者的集添加进度和通关条件类型(若集缺少进度和通关条件)
+ - 在论坛中发帖说明您的更改详情
+ - 任何更改成就“类型”的开发者对该成就的标注负责,并仅就类型修订而言被视为作者。
+
+### 不允许
+
+- 未经许可为活跃作者的成就添加易错过类型。若实现用户偏好隐藏易错过指示器,将重新审议此规则。
+
+### 合并集
+
+若修订包括将两个集合并(如 Pokemon Red/Blue 合并),进行修订的开发者需要跟踪降级集中的成就及其在合并目标集中的等效成就。若修订投票通过,此信息必须发送给管理员,以便将合并集的成就手动授予降级集的获得者。
+
+### 尊重修订计划
+
+若您是当前正在修订的集的原始集开发者之一或**唯一**原始集开发者,您必须在对集进行更改之前与进行修订的开发者沟通。这是为了防止修订的潜在额外工作、重叠或冗余更改等。
+
+---
+
+## 重新计分
+
+直到 2019 年 6 月,RetroAchievements 集有 400 分的上限,对单个成就无限制。取消集上限是为了减少对总分数的关注,更多地关注成就本身。此举也是为了消除 400 分的集是“完整”集的误解,但也是促进整体公平的持续社区努力。计分流程信息可在[此处](/zh/developer-docs/achievement-scoring)找到。
+
+任何想要重新计分集的人需要:
+
+1. **准备重新计分计划**,显示原始分数和提议分数。用户 [orangepeelbeef](https://retroachievements.org/user/orangepeelbeef) 专门为此制作了工具,您可在[此处](https://opb.servehttp.com/rascorer/)找到。输入提议分数后,您可以复制底部的“Rescoring Summary”并粘贴到论坛的重新计分提案中。
+
+2. **联系**集的每位活跃作者。他们可能对所选分数有宝贵见解。您无需等待回复。
+
+- 部分作者选择不要求联系。请查看[公开选择退出表](https://docs.google.com/spreadsheets/d/e/2PACX-1vRRSNI9R-ezC0ma7x2BoU2JiZgMu26iht-sIPc56otfJa2sd_8QQCO-V4JXbfsfSUbrl54wib68-Pjp/pubhtml?gid=1195161231&single=true)。若作者列为此修订类型选择退出,则无需联系。要更新您自己的选择退出信息,请使用[此表单](https://forms.gle/mgzv7RHbJEPCrxc77)。
+
+3. **在游戏的论坛主题中发布计划**。
+
+4. **发起投票**,在 Discord 的 `#revision-voting` 频道发布主题链接。创建投票者必须 ping `@rescore-voting`。Ping 未回复联系的活跃作者。Ping 在联系后请求在投票开始时 ping 的活跃作者。
+
+5. **回应关切**:准备与其他用户进行一些协商,尝试找到良好的折中方案。
+
+6. 投票将活跃 24 小时。若重新计分通过,您可以进行必要的更改。
+
+### 无需审批投票
+
+以下成就集可在不经过投票流程的情况下重新计分:
+
+- 若您是正在重新计分的成就集的唯一署名作者,且无其他开发者重新计分过。
+
+- 若与您合作成就集的合著者同意您进行重新计分,且无其他开发者重新计分过。
+
+---
+
+## Icon Gauntlet
+
+Icon Gauntlet 用于对新游戏图标或集的新徽章进行投票。通过投票检查社区更喜欢哪个版本。
+
+任何想要更改游戏图标或集徽章的用户需要:
+
+1. **联系**集的每位活跃作者或认领者。**等待**回复(72 小时后可无回复继续)。
+
+- 他们可能对图标或徽章有设计考虑,以最好地配合集。
+- 这样做也可能避免需要 gauntlet 投票,若您的图标或徽章为他们所偏好。
+- 理想情况下,双方应共同努力达成满意的提案。
+- 部分作者选择不要求联系。请查看[公开选择退出表](https://docs.google.com/spreadsheets/d/e/2PACX-1vRRSNI9R-ezC0ma7x2BoU2JiZgMu26iht-sIPc56otfJa2sd_8QQCO-V4JXbfsfSUbrl54wib68-Pjp/pubhtml?gid=1195161231&single=true)。若作者列为此修订类型选择退出,则无需联系。要更新您自己的选择退出信息,请使用[此表单](https://forms.gle/mgzv7RHbJEPCrxc77)。
+
+2. **创建**游戏图标或新徽章。更多信息请参阅[徽章与图标创建](/zh/guidelines/content/badge-and-icon-guidelines)。
+
+3. **上传**作品到图片分享网站。
+
+4. **考虑**在启动修订投票前在 [`#gauntlet-discussion`](https://discord.com/channels/310192285306454017/650851861590573077) 分享您的徽章或图标样本。这将有助于完善任何问题并避免对 gauntlet 的多次更新。
+
+5. **发起投票**,在 Discord 的 [`#icon-gauntlet`](https://discord.com/channels/310192285306454017/527943666812321795) 频道发布旧图标/徽章及其竞争者的链接。
+
+- 创建投票者必须 ping `@icon-gauntlet`。Ping 未回复联系的活跃作者。Ping 在联系后请求在投票开始时 ping 的活跃作者。
+- 使用模板创建投票:
+
+ Discord 模板
+ 📊 1 vs. 1 提案:
+ `?quickpoll (game/hub page link) | Current (current icon/badges link) | Contender (contender icon/badges link)`
+
+ 📊 1 vs. 2 或 3 提案:
+ `?quickpoll (game/hub page link) | Current (current icon link) | Contender 1 (contender 1 icon link) | Contender 2 (contender 2 icon link) | Contender 3 (contender 3 icon link)`
+
+ Discord 单帖最多嵌入 4 张图片(当前图标 vs. 3 个竞争者),因此若需要至少 5 张图片(当前图标 vs. 4+ 竞争者),您必须制作包含所有图标的蒙太奇:
+ 📊 1 vs. 4+ 提案:
+ `?quickpoll (game/hub page link) | Current | Contender 1 | Contender 2 | Contender 3 | Contender 4 | Contender 5 | Contender 6 (single image montage link with all icons)`
+
+
+6. 投票将活跃 24 小时。
+
+- 若投票通过,艺术团队或 Gauntlet 助手将处理替换图片和记录更改。
+- 若您创建了徽章集,请将徽章集上传到 [`#icon-gauntlet-uploads`](https://discord.com/channels/310192285306454017/1050524964597547049)
+ - 徽章应根据集中成就的顺序使用数字命名(1.png、2.png、3.png 等),*或*使用成就标题命名
+
+**注意:**
+
+- 若有多种设计,可扩展竞争者列表。**请记住在发布提案后立即按字母顺序添加字母表情符号,以便人们可以通过点击它们投票。**
+- 若您不活跃于 Discord,可请他人代您发布投票。
+
+### 无需审批投票
+
+1. 游戏没有成就集,也没有被开发者预留。
+
+2. 条目没有游戏图标或徽章。
+
+3. 新图标/徽章显示相同内容,但质量更好。
+
+4. 您是现有集的唯一开发者,且无其他开发者更改过图标/徽章。
+
+5. 您是现有集的原始开发者之一,作为协作集的一部分,各方同意更改,且无其他开发者更改过图标/徽章。
+
+## 投票与讨论
+
+修订投票目前仅限开发者。虽然投票仅在 Discord 进行,但请记住任何人都可以在发布计划的论坛主题中表达他们的评论、问题、关切、批评等。关于 Discord 排他性的问题将在网站的未来版本中解决。
+
+- 若您投票反对成就集的更改,请在讨论频道中说明您的理由。这样可以为更广泛接受更改做出潜在妥协。
+
+- 劫持修订、重新计分或 icon-gauntlet 投票将不被容忍。若发现来自小号的投票将被丢弃,屡次发生将导致小号从服务器移除。若确认小号的主账号,其投票将被丢弃,并可能面临未来投票的暂停。
+
+- 若涉及成就降级的修订计划被证明包含关于游戏内要求的误导性或虚假信息,当前提案将被视为无效。若在投票已通过后发现此类证据,被降级的成就必须恢复,直到举行新投票。
+
+## 联系活跃作者
+
+- 所有修订类型都要求您联系集的活跃作者和任何有活跃认领的开发者。
+- 您可以通过任何您能合理确定他们会看到的方式联系他们(首选私信)
+- 若您认为可能被用户屏蔽,请向 [DevCompliance](https://retroachievements.org/createmessage.php?t=DevCompliance&s=Revision%20Contact%20Request%20-%20[Author%20Name]) 发送消息,请求他们代您联系作者。72 小时最长等待时间将在向 DevCompliance 发送消息时开始。这样做时,说明用户名、修订类型以及您联系作者时会说的修订简要描述。
+- 部分作者选择不要求联系。请查看[公开选择退出表](https://docs.google.com/spreadsheets/d/e/2PACX-1vRRSNI9R-ezC0ma7x2BoU2JiZgMu26iht-sIPc56otfJa2sd_8QQCO-V4JXbfsfSUbrl54wib68-Pjp/pubhtml?gid=1195161231&single=true)。若作者列为此修订类型选择退出,则无需联系。要更新您自己的选择退出信息,请使用[此表单](https://forms.gle/mgzv7RHbJEPCrxc77)。
diff --git a/docs/zh/guidelines/content/achievements-for-rom-hacks.md b/docs/zh/guidelines/content/achievements-for-rom-hacks.md
new file mode 100644
index 00000000..8250db1e
--- /dev/null
+++ b/docs/zh/guidelines/content/achievements-for-rom-hacks.md
@@ -0,0 +1,73 @@
+---
+title: ROM 改版成就
+description: 关于哪些 ROM 改版可以拥有自己的 RetroAchievements 成就集的指南,包括将改版链接到基础集的规则。了解允许和不允许的内容。
+---
+
+# ROM 改版成就
+
+RetroAchievements 为玩家享受有趣的改版集敞开了大门。在如此广泛的创意世界中出现的问题是“RetroAchievements 允许什么,不允许什么拥有集?”本页将介绍*不允许*拥有自己集的各种改版类型,以及它们是否允许链接到基础集。
+
+[[toc]]
+
+## 质量保证团队批准要求
+
+任何由非原始集开发者以外的人链接到主要成就集的改版或补丁,需要根据[添加哈希文档](/zh/guidelines/content/adding-hashes)获得质量保证团队的批准,以确保遵循适当的兼容性测试流程。
+
+## 游戏训练器补丁
+
+- 这些是集成了作弊功能的改版。熟悉 GoodTool 命名方案的人,标题中带有 `[t1]`、`[t2]` 等的 ROM 就是此类示例。
+- 这些在任何情况下都不允许拥有自己的集或链接到基础集。事实上,数千个已知的此类哈希已链接到虚拟游戏条目,例如[此条目](https://retroachievements.org/linkedhashes.php?g=11623)。
+
+## 难度与剧情改版
+
+- 若改版与基础游戏的差异足够大,以至于改版可被视为完全不同的游戏,则通常可以接受独立集。不建议将这些链接到基础集,因为它们可能会破坏集。
+ - 示例包括 [Metroid - Rogue Dawn](http://retroachievements.org/Game/9597)、[Castlevania: The Holy Relics](http://retroachievements.org/game/11655)、[Super Mario 64: Last Impact](http://retroachievements.org/game/12733) 和 [Super Metroid: Redesign](http://retroachievements.org/game/820)。
+- 若改版与基础游戏的差异不足,但有改版独有的好成就创意,则考虑制作改版合集或将其纳入奖励集。
+- 若考虑为主要游戏高度相似的难度或剧情改版创建独立集,必须获得开发者合规团队的批准。
+
+## 错误修复、平衡调整和实用改版
+
+- 包含开发级集成实用程序的改版,如易于访问的关卡选择、调试菜单、显示信息或提供正常游戏无法访问的测试功能的菜单,**几乎**从不允许链接到核心集或拥有自己的集。
+ - 示例:[Metroid + Saving](http://www.romhacking.net/hacks/1186/) 用于 [Metroid](https://retroachievements.org/game/1487)
+- 在发行版本中不存在游戏玩法实用程序时提供实用程序的改版**由活跃开发者自行决定允许**(若开发者不活跃则需修订投票)。如简易武器选择、游戏内地图、新的小升级或能力、改进控制、更快移动等实用程序。
+ - 示例:[Castlevania 2: Improved Controls](https://www.romhacking.net/hacks/4150/) 用于 [Castlevania 2: Simon's Quest](https://retroachievements.org/game/1461)
+- 改进或修补发行版游戏中发现的错误的实用程序和错误修复改版**由活跃开发者自行决定允许**(若开发者不活跃则需修订投票)。
+ - 示例:[Sonic 1 Bugfix](https://www.romhacking.net/hacks/3200/) 用于 [Sonic the Hedgehog](http://retroachievements.org/game/1)
+ - 示例:[Double Dragon III - Difficulty Fix](https://www.romhacking.net/hacks/239/) 用于 [Double Dragon III - The Sacred Stones](https://retroachievements.org/game/1662)
+- 不改变游戏玩法的外观错误修复**在某些情况下可能允许**,请参阅[外观/精灵改版](#cosmetic--sprite-hacks)。
+
+## Beta 发行、原型和“测试”改版
+
+**通常不允许**
+
+若 ROM 改版不完整或处于 beta/原型/测试状态,存在潜在的破坏性错误、崩溃或漏洞(作为改版的结果 intact),则**通常不允许**。
+
+示例:
+
+- [废弃的不完整改版列表](https://www.romhacking.net/abandoned/#id2)
+- [Pokemon LeafYellow Beta 1.3](https://www.pokecommunity.com/showthread.php?t=418666) 用于 [Pokemon FireRed](https://retroachievements.org/game/515)
+- [Fire Emblem TSS Hack _INCOMPLETE_ testing](https://www.romhacking.net/forum/index.php?topic=28277.0) 用于 [Fire Emblem: The Sacred Stones](http://retroachievements.org/game/2482)
+
+## 翻译补丁
+
+**通常允许**
+
+翻译补丁可以显著改善玩家体验,通常不会改变成就倾向于评估的内存区域。
+
+示例:
+
+- [Bahamut Lagoon, T+Eng1.3-Copier_DeJap](http://www.romhacking.net/translations/280/);[Bahumut Lagoon](https://retroachievements.org/Game/2257) 的日英翻译
+- [Clock Tower, T+Eng1.01_Aeon Genesis](http://www.romhacking.net/translations/302/);[Clock Tower](https://retroachievements.org/Game/2374) 的日英翻译
+- [Chrono Trigger, T+Rus_Chief-NET](http://chief-net.ru/index.php?option=com_content&task=view&id=15&Itemid=29);[Chrono Trigger](http://retroachievements.org/Game/319) 的英俄翻译
+
+## 外观改版
+
+**通常允许**
+
+- 仅改变原版游戏图形而不改变其他内容的外观/精灵改版**不允许成为自己的集**。只要仍是同一核心游戏,可考虑添加到主要集。链接时必须链接到主要集。
+
+示例:
+
+- [Castlevania - High Budget Remake](https://www.romhacking.net/hacks/2673/) 用于 [Castlevania (NES)](http://retroachievements.org/game/1462)
+- [Super Waluigi 64](https://hacks.sm64hacks.com/hack/403) 用于 [Super Mario 64](http://retroachievements.org/Game/10003)
+- [Chrono Trigger MSU-1 (with FMV's)](https://www.romhacking.net/forum/index.php?topic=23115.0) 用于 [Chrono Trigger](http://retroachievements.org/game/319)
diff --git a/docs/zh/guidelines/content/adding-hashes.md b/docs/zh/guidelines/content/adding-hashes.md
new file mode 100644
index 00000000..16b24525
--- /dev/null
+++ b/docs/zh/guidelines/content/adding-hashes.md
@@ -0,0 +1,55 @@
+---
+title: 添加哈希
+description: 描述在 RetroAchievements 上为主要成就集添加哈希的流程。
+---
+
+# 添加哈希
+
+向集添加哈希可以为玩家提供更愉快的体验,通过添加翻译、图形改进或更多地区支持,但这伴随着必须理解并适当缓解的风险。本文档将解释为主要成就集添加哈希的要求。
+
+有兴趣对新哈希进行兼容性测试的玩家应参阅 [玩家兼容性测试](/zh/guidelines/content/player-compatibility-testing)。
+
+[[toc]]
+
+## 审批流程
+
+向包含任何非哈希添加开发者创作的成就的集添加哈希需要 QA 批准。联系 QATeam 网站账户并提供计划详情以供审批考虑。
+
+## 限制
+
+若集有任何活跃作者,只有他们作为集维护者可以向集添加额外哈希。
+
+## 逻辑备份、代码注释要求和工单
+
+若获批,哈希添加开发者必须在集的官方论坛主题中备份集中更改的所有逻辑。必须更新所有代码注释以指定它们适用于哪些哈希。哈希添加后创建的任何工单由哈希添加开发者全权负责,并受开发者行为准则维护要求的约束。
+
+## 测试要求
+
+不同类型的哈希需要不同级别的兼容性测试和严谨性。稳定性比兼容性更重要,将优先考虑。添加额外哈希时,以下程序为强制性。
+
+### 已支持哈希的翻译或图形补丁:
+
+- 确保现有逻辑中使用的所有地址与翻译哈希中的地址一致。
+- 检查每个成就、排行榜和 RP 是否有任何基于文本或精灵的地址使用。若发现,必须在新哈希上玩到基于文本或精灵的地址用于逻辑的点,验证值并更新适当的逻辑和代码注释。
+- 在大多数情况下,已支持集的翻译补丁无需任何逻辑更改即可兼容。
+- 集应添加到适当的翻译中心。
+
+### 已支持地区哈希的不同版本:
+
+- 新版本不得包含使成就比预期明显更容易的差异。如有疑问,请咨询开发者合规团队。
+- 确保现有逻辑中使用的所有地址与新版本哈希中的地址一致。
+- 在官方论坛发布新版本之间差异的概要,并玩遍新版本的所有部分以测试新版本中游戏更改部分的现有逻辑。
+
+### 不同地区格式哈希:
+
+- 验证新地区补丁中所有使用逻辑的地址。地址可能仅偏移特定距离。该距离在整个内存中可能一致也可能不一致。必须验证每个使用的地址。
+- 单个地址值,最常见的是 ID 或精灵动画,可能因地区而异。必须验证逻辑中引用的潜在 ID 地址的所有地址值。
+- 使用帧作为计时器的成就和排行榜必须添加额外逻辑以考虑 PAL 和 NTSC 之间的帧率差异。https://docs.retroachievements.org/Leaderboards/#value-format
+
+### 其他类型的哈希:
+
+联系 QATeam 网站账户获取指导。
+
+## 出现问题时还原
+
+若新哈希引入未解决的兼容性问题,QA 可能指示哈希添加开发者将集恢复到原始状态。哈希添加开发者将获得必须还原集的时间框架。
diff --git a/docs/zh/guidelines/content/badge-and-icon-guidelines.md b/docs/zh/guidelines/content/badge-and-icon-guidelines.md
new file mode 100644
index 00000000..2a4687f8
--- /dev/null
+++ b/docs/zh/guidelines/content/badge-and-icon-guidelines.md
@@ -0,0 +1,156 @@
+---
+title: 徽章与图标指南
+description: 在 RetroAchievements 上创建和上传成就徽章及游戏图标的指南。了解尺寸要求、设计最佳实践以及新图标的审批流程。
+---
+
+# 徽章与图标指南
+
+[[toc]]
+
+## 概述
+
+当有人提到徽章时,可能指以下两种之一:
+
+- 成就徽章,即与成就集中各个成就关联的用户创作图片。
+ - _刺猬索尼克的第一枚徽章 - #00199)_
+ - 
+- 游戏图标,又称精通徽章,即用于代表成就集的单张图片。
+ - _刺猬索尼克游戏图标_
+ - 
+
+## 徽章格式与尺寸
+
+- 为获得最佳效果,游戏图标和成就徽章应采用 32 位非交错 PNG 格式。
+ - 也支持 JPG 和 GIF。
+- 避免在背景层使用透明,因为它在网站和模拟器上无法正确显示。
+- 成就徽章必须为 64x64。
+- 游戏图标必须为 96x96。
+- 徽章应以在缩小至 48x48 或 32x32 时主体仍清晰的方式制作,因为它们在网站各页面上经常如此显示。
+
+## 设计新徽章
+
+成就徽章应以某种方式反映成就内容——即成就要求玩家达到的 Boss、关卡或收集品的图片。
+
+## 设计新游戏图标
+
+### 游戏精通图标必须仅使用“官方”素材代表相关游戏。
+
+- 游戏中的精灵图(或模型)
+- 封面/地区封面
+- 概念图
+- CD/原声带图
+- 说明书图
+- 攻略本图
+- 广告
+- 或任何其他“官方”素材来源。
+
+### 精通图标不得
+
+- 使用不同版本的素材
+- 使用来自外部来源的粉丝图
+- 使用从头创建的 AI 生成图
+- 包含任何粗俗、冒犯或色情内容
+
+### 精通图标可以
+
+- 添加自定义边框或其他装饰
+- 对官方素材进行风格化或组合不同官方素材来源
+- 使用同一主机不同地区发行的官方素材,除非该地区发行有独立的游戏页面
+- 使用图标创作者创作的粉丝图,但必须在上传或任何图标投票前获得美术团队批准。
+
+### 例外
+
+- 若两个不同版本使用相同的主视觉,该素材可用于任一版本。
+- 改版 - 大多数改版使用源游戏的相同精灵图。其他以有意义方式代表游戏的素材可使用,只要不在上述排除列表中(如外部粉丝图或 AI 生成图)。改版开发者的素材也可使用。
+- 电影授权/电影改编游戏可使用用于宣传电影的素材。
+
+
+
+## 游戏页面横幅
+
+横幅是用于在网站某些页面上代表游戏的宽图。所有游戏图标的现有指南同样适用于横幅,另有以下额外限制:
+
+### 横幅不得
+
+- 包含任何文字(游戏 Logo 允许,只要不包含文字)
+
+### 署名要求
+
+- 若横幅来自 SteamGridDB,必须署名 "SteamGridDB" 用户。
+
+## AI 生成图政策
+
+### 概述
+
+从头创建的 AI 生成图在 RetroAchievements 上**禁止**用于所有游戏徽章和成就图标。这一全面政策旨在提升素材质量并尊重支持网站的美术社区。
+
+### 政策存在的原因
+
+- 我们有一支愿意为游戏徽章和成就图标创作素材的专职美术团队。
+- RA 上的美术师完成素材请求可获得激励,类似于 DevQuests。
+- 电子游戏本质上是视觉媒介,大多数游戏包含丰富的素材,可创造性用于徽章和图标。
+
+### 执行流程
+
+若您认为游戏徽章或成就图标的素材为 AI 生成,可向 RAArtTeam 发送站内私信详述您的举报。
+
+若对素材可能为 AI 生成存在疑虑,RAArtTeam 将私下联系创建该素材的人以澄清情况。此流程旨在尊重他人并避免公开指控。
+
+RAArtTeam 可能会询问诸如:
+
+- 该素材的来源是什么?
+- 您使用什么编辑工具创建此图片?
+
+在公开渠道对疑似 AI 生成素材的举报将及时处理,以防止对开发者或美术师的骚扰。
+
+## 上传游戏图标
+
+**开发者:**
+
+- 成就开发者可自由更改没有成就的条目的游戏图标。作为开发者,若您想在那里发布先前图片的备份(如有)或在论坛备份您的,可以但不强制。在创建新成就集时,您可自由创建或选择要使用的游戏图标。
+ - 要更改游戏图标,请先进入游戏页面并点击开发者工具:
+  - 然后点击高亮的选择文件按钮。在电脑上找到文件,然后点击高亮的提交按钮:
+ 
+
+若游戏已有成就,游戏图标更改需通过[修订流程](/zh/guidelines/content/achievement-set-revisions)。
+
+**非开发者:**
+
+- 可以,但需经过[修订](/zh/guidelines/content/achievement-set-revisions)。也建议查阅[设计新游戏图标](#designing-new-game-icons---styling-guide)的指南。
+
+### 上传徽章
+
+**对于开发者:**
+
+若您正在创建新成就,可自由为其上传徽章。
+
+徽章从模拟器开发者工具的成就编辑器中上传:
+
+
+或您可以从下拉框中选择预制图片或查找您已上传的其他图片:
+
+
+## 徽章服务器文件
+
+- 游戏图标在网站上以下列方式和位置存储:`i.retroachievements.org/Images/000705.png`。它们与其他游戏图片(如游戏封面和游戏截图)存储在同一服务器文件夹中。
+- 成就徽章在网站上以下列方式和位置存储:`i.retroachievements.org/Badge/00136.png`;数字与成就中的徽章 ID 一致。
+
+## 为现有成就制作新徽章
+
+若您想为现有成就制作改进徽章,可以。您的图片将经过[修订流程](/zh/guidelines/content/achievement-set-revisions),这将使您的创作进入社区投票。
+
+在 [Icon Gauntlet 论坛主题](http://retroachievements.org/viewtopic.php?t=8064&o=0) 发布您想替换当前徽章的所有新图片。同时发布新图片要替换的所有徽章。它们将作为单一投票进行社区审核。社区投票完成后,若您是开发者,可以替换徽章;若不是,请在 Discord 的 #help-me 频道或 [Icon Gauntlet 论坛主题](http://retroachievements.org/viewtopic.php?t=8064&o=0) 寻求帮助。
+
+最简单的方式是仅以 `img` 链接引用新旧徽章:
+
+- 示例:`[img=https://retroachievements.org/Badge/01234.png] -> [img=https://retroachievements.org/badge/56789.png]`
+- (开发者)确保在上传新徽章前从成就编辑器捕获旧徽章 ID
+- 上传新徽章后,新徽章 ID 将出现在成就编辑器中。
+- 两个值也可从网站捕获,但您必须复制图片链接,因为悬停链接是成就的。
+
+这是[如何有效发布新旧徽章](https://retroachievements.org/viewtopic.php?t=612&o=17)的完美示例。
+
+## 待办
+
+- 需要添加通过网站添加成就徽章的信息。
+- 添加“拼贴”信息。
diff --git a/docs/zh/guidelines/content/code-notes.md b/docs/zh/guidelines/content/code-notes.md
new file mode 100644
index 00000000..9ba2241f
--- /dev/null
+++ b/docs/zh/guidelines/content/code-notes.md
@@ -0,0 +1,257 @@
+---
+title: 代码注释
+description: 在 RetroAchievements 上创建清晰一致代码注释的开发者指南。了解如何记录内存地址、指定地址大小,并确保未来开发者能轻松理解和使用您的注释。
+---
+
+# 代码注释
+
+[[toc]]
+
+代码注释是成就开发的重要组成部分。它们为成就创建中使用的内存地址提供有价值的上下文。好的代码注释可以使未来的成就故障排除对开发者来说轻而易举,而差的代码注释则可能成为噩梦。本指南将帮助开发者创建清晰、有用且一致的代码注释,供任何在未来查看其集的开发者使用。
+
+## 如何制作代码注释
+
+代码注释由开发者在内存检查器中在 RAM 挖掘游戏时制作。这便于查看值得注意的地址的大小以及 RAM 中保存重要值的区域。代码注释可从内存检查器添加、删除和更新。已创建的代码注释可从网站上的游戏“代码注释”页面更新或删除。这旨在用于快速修复注释,而非代码注释修改的主要形式。
+
+- 开发者可自由向任何游戏添加任何代码注释,无需声明工作意图。只需注意不要删除他人先前添加的注释,除非您确定它们不正确。
+- 初级开发者应将其代码注释限制在其已认领的游戏。初级开发者无法删除或覆盖其他用户制作的注释。
+
+## 建议
+
+- **清晰且信息丰富**:代码注释应清楚记录地址代表什么,以便其他开发者轻松理解。
+- **指定地址大小**:代码注释应指定所注释地址的大小。这有助于在成就逻辑创建期间轻松了解地址大小,并正确为内存检查器中的地址值着色。
+- **包含重要值**:代码注释应包含成就逻辑中使用的所有值。未记录的值会使调试复杂得多,尤其是当您没有创建该注释时。
+- **广泛记录**:最好记录您发现的任何有用地址,即使您知道成就逻辑中不需要它们。您永远不知道如果集被修订,以后可能需要哪些地址。
+
+::: tip 代码注释为谁而写?
+五年后,可能有人需要阅读您的代码注释来解决工单。编写代码注释以帮助未来的 RetroAchievements 开发者理解内存地址和成就逻辑。清晰的文档有助于未来的维护者处理工单。另一位开发者能理解地址代表什么以及如何使用吗?
+:::
+
+## 指定内存地址大小
+
+有多种方式可指定内存检查器将识别的内存地址。任何未指定有效大小的代码注释将导致内存检查器高亮显示该注释的字节。内存检查器高亮将识别任意数量的位和字节长度。许多开发者会将地址大小括在方括号 (`[]`) 中,以便在完整注释中更醒目。
+
+- `[Lower4]`, `[Upper4]`
+- `[8-bit]`, `[16-bit]`, `[24-bit BE]`, `[32-bit]`, `[Float]`
+- `[1 byte]`, `[2 bytes]`, `[4 bytes]`, `[8-bytes]`
+- `[128 bits]`, `[78 bytes]`, `[428 bits]`, `[1024 bytes]`
+
+### 位域与位标志
+
+您经常会遇到地址使用地址内的每位存储数据的情况。注释各个位不会影响任何内存检查器高亮,但每个位应在代码注释中正确注释。有些人选择将这些标记为 [Bitfield] 或 [Bitflags] 而非 [8-Bit]。
+
+## 添加值和标签
+
+当您需要在注释中标注特定值或位的含义时,请注意以下事项。
+
+- 始终在十六进制值前加 `0x` 前缀,以明确该值为十六进制。当您的值都不使用 A-F 字符时,这尤其重要。
+- 若值为十进制,考虑在描述中添加说明:`(Values below are decimal)`
+- 将每个值放在单独一行——这通常是视觉区分每个值的最简单方式。当有两个以上值需要标注时,通常应使用此方式。
+- 若只有两个值(示例:是/否),考虑在描述中内联放置,若描述和标签较短。
+- 在值和其标签之间放置分隔符。可以是等号、冒号或破折号,您可根据需要添加空格。提示:使用无空格的等号可让您轻松将值列表复制到 [Rich Presence](/zh/developer-docs/rich-presence) 查找。
+
+## 示例
+
+### 简单类型
+
+简单地址类型涵盖几乎所有成就集所需的非常基本的地址,通常是 RAM 挖掘时最先注释的地址之一。通常可在一两行内轻松描述。可能包括生命值、生命数、游戏内货币、关卡、X/Y 位置等。
+
+#### 良好示例
+
+此处的良好示例包括大小、描述以及不同的值或对值的影响。
+
+```
+[8-bit] Difficulty
+0x01 - Easy
+0x02 - Normal
+0x03 - Hard
+```
+
+```
+[16-bit] Player Health
+Max health is 0x1200, each hit reduces it by 0x8
+```
+
+#### 不良示例
+
+```
+Difficulty
+```
+
+```
+health
+```
+
+### 地图或屏幕 ID 类型
+
+地图和屏幕 ID 类型的代码注释常用于确定游戏内的位置,常用于关卡完成或物品收集成就。
+
+#### 良好示例
+
+此处的良好示例包括地址在整个游戏中可以采取的各种值。成就逻辑中使用的所有地址都详细注释。
+
+```
+[8-bit] Screen ID
+Chapter I
+0x36 - Initial Screen with woman's face
+0x0b - Taxi ride opening scene
+0x07 - Outside of apartment (Day 1)
+0x04 - Apartment main hall (Day 1)
+0x16 - Apartment main hall (Day 2)
+
+Chapter II
+0x37 - Driving intro cutscene
+0x2b - Outside of Inn (Day 1)
+0x2c - Inn main room (Day 1)
+```
+
+#### 不良示例
+
+```
+screen id
+```
+
+### 分数
+
+游戏可以用多种方式在内存中存储玩家分数,因此有多种方式写出分数代码注释。
+
+#### 良好示例
+
+此处的良好示例将指定大小、代表的分数位数、屏幕上分数如何从内存中的值计算、如适用的二进制编码十进制 (BCD) 表示法,以及任何其他重要细节。
+
+```
+[1 byte] 1P display score, digits 0000XX00 in BCD
+```
+
+```
+[16bit][DEC] P2 Score XXXX0000
+```
+
+```
+Score [24-Bit BE BCD] (Determines Rank)
+0-9=Pauper
+0-99=Peasant
+100-999=Prosperous
+1000+=Professional
+```
+
+#### 不良示例
+
+```
+Player 1 score
+```
+
+### 位
+
+经常遇到需要存储事件或物品标志的游戏。这些通常存储为单独的位,而不是每个标志占用整个字节。假定位值为 0 表示关/否/假,若非如此则应注明。
+
+#### 良好示例
+
+此处的良好示例将指定每个位及其代表的内容。
+
+```
+[Bitflags] Requests completed
+Bit1 = No. 01 - Retrieve 1 Beetle Shell.
+Bit2 = No. 02 - Retrieve the first old document.
+Bit3 = No. 03 - I'd like to sip a Muscle Drink.
+Bit4 = No. 04 - Retrieve 3 Old Lanterns.
+Bit5 = No. 05 - Retrieve the second old document.
+Bit6 = No. 06 - Create Jack Frost with Dia.
+Bit7 = No. 07 - Retrieve 1 Lead Metal.
+```
+
+```
+Bonuses Unlocked
+bit0 - All Replay Items
+bit1 - Unlimited Ammo (Mission 1)
+bit2 - Silver Bullets (Mission 3)
+bit3 - Bullet Shield (Mission 4)
+bit4 - Rubber Grenades
+bit5 - Men With Hats (Mission 5)
+bit6 - Always Sniper
+bit7 - Achilles Head (Mission 6)
+```
+
+```
+[Treasure Flags 03]
+Bit0=[Altair - Rebel Hideout] Potion
+Bit1=[Fynn - Pub Basement] Scott's Ring
+Bit2=[Castle Deist 1F - South Treasure Room] Stun Tome
+Bit3=[Castle Deist 1F - South Treasure Room] Stop Tome
+Bit4=[Castle Deist 1F - South Treasure Room] Curse Tome
+Bit5=[Cave of Mysidia B4 - Treasure Room] Bell of Silence
+Bit6=[Castle Deist 1F] Phoenix Down
+Bit7=[Castle Deist 1F - NW Treasure Room] Gold Needle
+```
+
+#### 不良示例
+
+```
+The bits here represent the unlocked bonuses
+```
+
+### 指针
+
+指针在新主机上更常见,其注释通常包含指针可指向的各种地址的信息。指针注释通常包含开发者使用的各种重要地址的众多偏移值。
+
+- 若带标签的偏移正确编写,内存检查器和资源编辑器将在指针 _地址 + 偏移_ 处生成正确大小的间接代码注释。
+- 在偏移值前使用加号 `+`。
+ - 对于多层指针,许多人会使用额外的加号表示这是原始指针所指向的指针的偏移。然而,这将破坏该指针的所有间接代码注释。考虑在这些分层偏移前使用竖线,以允许顶层生成间接代码注释。
+- 使用 `0x` 表示十六进制偏移值;若不存在,内存检查器将将其视为十进制偏移。
+- 您可以用任意数量的空格以及等号、冒号或竖线等分隔符分隔偏移值与其标签。
+- 您应像任何普通代码注释一样指定偏移处数据的大小。间接注释和高亮将使用此值。
+- 若偏移值后存在多行,它们都将成为该地址的间接注释的一部分。
+
+#### 良好示例
+
+此处的良好示例包括各种地址偏移,每个都包含所指向地址的细节和大小。
+
+```
+Pointer to P1 Data [16-Bit]
++0x68 P1 Character ID [8-Bit]
++0xba P1 Health [8-Bit]
++0xc4 P1 Move ID [16-Bit]
+```
+
+```
+[32-bit] Data Pointer
++0x638 | Pointer to pointer to smells pointer
+++0x6d0 | Pointer to woofs
++++0xb8 | Total Woofs [32-bit]
++++0x380 | Sniff Level [32-bit]
+0x00 = Sniff Apprentice
+0x01 = Sniff Artisan
+0x02 = Sniff Expert
+0x03 = Sniff Master
+0x04 = Grand Sniff Master
++++0x3c8 | Pointer to Racing Data [32-bit]
+++++0x15a8 | Checkpoint Count [32-bit]
+++++0x15ac | Frame Timer [32-bit]
+++0x13d8 | Pointer to smells pointer
++++0x04 | Total Smells [32-bit]
+```
+
+```
+*US* Pointer [32-bits]
+
+--Player Kratos--
++0x97898=Health [Float]
++0x6f570=Combo [32-bits]
++0x977a0=Coordinates Y [Float]
++0x977a4=Coordinates Z [Float]
++0x977a8=Coordinates X [Float]
+
+--Unlockables (Alternative)--
++0x6f594=Poseidon's Trident [Bit0]
++0x6f598=Poseidon's Rage [Bit0]
++0x6f59c=Medusa's Gaze [Bit0]
++0x6f5a0=Zeus' Fury [Bit0]
++0x6f5a4=Army of Hades [Bit0]
++0x6f5a8=Blade of Artemis [Bit0]
+```
+
+#### 不良示例
+
+```
+Pointer for player information. Includes player data and unlockables.
+```
diff --git a/docs/zh/guidelines/content/editing-leaderboards.md b/docs/zh/guidelines/content/editing-leaderboards.md
new file mode 100644
index 00000000..d5053ead
--- /dev/null
+++ b/docs/zh/guidelines/content/editing-leaderboards.md
@@ -0,0 +1,24 @@
+---
+title: 编辑排行榜
+description: 在 RetroAchievements 上修改排行榜的指南,涵盖备份流程、评论要求以及进行根本性更改或退役排行榜的程序。
+---
+
+# 编辑排行榜
+
+1. 在更新排行榜之前,您必须在评论中备份每个修改的条件行(若过长可使用 Pastebin 链接)
+2. 编辑排行榜后,若您正在修复、添加或删除条目,您必须留下关于所做更改及原因的评论。
+3. 一旦玩家开始提交条目,排行榜的概念/设计不应更改。例外如下:
+
+ A. 若排行榜存在漏洞,且修正会导致修复前后 LB 提交之间存在差异,这将被视为根本性更改,最合适的做法可能是“退役”该排行榜并创建新的修正版 LB。
+
+ B. 若需要在排行榜的取消字段中添加保护,例如消除刷分/蹭分(游戏无限生成物品、金钱或敌人等内容的区域),可能更倾向于“退役”或创建额外的排行榜。“退役”排行榜意味着阻止未来提交。
+
+4. 若开发者希望为排行榜创建新概念,应添加新的排行榜。
+
+5. 若开发者希望在保持排行榜完整的同时对其进行根本性更改,需要修订投票。“根本性更改”涉及以下内容:
+
+ A. 玩家提交分数方式的更改。
+
+ B. 影响难度和/或策略的提交要求的更改。
+
+6. 初级开发者只能与经过修订流程的代码审查员一起更改、添加或删除排行榜。
diff --git a/docs/zh/guidelines/content/game-info-and-hub-guidelines.md b/docs/zh/guidelines/content/game-info-and-hub-guidelines.md
new file mode 100644
index 00000000..137fd80f
--- /dev/null
+++ b/docs/zh/guidelines/content/game-info-and-hub-guidelines.md
@@ -0,0 +1,232 @@
+---
+title: 游戏信息与中心指南
+description: 在 RetroAchievements 上贡献和编辑游戏元数据、图片和中心的指南。了解输入游戏标题、开发商、发行商、类型和发行日期信息的最佳实践,以及截图、封面和通过中心系统分类的方法。
+---
+
+# 游戏信息与中心指南
+
+[[toc]]
+
+## 游戏信息
+
+游戏信息是指游戏页面上的元数据,包括游戏标题、发行日期、开发商、发行商和类型。
+
+### 游戏标题与发行日期
+
+- 标题可使用特殊/重音字符,如 Pokémon 中的 `é`。但不应使用表情符号。
+- 副标题通常用冒号而非连字符分隔。如有多个副标题,先使用冒号,后跟连字符。
+ - Atlantis - The Lost Empire -> Atlantis: The Lost Empire
+ - Yu Yu Hakusho - Ghost Files - Tournament Tactics -> Yu Yu Hakusho: Ghost Files - Tournament Tactics
+- 若同一平台上有两个同名游戏冲突,可在括号中添加发行商、开发商或发行年份以区分。示例:[Renegade (Ocean Software)](https://retroachievements.org/game/26867) 和 [Renegade (Kuma Computers)](https://retroachievements.org/game/26732)。
+- 当地区变体获批拥有独立页面时,可添加地区以区分。示例:[Ecco the Dolphin](https://retroachievements.org/game/8) 和 [Ecco the Dolphin (Japan)](https://retroachievements.org/game/4374)。
+- 对于有不同 MSX2 版本的 MSX 游戏,后者可在标题中添加 (MSX2)。示例:[Dragon Quest](https://retroachievements.org/game/16399) 和 [Dragon Quest (MSX2)](https://retroachievements.org/game/16400)。
+- 红白机磁盘系统游戏目前包含在 NES/Famicom 下,但惯例是在标题中添加 (FDS)。示例:[All Night Nippon Super Mario Bros. (FDS)](https://retroachievements.org/game/12852)。
+- 日文标题的罗马化可能不一致。如有疑问,使用 Wikipedia 和其他来源中最常用的罗马化。示例:[Yu Yu Hakusho](https://retroachievements.org/hub/7785) 而非 "Yuu Yuu Hakusho",[Cho Aniki](https://retroachievements.org/hub/18695) 而非 "Chou Aniki",[Bobobo-bo Bo-bobo](https://retroachievements.org/hub/20736) 而非 "Boboboubo Boubobo"。
+ - 同一系列的游戏应使用主标题的相同罗马化。
+
+#### 标签
+
+- 改版、自制、演示、原型、测试套件和未授权游戏通过在游戏标题前添加 `~Hack~`、`~Homebrew~`、`~Demo~`、`~Prototype~`、`~Test Kit~` 或 `~Unlicensed~` 表示。这是可能在未来改变的技术限制。
+- 当 `~Demo~` 或 `~Prototype~` 与 `~Hack~` 或 `~Homebrew~` 同时使用时,应列于后者之后。
+ - 示例:`~Homebrew~ ~Demo~ Bob's Game` 而非 `~Demo~ ~Homebrew~ Bob's Game`。原因是无论游戏处于何种阶段,它始终是自制或改版;因此这些标签应优先。
+- 当游戏为未授权且实际上只是另一游戏的改版时,应使用 `~Hack~` 而非 `~Unlicensed~`。
+ - 示例:NES 上的最终幻想 VII,是盗版发行,但实际上只是放在卡带上的最终幻想 III 的改版。因此 RA 条目应为 `~Hack~ Final Fantasy VII`。
+- 一些仍保留在网站上的已弃用游戏页面以 `~Z~` 为前缀,以便在列表中排序到底部。
+- 子集通过在标题后添加 `[Subset - 子集名称]` 表示。
+
+#### 地区标题
+
+- 可为每个地区添加多个标题。
+- 规范标题应为最易识别的标题。如有疑问,一般优先级为:北美英文标题 > 欧洲英文标题 > 非英文标题(通常为日文,但取决于游戏起源)。可能存在欧洲标题比北美标题更有帮助的情况,或其他例外。
+ - 例外示例是 [Dragon Quest](https://retroachievements.org/game/1471),使用国际知名的后来官方标题,而非原始英文标题 "Dragon Warrior"。此外,这也使列表中的游戏排序更便捷。
+- 对于日文标题,优先级应为罗马化标题(如 "Zelda no Densetsu"),因为对大多数人更易读。这应是附加于日文发行日期的标题。
+ - 也可添加日文汉字/假名标题(如 ゼルダの伝説)。日文发行日期无需重复。
+- 不应添加盗版标题,即使它们有链接到页面的哈希。例如,[Adventure Island II: Aliens in Paradise](https://retroachievements.org/game/4486) 有一个名为 "Super Mario World 7" 的盗版哈希链接,但将其显示在官方标题旁边会很奇怪。
+- 有粉丝翻译补丁的游戏可添加翻译标题。这些标题不应包含地区或发行日期。原始官方标题仍应作为规范标题使用。
+- 在某些情况下,如果有助于或为粉丝常用,可添加额外标题,即使它们未被正式使用或非来自翻译补丁。这可能包括非英文标题的英文翻译等。与翻译补丁一样,这些不应包含地区或发行日期,且不应为规范标题。
+- 若非英文游戏多年后获得官方英文翻译,该英文标题可作为规范标题优先于原始标题。示例:[EarthBound Beginnings](https://retroachievements.org/game/3814) 而非 Mother,[Trials of Mana](https://retroachievements.org/game/1391) 而非 Seiken Densetsu 3。
+
+#### 发行日期
+
+- 可为游戏发行的每个地区输入多个发行日期。
+- 对于欧洲,使用最早发行日期。若各国发行日期不同,无需添加每个欧洲国家的每个发行日期。
+- 发行日期无需重复。例如,若添加了两个日文标题(罗马化和汉字/假名),只有罗马化标题应有日文发行日期。
+- 粉丝翻译标题的发行日期应留空。
+- 对于移植和转换版本,请确保使用其特定发行日期,而非原版游戏的发行日期。
+- 发行日期的一些来源:
+ - https://web.archive.org/web/20140611225644/http://www.nintendo.com/consumer/downloads/nes_games.pdf - 北美 NES 发行日期。
+ - https://www.famitsu.com/search?type=game-title&q=&max=100&order=desc&platform=alldevice - 日本红白机发行日期。需搜索日文标题。
+ - https://nescartdb.com/search/browse/a - NES 发行日期,包括欧洲。
+ - https://archive.gamehistory.org/ - 电子游戏历史基金会的数字档案。
+
+### 开发商与发行商
+
+- 开发商和发行商名称应手动输入到其元数据字段中。
+ - 将开发商和发行商中心链接到页面时,它们会自动显示在页面顶部的游戏信息中作为链接。但这不会直接在元数据字段中记录它们。仍建议手动输入,因为这些字段中的数据用于其他目的,如管理应用。当文本与中心名称完全匹配时,链接将叠加显示而不会重复文本。
+ - 类型也是如此。
+ - 首次命名开发商、发行商或类型中心时要小心。若需重命名,中心内每款游戏的相应元数据字段都需要更新以匹配。
+- 移植和转换版本应输入特定移植版本的开发商。除非原版游戏的开发商直接参与移植创作,否则不应包含原版游戏的开发商。
+- 当开发团队或子公司为另一公司所有时,无需包含该大公司。例如,[Sonic the Hedgehog](https://retroachievements.org/game/1) 输入了 Sonic Team,不包含 Sega。
+- 对于改版开发者,惯例是输入 "Hacker - 改版者名称" 作为开发商。[Central - Hacker](https://retroachievements.org/hub/913) 中心会自动将链接叠加到开发商字段中。
+- 当发行商因地区而异时,可输入多个发行商。这不需要与实际链接到页面的地区版本对应。
+- 改版使用发行商字段注明改版基于的游戏,例如 "Hack - Super Mario World"。[Hacks](https://retroachievements.org/hub/5987) 中心链接将自动叠加于此。
+- 若无明确发行商,如许多数字发行的自制游戏,开发商可在发行商字段中重复。
+- 开发商或发行商名称中不包含 Co、Inc、Ltd 等缩写。
+
+### 类型
+
+- 必要时可输入多种类型和子类型。
+- 某些类型实际上不应在游戏页面上使用,而应始终将游戏归类到其子类型之一。这适用于 [Genre - Fighting](https://retroachievements.org/hub/8346)、[Genre - Platforming](https://retroachievements.org/hub/9120) 和 [Genre - Shooter](https://retroachievements.org/hub/2656)。
+ - 其他类型在可能时也首选如此,例如若游戏在 [Subgenre - Turn-based RPG](https://retroachievements.org/hub/5468) 中,则不应同时包含在 [Genre - Role-Playing Game](https://retroachievements.org/hub/898) 中。但也有特殊情况,如体育 RPG 和钓鱼 RPG 可能不适合子类型。
+- 有关类型的更多信息,请参阅 [类型定义](/zh/guidelines/content/genre-definitions) 页面。
+
+## 游戏图片
+
+游戏图片是游戏页面上显示的图片,包括图标(即精通徽章)、封面、标题截图和游戏截图。
+
+### 图标
+
+- 图片尺寸必须为 96x96 才能上传。
+- 有关图标的更多规则,请参阅 [徽章与图标指南](/zh/guidelines/content/badge-and-icon-guidelines)。
+
+### 封面
+
+- 文件大小必须小于 1 MB 才能上传。
+- 在求助 Google 图片之前,请先查看这些资源以获取高质量封面:
+ - https://github.com/libretro-thumbnails/
+ - https://gamesdb.launchbox-app.com/
+ - https://db.hfsplay.fr/
+ - https://www.mobygames.com/
+- 街机游戏可使用宣传海报,因为它们没有封面。来源之一是 http://adb.arcadeitalia.net/default.php
+- 应尽可能使用官方封面。改版和自制游戏可使用粉丝创作的封面。
+- 北美封面在存在时始终优先,其次是欧洲封面。这与链接到页面的地区版本无关。
+
+### 截图
+
+- 文件大小必须小于 1 MB 才能上传。
+- 鼓励使用英文截图,除非来自翻译补丁,此时首选原始语言。
+- 任何图片上不得有水印。
+- 某些游戏缺乏典型的标题画面。在这种情况下,可使用开场电影或加载画面中的标题截图。若不存在,可使用初始菜单画面或游戏画面。
+- Game Boy 截图应为黑白。
+- 截图时应禁用模拟器滤镜和着色器。例如,Game Boy Color 和 Game Boy Advance 不应使用色彩校正,Apple II 不应使用扫描线滤镜。
+
+#### 截图尺寸
+
+- 截图应尽可能具有相同的标准尺寸。
+- 以下列出各系统的标准图片尺寸。
+ - 96x64 - Pokemon Mini(图片按 4x 缩放)
+ - 128x64 - Arduboy(图片按 2x 缩放)
+ - 146x240 - Arcadia 2001, Elektor TV Games Computer, Interton VC 4000
+ - 160x102 - Atari Lynx
+ - 160x144 - Game Boy, Game Boy Color, Game Gear, Mega Duck
+ - 160x152 - Neo Geo Pocket
+ - 160x160 - WASM-4, Watara Supervision
+ - 160x240 - Nintendo DS, Nintendo DSi
+ - 193x240 - Vectrex
+ - 200x234 - VIC-20
+ - 224x144 - WonderSwan
+ - 240x160 - Game Boy Advance
+ - 256x192 - ColecoVision, Master System, SG-1000
+ - 256x224 - NES/Famicom, Sega CD, SNES/Super Famicom
+ - 256x232 - PC Engine/TurboGrafx-16, PC-FX
+ - 272x240 - MSX
+ - 306x192 - Fairchild Channel F
+ - 320x180 - PlayStation Portable
+ - 320x186 - Virtual Boy
+ - 320x200 - Atari ST, Intellivision, PC-8000/8800
+ - 320x219 - Apple II
+ - 320x223 - Atari 7800
+ - 320x224 - 32X, Genesis/Mega Drive, Neo Geo CD
+ - 320x226 - Amstrad CPC
+ - 320x228 - Atari 5200
+ - 320x235 - Magnavox Odyssey 2
+ - 320x240 - 3DO Interactive Multiplayer, Dreamcast, GameCube, Nintendo 64, PlayStation, PlayStation 2, Xbox
+ - 326x240 - Atari Jaguar CD(这些会被缩小并因此模糊)
+ - 视游戏而定 - Arcade, Atari 2600, Atari Jaguar, DOS, Nokia N-Gage, PC Engine CD, Sharp X68000, Uzebox
+
+## 中心与类似游戏
+
+中心用于以多种方式对游戏页面进行分类。也可以添加类似游戏的链接以帮助在网站上导航。
+
+### 创建中心
+
+- 开发者可以从 [Meta - Available Hubs](https://retroachievements.org/hub/3029) 重用中心(如有)。只需重命名中心并从 Meta 中心取消链接即可。
+- 网站清理团队的某些成员可以在管理应用中创建新中心。
+- [Series](https://retroachievements.org/hub/3)、[Publisher](https://retroachievements.org/hub/958)、非自制 [Developer](https://retroachievements.org/hub/5733)、[Hacks](https://retroachievements.org/hub/5987)、系列改版、[Fangames](https://retroachievements.org/hub/22202) 和 [Unlicensed series](https://retroachievements.org/hub/5751) 中心应仅在包含至少 3 款游戏时创建。
+ - 自制开发商和 [Hacker](https://retroachievements.org/hub/913) 中心应至少有 5 款游戏。
+ - 其他一些中心类型,如 [Theme](https://retroachievements.org/hub/5699)、[Setting](https://retroachievements.org/hub/29405) 和 [Protagonist](https://retroachievements.org/hub/5743),需要更多游戏数量,将非常谨慎地创建。
+- 注意不要创建 frivolous 中心,游戏页面上的中心列表已经可能过长。
+
+### 常见中心
+
+- 所有游戏页面应链接其开发商、发行商和类型中心(如存在)。
+- 适用时应链接 [Language](https://retroachievements.org/hub/7885) 中心。
+- 每当游戏属于更广泛系列时,通常使用 [Series](https://retroachievements.org/hub/3) 中心。
+ - 盗版/盗版游戏和粉丝游戏不应添加到它们所基于的系列中心。
+- 改版应添加到相应的 [Hacks](https://retroachievements.org/hub/5987) 中心(如存在)。此中心将自动显示在游戏页面顶部的发行商字段中。
+ - 改版也可以添加到系列改版中心(如存在)。改版中心预期适用于特定游戏,而系列改版中心可以收集同一系列的不同游戏。注意系列改版中心不会出现在发行商字段中。
+ - 若游戏没有改版中心,应添加到 [Uncategorized Hacks](https://retroachievements.org/hub/8018),即使它在系列改版中心中。
+- 自制、演示、原型和未授权游戏应始终添加到 [Central - Homebrew](https://retroachievements.org/hub/2469)、[Central - Demo](https://retroachievements.org/hub/5901)、[Central - Prototypes](https://retroachievements.org/hub/7824) 或 [Central - Unlicensed](https://retroachievements.org/hub/5751)。
+ - 当未授权游戏在未授权系列中心(如 [Unlicensed - Mario](https://retroachievements.org/hub/29507))中时会有例外。在这些情况下不应冗余添加 Central 中心。
+- 子集应始终添加到 [Subsets](https://retroachievements.org/hub/18903) 中心。注意有 Bonus 和 Multi 等子集类型的专门中心。
+ - 子集还应继承其基础游戏页面的所有中心。
+- 还有许多其他中心,您可以[在此](https://retroachievements.org/hubs)浏览。
+
+### 特殊中心
+
+- [Meta|QA](https://retroachievements.org/hub/7582) 中心只能由 [QATeam](https://retroachievements.org/user/QATeam) 管理。如需请求更新这些中心,请向他们发送消息。
+ - [Misc. - LGBTQ+ Representation](https://retroachievements.org/hub/9970) 也由 QATeam 特别管理。任何请求请向他们发送消息。
+- Meta|Art 中心由 [RAArtTeam](https://retroachievements.org/user/RAArtTeam) 管理。
+- [Meta|DevComp](https://retroachievements.org/hub/13591) 中心由 [DevCompliance](https://retroachievements.org/user/DevCompliance) 管理。
+- [Theme - Mature](https://retroachievements.org/hub/7869) 由 [RAdmin](https://retroachievements.org/user/RAdmin) 管理。访问游戏页面时,此中心会显示成人内容警告。
+
+### 类似游戏
+
+- 类似游戏列表应限制在约 5 或 6 个条目。
+- 若链接了系列中心,不应添加太多来自同一系列的类似游戏,因为会有些冗余。若它们比系列中的其他游戏更直接相关,或在同一系统上,添加几个仍可能有帮助。
+- 类似游戏也可以包括共享玩法或其他有趣联系的游戏,特别是当它们在同一系统或同一代主机上,或共享制作人员时。
+- 同一游戏的不同版本或移植也通常链接在一起,但若游戏移植版本过多,不要全部链接。
+
+## 贡献游戏信息
+
+用户可以在**清理请求论坛**(我们 [Discord 服务器](https://discord.gg/dq2E4hE) 的频道之一)帮助提交游戏信息、图片和中心。
+
+### 标记您的帖子
+
+- 创建帖子时,您可以选择几个标签来标记您的请求。每个标签将表明所提出的请求类型。
+ - 游戏信息 - 用于编辑游戏标题、发行日期、开发商、发行商和类型。请参阅上文 [游戏信息](#游戏信息) 部分。
+ - 游戏图片 - 用于编辑图标、封面和截图。请参阅 [游戏图片](#游戏图片) 部分。
+ - 中心更新 - 用于编辑中心和类似游戏。请参阅 [中心与类似游戏](#中心与类似游戏) 部分。
+ - 成就类型 - 用于提交缺乏进度标注的游戏的进度计划,使游戏能够授予通关奖励。请参阅下文 [成就类型](#成就类型) 部分。
+ - Challenge League - 用于与 Challenge League 活动相关的提交。请参阅 [Challenge League](#challenge-league) 部分。
+- 元标签:
+ - Open - 表示帖子仍在进行中,请求尚未完成。
+ - Complete - 表示帖子已获批,更改已应用到网站。
+ - Denied - 表示帖子被拒绝,原因可能是虚假信息、质量不足或帖子内容无关。
+ - Closed - 表示帖子已关闭,您将无法在这些帖子上评论。
+ - Discussion - 表示有持续讨论的帖子,预计不会很快关闭。
+
+### 发帖
+
+- 提供游戏页面的链接。
+- 提交开发商、发行商和类型信息时,如存在请记得也链接中心。
+- 也链接任何额外的中心或相关游戏请求,而不是仅仅命名它们。
+- 除了列出中心链接外,您还可以提供中心 ID 列表(页面 URL 中看到的数字),用逗号或空格分隔。
+- 对游戏类型要非常具体,将网球或摔跤游戏仅标为 "Sports" 在存在这些运动的中心时不是好的做法。
+- 仅当游戏尚未有图标时才能提交图标。若有,您必须使用 [Icon Gauntlet](/zh/guidelines/content/achievement-set-revisions#icon-gauntlet)。
+ - 若图标是简单的质量升级,可以有例外。但任何颜色或构图的更改都需要 Icon Gauntlet 投票。
+- 请记住图片应具有适当尺寸,图标为 96x96,尽可能使用上述给定系统截图的标准尺寸。
+- 还请记住图片需要小于 1 MB。
+
+### 成就类型
+
+- 若游戏缺乏进度标注,且集的开发者不活跃(他们不再拥有 Developer 或 Jr. Developer 角色),您可以在清理请求论坛提交计划以标注该集。此类游戏列表可在 [Missing Progression Typing](https://retroachievements.org/hub/25585) 中心找到。
+- 请记得查阅 [进度与通关条件指南](/zh/guidelines/content/progression-and-win-condition-guidelines)。
+- 若您认为集的标注不正确,或集的开发者仍然活跃,请改为向 [QATeam](https://retroachievements.org/user/QATeam) 发送消息,网站清理无法处理这些报告。
+- 易错过标注的请求也应发送给 QATeam,网站清理同样无法处理。
+
+### Challenge League
+
+- 2023 年活动 Challenge League: The Top 100 包含在清理请求论坛提交游戏信息和图片的某些挑战。
+- 此活动继续作为 [Evergreen Event](https://retroachievements.org/viewtopic.php?t=25332) 提供。
+- 相关挑战来自 KingS1zzle(五月)和 Soulsderfuchs(八月)。更多信息请参阅 [原主题](https://retroachievements.org/viewtopic.php?t=19615)。
diff --git a/docs/zh/guidelines/content/games-with-parallel-releases.md b/docs/zh/guidelines/content/games-with-parallel-releases.md
new file mode 100644
index 00000000..01027f44
--- /dev/null
+++ b/docs/zh/guidelines/content/games-with-parallel-releases.md
@@ -0,0 +1,32 @@
+---
+title: 并行发行游戏
+description: 在 RetroAchievements 上处理并行发行游戏的指南,包括如何创建新成就集以及如何修订当前成就集。
+---
+
+# 并行发行游戏
+
+部分游戏有多个版本同时并行发行,旨在相互配合,核心上仍是同一款游戏,但提供不同的游戏体验。例如:主线宝可梦游戏。
+
+::: tip 仅限零售游戏
+本政策仅适用于授权零售游戏。其他类别的游戏,如改版,除非存在显著差异并经开发者合规团队批准,否则不得为并行发行创建独立集。
+:::
+
+[[toc]]
+
+## 它们可以拥有哪些集?
+
+- 每个版本应有自己的集。
+- 每个版本的集应有不同的作者。
+- 每个版本的集必须彼此不同,同时仍覆盖所有可用内容,通过独特且富有创意的成就突出游戏之间的差异。
+- 在本政策生效前已合并为一个基础集的版本集可保持合并。
+
+## 我们可以拆分现有集吗?
+
+若游戏当前有合并的基础集,在满足以下要求的情况下允许拆分:
+
+- 合并基础集的作者应优先选择其作品将归属哪个版本。
+ - 若无法再联系,在提出拆分计划时使用最佳判断,注意可能表明偏好的任何书面记录。
+- 合并基础集中的版本特定成就应在拆分时随作者身份完整转移到另一版本。
+- 拆分计划必须经开发者合规团队批准,并听取 QA-Maintainers 团队的意见。
+- 必须制定并获批关于如何处理已获得合并集成就的玩家解锁的满意计划。
+- 必须通过标准修订投票。
diff --git a/docs/zh/guidelines/content/genre-definitions.md b/docs/zh/guidelines/content/genre-definitions.md
new file mode 100644
index 00000000..47c94101
--- /dev/null
+++ b/docs/zh/guidelines/content/genre-definitions.md
@@ -0,0 +1,129 @@
+---
+title: 类型定义
+description: RetroAchievements 使用的游戏类型定义。
+---
+
+# 类型定义
+
+本页将定义 RetroAchievements 游戏页面上使用的所有主要类型。子类型也可能在未来添加。
+
+[[toc]]
+
+## 动作冒险
+
+- 将动作游戏的技能型游戏性与冒险游戏的解谜和探索元素相结合
+- 游戏性侧重于环境/环境互动和探索
+- 不要与以下混淆
+ - 动作:动作完全侧重于身体技能,没有解谜/探索
+ - 冒险:冒险完全侧重于解谜/探索,几乎不需要身体技能
+ - 动作 RPG:属性在动作 RPG 中扮演更重要的角色,并显著影响动作游戏性(如更高伤害输出)
+
+## 动作
+
+- 侧重于基于身体技能的游戏性
+- 挑战玩家的手眼协调、反应、反应时间等
+- 不要与以下混淆
+ - 动作冒险:动作冒险包含解谜或探索元素,而动作仅侧重于基于技能的游戏性
+ - 街机:街机游戏更简单、更短,游戏会话更明确,围绕一两个核心机制
+ - 平台:两种类型都需要技能,但平台游戏更侧重于移动和穿越充满障碍的环境
+
+## 冒险
+
+- 故事/叙事导向的游戏
+- 具有解谜和/或探索元素
+- 不要与以下混淆
+ - 动作冒险:动作冒险包含基于技能的游戏性,而冒险仅侧重于解谜/探索元素
+
+## 街机
+
+- 简单的动作/基于技能的游戏性
+- 通常有明确的关卡、生命和数字分数
+- 不要与以下混淆
+ - 动作:动作游戏更大、更复杂,而街机游戏在范围和机制上更小
+
+## 桌游和卡牌
+
+- 遵循与实体桌面游戏类似格式或共享元素的游戏
+
+## 教育
+
+- 侧重于教授传统学科(如语言和数学)或一般生活技能的主题知识的游戏
+
+## 格斗
+
+- 一对一、近战格斗游戏性
+- 技能导向,要求玩家掌握攻击和移动(进攻和防守);通常有特殊招式和/或连击
+- 不要与以下混淆
+ - 清版动作:在清版动作中,玩家面对大量比玩家弱得多的敌人,而在格斗游戏中,玩家面对势均力敌的对手(数量和技能上)
+ - 体育(格斗):格斗体育游戏旨在进行更真实的格斗,具有更明确的、针对每种运动的规则
+
+## 恐怖
+
+- 旨在吓唬或使玩家不安的游戏,或基于[恐怖小说](https://en.wikipedia.org/wiki/Horror_fiction)元素
+- 至少通过视觉、叙事或氛围实现;游戏性可用于强化“恐怖/恐惧”基调,但不是必需的
+
+## 文学
+
+- 仅由文字或阅读组成、几乎没有互动元素的游戏
+- 不要与以下混淆
+ - 视觉小说:视觉元素和/或声音在 VN 中扮演更大、更整合的角色,而文学以书籍式或文本转储格式呈现
+
+## 平台
+
+- 要求玩家在两点之间导航、穿越障碍、环境或敌人的游戏
+- 侧重于精确的、基于技能的移动,包括奔跑、跳跃、攀爬等
+- 不要与以下混淆
+ - 动作:虽然平台基于动作,但与其他动作游戏相比,它更侧重于穿越环境和障碍的移动
+ - 跑射:跑射包含平台元素,但使用射击作为克服敌人和障碍的重要组成部分,而非移动
+
+## 解谜
+
+- 挑战与解谜和解决问题相关的技能的游戏,如逻辑和模式识别
+- 主要侧重于解谜的机械方面;故事元素要么是游戏性的次要,要么不存在
+- 不要与以下混淆
+ - (动作)冒险:在(动作)冒险游戏中,解谜整合在故事或环境中;解谜游戏专门侧重于解谜游戏性
+ - 策略:策略侧重于横向思维,涉及更复杂的战术决策。解谜游戏规则和机制更简单,游戏性更直接,侧重于逻辑思维。
+
+## 竞速
+
+- 玩家在各种赛道和对手周围以速度竞赛的载具游戏
+
+## 节奏
+
+- 挑战玩家节奏感的音乐游戏
+- 游戏性围绕玩家输入与音乐轨道的同步,侧重于精确或准确
+
+## 角色扮演游戏
+
+- 围绕角色或角色队伍的发展以及其属性或能力的成长的游戏
+- 角色有明确的等级和属性(如力量、魅力等),影响角色的游戏性(如对敌人的伤害或说服另一角色的能力)
+- 不要与以下混淆:
+ - 策略:两者都涉及管理角色,但策略涉及管理多个有些相似的单位,而 RPG 涉及管理少数独特角色
+
+## 射击
+
+- 侧重于远程武器的动作导向游戏
+- 最常见的是枪,但可以包括任何远程武器,如手榴弹或弓
+
+## 模拟
+
+- 旨在模拟现实生活活动或主题的游戏
+- 尽管真实程度各不相同,但在游戏性方面仍应类似于它所代表的活动/主题
+- 不要与以下混淆:
+ - 动作/街机:模拟游戏性与主题高度相关,而动作或街机通常与之无关。如果游戏的主题或前提可以轻松切换而游戏性保持不变,则可能是动作或街机游戏。如果您无法在不完全改变游戏性的情况下改变主题,则可能是模拟游戏。
+
+## 体育
+
+- 基于现实生活运动或身体休闲活动的游戏
+
+## 策略
+
+- 挑战与规划、分析、后勤和/或战术思维相关技能的游戏
+- 尽管有明确的“胜利”状态,但有多种方式可以达到;游戏决策是开放式的
+- 不要与以下混淆:
+ - 解谜:解谜游戏规则和机制更简单,游戏性更直接,侧重于逻辑思维。策略侧重于横向思维,涉及更复杂的战术决策。
+ - 角色扮演游戏:两者都涉及管理角色,但 RPG 涉及管理少数独特角色,而策略涉及管理多个有些相似的单位
+
+## 其他
+
+- 不适合任何其他类型类别的游戏
diff --git a/docs/zh/guidelines/content/hash-labels.md b/docs/zh/guidelines/content/hash-labels.md
new file mode 100644
index 00000000..7a5626eb
--- /dev/null
+++ b/docs/zh/guidelines/content/hash-labels.md
@@ -0,0 +1,109 @@
+---
+title: 哈希标签
+description: 本指南涵盖为链接到成就集的 ROM 添加标签,包括标签类型、图片标签和示例。
+---
+
+# 哈希标签
+
+链接到成就集的每个 ROM 必须清晰识别和标注。这些标签帮助玩家了解哪些游戏版本兼容,以及是否有他们可以使用的翻译补丁、错误修复、外观改版、生活质量改版等。
+
+[[toc]]
+
+## 支持的游戏文件信息
+
+- RA 哈希:查看 [游戏识别](/zh/developer-docs/game-identification) 了解更多。这些会在 `Manage Hashes` 中自动出现。
+- 文件名 - 文件名应作为描述输入。这些通常是自动的,但可能需要一些调整。
+- 标签 - 您可以使用下面列出的标签,使用图片的文件名(无扩展名)。
+- 补丁 URL - 链接到 [RAPatches](https://github.com/RetroAchievements/RAPatches) GitHub 仓库中的 .zip 或 .7z 文件。
+- 资源页面 URL - 链接到特定的 No Intro、Redump、RHDN、SMWCentral、itch.io 等页面。
+
+## 图片
+
+以下用于保存组织或合集:
+
+| 图片 | 使用的标签 | 说明 |
+| ------------------------------------------------------------------------------------ | ----------- | ------------------------------------------------ |
+|  | `nointro` | 卡带游戏的标准 |
+|  | `redump` | 光盘游戏的标准 |
+|  | `fbneo` | 主要用于街机 |
+|  | `wozaday` | 干净的 Apple II 转储 |
+|  | `4amcrack` | 用于 Apple II。 |
+|  | `cleancpc` | Amstrad 保存项目 |
+|  | `neokobe` | 用于 PC-8001 和 PC-8801 |
+|  | `lostlevel` | 专门为 RetroAchievements 哈希验证制作的 DAT 项目 |
+|  | `rapatches` | 当哈希需要托管在 RAPatches 上的补丁时使用 |
+|  | `mamesl` | MAME Software List。 |
+|  | `tosec` | 用于各种平台 |
+|  | `goodtools` | 已停止的集合,也包含不良转储。尽可能避免 |
+|  | `nongood` | 接替 GoodTools。也应尽可能避免 |
+
+以下用于特定网站:
+
+| 图片 | 使用的标签 | 说明 |
+| -------------------------------------------------------------------------------------------- | --------------- | ----------------------------------------------- |
+|  | `atariage` | 自制游戏热门网站 |
+|  | `baddesthacks` | 有问题的改版网站 |
+|  | `egg` | 从 Project Egg 购买的 ROM,通常为日本 PC 游戏。 |
+|  | `gamebanana` | PS1、PS2、PSP、GC 等改版/mod 网站 |
+|  | `github` | 用于托管在 GitHub 上的改版、自制等 |
+|  | `gog` | 从 GOG.com 购买的 ROM - 可能仅用于 DOS 哈希 |
+|  | `itchio` | 自制游戏热门网站 |
+|  | `metconst` | 银河战士改版仓库和社区 |
+|  | `moddb` | 较新主机/PC 改版/mod 热门仓库 |
+|  | `pokecommunity` | 宝可梦改版仓库和社区 |
+|  | `rhdc` | 超级马里奥 64 改版热门仓库。 |
+|  | `romhackplaza` | 较新的改版仓库和社区 |
+|  | `steam` | 从 Steam 购买的 ROM。 |
+|  | `smwcentral` | 超级马里奥世界改版热门仓库。 |
+|  | `rhdn` | ROM 改版热门仓库 |
+
+以下为通用标签:
+
+| 图片 | 使用的标签 | 说明 |
+| ----------------------------------------------------------------------------------------- | ------------- | ---------------------------------- |
+|  | `main` | 有时用于显示集开发者使用的主要 ROM |
+|  | `atomiswave` | Atomiswave 街机游戏通用标签 |
+|  | `homebrew` | 自制游戏通用标签 |
+|  | `mdplus` | 使用 MD+ 补丁的 ROM 通用标签 |
+|  | `msu1` | 使用 MSU-1 补丁的 ROM 通用标签 |
+|  | `naomi` | NAOMI 和 NAOMI 2 街机游戏通用标签 |
+|  | `snesmini` | |
+|  | `offlinelist` | |
+
+## 示例
+
+### Deja Vu: A Nightmare Comes True (NES/Famicom)
+
+#### Manage Hashes
+
+
+
+- 第一个哈希是 No Intro 验证的游戏瑞典语版本。
+- 第二个哈希是应用了 Uncensored 补丁的游戏美国版本。描述的完整文本是 `Deja Vu (USA) (Uncensored) (v1.0) (usertheloset).nes`,遵循 [RAPatches 命名规范](https://github.com/RetroAchievements/RAPatches#naming-convention)。使用的标签是 `nointro` 和 `rapatches`。
+- 第三个哈希是 No Intro 验证的游戏日文版本。
+- 第四个哈希是 No Intro 验证的游戏美国版本。
+
+在此页面上,支持的游戏文件按 MD5 哈希的字典顺序排列。
+
+每个支持的文件可以通过点击同一行的 "Edit" 单独编辑:
+
+
+要查看大多数用户将看到的效果,请前往游戏条目页面并点击 "Supported Game Files。"
+
+#### Supported Game Files
+
+
+
+如下所示,`nointro` 和 `rapatches` 被替换为相应的图片,来自 "Patch URL" 字符串的文件链接方便地添加在相应哈希下方。在此页面上,支持的游戏文件按文件名的字典顺序排列。
+
+
+
+### Suikoden (PlayStation)
+
+我们将跳过此游戏的 manage hashes 示例。让我们直接前往游戏条目页面上的 "Supported Game Files":
+
+
+
+标有 `redump`、`rhdn` 和 `rapatches` 的哈希需要 romhacking.net 和 RAPatches 仓库中都可用的补丁。
+
+
diff --git a/docs/zh/guidelines/content/player-compatibility-testing.md b/docs/zh/guidelines/content/player-compatibility-testing.md
new file mode 100644
index 00000000..7d2d6901
--- /dev/null
+++ b/docs/zh/guidelines/content/player-compatibility-testing.md
@@ -0,0 +1,69 @@
+---
+title: 玩家兼容性测试
+description: 描述玩家在 RetroAchievements 上为主要成就集进行额外哈希兼容性测试的流程。
+---
+
+# 玩家兼容性测试
+
+向集添加额外哈希支持的最大障碍是测试所需的时间。本文档解释了玩家如何请求批准进行哈希兼容性测试。链接到集的所有哈希必须能够解锁集的所有成就。
+
+## 流程概述
+
+有兴趣进行新哈希测试的玩家应通过网站私信联系集维护者,请求进行兼容性测试。集维护者是集上作者的任何活跃开发者。若所有集作者均不活跃,[QATeam](https://retroachievements.org/user/QATeam) 为集维护者。
+
+若集维护者同意进行兼容性测试,他们将链接测试哈希,标记为“未测试”,并将请求者指定为“测试者”,以便测试开始。然后,测试者将负责完成集维护者要求的测试。
+
+测试者需要在集维护者确定的时间框架内精通或完成集。测试者应尽可能在每项成就之前创建存档,尤其是任何未能触发的成就。测试者应通过网站消息直接向集维护者报告问题,若使用测试哈希则不得创建工单。当且仅当测试者精通或完成成就集时,测试哈希将被标记为“兼容”。其补丁随后将添加到 RAPatches。哈希将被视为已支持。
+
+## 福利
+
+测试者将保留其解锁的任何成就。测试者还可以获得通关、完成和精通积分。
+
+## 限制与约束
+
+以下限制和约束适用:
+
+- 集维护者可自行决定拒绝任何请求。
+- 集维护者可自行决定终止兼容性测试。
+- 测试者必须使用集维护者告知的模拟器和核心。
+- 集维护者将为测试者完成集设定合理的时间限制。
+- 集维护者拥有添加额外测试者的唯一决定权。
+- 集维护者可自行决定设定额外要求。
+
+### 步骤 1 - 玩家的请求
+
+玩家在请求兼容性测试的第一条消息中必须包含以下信息:
+
+- 简要说明为何认为应将哈希添加到集。
+- 补丁来源的链接。
+- 告知集维护者打算精通或完成集。
+
+### 步骤 2 - 集维护者的条件
+
+若集维护者有兴趣支持测试,他们应以以下信息回复玩家:
+
+- 确认愿意允许兼容性测试。
+- 测试必须完成的日期。集维护者可自行决定更新此日期。
+- 他们想要的任何其他限制或要求,本文档未另行说明的。
+
+### 步骤 3 - 玩家的同意
+
+若玩家同意集维护者的条款,他们告知集维护者接受测试责任。
+
+### 步骤 4 - 集维护者链接测试哈希
+
+集维护者将链接哈希,标记为“未测试”,并将“测试者”角色分配给请求者。
+
+### 步骤 5 - 测试哈希
+
+测试者在兼容性测试期间将执行以下操作:
+
+- 将完成兼容性测试作为 RetroAchievements 上的首要任务,将大部分游戏时间用于测试。
+- 尽可能在每项成就之前创建存档。
+- 按集维护者要求尝试获得集中的每项成就。集维护者可能要求精通或完成。
+- 发现不兼容成就时立即通过网站消息告知集维护者。玩家将负责向集维护者提供他们要求的任何存档,以便修改成就逻辑以实现兼容性。
+- 集维护者可自行决定在更新逻辑后要求更多测试。测试者必须在整个测试过程中遵循集维护者的指示。
+
+### 步骤 6 - 测试完成
+
+当测试者完成集维护者要求的所有内容时,测试将被视为完成。集维护者将决定是否正式支持测试哈希。若支持,集维护者必须通过 Discord 服务器上的 RAPatches 论坛或通过向 RAPatches GitHub 仓库提交拉取请求提交补丁。补丁添加到仓库后,必须更新哈希描述、标签和补丁 URL。
diff --git a/docs/zh/guidelines/content/progression-and-win-condition-guidelines.md b/docs/zh/guidelines/content/progression-and-win-condition-guidelines.md
new file mode 100644
index 00000000..83e8126e
--- /dev/null
+++ b/docs/zh/guidelines/content/progression-and-win-condition-guidelines.md
@@ -0,0 +1,201 @@
+---
+title: 进度与通关条件指南
+description: 为 RetroAchievements 集中的成就分配进度和通关条件的指南。了解如何对不同类型的成就进行分类以标记游戏已通关,以及针对各种类型的具体示例。
+---
+
+# 进度与通关条件指南
+
+进度和通关类型条件分配给集中的成就,用于 designate 游戏何时已通关。当以下所有陈述为真时,游戏被视为已通关:
+
+1. 所有进度类型成就已获得(如有)。
+2. 任何通关类型成就已获得(如有)。
+
+核心集的标注在集发布时是必需的。子集不应标注。
+
+[[toc]]
+
+## 如何为成就添加类型
+
+- 对于***单个成就***,您可以在 RA 网站上该成就页面的开发者面板中更改类型。
+- 对于***多个成就***同时,在 RA 网站上游戏页面的开发者面板中选择 **Manage Core Achievements** 或 **Manage Unofficial Achievements**,然后勾选给定类型的所有成就的复选框,点击 **Set Selected to Progression** 或 **Set Selected to Win Condition**。
+- 截至此次更新,RA_Integration 中无法进行标注,因此无法通过模拟器完成。
+
+## 进度类型条件
+
+### 进度条件:
+
+- 标记集中稳定进度的成就。通关后内容通常不是进度。
+- 假设未使用漏洞/利用,则不可错过。
+
+### 非进度
+
+以下类型的成就*不*被视为进度类型标注:
+
+- 可选内容
+- 更高难度
+- 支线任务
+- 收集品
+- 挑战
+- 彩蛋
+- 可能错过的故事,包括结局变化。
+
+## 通关条件
+
+- 标记游戏结束的成就。坏结局通常不是真正的结局。
+- 有些游戏可能有多个通关条件,在这种情况下,获得其中任何成就(加上所有进度)即标记游戏已通关。
+- 其他可能只有一个,仍应标记为通关条件以便用户阅读。
+- 在某些情况下,没有单一通关条件,例如进度可以任意顺序完成的解谜游戏。在这些情况下,获得所有进度成就即标记游戏已通关。
+
+## 进度类型
+
+### 标准
+
+#### 线性进度
+
+- 逐关游戏时遇到的内容。
+- 示例:[Prince of Persia](https://retroachievements.org/game/257) - 每关按顺序完成游戏。
+
+#### 分组
+
+- 关卡分组在一起,而不是有单独的成就。
+- 示例:[Lemmings](https://retroachievements.org/game/1798) - 每 5 关奖励成就。
+
+#### Boss
+
+- 作为故事里程碑的 Boss 战。
+- 示例:[Spyro: Year of the Dragon](https://retroachievements.org/game/11267) - Buzz、Spike 和 Scorch 是能够进度并击败 Sorceress 的强制 Boss 战。
+
+#### 关键物品/事件
+
+- 收集重要物品、到达下一个地点或见证关键故事事件。
+- 示例:[Final Fantasy](https://retroachievements.org/game/1449) - Sleeping Prince 和 Flotation 等重要事件作为游戏其他 Boss 进度之间的故事里程碑。
+
+### 非标准进度
+
+#### 合集
+
+- 其中所有游戏具有同等重要性,因此需要全部完成才能标记合集已通关。
+- 照常为所有单独游戏标记进度。
+- 通关条件必须改为标记为进度。
+- 示例:[Final Fantasy Origins](https://retroachievements.org/game/11332) - Scions and Sinners 和 True Emperor of Hell 均标记为进度。
+
+#### 预期跳过
+
+- 有些游戏包含允许在不使用 Bug 或利用的情况下跳过关卡的功能。在这些情况下,可跳过的关卡不得标记为进度,因为游戏可以在没有它们的情况下通关。
+- 示例:[Super Mario Bros.](https://retroachievements.org/game/1446) - 因为可以传送到不同关卡,无法将任何关卡标记为进度。Saved The Girl 标记为通关条件。
+
+#### 有限范围/内容极少
+
+- 有些游戏非常简单,或内容极少,进度与精通之间的差异很小。如果进度清晰,照常标记。否则,将每个成就标记为进度条件。
+- 示例:[Dice of Fate](https://retroachievements.org/game/19577) - 这是一个骰子模拟器。
+
+#### 多种游戏模式
+
+- 首次启动游戏时可用的所有非无限和非限制模式都标记了进度条件。
+- 这些游戏模式具有同等重要性,类似于合集中的单独游戏。任何通关条件应改为标记为进度。
+- 无限模式按定义持续到失败,因此缺乏进度且不包含。
+- 限制模式以某种方式限制玩家,最常见的是时间或回合限制。它们可能看似包含进度,但限制作为额外挑战,使这些成就成为不应标记的非进度。
+- 示例:[Kirby Super Star](https://retroachievements.org/game/814) - Bye Bye Birdy、What A Meta-Knightmare、Like A Gentle Breeze、Back On Solid Ground 和 Balance Restored...? 标记为进度。
+
+#### 子集
+
+- 这些本质上专注于挑战、限制或游戏的其他非标准玩法。
+- **请勿**标记任何进度或通关条件;这已在核心集中涵盖。
+
+### 多种可能的通关条件
+
+#### 多种结局
+
+- 通过正常游戏在游戏结束时发生的结局应标记为通关条件。
+- 需要可选内容(如收集品)的替代结局是非进度,不应标记。
+- 提前结束故事线的替代结局也是非进度,不应标记。
+- 示例:
+ - [Knuckles Chaotix](https://retroachievements.org/game/10023) - Bad Ending 和 Good Ending 均标记为通关条件。结局由可选收集品决定。
+ - [Oddworld: Abe's Oddysee](https://retroachievements.org/game/11295) - Bad Ending 和 Good Ending 均标记为通关条件。结局由拯救 NPC 决定。
+ - [Sigma Star Saga](https://retroachievements.org/game/5179) - One is the Loneliest Number 和 Show Me This Planet 标记为通关条件。结局由仅改变最终过场动画的游戏操作决定。
+ - [Cave Story MD](https://retroachievements.org/game/13943) - Coward 未标记为进度或通关,因为它提前结束游戏且未解决故事。Shtuff Happens 和 Curse Broken 均标记为通关条件。
+ - [Castlevania: Dawn of Sorrow](https://retroachievements.org/game/5522) - The Dark Lord Returns 未标记为进度或通关,因为它提前结束游戏且未解决故事。No Dark Lord Here 标记为通关条件。
+ - [Shadowgate](https://retroachievements.org/game/1499) - Uh... What? 未标记为进度或通关,因为它导致玩家死亡。Talimar the Black 标记为通关条件。
+ - [Sonic Adventure 2](https://retroachievements.org/game/3417) - Final Story
+ - [Zero Escape: Nine Hours, Nine Persons, Nine Doors](https://retroachievements.org/game/999) - Plaudite! Acta Est Fabula!
+ - [Live-A-Live](https://retroachievements.org/game/1411) - Live A Live 需要可选角色招募。仅 Demon King No More 标记为通关条件。
+ - [Powerslave | Exhumed](https://retroachievements.org/game/9989) - King of the World 需要可选收集品。仅 Time to Rest 标记为通关条件。
+ - [Sonic 3 & Knuckles](https://retroachievements.org/game/4874) - Hyper Sonic Victory、Hyper Knuckles Victory 和 Super Tails Victory 均需要可选收集品。Sonic Victory、Knuckles Victory 和 Tails Victory 均标记为通关条件。
+
+#### 多种难度
+
+- 应为集支持的最低难度标记进度和通关条件。
+- 如果难度成就不叠加(例如普通或更高),对于从新存档可用的每种难度,将每个游戏通关成就标记为通关条件。
+- 仅在较低难度可用的结局不被视为进度。
+- 示例:
+ - [Devil May Cry 3](https://retroachievements.org/game/2936) - Leave Me And Go 和 Normal Mode 标记为通关条件,因为简单和普通在第一次通关时可用。
+ - [Resident Evil 3: Nemesis](https://retroachievements.org/game/11265) - Carlos, My Love! 和 Is That You?! 是通关条件,简单难度未被集覆盖。
+ - [Streets of Rage 3](https://retroachievements.org/game/54) - The End? 未标记为进度或通关,因为简单难度提前结束游戏。Unfinished Business、Time's Up 和 The End! 均为通关条件。
+
+#### 多种故事线/角色
+
+- 有些线性游戏有仍然是标准通关一部分的尾声或扩展故事。这些解决了故事线,应标记为通关条件。
+- 有些游戏在故事解决后可能有无限的通关后内容。此可选内容不应标记为进度或通关条件。
+- 特定版本或发布独有的额外故事内容是进度的一部分。这些将该游戏与其他发布区分开来,应标记为通关条件。在此之前达成的结局应标记为进度。
+- 制作人员名单并不总是意味着故事结束。
+- 有些游戏根据初始角色选择有进度差异。在这些情况下,需要所有起始角色的结局才能通关游戏,因此这些应全部标记为进度条件。
+- 如果角色选择仅影响玩法或能力,每个角色的结局应标记为通关条件。
+- 角色可能各有多个结局。在这些情况下,确保仅标记他们的正常结局,而不是需要额外步骤的结局。
+- 示例:
+ - [EarthBound](https://retroachievements.org/game/264) - Smiles and Tears 标记为通关条件,On a Mission from God 标记为进度条件。
+ - [Resident Evil 2](https://retroachievements.org/game/11245) - No Time to Waste 和 I Have to Find You 标记为通关条件。由于所选角色顺序对整体故事不显著,无法标记进度。
+ - [Shin Megami Tensei: Persona 3 FES](https://retroachievements.org/game/2657) - The Fate of the Sealed 标记为通关条件,Thank You for Everything 标记为进度条件。
+ - [Final Fantasy I & II: Dawn of Souls](https://retroachievements.org/game/762) - Break The Time Loop、To Heck With You! 和 To Arubboth With You! 标记为进度。此版本的游戏扩展了故事线以解决剧情。
+ - [Final Fantasy V: Advance](https://retroachievements.org/game/764) - The True Power of the Void 未标记为进度或通关,因为它是无限游戏中的通关后内容。通关条件是 Warriors of Light。
+ - [Pokemon Gold Version](https://retroachievements.org/game/576) - Battle On the Mountain 未标记为进度或通关,因为它是无限游戏中的通关后内容。通关条件是 Elite Five。
+
+## 值得注意的类型
+
+这些类型通常缺乏标准进度,因此在此有额外指南。它们也可能具有多种游戏模式;有关如何为这些标记进度,请参阅上述指南。
+
+### 街机
+
+使用以下第一个适用的:
+
+- 将为每关通关的成就标记为进度,最后一关为通关条件。
+ - 示例:[Galaga](https://retroachievements.org/game/1701) - Bulletstorm 标记为通关条件。
+- 使用添加新元素(敌人/障碍/机制)或增加难度的最后一关作为进度的最终关卡。
+ - 示例:[Donkey Kong](https://retroachievements.org/game/11943) - 将 150m Finish 标记为通关条件。
+- 使用集开发者的分数成就作为进度,达到最高分为通关条件。
+ - 示例:[Pokemon Pinball: Ruby & Sapphire](https://retroachievements.org/game/789) - 1st Place Ruby、1st Place Sapphire 和 High Roller 标记为进度。
+- 使用游戏内排行榜的高分作为进度。
+
+### 格斗
+
+- 首次启动游戏时可用的所有非无限和非限制模式都标记了进度条件,遵循具有多种游戏模式游戏的规则。
+- 游戏中的任何故事模式必须通关才能通关游戏。
+ - 即使最初不可用,通关游戏也需要。
+ - 故事模式完成应标记为“通关条件”类型,除非另一模式的要求需要通关条件类型来处理该模式内的替代情况,在这种情况下故事完成应标记为进度,例如当没有通用的“通关街机模式”成就,但有一系列“用角色通关街机模式”成就时。
+- 典型的街机式锦标赛或梯子模式应要求用任何角色完成。
+ - 如果这是唯一模式,标记为通关条件。
+ - **注意**:对于完整内容覆盖,集应包含所有街机结局作为精通的要求。
+- 示例:[Soulcalibur II](https://retroachievements.org/game/2982) - Weapon Master (Story) 标记为进度,每个默认角色的 Arcade (Normal or Higher) 标记为通关条件。Time Attack(限制)、Survival(无限)和可解锁模式不标记。
+- 示例:[Street Fighter II: The World Warrior](https://retroachievements.org/game/1192) - 在难度级别 3 或更高用特定角色通关游戏的每个成就标记为通关条件。
+
+### 解谜
+
+- 有些解谜游戏允许以任意顺序玩关卡。在这些情况下,不要标记任何通关条件,仅标记进度。
+- 解谜游戏可能按难度分段关卡。这些作为类别而非相同关卡但更具挑战性,因此在这些情况下更高难度仍然是进度的一部分。
+
+### 节奏
+
+- 通过标准游戏解锁的所有歌曲被视为进度。
+- 不要包含通过高分或连击要求等额外步骤解锁的歌曲。
+
+### 射击游戏(Shmups)
+
+- 如果角色/飞船选择不影响故事线,只需通关一个即可通关游戏。
+- 将每个角色的通关成就标记为通关条件。
+- 不要将角色特定成就标记为进度。
+
+### 体育
+
+- 仅当没有其他游戏模式时,赢得比赛才被视为进度。
+- 应为首次启动时可用的所有非无限模式标记进度。
+- 通过标准游戏解锁的所有锦标赛/赛事被视为进度。
+- 不要包含通过完美比赛等额外步骤解锁的锦标赛/赛事。
diff --git a/docs/zh/guidelines/content/set-plagiarism.md b/docs/zh/guidelines/content/set-plagiarism.md
new file mode 100644
index 00000000..6d9a18a3
--- /dev/null
+++ b/docs/zh/guidelines/content/set-plagiarism.md
@@ -0,0 +1,55 @@
+---
+title: 成就集抄袭
+description: 解释允许的复制类型,澄清某些情况,并建议注明原开发者。
+---
+
+# 成就集抄袭
+
+作为开发者,我们的目标是在可能的情况下为我们开发的每个集提供独特的成就集。有时我们最终会重用另一位开发者已经用于他们自己集的一个或两个想法。作为一个开放社区,鼓励分享和借鉴他人的想法,但是,故意将他人的作品应用于您自己的集是被禁止的,也是对原开发者工作的不尊重。如果集被复制或复制/粘贴,将构成降级理由,直到问题得到解决。这适用于 RetroAchievement 集和第三方平台成就集,如 Xbox Live、PSN、Steam 及其他类似服务。如果您担心您的集违反这些指南,只需向网站上的 DevCompliance 提交收件箱消息,我们会查看。
+
+[[toc]]
+
+## 不可接受的抄袭
+
+### 图标/徽章
+
+成就和精通徽章需要与其他集不同。对徽章进行轻微修改或在现有徽章上加水印是不可接受的,除非是 bonus/subset 精通徽章。差异必须在徽章缩小并排比较时明显。使用来自官方集的任何受版权保护的徽章是被禁止的。
+
+### 标题
+
+成就标题应与其他集不同。在处理多平台移植游戏时,这可能并不总是可行。通用标题和基于游戏内容的标题都是允许的。例如,Green Hill Zone 是 Mega Drive/Genesis、Master System 和 Game Gear 版本《刺猬索尼克》的第一关。此外,该关卡在索尼克系列的后续作品中出现,因此成就标题“Green Hill Zone”在这些集中都是可接受的。
+
+### 设计
+
+成就的设计对社区开放。只要成就徽章和标题不同,您可以使用来自其他集的想法。但是,禁止完全复制另一集的成就列表。
+
+## 可接受的复制
+
+### 描述
+
+成就描述不必独特。描述需要是获得成就的清晰说明,因此描述的变化可能会使成就令人困惑。说“无伤通关游戏”的方式只有这么多。
+
+### Rich Presence/排行榜
+
+复制 Rich Presence 和排行榜是允许的。复制 Rich Presence 时,您应在顶部通过添加一行注明原作者:
+`// RP By Original Dev`
+
+### 逻辑
+
+复制另一成就的逻辑是可接受的。鼓励开发者查看其他集的编码方式并将其纳入自己的集。
+
+### 自我抄袭
+
+您可以将您从一个集创建的任何内容复制到另一个集。但是, preferably 让另一位开发者处理您已创建集的移植。
+
+### 游戏内成就
+
+有些游戏包含随游戏发布的一套游戏内成就。只要它们不是不受欢迎的概念,这些成就中的任何一个都可以使用。
+
+### 代码注释
+
+代码注释可以从另一集复制。注明谁进行了原始内存挖掘是良好实践,但不是必需的。
+
+## 注明出处或经许可复制
+
+使用上述**可接受复制**项目之一时应注明出处。但是,为**不可接受抄袭**项目之一注明出处仍然是抄袭。即使原开发者已许可使用其资源,这样做也是不可接受的。每个集都应包含开发者对现有成就和集的独特创意。您不需要重新发明轮子,只需使其成为您自己的。
diff --git a/docs/zh/guidelines/content/subsets.md b/docs/zh/guidelines/content/subsets.md
new file mode 100644
index 00000000..11859544
--- /dev/null
+++ b/docs/zh/guidelines/content/subsets.md
@@ -0,0 +1,170 @@
+---
+title: 子集
+description: 了解为 RetroAchievements 创建和管理子集,包括故障展示、挑战通关和 DLC 等类型。本指南涵盖命名规范、审批流程以及不同子集类别的示例。
+---
+
+# 子集
+
+[[toc]]
+
+## 什么是子集?
+
+浏览[游戏列表](http://retroachievements.org/gameList.php)时,您会看到某些游戏标题中有 `[Subset]` 标签。这些游戏包含因某种原因在游戏基础集中不可用的成就。子集通常是特定类型挑战通关的归属地。
+
+子集现已通过多集系统完全集成到 RetroAchievements 中。当您加载游戏时,服务器将根据您使用的游戏哈希和个人偏好自动解析要包含的成就集。开发者将集链接在一起,让您无需单独补丁或通关即可同时游玩多个集(如基础集及其奖励内容)。
+
+多集需要最新版本的模拟器:
+
+- RetroArch 1.22.1+
+- PCSX2 2.6+
+- DuckStation 0.1-10530+
+- Dolphin 2512-144+(开发版)
+- PPSSPP 1.19.3-1328+(开发版)
+
+## 多集如何运作
+
+### 集类型
+
+多集系统使用四种技术集类型来确定集之间的关系:
+
+- **Base(基础)**:游戏的主要成就集。默认加载,代表主要内容。
+- **Bonus(奖励)**:链接到基础集的额外成就。当您加载基础集时,根据您的偏好,任何关联的奖励集也可用。
+- **Specialty(专项)**:这些集仍需要自己的补丁 ROM,但也会自动加载基础集和任何奖励集。通常用于挑战通关或替代游戏模式。
+- **Exclusive(独占)**:这些集单独加载,与游戏的其他集不兼容。
+
+### 用户偏好
+
+您可以控制要游玩的子集:
+
+- **全局偏好**:您[设置页面](https://retroachievements.org/settings)上默认提供全站选择退出所有子集的设置。关闭此设置将禁用多集。
+- **每集偏好**:您可以按游戏逐个覆盖全局偏好。若游戏启用了多集,在其游戏页面的集选择标签上,您会找到子集配置按钮。这让您可以选择加入或退出该游戏的子集。
+
+### 哈希兼容性
+
+某些成就集可能与特定游戏哈希(ROM 版本、补丁等)不兼容。服务器将自动从您的模拟器会话中排除不兼容的集。若您正在测试哈希兼容性,您可能有特殊权限查看通常对不兼容哈希隐藏的集。
+
+## 提醒
+
+挑战成就是基础集的默认内容。只有当挑战达到远超典型挑战的极端程度(如全程无伤通关)时,挑战才适合放入子集。子集不应成为因某种原因不完全适合基础集的挑战的倾倒场。
+
+## 子集类型
+
+以下类别描述子集的*内容类型*。创建子集时,您还需要根据子集与基础集的交互方式选择适当的*技术子集类型*(Bonus、Specialty 或 Exclusive):
+
+- 对于大多数可与基础集一起游玩且无冲突的子集,使用 **Bonus**。
+- 对于受益于自己的 Rich Presence 脚本但仍与基础集成就配合的挑战通关或模式,使用 **Specialty**。
+- 对于以会完全与基础集成就冲突的方式根本改变游戏玩法的子集(例如:完全不兼容的内存),使用 **Exclusive**。
+
+### 挑战通关
+
+虽然许多基础集包含大量挑战,但开发者可以选择将贯穿整个游戏通关的挑战添加到子集。这些通常是违背游戏正常玩法的自我挑战。示例:
+
+- [Chrono Trigger - No Level Up](https://retroachievements.org/game/9966) 要求玩家在不升级角色的情况下完成游戏。
+- [EarthBound - Rare Drops](https://retroachievements.org/game/18280) 要求玩家获得敌人的所有稀有掉落。
+- [Final Fantasy - Solo Class](https://retroachievements.org/game/17996) 要求玩家仅使用一个职业完成游戏,但需要用每个职业完成才能精通集。
+- [Super Mario Bros. - 5-Minute Speedrun](https://retroachievements.org/game/23910) 要求玩家在速通社区广泛认可的被视为重大成就的阈值内完成游戏。
+- [Pokemon - Professor Oak Challenge](https://retroachievements.org/searchresults.php?s=Professor+Oak+Challenge) 目前已有多个!此挑战要求玩家在游戏主要剧情点之间捕捉和/或进化所有可能的宝可梦。
+- [Trails in the Sky FC - NG Nightmare](https://retroachievements.org/game/11115) 要求玩家在噩梦难度设置的单一 NG(新游戏)通关中获得 100% 完成度,而非在 NG+ 中携带继承进行。
+
+### 极端或残酷挑战
+
+若普遍认为挑战**过于困难**,它是子集的好候选。然而,仅仅因为成就可能可以编写并不意味着可能可以获得;因此,成就必须仍然可以获得。多难算太难?少数集玩家能够完成的。若您预期获得率低于 1%,可能是极端的。若要求任何人完成成就感觉不合理,可能是残酷的。
+
+- 可被视为极端或残酷的单个成就的好例子是著名的 [Mega Man (NES) 的 Mr. Perfect](https://retroachievements.org/achievement/53290),要求玩家在*整个*游戏中不受伤害完成。
+- 完整子集的好例子是 [Ninja Gaiden | Shadow Warriors (NES) [Subset - Full Game Damageless]](https://retroachievements.org/game/25303)。
+- 不必命名为 Brutal Challenge,但子集计划/任何子集投票中应引用该子集类型。若对挑战是否属于此类有疑问,请联系开发者合规团队快速判断。
+
+### 多人合作集
+
+若成就*需要*多名玩家输入才能解锁,则不能放在基础集中。多人合作集必须要求两名或更多玩家输入控制。成就必须要求多名玩家才能适合此类子集。仅能在多人模式下单人获得成就是不可接受的。
+
+若基础游戏标题较长,此子集类型可缩短。若需要缩短名称,应使用以下优先列表查找选项:"Multiplayer Co-op"、"Multi Co-op" 或 "Co-op"。
+
+### DLC 和扩展包
+
+不常见,但随着我们平台支持的扩展将变得更常见。这些集中的成就专属于游戏的可下载内容或扩展包。示例:
+
+- [Arc the Lad 2 - Arc Arena: Monster Tournament](https://retroachievements.org/game/17001) 作为 Arc the Lad Collection 的奖励光盘发布,需要 Arc the Lad 2 的存档数据才能游玩。
+- [F-Zero X - Expansion Kit](https://retroachievements.org/game/10962) - 成就是游戏 64DD 扩展的专属内容。
+- [Return Fire - Maps o' Death](https://retroachievements.org/game/16851) 是提供游戏额外地图的独立发行。需要原版游戏的存档数据才能游玩。
+
+### 地区差异
+
+若游戏的地区变体差异不足以保证“完整”集,但您不想因其与基础挑战的干扰而将其包含在基础集中,子集可能是展示差异的选项。
+
+### 用户生成内容
+
+若游戏具有允许玩家制作自己内容的功能(如自定义关卡),则子集是包含此类内容的合适场所。示例:
+
+- [Irritating Stick - IrRAtating Custom Courses](https://retroachievements.org/game/20084) 包含由各种 RA 社区成员制作的自定义关卡。
+- [Tony Hawk's Underground - RAdical Custom Goals/Gaps](https://retroachievements.org/game/20476) 包含由各种 RA 社区成员制作的自定义目标和间隙。
+
+### 刷怪会话
+
+若成就涉及过度漫长且令人沮丧的、无意义的刷怪,它们更适合放入子集。包括将角色升级到最高等级、最大化属性、执行荒谬次数的任务等,当这些都不奖励玩家时。好的刷怪会话子集将有强烈、连贯的主题。
+
+- 请注意,刷怪并不自动意味着不适合基础集:奖励玩家的刷怪适合基础集的好例子是 [Final Fantasy IV (SNES) 的 One of a Kind](https://retroachievements.org/achievement/108720),需要高度依赖 RNG 的刷怪来换取 said 盔甲。
+
+### 故障展示
+
+故障可能对游戏内存产生不可预测的影响,可能导致某些成就的不当行为,因此不适合基础集。然而,许多故障可以增添有趣或有趣的游戏玩法、效果或只是愚蠢的动作,可能值得在基础集之外突出展示。一些例子是 [Final Fantasy VII (PlayStation) 的 Replica](https://retroachievements.org/achievement/83776)、[Pokemon - Red and Blue Versions (Game Boy) 的 Rare Candy Addiction](https://retroachievements.org/achievement/57643) 和 [Sonic 3 & Knuckles (Genesis) 的 Lock-Off the Lock-On](https://retroachievements.org/achievement/228498)。
+
+### 检查点挑战
+
+子集要求在每个检查点之前收集或执行漫长的刷怪,检查点清晰分布在整个游戏中。此类子集不应严重前置,意味着若大部分成就要在第一个检查点之前完成,可能是较差的子集候选。好例子是大多数主系列 Pokemon Professor Oak Challenge 子集或 [Zelda II: The Adventure of Link - Level-1 Runs](https://retroachievements.org/game/10311)。
+
+### 永久死亡挑战
+
+限制性挑战,其中玩家单位或等效物若在游戏中死亡、过期或以某种方式失败则不得再次使用。(示例:Pokemon Nuzlocke 挑战或永久死亡不是游戏特征的策略 RPG)。注意:这些挑战可能需要在游戏或改版中有支持才能与当前工具包一起实现。
+
+### Bonus(奖励)
+
+奖励集是包含因各种原因不适合游戏基础集的各种成就的集。这些可能是超出欢迎范围的极其困难的挑战、除了变强或收集一切之外没有特定目的的痛苦刷怪、故障展示,或许多其他不被视为基础集好成就的东西。
+
+- 奖励集**不应**命名为 `[Subset - Bonus]`。相反,选择与子集所属游戏主题相符的名称。
+- 奖励集多样性本质的好例子是 Suikoden Bonus Set,在单个子集中包含各种挑战通关、稀有掉落和极端挑战。
+
+::: warning 提示
+选择与游戏主题相符的名称。
+:::
+
+## 命名规范
+
+为防止玩家混淆,所有子集都有特定的命名规范:
+
+- **多人合作集**:必须在基础游戏标题后跟 `[Subset - Multiplayer Cooperative]`。例如:`Contra [Subset - Multiplayer Cooperative]`。
+- **挑战通关**:必须在基础游戏标题后跟 `[Subset - 挑战名称/类型]`。例如:`Chrono Trigger [Subset - No Level Up]` 和 `Pocket Monsters Midori [Subset - Monotype Challenge]`。
+- **DLC 和扩展包**:必须在基础游戏标题后跟 `[Subset - DLC/扩展包名称]`。例如:`Return Fire - [Subset - Maps o' Death]` 和 `F-Zero X [Subset - Expansion Kit]`。
+- **用户生成内容**:虽然不强制要求,但在子集标题中包含 `RA` 一直是命名内容的有趣方式。
+- **奖励集**:必须在基础游戏标题后跟 `[Subset - Bonus]`。例如:`Castlevania - [Subset - Bonus]` 和 `Darkwing Duck - [Subset - Bonus]`
+
+## 审批与认领
+
+以下子集类型已预批准:
+
+- 多人合作
+- 故障展示
+- 用户生成内容
+- 挑战通关:低等级游戏/不升级通关
+- 挑战通关:单人职业/单属性通关
+- 挑战通关:官方 Pokemon 主系列发行的 Professor Oak Challenge
+
+其他类型的子集,包括先前已预批准的 Bonus,必须在认领前经开发者合规批准。要请求批准,请[在此处](https://retroachievements.org/createmessage.php?t=DevCompliance)发送站内消息,通过解决以下要点详细说明您的提案。
+
+- _解释为什么这不适合基础集:_
+- _解释尽管不适合基础集为什么仍然合适:_
+- _提议的成就有多难?尽可能详细解释:_
+- _提出解释集将是什么样子的全面集计划:_
+
+请以非游戏专家也能理解的方式回答上述问题。若涉及分数或时间,请提供几个明确示例说明集将要求什么。
+
+此外,向游戏添加子集被视为其基础集的修订。这意味着在获得 [Developer Compliance](https://retroachievements.org/createmessage.php?t=DevCompliance) 批准后,认领前可能需要修订投票,如下所述:
+
+| 作者身份¹ | 审批与认领流程 |
+| :--------------- | :----------------------------------------------------------------------------------------------------------------------------------------- |
+| 基础集作者 | • 若集的所有活跃作者批准,不需要计划和修订投票
• 视为免费认领 ² |
+| 无核心集作者身份 | • 集计划必须发布在基础集的论坛主题中,必须经过标准修订投票
• **不**视为免费认领
• 若同时为集制定修订和子集计划,两个认领将计为一个 |
+
+¹ 在有多个修订作者的情况下,使用表格中最严格的规则集。示例:若有子集协作且任何子集作者不是核心集作者,使用 `无核心集作者身份` 规则。
+
+² 目前,必须通过 Discord 或[向 RAdmin 发消息](https://retroachievements.org/user/RAdmin)联系管理员将认领标记为免费。作为礼貌,请仅在您确实需要认领槽位或预期开发周期较长时请求此操作。
diff --git a/docs/zh/guidelines/content/unwelcome-concepts.md b/docs/zh/guidelines/content/unwelcome-concepts.md
new file mode 100644
index 00000000..e3111eb4
--- /dev/null
+++ b/docs/zh/guidelines/content/unwelcome-concepts.md
@@ -0,0 +1,209 @@
+---
+title: 不受欢迎的概念
+description: 概述成就设计中不鼓励或禁止的概念的指南,如过度依赖 RNG、无意义的刷怪以及需要利用漏洞的成就,并在适用时提供例外情况。
+---
+
+# 不受欢迎的概念
+
+鼓励开发者在成就设计中发挥创意,但有些概念**不**欢迎用于成就。以下是已被视为不受欢迎概念的列表。请注意存在一定的灵活空间,因此已提供了一些规则例外。如有疑问,请咨询 [Developer Compliance](https://retroachievements.org/createmessage.php?t=DevCompliance)。
+
+[[toc]]
+
+## 如何举报成就为不受欢迎概念
+
+如果您发现符合以下一项或多项标准的成就,可以通过导航到网站上的成就页面并点击描述和作者信息下方的“Report an Issue”链接来举报为不受欢迎概念。按照结果页面上的提示操作。
+
+- 导航到成就页面
+- 点击 `Report an Issue`
+- 在“_The achievement contains an unwelcome concept._”对面点击 `Message DevCompliance` 按钮。将打开发给开发者合规团队的私信。
+- 使用有关不受欢迎概念的详细信息填写模板消息。要具体且详细。细节不足或未能描述为何符合标准的举报将不予考虑。
+- 准备好后点击 `Submit` 按钮。
+
+## 成就刷屏
+
+成就弹出过于频繁是糟糕的设计。例如,既为击败 Boss 又为战斗后获得特定物品解锁成就。
+
+以下情况可接受:
+
+- 使用上述示例:如果击败 Boss 的成就是基于挑战的,例如无伤。这不是仅通过游戏就能保证解锁的。
+- 如果成就可以叠加。
+ - 在普通或更高难度下击败同一 Boss + 在困难难度下击败同一 Boss。
+ - 打开区域中最后一个宝箱 + 打开游戏中所有宝箱。
+
+## 无目的的糟糕表现
+
+为死亡、获得游戏结束或反复失败任务而设立的成就没有必要。
+
+以下情况可接受:
+
+- 许多点击式冒险游戏和视觉小说通常将玩家死亡与故事联系起来,这可能导致玩家否则不会目睹的独特场景。
+- 如果糟糕表现导致幽默或否则有趣的游戏内认可,例如因头部中弹过多而获得头盔。
+
+## 无目的的零努力
+
+例如仅为启动游戏、收集一枚硬币、观看视频等设立的成就。
+
+以下情况可接受:
+
+- 旨在告知玩家成就集中限制的“免责声明”成就。这些应仅在玩家可能在不知情的情况下将自己锁定在多个成就之外时存在。
+- 涉及有趣、历史或有趣的事物。
+
+## 需要利用漏洞
+
+仅通过使用漏洞、利用 Bug 等才能完成的任务的成就不允许在基础集中。漏洞/Bug 是游戏代码中的错误,通常会导致意外行为。例如内存溢出、错误加载的关卡和穿入物体。
+
+以下情况可接受:
+
+- 经 [Developer Compliance](https://retroachievements.org/createmessage.php?t=DevCompliance&s=Glitch%20Approval%20Request%20-%20[Game%20Name]%20-%20[Glitch%20Name%20or%20Description]) 批准,具有历史意义的漏洞和游戏社区中重要且广为人知、易于执行的漏洞是允许的。应明确成就需要漏洞,并用于突出漏洞的重要性或意义。
+ - 包含已批准漏洞的成就必须要求玩家使用漏洞完成某种壮举。仅使漏洞发生而无目的不足,除非激活漏洞本身就是有意义的任务。
+- `[Subset - Glitch Showcase]` 或 `[Subset - Bonus]`。
+
+## 需要两名玩家
+
+需要至少一名其他玩家输入的成就不允许在基础集中。
+
+以下情况可接受:
+
+- `[Subset - Multi]` 集。
+
+## 需要完全完美
+
+需要**长时间任务**的成就,最轻微的错误就会导致挑战失败。尤其是随机性和游戏行为的其他变化使预判行动格外困难的挑战。
+
+以下情况可接受:
+
+- 极限挑战的子集,或典型的 Bonus 集。
+- 敌人或障碍物行为高度确定性或基于模式的游戏。
+- 此类挑战是玩家常见目标或不被游戏社区视为极限挑战的游戏。
+
+## 无意义的过度刷怪
+
+需要漫长、重复任务且不赋予独特游戏内奖励、认可或完成游戏全部内容所必需的成就。
+
+无意义过度刷怪的常见示例:
+
+- 在 RPG 中升级超出通常通关所需,且没有游戏内奖励(如技能或法术)。
+- 获得许多物品副本或金钱,超出正常通关期间通常积累的数量。
+- 收集任意数量的额外生命,当它们与奖励或挑战无关时,例如当它们可由敌人掉落时。
+
+以下情况可接受:
+
+- Bonus 子集或专门批准用于刷怪任务的子集可豁免此政策并实施。
+
+## 无目的的过度依赖 RNG
+
+完全依赖随机性且不服务于目的,尤其是当概率极低时。
+
+以下情况可接受:
+
+- 随机性是主要方面的游戏或迷你游戏。
+
+可接受目的的示例:
+
+- 奖励独家物品(该物品不必对玩家有用)
+- 授予游戏内成就
+- 显示独特对话
+- 播放独特过场动画
+
+## “秘密成就”
+
+玩家无法得知自己在追求什么时。
+
+以下情况可接受:
+
+- 为防止重大剧透,可以使用秘密或故意模糊的成就描述,只要成就是不可错过的进度。
+
+## 过于繁琐的要求
+
+限制或要求无法在描述字符限制内完整表达的成就。玩家应能够直接在模拟器中查看成就要求,而无需访问 RetroAchievements 网站。
+
+:::tip 仅适用于描述
+此不受欢迎概念仅适用于描述。如果描述清晰,但达到成就目标所需的步骤很棘手,成就*不*属于此类。
+:::
+
+- 包含额外限制或要求的成就评论不允许。
+- 不允许需要 pastebin 链接等外部资源。
+- 不允许为适应而过度缩写描述,导致描述无法轻易理解。
+- 您可以使用评论添加游戏术语的额外*澄清*
+ - 示例:指定“无可选技能”的成就可以在评论或论坛中列出什么算作可选。
+ - 示例:街机游戏中“默认”DIP 设置是可接受的。
+
+以下情况可接受:
+
+- 对于具有涉及繁琐要求主题的已批准子集,成就不必在描述中重复这些要求。
+ - 示例:具有大量限制的 RPG 挑战运行不必在每个成就中列出它们。
+ - 如果您认为适用,在提交子集批准任务时务必包含此可能性。
+ - 成就应尽可能对遵循此类主题有所指示。
+- 具有大量可自定义模式的游戏可能难以简洁地指定常见成就所需的设置,并可能依赖某种简写方式来表达这些限制。
+ - 提示:向写作团队请求协助以最佳呈现此类情况。
+
+## 不受欢迎的游戏类型
+
+面对现实吧。有些游戏,或者说“游戏”,不适合成就。以下是通常不适合的游戏类型列表。
+
+- [缺乏游戏性的游戏](#games-that-lack-gameplay)
+- [合集和多卡带](#compilations-and-multi-carts)
+- [测试版、演示版和原型](#betas-demos-and-prototypes)
+- [进行中的改版和自制游戏](#work-in-progress-hacks-and-homebrews)
+
+## 缺乏游戏性的游戏
+
+- 视频、音乐可视化器、点唱机等。
+ - 未经明确批准不会被接受。批准将通过开发者合规投票处理,并需要实施足够有创意的概念。例如:[Game Boy Advance Video Series](https://retroachievements.org/game/11843) 提出了在每集结束时包含排行榜测验的想法。这个独特计划涉及超越仅按开始键的游戏性,因此被批准。
+- 书籍集仍然允许,但必须 worth 0 分。
+
+## 合集和多卡带
+
+如果合集或多卡带包含共享同一主机的游戏,则不允许。例如 6-Pak for Genesis/Mega Drive,包含六款 Genesis/Mega Drive 游戏。
+
+## 测试版、演示版和原型
+
+如果游戏最终有正式发布,则通常不允许,除非有独特内容。仅作为测试版、演示版或原型存在的游戏通常可以,只要它们实际上可玩(有些原型勉强符合)。
+
+## 进行中的改版和自制游戏
+
+开发中的改版和自制游戏通常不允许。允许一些例外,包括:
+
+- 功能完整的改版和自制游戏,意味着早期集能够包含在进一步更新中概念上保持不变的进度和通关条件成就。
+- 开发者明确表示不会再有更新的废弃改版和自制游戏。
+- 超过 2 年未收到任何游戏更新,且超过 1 年没有来自开发者关于项目的新闻或更新的废弃改版和自制游戏。
+
+如有疑问,请向开发者合规确认资格。
+
+## Rich Presence 自定义名称限制
+
+直接显示自定义玩家输入文本的 Rich Presence 被禁止。最常见的例子是直接将玩家输入的角色名或文件名显示到 Rich Presence 中。
+
+此限制有助于防止不当或冒犯性内容在各种网站页面上显示,使 Rich Presence 的审核更易管理,此外还保护玩家隐私,因为玩家可能不知道他们的文本正在公开显示。
+
+## 禁止标题
+
+RetroAchievements 不会批准包含以下内容的游戏的成就集:
+
+- 非法内容。在主要司法管辖区非法拥有或分发的内容。
+- 美化仇恨言论。故意针对基于种族、民族、宗教、性别、性取向或其他受保护特征的个人或群体的内容。
+- 性剥削。美化性侵犯、非自愿行为或儿童性虐待材料。
+- 极端或令人憎恶的内容。以违反社区标准的方式损害 RetroAchievements 价值观的内容。
+
+经官方评级机构(ESRB、PEGI 或类似组织)评级的游戏被视为可接受,因为这些游戏经过了专业内容审核。唯一例外是如果游戏包含非法拥有或分发的内容,无论其评级状态如何。
+
+改版、自制游戏和未授权游戏不经过评级机构审核,将受到额外审查以确保符合此新政策。
+
+本政策提供指导,但不详尽。RA 团队保留逐案评估游戏并做出最有利于维护安全、合法、欢迎和包容社区的决定的权利。
+
+### 零售发布
+
+| 标题 | 年份 | 平台 |
+| :---------------------------------------: | :--: | :----------------: |
+| 177 | 1986 | PC-88 |
+| Custer's Revenge | 1982 | Atari 2600 |
+| Lolita Syndrome
ロリータ・シンドローム | 1983 | FM-7, PC-88 |
+| My Lolita
マイ・ロリータ | 1984 | FM-7, PC-88 |
+| The Guy Game | 2004 | PS2, Xbox, Windows |
+
+### 改版、自制游戏和未授权发布
+
+| 标题 | 年份 | 平台 |
+| :--------------------------------------------------: | :--: | :--: |
+| Pokémon Clover | 2017 | GBA |
+| Pokémon Periwinkle Version - Special Blobbos Edition | 2019 | GB |
diff --git a/docs/zh/guidelines/content/working-with-the-right-rom.md b/docs/zh/guidelines/content/working-with-the-right-rom.md
new file mode 100644
index 00000000..38a8eeb4
--- /dev/null
+++ b/docs/zh/guidelines/content/working-with-the-right-rom.md
@@ -0,0 +1,157 @@
+---
+title: 使用正确的 ROM
+description: 为 RetroAchievements 选择最佳 ROM 的指南,涵盖地区、版本和格式考虑,以及保持兼容性和确保成就准确触发的提示。
+---
+
+# 使用正确的 ROM
+
+**相关:** [ROM 改版成就](/zh/guidelines/content/achievements-for-rom-hacks)、[子集](/zh/guidelines/content/subsets)
+
+[[toc]]
+
+每个游戏每个平台只允许一个成就集。对于现有官方版本(如 Rev 1)、官方和非官方修复补丁以及替代地区,情况也是如此。
+
+[子集](/zh/guidelines/content/subsets) 是此规则的例外,但被视为标准集的扩展,并遵循关于允许哪些类型成就的不同规则。
+
+当地区变体大幅改变游戏时,可能存在*极少*的地区例外。
+
+## ROM 选择
+
+几乎每个游戏都有多个 ROM 版本可用,有时有数十个。通常,底层存在重大差异,阻止版本之间的成就兼容。因此,找到适合成就的最佳 ROM 至关重要,应谨慎进行。
+
+- **地区选择**:对于连接电视的主机,在可能的情况下选择 No-Intro(卡带)或 Redump(光盘)的 `NTSC USA` 发行 ROM,因为 60Hz 是更流畅的游戏体验,通常匹配预期游玩速度。`PAL European` 发行以 50Hz 运行,在大多数情况下应避免。`NTSC Japan` 发行也以 60Hz 运行,但仅当游戏为日本独占发行时才是最佳选择。`PAL European` 发行应仅作为最后手段使用(欧洲独占),通常仅限于整个平台库中极少数*独特*游戏。掌机没有地区时序差异,因此应优先考虑语言选项。
+
+- **版本选择**:由于版本主要包含错误和拼写修复,除非您有*特定*理由不这样做,否则始终选择最终版本。这通常会在长期内为玩家和开发者省去麻烦。在开发游戏之前,快速搜索已知的版本变更并查看 [TCRF](https://tcrf.net/) 以了解是否有理由偏好早期版本。
+
+- **环码**:某些系统,如世嘉土星,有不同“环码”的游戏多个版本。这些是刻印在实体光盘内环上的字母数字标识符。在大多数情况下,它们对游戏或甚至哈希没有功能影响,但如版本所述,请先检查是否有已知差异。
+
+- **格式**:对于大多数系统,若您使用了经验证的良好转储,这不会成为问题。特别是对于 N64,游戏可以基于文件中字节顺序以三种格式存在:n64(小端)、v64(字节交换)和 z64(大端)。尽管产生唯一哈希,这三种格式对于相同转储是相同的。由于大端是 N64 卡带的最准确表示,大端(z64)哈希*必须*为任何 N64 游戏链接,此外还有您作为开发者可能希望个人使用的任何格式。这确保可以一致地使用一组 ROM 进行游玩。如需要,可使用 [Tool64](https://gbatemp.net/download/tool-64.32494/) 更改字节顺序。
+
+- **街机**:街机 ROM 是特殊情况,因为 FBNeo 强制要求游戏存档的确切内容。当存在不同版本时,通常应优先选择名称的基础版本(例如,mslug2 应优先于 mslug2dg 或 mslug2t)。这仅是指南,因为可能有各种理由偏好不同版本。
+
+- **无 Mod**:使用干净的 ROM。不要使用带有修改过的/自定义启动画面的 ROM,如 Mode7 和 RisingSun 所具有的,因为它会改变 RAM 值并使用户使用自己合法转储的 ROM 的能力复杂化。
+
+- **无训练器**:不要使用包含集成作弊功能的 ROM。这些通常被称为售后 `ROM 训练器`,不是官方的,RetroAchievements 不以任何方式支持。这些 ROM 甚至不能作为次要选项链接。
+
+## 保存组织
+
+[No-Intro](http://www.no-intro.org/) 和 [Redump](http://redump.org/) 是负责验证主机游戏干净转储的主要组织,在此过程中排除所有修改和不可信来源。它们提供可用于通过 ROM 管理器验证您自己转储的 dat 文件。尽可能优先使用这些组织验证的 ROM,通常可通过以下命名方案识别:
+
+**游戏名称(地区)(如适用可用语言)(如适用当前版本)**
+_**示例:** Diddy Kong Racing (USA) (En,Fr) (Rev 1)_
+
+[TOSEC](https://www.tosecdev.org/) 是另一个限制较少的保存组织。它们的哈希通常与 Redump 的光盘匹配,但经常包含验证较不彻底的转储。对于 No-Intro 和/或 Redump 验证不可用的软盘、磁带和较不知名系统,TOSEC 是良好的备选选择。
+
+您可以使用带有首选组织提供的 dat 的 rom 管理器或通过手动验证校验和并在文本编辑器中搜索 dat 来验证您的 ROM 校验和是否与 No-Intro、Redump 或 TOSEC 的数据库匹配。请注意,与手动检查不同,rom 管理器可能能够跳过外部头部以准确验证完整性。标准选择是 [clrmamepro](https://mamedev.emulab.it/clrmamepro/) 和 [Romulus](https://romulus.cc/)。
+
+## 各平台首选组织
+
+| 系统 ID | 系统名称 | 首选组织 |
+| :-----: | ------------------------------- | :----------------: |
+| 01 | Genesis
Mega Drive | No Intro |
+| 02 | Nintendo 64 | No Intro |
+| 03 | Super Nintendo
Super Famicom | No Intro |
+| 03 | Sufami Turbo | No Intro |
+| 03 | Satellaview | No Intro |
+| 04 | Game Boy | No Intro |
+| 05 | Game Boy Advance | No Intro |
+| 06 | Game Boy Color | No Intro |
+| 07 | NES
Famicom | No Intro |
+| 07 | Famicom Disk System | No Intro |
+| 08 | TurboGrafx-16
PC Engine | No Intro |
+| 08 | SuperGrafx | No Intro |
+| 09 | Sega CD
Mega CD | Redump |
+| 10 | Sega 32X | No Intro |
+| 11 | Master System
Mark III | No Intro |
+| 12 | PlayStation | Redump |
+| 13 | Atari Lynx | No Intro |
+| 14 | Neo Geo Pocket | No Intro |
+| 14 | Neo Geo Pocket Color | No Intro |
+| 15 | Game Gear | No Intro |
+| 16 | GameCube | Redump |
+| 17 | Atari Jaguar | No Intro |
+| 18 | Nintendo DS | No Intro |
+| 21 | PlayStation 2 | Redump |
+| 23 | Magnavox Odyssey 2 | No Intro |
+| 24 | Pokemon Mini | No Intro |
+| 25 | Atari 2600 | No Intro |
+| 27 | Arcade | Final Burn Neo |
+| 28 | Virtual Boy | No Intro |
+| 29 | MSX (Cartridges) | No Intro |
+| 29 | MSX (Disks) | TOSEC |
+| 29 | MSX2 (Cartridges) | No Intro |
+| 29 | MSX2 (Disks) | TOSEC |
+| 33 | SG-1000 | No Intro |
+| 37 | Amstrad CPC | Clean CPC |
+| 38 | Apple II | TOSEC |
+| 38 | Apple II | Woz A Day |
+| 39 | Sega Saturn | Redump |
+| 40 | Sega Dreamcast | Redump |
+| 41 | PlayStation Portable | Redump |
+| 41 | PlayStation Portable | No Intro |
+| 43 | 3DO Interactive Multiplayer | Redump |
+| 44 | ColecoVision | No Intro |
+| 45 | Intellivision | No Intro |
+| 46 | Vectrex | No Intro |
+| 47 | NEC PC-8001 | Neo Kobe |
+| 47 | NEC PC-8001 | TOSEC |
+| 47 | NEC PC-8801 | Neo Kobe |
+| 47 | NEC PC-8801 | TOSEC |
+| 49 | NEC PC-FX | Redump |
+| 51 | Atari 7800 | No Intro |
+| 53 | WonderSwan | No Intro |
+| 53 | WonderSwan Color | No Intro |
+| 57 | Fairchild Channel F | No Intro |
+| 56 | Neo Geo CD | Redump |
+| 63 | Watara Supervision | No Intro |
+| 69 | Mega Duck | No Intro |
+| 71 | Arduboy | No Intro |
+| 72 | WASM-4 | Homebrew |
+| 72 | WASM-4 | Lost Level Archive |
+| 73 | Arcadia 2001 | No Intro |
+| 74 | Interton VC 4000 | No Intro |
+| 75 | Elektor TV Games Computer | - |
+| 76 | TurboGrafx-CD
PC Engine CD | Redump |
+| 77 | Atari Jaguar CD | Redump |
+| 78 | Nintendo DSi | No Intro |
+| 80 | Uzebox | Homebrew |
+| 80 | Uzebox | Lost Level Archive |
+
+## 翻译补丁
+
+(另见:下文 [ROM 本地化政策](#rom-localization-policy))
+
+英语是 RetroAchievements 的主要语言。翻译补丁有时由开发者应用于非英文标题作为成就集的主要哈希,当不存在授权英文版本时。在这些情况下,补丁说明将在该标题的论坛主题中提供。只要合理,仍应支持原始未打补丁版本。
+
+有时翻译补丁可能产生与链接哈希关键地不同的内存。所有链接哈希预期由*整个*成就集完全支持。若您无法个人保证这一点,请不要链接哈希。
+
+若您不是相关集的原始开发者且开发者活跃,请使用测试模式亲自验证内存,并在尝试添加新翻译前联系开发者。
+
+## ROM 本地化政策
+
+由于英语是社区的主要语言,优先使用英文 ROM。在选择为哪个 ROM 开发成就时,我们优先考虑**非掌机的 No-Intro 或 Redump 美国 ROM** 和**掌机的欧洲 ROM**。
+
+我们希望继续改善对所有地区版本的支持,尤其是日文(因为我们游戏库的大部分在日本创建)。一些用户可能也偏好游戏的特定地区版本,更好地包含广泛支持,以便任何良好的 ROM 都可以链接到良好条目并给予适当的成就。也就是说,地区变体仍必须完全支持,50Hz 减速需要通过额外补丁缓解或证明存在时不是问题。
+
+在查看如何处理有地区版本的游戏时,我们的标准是**每个游戏每个平台一个条目**。理想情况下,若玩家加载 Donkey Kong、Pac-Man 或 Contra 的美国或日文版本,他们将从同一条目获得相同的成就。如上所述,存在一些极其罕见的情况,将地区版本拆分为自己的独特条目对我们的库和玩家更好。若社区有理由相信拆分条目更好,可以由 RetroAchievements 工作人员审核和批准。
+
+**提示:** 对于有文本触发成就的游戏(尤其是 RPG),建议查找事件标志而不是挂钩文本或文本 ID。文本呈现因地区版本而异,使多地区支持变得困难。
+
+### 本地化差异
+
+本地化期间(最常见的是从日文到英文)所做的更改类型可能差异很大。以下任何更改可能来自本地化:
+
+- 很少或没有更改;
+- 密码替代电池存档;
+- 错误修复;
+- 轻度或大量翻译;
+- 轻度或大量外观更改,包括“冒犯性”元素被审查、音效更改、授权素材被通用素材替换和/或未知角色被任天堂化(例如 Tetris Attack、Super Mario Bros. 2);
+- 关卡添加、修改或移除;
+- 游戏物理和游戏机制修改;
+- 游戏模式、难度级别和游戏选项添加或移除;
+- 作弊码或调试模式添加或移除;
+- 游戏重新平衡导致更难或更简单的体验,有时显著如此;
+- 两个游戏合并为一个;
+- 以及更多。
+
+由于这种变化以及为避免用不必要的重复填充数据库,我们的目标是最小化拆分集的数量。要拆分集需要令人信服的理由;我们非常谨慎地确定何时批准这些拆分。
diff --git a/docs/zh/guidelines/content/writing-policy.md b/docs/zh/guidelines/content/writing-policy.md
new file mode 100644
index 00000000..147d7d7d
--- /dev/null
+++ b/docs/zh/guidelines/content/writing-policy.md
@@ -0,0 +1,351 @@
+---
+title: 成就与排行榜书写政策
+description: 在 RetroAchievements 上撰写成就标题和排行榜的指南。了解语言、大小写、标点、创意主题和最佳实践,以确保清晰度和玩家参与度。
+---
+
+# 成就与排行榜书写政策
+
+[[toc]]
+
+## 成就标题
+
+### 语言
+
+所有成就标题必须使用英文。但有一些例外:
+
+- **需要 QA 批准:** 在特定情况下,使用英文以外的语言可能更适合为成就集增添个性。例如,当成就引用现有国家或符合使用拉丁语或“古英语”有意义的主题时。然而,需要联系 QA 说明理由以获得批准。
+- **无需 QA 批准:** 无论英文还是非英文游戏,都有游戏内的外语,可能是开发者创造的或直接引用另一种现有语言。为便于比较,如节奏游戏中的歌曲和其他游戏中的物品,让游戏内用法与成就标题匹配可能对玩家更有益。
+
+---
+
+### 成人语言
+
+成人语言,如脏话或性暗示,仅在与游戏语境相符时允许。即使游戏评级为 18 岁以上,若游戏中没有性活动,也不允许使标题具有性意味。不包含极端暴力或露骨语言的游戏不应有成人标题。**请注意,任何情况下都不允许使用侮辱性词汇。**
+
+---
+
+### 大小写
+
+对于标题中的大小写,我们建议使用 https://capitalizemytitle.com/style/chicago/ **并勾选 "Straight quotes" 复选框**。这将正确大写应大写的每个词,直引号在每款模拟器中正确显示所必需。虽然这可能无法始终对较长的成就标题给出完美结果,但为了一致性,在不确定哪些词应大写时建议选择此选项,推荐样式为 Chicago 或 MLA 以获得最美观的结果。
+
+---
+
+### 标点
+
+由于成就标题不是完整句子,因此不应以标点结尾。例外包括感叹号或问号,以及使用省略号(三个点)来强调故事或想法还有更多内容。
+
+---
+
+### 表情符号
+
+在成就标题中添加表情符号**不允许**。它们不仅会降低可读性,而且作为 Unicode 在模拟器中更容易出错,在网站上也会根据用户桌面当前启用的语言或使用的浏览器而出现问题。请注意,表情符号(如 :-]、<3)也不允许。
+
+---
+
+### 创意标题
+
+创意的成就标题比准确描述玩家必须做什么才能获得成就更能让玩家享受。如果您不确定如何为成就增添一些风格,可以查阅以下列表获取一些想法。
+
+- 主题 - 好的主题可以帮助您以传达相似性同时又有趣的方式命名许多类似成就。主题也可以与此列表中的其他书写技巧结合使用。
+
+ - 示例 1:Pokemon Pinball 中捕获特定宝可梦组的成就(捕获妙蛙种子、杰尼龟和小火龙等)有一个将它们联系起来的“组词”主题。"Route 2 Gang"、"Angry Crew"、"Brock's Brotherhood",这些标题都传达了成就是相似的,同时也传达了每个成就的具体风味。
+ - 示例 2:Dragon Quest 2 (NES) 的成就都使用游戏本身相同的滑稽的"Old English"。如果您的游戏有独特的书写风格,考虑将成就标题主题化以匹配。
+
+- 押韵和头韵 - 押韵和头韵是构建易读成就标题的简单方法。取一个与玩家正在做的事情相关的词,将其与以相同字母开头或与第一个词押韵的另一个词或短语连接。这个额外的词或短语通常应与成就相关部分的游戏中发生的事情相关,但不一定。
+
+ - 示例 1:Boss 名叫 Sanson,您为他制作了击败他的成就。由于他的名字以 S 开头,您可以使用头韵将成就命名为 "Sanson Slayer" 或 "So Long, Sanson"。
+ - 示例 2:Boss 名叫 Lance,您为他制作了击败他的成就。很多词与他的名字押韵,所以您可以想出各种创意标题,如 ''The Last Dance of Lance'' 或 ''No Romance For Lance''。
+
+- 进度和分组 - 您是否有多个相同目标但数字更高的成就,例如分数递增?考虑使用一致的命名方案,如 good - great - excellent。类似的方法也可用于完全遵循相同结构的成就,例如要求您获得地牢中每个宝箱的成就。根据数量,对每个使用类似的命名方案,如 "Treasure Hunter: Fire Cave" 可以将它们整齐地组合在一起。
+
+- 引用 - 引用始终是成就的有趣想法,尤其是当您为更大系列的游戏设计成就时。例如,如果同一关卡出现在更早/更晚的游戏中,使用强调那种熟悉感的标题总会让游戏粉丝满意。请注意,由于最终会失去相关性,通常不鼓励引用当前世界事件和梗。
+
+ - 示例 1:游戏 1 中有一个叫 Default Zone 的区域,游戏 2 有它的另一个变体。"This Looks… Familiar" 因此可能是一个好标题。
+ - 示例 2:在您正在开发的游戏的动画电视系列中,击败反派时他尖叫 ''This Isn't the End!!!''。将其作为标题或变体如 ''Actually, This Is the End!'' 总是有效。
+
+- 双关 - 双关可以为否则无聊的成就标题增添很多活力。要构建双关,取一个与玩家为获得成就所做的事情相关的词,并以幽默的方式将其与另一个常见词或短语结合。
+
+ - 示例 1:有一个与故事无关的大象 Boss。成就标题可以使用与 ''irrelephant'' 相关的内容,如 ''That Was Irrelephant!''
+ - 示例 2:有一个击杀 50 个骷髅敌人的成就。骷髅骨头通常有骨髓,所以成就标题的示例可以是 "Marrow-Minded"。
+
+- 游戏内成就系统名称 - 某些游戏有游戏内成就系统。使用这些游戏内成就附带的名称是一个可靠的选择。
+
+- 以花哨的方式描述发生的事情 - 最后也许是最无聊的创意选项是仅以花哨的方式描述发生的事情。有时仅此就能产生可靠的标题,它可以很好地与双关、引用和押韵结合。
+ - 示例 1:故事中发生了导致永久黑夜的事情。这里可以使用的标题有 ''The Cold Embrace of Darkness''、''The Disappearance of Warmth'' 等。
+
+## 成就描述
+
+### 语言
+
+成就描述与标题一样,应完全使用英文。但与标题不同,任何情况下都不允许使用另一种语言,即使它适合成就,唯一例外是用于比较目的的游戏内物品和歌曲。每个人都应该能够理解描述,而无需查阅英文以外的任何语言。
+
+---
+
+### 大小写
+
+一般来说,只有新句子的首字母大写。在英文中,词不会因其类型(名词、动词等)或强调而大写,这与某些语言不同。当然也有例外:
+
+- 姓名 - 人的姓名几乎应始终大写。
+
+ - 示例:John Smith, Samus Aran, Bowser
+
+- 头衔 - 当您命名有荣誉头衔或学位的人时,头衔的首字母应大写,如果是缩写则以句号结尾。
+
+ - 示例:Dr. Tree, Mrs. Stone, General Shrub
+
+- 游戏内名称 - 命名的关卡或地点、游戏或系列特有的物品以及包括 Boss 在内的角色名称通常应大写。然而,仅当游戏本身这样做且它是该游戏中的特定物品时才应大写。
+
+ - 不要大写如果:
+ - 关卡叫 "1-1"。因此应为 ''level 1-1''。
+ - 有通用的箭可找到。因此应为 ''arrow''。
+ - 要大写如果:
+ - 关卡叫 ''Level 1-1''。由于游戏将其标记为全名,必须大写为 ''Level 1-1''。
+ - 游戏给您一种叫 Ice Arrow 的普通箭的变体。鉴于其特定名称,必须大写为 ''Ice Arrow''。
+ - 游戏包含名为 "Arrow" 的特定物品。在这种情况下游戏通常大写此物品,您也应如此。
+
+- 难度/模式名称 - 当您在成就中使用难度或模式条件时,难度或模式的**名称**应始终大写。注意 "difficulty" 和 "mode" 这两个词本身不应大写。
+ - 示例:Finish the game on **Hard difficulty**, Finish the game in **Mirror mode**。
+
+---
+
+### 标点
+
+成就描述是否以句号结尾由您决定,但一般来说,成就描述不以句号结尾更受青睐。然而,集内的一致性很关键,因此请避免有些成就描述以句号结尾而其他则不结尾。
+
+---
+
+### 缩写
+
+缩写通常仅应用于荣誉头衔或学位,如 Dr. 和 Mrs.。此规则的例外是您创建的成就描述涉及游戏内使用的缩写。示例包括 1P mode(单人模式)、ATK stat(攻击属性)和 BFG 等命名物品。不要缩写单词,如将 difficulty 缩写为 dif、seconds 缩写为 secs、levels 缩写为 lvls 等,除非游戏本身这样做。
+
+---
+
+### 括号
+
+描述中的括号(以下简称分组符号)可由开发者在需要时使用,以突出成就的特定条件,使其与常规条件更明显。虽然非常有用,但我们敦促您仔细考虑何时使用。若一个或多个成就只有一个特定条件,或影响整个游戏过程的条件,我们建议以某种方式重写它们,使其成为单一流畅的句子。常见条件如难度设置,或目标如不受伤害或失去少于指定阈值或生命,通常不应放在分组符号内。
+
+**应如何写描述的示例:** "Beat the game on Hard difficulty without losing a life"。
+**不应如何写描述的示例:** "Beat the game [no lives lost, hard difficulty]"。
+
+此外,还建议在考虑使用分组符号之前,仔细考虑条件是否在描述中有位置。若成就可以在任何难度下获得,或玩家可以选择的对成就解锁没有影响的设置,则无需在描述中提及,尤其是当有其他有限制的成就时。例如,"Beat Hasty Highway on any difficulty with any starting lives" 对描述无关紧要,可以缩短为 "Beat Hasty Highway"。同样,若成就必须在默认设置下获得,则仅提及这一点就足够了;无需深入说明每个设置,如回合设为 3 每回合 60 秒,当这些是默认设置时可以如此概括。
+
+分组符号真正发挥作用的是当成就具有无法合理转换为一个流畅句子的多个条件时。用户始终理解成就的主要目标而不因条件数量导致句子过长而感到不知所措非常重要。这对于有多个设置的街机类游戏,或要求玩家执行同一集中其他成就中不常见的多个独特任务的挑战成就尤其相关。在更好的系统到位之前,我们默认允许所有集中使用分组符号的一些全局设置,如玩家数量和是否允许游戏内作弊(不允许时不是,因为这是 RetroAchievements 指南的一部分)。
+
+**圆括号 ()**
+当您写的条件是(小)句子时使用这些。这些不是以结束句号分隔的新句子,因此不需要以大写字母开头。
+
+- 示例 1: "Beat the final boss on Hard difficulty (level select is allowed)" 或 "Beat the final boss on Hard difficulty. Level select is allowed" 或 "Beat the final boss on Hard difficulty - level select is allowed"
+- 示例 2: "Open all chests in the Fire Dungeon (missable chest in the fourth room is not required)"
+
+**方括号 []**
+当您想严格注明条件、设置、模式等时使用这些。条件的每个词都应大写。建议每个条件使用一组括号,之间用空格分隔。如前所述,首先考虑是否可以重写为一个流畅的句子更受青睐,但我们期望您作为集开发者有最准确的判断。
+
+- 示例 1: "Beat Ryu in Arcade mode [5 Rounds] [Infinite Time]" 或 "Beat Ryu in a 5-round match in Arcade mode [Infinite Time]" 或 "Beat Ryu in Arcade mode in a 5-round match with time set to infinite"
+- 示例 2: "Score 100,000 points (level select is allowed) [3 Continues] [One Player] [Default Settings]"
+
+方括号的另一个受欢迎用途是在描述开头,当游戏是合集或有多个特定模式、小游戏或章节时。虽然在特定场景中仍首选将它们写成一个描述性句子,如当适用的成就数量相对较少或集的其余部分 anywhere 都不使用括号时,但在某些情况下,使用括号同样好甚至更好。
+
+- 合集示例(以 Mega Man: The Wily Wars 为例):"Beat Cut Man in Mega Man 1" 或 "[MM1] Beat Cut Man"。
+- 模式/小游戏/章节示例(以 Super Monkey Ball Deluxe 为例):"Get a home run in Monkey Baseball" 或 "[Monkey Baseball] Get a home run"
+
+---
+
+### 符号和表情符号
+
+与括号一样,符号曾被用于描述条件,但也不鼓励。最常见的是描述条件较低(< / <=)或较高(> / =>)。为此,我们也请您重写描述文本并考虑此条件。
+
+**应如何写描述的示例:** ''Beat the game on Hard mode without losing more than five lives''。
+**不应如何写描述的示例:** ''Beat the game on Hard mode [lives lost <= 5]''。
+
+与成就标题一样,描述中**不允许**使用表情符号。
+
+---
+
+### 引号
+
+引号在 RetroAchievements 上主要用于包裹作品,如电影、书籍和歌曲,在节奏游戏中常见。其他用途可能包括为讽刺或讽刺而将特定词分开、将昵称与给定名区分,或直接引用某处。
+
+- 包裹作品示例:Finish the track "Over the Mountain" with an A rank or higher.
+- 讽刺示例:Finish off the "tough" demon.
+- 区分昵称:Help out T.K. "Dance King" Johnson with his new movie.
+
+您应仅使用双引号。单引号仅用于引号内的引号,不应在其他地方使用。
+
+---
+
+### 一致性
+
+作为国际社区,我们不期望每个开发者都能用完美的语法书写,或完全同意什么是完美语法。应密切遵循简单且相对通用的英语语法指南,如在逗号后留空格。然而,更晦涩或有争议的指南,如牛津逗号(列表中最后一件事前的逗号,通常放在以 "and" 开头的最后条目之前),不是必须的。然而,请在集内保持语法使用的一致性。不要在一个成就中使用牛津逗号,而在另一个适用处不使用。
+
+描述成就时使用常见词的一致性也受青睐。例如,对于完成关卡或 Boss,最常用的词是 "beat"、"finish"、"clear"、"defeat" 以及少数其他词。在处理具有相同主题的多个成就时,请仅使用其中一个,如果完成第 1 关的成就描述说 "Defeat the boss of level 1",第 2 关的成就描述不应说 "Beat the boss of level 2",除非有充分理由使用不同的词。在一组类似成就中对相同事物坚持使用相同的词。
+
+若挑战条件,如 "on Normal difficulty or higher" 或 "no cheats",适用于集中几乎每个成就,建议通过零分成就(通常在游戏开始时授予)、论坛帖子或评论来注明此条件,而不是在每个成就的描述中重复 "on Normal difficulty or higher"。
+
+---
+
+### 描述本身
+
+成就描述最重要的作用是在不排除重要信息的情况下,用尽可能少的词准确描述获得成就所需的内容。**需要清晰简洁**,母语和非母语英语使用者都必须能够通过阅读描述结合徽章和标题来理解他们需要做什么。
+
+有 255 个字符的慷慨限制来描述成就所需的内容。绝对避免将人们重定向到成就评论以获得完整解释,因为仅使用模拟器的用户无法访问此信息。若您的成就使用大量复杂条件且难以在字符限制内解释,考虑简化成就的逻辑使其更易于向用户解释,而不是试图以次优方式将所有复杂性塞进字符限制。
+
+在某些情况下,成就描述有意地写成不逐字解释需要做什么。例如,也许您想避免剧透故事片段,或您想鼓励玩家自己找出如何获得成就而不直接告诉他们,如发现秘密。这是个好主意,但需要谨慎对待。请记住,描述需要清晰简洁,让每个人都能理解。标题、徽章和/或描述给出玩家需要做什么的可靠提示很重要。考虑与社区成员分享您计划的成就,看看他们是否理解需要做什么。
+
+## 排行榜
+
+### 排行榜标题
+
+与成就标题一样,语言、大小写、标点和表情符号指南**适用于**排行榜标题。然而,我们不会要求您为排行榜提供创意标题。
+
+与成就标题不同,我们要求您用尽可能少的词直接说明排行榜标题,同时保持清晰简洁。这样做的原因是当用户玩游戏且排行榜可用时,弹出窗口只会显示标题。玩家——尤其是仅使用模拟器的玩家——立即知道为什么此排行榜当前处于活动状态以及它是关于什么的很重要,这样他们可以即时决定是否参与此排行榜。
+
+通常排行榜属于特定类别,如速通、分数攻击或类似内容。在这些类别中,游戏的特定部分是排行榜关注的焦点,如特定 Boss、关卡或整个游戏。这就是为什么我们建议您以类别开头构建排行榜标题,后跟游戏部分,最后是潜在额外条件,如特定角色或车辆。
+
+示例包括:
+
+- Speedrun - Default Zone 1 (Pete)
+- Score Attack - L.A. Streets (Hyundai I-20)
+- Challenge - Creatures defeated consecutively
+
+重要的是要记住,当排行榜基于游戏内命名的模式(如 Time Trial)时,应使用该名称作为挑战。
+
+---
+
+### 排行榜描述
+
+排行榜描述基本上遵循与成就描述完全相同的指南。两个最重要的规则仍然是一致性,以及清晰简洁地描述排行榜的内容。正确实施成就描述的所有其他指南。
+
+然而,对于排行榜有两个特别要记住的事项:
+
+1. 有时您可能想指定排行榜的确切开始和结束点。排行榜可能在 Boss 的最后一击结束,或死亡动画发生后结束。鉴于排行榜的竞争性,在不如玩家想象的那么明显时,说明此类信息很重要。
+2. 描述在技术上是可选的。虽然我们始终鼓励添加描述,但有时您可能最终处于有如此多排行榜都遵循类似结构、排行榜标题易于解释以至于添加描述不必要的情况。
+
+## 常见语法错误
+
+语法错误进入成就并不罕见,无论是在标题还是描述中。如前所述,我们不期望每个人都完美掌握英语及其语法。根据我们多年的经验,我们确定了一些比其他更常见的错误,下面列出这些错误以防止将来使用,并提供一些示例以帮助您更好地理解它们。
+
+若阅读下面的解释仍有疑问,考虑查看语法工具,如 [LanguageTool](https://languagetool.org/) 或 [Grammarly](https://www.grammarly.com/grammar-check)。不建议对完整句子使用所述工具,以避免纠正不需要纠正的语法,但它们可用于下面提到的更简单的修复。
+
+---
+
+### 冠词
+
+冠词是网站上发现的最常见的语法错误。冠词是标识名词为特定/定指("the")或不特定/不定指("a"/"an")的词。以下是它们在成就中的一些使用示例:
+
+- 特定/定指
+
+ - 示例 1:您需要用名为 Master Sword 的武器击杀敌人,该武器只有一把。您想定义敌人只能由此武器击杀,因此您被要求用 Master Sword 击杀它。
+ - 示例 2:一块石头挡住您需要摧毁的路径。虽然这块石头未命名,您仍应指定您需要摧毁挡住路径的石头。
+ - 示例 3:有多座山要爬,但您被要求爬最高的。如所示,您应爬最高的山。
+
+- 不特定/不定指
+ - 示例 1:您需要用任何剑击杀敌人,游戏有多种武器类型。因此,您被要求用剑击杀它。
+ - 示例 2:多块石头挡住您需要摧毁的路径。对于成就您只需摧毁其中一块石头,所以您不需要指定要摧毁哪一块,可以说一块石头。
+ - 示例 3:有多座山要爬,您可以自由选择其中任何一座。因此,您应爬一座山。
+
+其中大多数相当直接。注意对于不特定/不定指冠词,您可能还想使用不同的词来表示数量。使用上面的示例,您可以用剑击杀敌人,也可以用 any sword。
+
+另一种可能是无需使用冠词。这主要适用于命名词,如地点。虽然 "Arrive at the Baron Castle" 在技术上是正确的,但首选使用 "Arrive at Baron Castle"。如果您在这种情况下不确定选择哪个,大声说出句子可能就能给您提示!
+
+然而,更多人在使用不定指冠词 "a" 和 "an" 时有问题。虽然它们功能相同,但不能在某些词前使用。这取决于后面的词在正确英语发音时是以辅音还是元音开头。这也适用于逐字母发音的缩写。
+
+- "a" 用作以辅音开头的词前的冠词(除 a、e、i、o、u 外的每个字母)。
+
+ - a level - 发音为 leh-vl。
+ - a unique item - 发音为 yoo-neek。
+ - a BFG - 发音为 bee-eff-gee。
+ - a URL - 发音为 yoo-are-ell。
+
+- "an" 用作以元音开头的词前的冠词(a、e、i、o、u)。
+ - an item - 发音为 ai-tm。
+ - an honest deed - 发音为 o-nuhst。
+ - an ETA - 发音为 ee-tee-a。
+ - an LCD - 发音为 el-see-dee。
+
+---
+
+### 复数/所有格/缩略
+
+另一个常见错误是使用撇号的词,如 "you're" 和 "it's",或复数。这些在英语中非常常用,但去掉撇号会完全改变词的含义。因此,事先检查您是否将其用作复数、所有格形式还是多个词的缩略是好的。
+
+- *复数*词(即表示多于一个)不使用撇号,通常以 "s" 或 "es" 结尾。注意英语中有[几个不规则复数的例子](https://en.wikipedia.org/wiki/English_plurals#Irregular_plurals)。如不确定请查字典!
+
+ - 示例 1:Destroy 20 boxes in Level 1.(不是 "boxs" 或 "box's")
+ - 示例 2:Defeat five mice with flame spells。(不是 "mouses" 或 "mouse's",或 "spell's")
+
+- *所有格*词(即表示某物的所有者)几乎总是使用撇号,以 "'s" 结尾。**注意:** 所有格 "its" 拼写时没有撇号,"it's" 是 "it is" 的缩写。这是此规则的例外。
+
+ - 示例 1:Return the knight's sword to the castle。(不是 "knights")
+ - 示例 2:Return the sword to its rightful owner。(不是 "it's")
+
+- *既所有格又复数*的词(即表示多个所有者)如果复数已以 "s" 结尾,则在末尾添加撇号。
+
+ - 示例:Sell all of your party members' equipment for gold。(不是 "members" 或 "member's")
+
+- _缩略_(即两个或多个词组合成一个)总是使用撇号,撇号通常替换省略的字母。
+ - 示例 1:You're the hero of this story。(它结合了 "you" 和 "are")
+ - 示例 2:It's super effective。(它结合了 "it" 和 "is")
+
+---
+
+**分开的词和连字符的使用**
+我们发现的另一个常见语法错误涉及 "atleast" 和 "alot" 等词,其中两个词被强制合并成一个词。这在英语中不允许,这些示例应为 "at least" 和 "a lot"。
+
+您还应注意连字符("-" 符号)的正确使用。此符号通常用于组合词,但仅当它们后面跟名词时。当它们出现在名词后面时,不与连字符组合,而是写成两个独立的词。
+
+- 使用连字符的示例:
+ - Defeat the well-known artist. 由于两个词在它们描述的名词之前,它们用连字符组合。
+- 不使用连字符的示例:
+ - Defeat the artist that is well known. 由于两个词在它们描述的名词之后,它们不与连字符组合。
+
+书面数字,如 twenty-five,始终用连字符书写。
+
+---
+
+### 数字格式
+
+所有数字应根据大多数英语地区接受的惯例进行格式化,以避免对数字是非常大还是非常小产生混淆。
+
+- 小数点 - 应使用点来表示数字的整数和小数部分的分离,而不是逗号。
+
+ - 示例:数字 3 + ⅛
+ - 正确:3.125
+ - 错误:3,125
+
+- 千位分隔符 - 应使用逗号将数字分成千位,而不是点。
+ - 示例:数字 fifty thousand, five hundred and twenty-five
+ - 正确:50,525
+ - 错误:50.525
+
+---
+
+### 语言间的欺骗性相似
+
+许多语言彼此相关,无论远近,都有拼写相似、含义相似的词,但并不完全相同。这可能包括您的母语和英语。请仔细检查您的拼写,确保您使用的是该词的英文拼写。
+
+- 示例
+ - 玩家库存中的物品
+ - 正确:"item"
+ - 错误:"iten"
+
+## 用户名引用
+
+用户名引用是认可社区中其他用户工作的好方法。然而,引用应受到限制,因为大多数引用只有社区的一小部分人理解。用户名引用不得带有负面含义。用户名引用必须由开发者明确请求并经被引用用户批准,除非下面另有规定。用户名引用在以下情况下是适当的:
+
+- **专业集**:在活动或社区提交集等专业集中,可以引用用户名。这些情况下的用户名引用意味着对个人贡献的认可,不需要经被引用用户批准。这些集的示例:
+
+ - [Irritating Stick [Subset - IrRAtating Custom Courses]](https://retroachievements.org/game/20084)
+ - [Pokemon Mystery Dungeon: Explorers of Sky [Subset - Zero Isle South Runs]](https://retroachievements.org/game/24911)
+ - [\~Hack\~ UzeMaze RA](https://retroachievements.org/game/25084)
+ - [Achievement of the Week 2022 Champions](https://retroachievements.org/game/22094)
+
+- **微妙引用**:可以包含微妙的用户名引用。然而,这些引用必须与主文本明显区分,并与成就主题相关。
+
+ - [BlazeKickn Hot](https://retroachievements.org/achievement/119372)
+ - [Blended Sea Water](https://retroachievements.org/achievement/270743)
+
+- **充分理由**:在有充分理由引用用户名的情况下,如对社区的重大成就或值得注意的贡献,可以包含用户名。
+
+**用户对其姓名的使用保留完全控制权。** 他们有权随时请求将其用户名从任何成就中删除,开发者必须遵守此规定。对于与日常用语共享姓名的用户(Bedtime、Fridge、Gloves、Griffin 等),仅当其相似性被直接引用时才适用。
+
+严禁使用被封禁用户。任何包含被封禁用户名的成就应在得知封禁后及时更新。
diff --git a/docs/zh/guidelines/developers/claims-system.md b/docs/zh/guidelines/developers/claims-system.md
new file mode 100644
index 00000000..26705609
--- /dev/null
+++ b/docs/zh/guidelines/developers/claims-system.md
@@ -0,0 +1,117 @@
+---
+title: 认领系统
+description: RetroAchievements 认领系统指南,包括如何认领、延期和完成成就集认领,以及协作认领、认领配额和进度报告的特定规则。
+---
+
+# 认领系统
+
+[[toc]]
+
+## 认领系统指南
+
+通过使用网站的认领系统来获得成就集的工作权。这是预留成就集的唯一认可方式。
+
+- 不要认领你实际上不打算立即着手制作的成就集
+- 不要为了替无法认领的他人预留而认领成就集
+- 不要为了阻止他人认领而认领成就集
+- 若有[未处理的工单](/zh/guidelines/developers/code-of-conduct#ticket-negligence),则不要进行认领
+
+## 发起认领
+
+要进行认领,请前往游戏条目的开发者面板,其中将包含以下链接之一:
+
+- 发起认领
+- 发起认领并创建论坛主题(初级开发者需要代为创建论坛主题)
+- 发起修订认领
+- 发起协作认领
+
+## 放弃认领
+
+放弃认领只需在开发者面板中选择“放弃认领”链接即可。
+
+## 延期认领
+
+- 当认领距离到期还有一周时,会出现“延期认领”链接。选择该链接可将认领再延长三个月。
+- **进度报告:** 在延期认领**之前**,**在论坛**新帖**中发布你的进度**。进度应说明 RAM 挖掘/代码注释、成就路线图以及你在实现这些成就方面的进展。随着进一步延期,报告应更加详细,开发优先级也应提高。
+ - 开发者合规团队可酌情提出额外要求,若认领期间进度不足,包括放弃认领。游戏时长、总认领时长及其他因素将纳入任何决定。
+ - 在第四次延期(一年期限)及之后所有延期**之前**,必须提交详细的进度报告,且该报告必须发送给开发者合规团队,以便在批准延期时予以考虑。
+ - 在标准认领期限(认领/延期后 3 个月)内无任何进度的认领可能会被放弃。
+- 认领一旦到期,成就集可由其他开发者认领。
+- 若认领超过一年,后续续期必须向 `Developer Compliance` 发送详细进度报告。报告应概述开发情况,并包含以下细节:
+ - 计划成就列表
+ - 已编码成就列表(本地或非官方)
+ - 内存挖掘状态
+ - 徽章制作进度
+ - Rich Presence 和排行榜状态(如适用)
+- 若因无进度而拒绝续期或放弃,将适用一个月的冷却期。此后,开发者可再次认领该成就集(如仍可用)。后续续期仍需提交详细进度报告。
+- 若认领被放弃后在一个月内恢复,将保留放弃前的原始认领日期。
+
+::: tip 例外
+自动延期的认领,如 `In-Review` 和 `Release Scheduled`,在延期时无需发布论坛帖子。建议在认领设为上述状态之一时在论坛发帖,并说明你的成就集正在等待代码审核或已安排发布。
+:::
+
+## 如何完成认领
+
+要标记认领为已完成,可在开发者面板中选择“完成认领”链接。这样做将释放认领槽位,并通过电子邮件通知为该游戏提交了成就集请求的用户,该游戏已添加新成就。
+
+在认领后 24 小时内选择“完成认领”时,系统会提示开发者应先获得批准才能标记为完成。批准必须来自开发者合规团队成员。对你**自己**成就集的**修订**可跳过批准以提前发布。
+
+## 协作认领
+
+在进入协作之前,所有有意参与者应研究潜在合作伙伴,以确保对协作成功有足够信心。在请求或接受协作之前,谨慎检查其他潜在合作伙伴的认领、成就集、工单和整体行为记录。
+
+此外,与任何其他认领一样,退出协作的开发者将丧失任何作者身份,其留下的工作视为已放弃。若所有协作开发者同意,退出开发者的成就可在剩余认领者同意的情况下,以退出开发者名义提升,由剩余认领者担任指定维护者,需经 [Dev Compliance](https://retroachievements.org/messages/create?to=DevCompliance) 批准另一认领者为维护者并分配该角色后,协作才能提升为核心。
+
+协作认领在游戏已有主认领时发起,作为该主认领的“子”认领。它将继承主认领的到期日。延期或完成协作认领只能由主认领的开发者操作。
+
+- 若你欢迎协作者,请告知他人。
+- 若你已认领成就集且有人表达希望参与(而不仅是提建议),考虑可以如何与他们协作。
+- 若有人认领了你感兴趣的成就集,不要沮丧。鼓励你联系该开发者并请求协作。若被拒绝,你可在成就集发布后提出修订计划。
+
+## 查看认领信息
+
+有多种方式可查看认领信息:
+
+- 每个游戏条目会显示是否有认领
+- 开发者的个人资料会显示其当前活跃认领
+- 网站导航栏包含 `New Sets & Revisions`、`Sets in Progress`、`My Claims` 和 `Expiring Claims`
+- 成就集请求列表会显示游戏是否有活跃认领
+
+## 认领配额
+
+每位开发者允许四个主认领。初级开发者允许一个主认领。但以下认领类型可标记为免费认领,因此不占用槽位:
+
+- 特殊认领,如发布期间发起的认领。这是由于发布的不确定性以及减轻开发者压力的考虑。
+- 若开发者发起修订或子集认领,可根据尚未复制到本节的某些标准将认领设为“自有修订”。
+- 协作认领。
+
+## 特殊认领
+
+特殊认领在主机发布和特定开发者活动期间授予。这些认领不计入最大认领配额。
+
+- 主机发布期间的特殊认领应在发布期内完成。
+- 发布启动后 7 天内未完成的发布认领将转为普通认领。其他特殊认领将在其适用活动规定的期限后到期,若未规定则遵循发布认领规则。
+- 转为普通认领的特殊认领立即适用标准认领规则。
+- 开发者必须在发布后 3 个月的发布窗口内优先维护发布成就集。工单应在 7 天内处理。
+- 发布后放弃成就集将导致未来无法参与发布。在成就集恢复至开发者合规团队规定的标准后,发布团队可酌情再次授予参与和认领优先权。
+- 若有特殊情况可能妨碍开发者满足这些要求,开发者合规团队可根据请求批准延期。
+
+## 重要说明
+
+- 建议在论坛主题中发布完整计划。这样做时,请对建议持开放态度;你可能会获得出色的意见和想法。
+
+## 特定类型成就集的附加规则
+
+### 改版
+
+请参阅 [ROM 改版成就](/zh/guidelines/content/achievements-for-rom-hacks) 文档获取完整信息。
+
+- 不得为纯外观改版认领成就集;这些通常只需在适当测试后链接到基础成就集。
+- 不得为未显著改变游戏玩法的简单 QOL 改版认领成就集。
+
+### 并行发行游戏
+
+请参阅 [并行发行游戏](/zh/guidelines/content/games-with-parallel-releases) 文档获取完整信息。
+
+- 不得认领合并成就集。例如:不得认领 _Pokémon Black Version | Pokemon White Version_。这些发行必须各有独立成就集。
+- 不得为你已制作另一成就集的游戏的并行版本认领成就集。例如:若你已认领或已为 [Pokémon Black](https://retroachievements.org/game/3887) 制作成就集,则不能为 [Pokémon White](https://retroachievements.org/game/16211) 制作成就集。
diff --git a/docs/zh/guidelines/developers/code-of-conduct.md b/docs/zh/guidelines/developers/code-of-conduct.md
new file mode 100644
index 00000000..6b110fcd
--- /dev/null
+++ b/docs/zh/guidelines/developers/code-of-conduct.md
@@ -0,0 +1,110 @@
+---
+title: 开发者行为准则
+description: RetroAchievements 开发者的基本指南,包括职责、公平竞争规则以及保持良好社区地位的措施。
+---
+
+# 开发者行为准则
+
+本文档涵盖开发者的权利、职责和公平竞争规则。
+
+[[toc]]
+
+**若你不是开发者,请参阅[如何成为成就开发者](/zh/developer-docs/how-to-become-an-achievement-developer)。**
+
+**另见**:[用户行为准则](/zh/guidelines/users/code-of-conduct)。
+
+- [黄金法则](#黄金法则)
+- [开发者要求](#开发者要求)
+- [修订 - 处理已有成就的成就集](#修订---处理已有成就的成就集)
+- [开发者身份到期](#开发者身份到期)
+- [成就所有权](#成就所有权)
+- [关于开发者行为准则的反馈](#关于开发者行为准则的反馈)
+
+## 黄金法则
+
+- 尽可能遵循开发者和内容指南。如有疑问,请询问。
+- 尊重其他开发者,以文明方式沟通处理任何问题。
+- 为其他开发者创造机会,让他们能以自己喜欢的方式参与喜欢的游戏。
+- 不得在公开或私下劝阻任何人参与任何游戏。
+- 开发者应以尊重态度对待玩家,正如玩家应尊重开发者一样。
+
+## 与玩家的互动
+
+玩家与开发者之间的互动可能并不总是一帆风顺。[用户行为准则](/zh/guidelines/users/code-of-conduct.html) 旨在确保玩家对开发者保持健康态度,同样开发者也必须做到这一点。不要将用户尊重的反馈视为有害或无效。相反,尝试理解他们,看看能从中学到什么。玩家的视角可能与开发者大不相同,因此让他们理解为何做出某些他们可能不同意的选择很重要。
+
+若用户变得具有攻击性并开始骚扰你或你的成就集,请不要继续与该用户互动。相反,请联系版主团队或 RAdmin。骚扰会被严肃对待,必要时会对用户采取行动,如禁言甚至网站封禁。版主团队将确保你能继续开发,而不会因无端的负面互动影响你的体验。
+
+## 开发者要求:
+
+- 开发者应保持作品不含[不受欢迎的概念](/zh/guidelines/content/unwelcome-concepts)。
+- 开发者应使用[防护代码](/zh/guidelines/content/achievement-set-requirements),防止潜在的作弊和漏洞利用。
+- 开发者应为每个成就条件留下准确的[代码注释](/zh/guidelines/content/code-notes)。
+- 对于成就集修订,开发者应遵循[修订政策](/zh/guidelines/content/achievement-set-revisions)。
+- 开发者应[处理工单](/zh/guidelines/developers/handling-tickets),并在每次处理时留下注释。
+- 像维基一样,开发者一旦发布作品,即将其交给社区[随时间接受审核和修改](#成就所有权)。
+- 开发者不得接受任何形式的制作成就集报酬,如金钱、物品、人情或其他类似补偿。
+- 开发者不得代表被封禁的开发者发布新成就逻辑。
+
+## 修订 - 处理已有成就的成就集
+
+修订,即处理已有成就的成就集,通常需要通过在论坛和 Discord 的 **#revision-voting** 频道提出计划获得社区批准。并非所有更改都需要批准。详见 [成就集修订](/zh/guidelines/content/achievement-set-revisions)。
+
+## 开发者身份到期
+
+### 不活跃
+
+在满足以下条件时,开发者身份将到期,账户类型将设为 `[Registered]`:
+
+- **开发者:** 作为开发者不活跃 6 个月或整体不活跃 3 个月。
+- **初级开发者:** 作为开发者或整体不活跃 1 个月。
+
+开发者需记住,这**不是**惩罚,仅为安全考虑!
+
+开发者不活跃的定义为:
+
+- 未发起或续期成就集认领
+- 未创建新成就
+- 未对现有成就集进行维护(修订、重新计分、徽章更改等)
+- 未处理、关闭或以其他方式处理任何未解决工单(自己的或他人的)
+
+### 工单疏忽
+
+**开发者在 RetroAchievements 上的最高优先级是维护其创建的成就。** 工单应尽快处理。若开发者满足以下任一情况,将被视为疏忽并失去开发者角色:
+
+- 5 个或更多至少 1 个月未处理的工单
+- 任何至少 2 个月未处理的工单
+
+未处理工单的定义为:至少 2 周内开发者未在工单中发表评论的工单。若开发者因工单信息不足无法解决工单且报告者无响应,可将工单关闭为“信息不足”。若开发者仍在处理工单,必须至少每 2 周提供一次状态更新评论,工单才被视为正在积极处理。
+
+疏忽政策的目的是确保开发者真诚地优先处理并解决工单。若有特殊情况可能妨碍满足疏忽要求,[DevCompliance](https://retroachievements.org/messages/create?to=DevCompliance) 可根据请求批准延期。
+
+_注意:若 DevCompliance 认定在尝试解决工单时未尽职调查,可能会重新打开工单。开发者必须按疏忽政策处理重新打开的工单。_
+
+### 恢复
+
+若用户的开发者身份因不活跃被移除且希望恢复,必须联系 Dev-Compliance。但在联系之前,建议查阅开发者行为准则的任何变更、成就创建工具的更新,并制定处理其成就未解决工单的计划(如适用)。
+
+恢复步骤因用户而异,取决于以下因素:
+
+- 自开发者身份被移除以来经过的时间
+- 其成就上可能已打开的工单数量
+- 自开发者身份被移除以来可能出现的其他 QA 问题
+- 用户可能收到的版主警告或处理
+
+若自开发者身份被移除已超过一年,或用户最初在初级开发者计划存在之前(2018 年 7 月)获得开发者身份且未追溯获得初级开发者徽章,可能要求用户向代码审核员提交作品。
+
+_注意:其他开发者编辑的成就不会计入寻求恢复的用户。_
+
+## 成就所有权
+
+**当你发布作品时,你将其交给社区**,随时间接受审核和修改 - 参见 [成就集修订](/zh/guidelines/content/achievement-set-revisions)。
+
+虽然原开发者不拥有已发布的成就,但他们在 bug 修复和维护方面仍是维护者。若另一开发者修订了成就,他们成为该成就的新维护者。
+
+### 更换账户
+
+若具有开发者或初级开发者身份的用户更换账户,旧账户下的成就和工单将重新署名并重新分配给新账户。
+
+## 关于开发者行为准则的反馈
+
+尽管开发者行为准则是激烈辩论的结果,但它不是不可更改的文档。若有改进建议,请在我们的 Discord 服务器上联系我们,或向 [RAdmin](https://retroachievements.org/user/RAdmin) 发送消息。
diff --git a/docs/zh/guidelines/developers/credit.md b/docs/zh/guidelines/developers/credit.md
new file mode 100644
index 00000000..16fd4537
--- /dev/null
+++ b/docs/zh/guidelines/developers/credit.md
@@ -0,0 +1,71 @@
+---
+title: 成就集与成就贡献署名
+description: 关于 RetroAchievements 上何时适合为不同类型署名分配贡献署名的指南。
+---
+
+# 成就集与成就贡献署名
+
+[[toc]]
+
+## 贡献署名的目的
+
+为 RetroAchievements 创建成就涉及许多不同方面。成就集由成就集设计、代码、美术、文案和稳定性测试组成。在某些情况下,成就集作者完成所有这些任务,但通常其他人也会对成就集做出重要贡献,值得认可和署名。
+
+本文档确立了何时可为每种可署名任务向贡献者分配署名的指南。开发者可根据本文档向用户分配任务署名。
+
+向未提供重大且可验证贡献的人分配署名被视为滥用署名系统。
+
+如有疑问,请联系 [QATeam](https://retroachievements.org/user/QATeam) 账户寻求澄清。
+
+## 如何分配署名
+
+署名通过管理应用分配给用户。成就集范围的任务署名在 **Set Credits** 标签页通过点击 **Add contribution** 署名按钮分配。单个成就署名可通过在 **Achievements** 标签页选择所需成就,然后点击 **Bulk add credit** 批量分配。
+
+## 成就集署名
+
+### 作者身份
+
+当开发者是成就集中至少一个已提升成就的作者时,自动授予作者身份。作者身份自动确定,开发者无法更改。
+
+### 精通图标署名
+
+精通图标署名应分配给创建成就集当前精通图标的人。当精通图标被替换时,将署名分配给新图标的创建者,并将 **Date Credited** 设为替换日期。若精通图标有多个贡献者,负责制作图标焦点的的人应获得署名。仅改变亮度、添加边框或保留大量先前图标美术作品的其他小改动不足以获得精通图标署名。
+
+## 单个成就署名
+
+### 徽章美术
+
+徽章美术署名应分配给创建当前成就徽章的人。当成就徽章被替换时,将署名分配给新徽章的创建者,并将 **Date Credited** 设为替换日期。若成就徽章有多个贡献者,负责制作徽章焦点的的人应获得署名。仅改变亮度、添加边框或保留大量先前徽章美术作品的其他小改动不足以获得徽章美术署名。
+
+### 设计
+
+成就设计署名应(由成就集开发者酌情)分配给提供成就概念的人。设计概念往往在成就集设计阶段或开发过程中演变,可能使确定署名变得困难。成就集开发者负责确定应获得成就设计署名的人。
+
+### 逻辑
+
+成就逻辑署名在上传成就时自动分配。若在修订或工单处理期间**完全重写**,可重新分配给另一开发者。修正相对较小的问题不足以分配逻辑署名。
+
+### 测试
+
+成就测试署名应按 Playtester 团队指导,在通过 Playtester 团队流程进行测试时分配。对于非 Playtester 团队成员但在与开发者直接协调下进行的测试,成就集开发者应使用以下指南确定测试署名是否合适:
+
+- 测试在成就首次提升之前进行
+- 测试全面详尽,即通过多次解锁尝试(包括预期情况和边缘情况)验证了正确功能
+- 发现的问题由开发者在提升前修正
+
+### 文案
+
+成就文案应按 Writing Team 指导,在通过 Writing Team 流程进行文案更新时分配。对于非 Writing Team 成员的文案更新,成就集开发者应根据以下指南确定文案署名是否合适:
+
+- 全新的标题,而非简单的首字母/语法修正或添加一个词
+- 对描述进行显著润色,使其更具吸引力
+ - ✅ Defeat the boss in Stage 1-1 damageless => Defeat Beelzebub in stage 1-1 "The Castle" without taking damage
+ - ✅ Obtain the Boulder Badge => Defeat Brock at the Pewter City Gym and obtain the Boulder Badge
+ - ❌ Find your missing fish and clear The Waterworks => Clear Stage 1 "The Waterworks"
+- 进行语法/首字母修正和重写,使描述更清晰
+ - ✅ Defeat Stage 1 boss without die => Defeat the boss of Stage 1 without dying
+ - ✅ Beat Firemanv3 With S Rank => Defeat FireManV3 with an S rank
+ - ✅ Clear Stage 1 (Hard mode, no deaths) => Clear Stage 1 on Hard mode without dying
+ - ❌ Open all chests in Moon Boon Cavern => Open every chest in Moon Boon Cavern
+ - ❌ Defeat boss in Stage 1 => Defeat the boss in Stage 1
+ - ❌ Clear Stage 1 [Hard] => Clear Stage 1 on Hard
diff --git a/docs/zh/guidelines/developers/handling-tickets.md b/docs/zh/guidelines/developers/handling-tickets.md
new file mode 100644
index 00000000..520a140f
--- /dev/null
+++ b/docs/zh/guidelines/developers/handling-tickets.md
@@ -0,0 +1,95 @@
+---
+title: 工单处理
+description: 管理与解决成就工单的指南,包括处理个人工单、为他人处理工单以及基于不同标准关闭工单的流程。
+---
+
+# 工单处理
+
+[[toc]]
+
+## 工单求助渠道
+
+若无法解决与工单相关的逻辑问题,请先在 Discord 频道 `#devs-help` 寻求帮助。有许多开发者乐于相助!若仍有困难,也可直接联系 [QATeam](https://retroachievements.org/messages/create?to=QATeam) 请求协助。他们很乐意帮助排查问题。
+
+## 处理自己的工单
+
+**开发者发布成就后,应做好接收错误报告的准备。**
+开发者在 RetroAchievements 的首要任务是妥善解决工单,保持作品无 bug。开发者应尽快回复所有工单。回复越早越好,因为问题在玩家脑海中仍清晰,其信息有助于解决问题。
+
+::: warning 主机推广套装工单
+在主机推广后的 3 个月发布窗口期内,推广套装中的工单必须至少每 7 天处理或更新一次。
+:::
+
+## 有未处理工单时能否认领新套装?
+
+要获得套装的主要认领或协作认领资格,开发者不得有任何*未处理*工单。
+
+- 当开发者虽无法立即解决问题,但在工单中留言请求报告者提供存档、状态或补充信息时,该开放工单视为已处理。
+- 已正确关闭或解决的工单当然视为已处理。
+
+## 解决工单的步骤
+
+1. 尽职调查以查明问题原因。
+2. 若初始报告缺乏细节,向报告者询问详细问题以缩小可能原因。
+3. 若未提供存档,或提供的存档状态无法帮助诊断,请索取一个或多个存档状态。明确说明存档应在游戏中的何处创建。帮助用户了解需要捕获的内容。
+4. 尝试在用户使用的同一核心上复现问题。
+ - 可能需要在 RALibretro 中编辑 `cores.json`,从核心定义中移除 `"platforms": "none"` 行,以便下载并使用该核心。
+5. 若为解决其他开发者成就的工单,请备份旧逻辑并留在工单评论中。这样若你的修复引发新问题,你或其他开发者可参考之前的逻辑。
+6. 找到问题后,开发并测试你的修改。
+
+- 注意:对于在错误时机触发的成就,请确保测试你的修改能解决误触发,且仍能在正确方式下触发成就。
+
+7. 留下你为解决工单所做工作的摘要。如可能,说明问题原因、修复内容及修复原理。
+
+## 关闭工单的步骤
+
+1. 尽职尝试复现问题。
+2. 未留下说明为何关闭工单为正确操作的评论前,不得关闭工单。
+3. 使用最合适的理由关闭:
+
+- **无法复现**:仅在尽可能收集工单上下文信息、在核心上以多种方式尝试触发条件仍无法复现结果后使用。
+- **信息不足**:仅在尽可能尝试复现问题,但无报告者进一步信息无法得出相同结果后使用。
+ - 在以此方式关闭前,留出数天时间等待新信息。
+- **网络问题**:若明确问题由用户无法连接服务器导致,应使用此关闭理由。
+- **误报**:仅在明确用户未执行正确操作解锁工单,或出于非工单适用原因报告工单时使用。
+- **其他原因**:若存在其他关闭工单的原因可使用。务必在工单评论中充分说明关闭理由。
+
+## 为其他开发者处理工单
+
+在以下准则下,你可为其他开发者解决工单:
+
+### 活跃开发者工单
+
+你可协助解决。开发者仍应实施所需的代码修改,但你可建议逻辑并帮助查找原因。
+
+活跃初级开发者的工单仅可由代码审核团队成员处理。若初级开发者请你关闭或解决其工单,请将其转介给代码审核员。
+
+### 非活跃开发者工单
+
+非活跃开发者成就的工单是 RetroAchievements 上最常见的开放工单。强烈鼓励开发者在有能力时考虑解决非活跃开发者工单。这对社区极为有益,深受赞赏!
+
+可修改描述和/或逻辑以解决非活跃开发者成就的问题。当描述与逻辑冲突时,开发者须根据最佳判断确定成就的预期要求并适当调整。如有疑问,应联系 [DevCompliance](https://retroachievements.org/user/DevCompliance) 寻求指导。
+
+若开发者更新了非活跃开发者成就逻辑,并发现或被告知该成就随后被提交工单,强烈建议其尝试处理新工单。QA 可能会联系曾解决非活跃开发者工单的开发者,请求协助解决当前问题。
+
+若开发者在尝试修复后不再希望与某成就关联,可请求 QA 不再就该成就联系他们。有时恢复成就至先前逻辑是合理的,或在某些情况下,尽管成就未完全修复,但已有一定改进。QA 将与开发者协调,确保在开发者脱离其曾尝试修复的非活跃开发者成就时,采用最稳定的逻辑。
+
+### 认领工单
+
+开发者可在工单评论中留言表明意图,对工单调查与解决进行软认领。
+
+- 解决非活跃开发者工单无需认领。
+- 若他人已表明将解决某工单,你可在工单评论中提供额外见解。
+- 处理工单的开发者可选择与其他开发者或用户协作解决工单。
+- 连续七天无解决进展后,工单视为无人认领,以便其他开发者提供解决方案。
+
+## 若开发者重新活跃
+
+_开发者非活跃期间被他人修改的成就,其工单由谁处理?_
+
+若非活跃开发者重新活跃,他们仍对其被其他开发者修复的成就负责。
+
+- 强烈建议新活跃开发者审阅其非活跃期间被解决的工单,以了解对其成就所做的修改。
+- 如有需要,联系做出解决工单修改的开发者。
+- 若新活跃开发者不再希望拥有这些成就,可联系开发者合规团队咨询成就重新授权事宜。
+ - 注意:已接受的重新授权将根据相关开发者及对成就的修改情况逐案处理。若引入套装或成就维护者机制,将重新评估此规则。
diff --git a/docs/zh/guidelines/developers/maintainership.md b/docs/zh/guidelines/developers/maintainership.md
new file mode 100644
index 00000000..2b290319
--- /dev/null
+++ b/docs/zh/guidelines/developers/maintainership.md
@@ -0,0 +1,38 @@
+---
+title: 维护者
+description: 维护者角色说明、角色申请及审批流程。
+---
+
+# 维护者角色的目的与资格
+
+成就维护者角色允许开发者承担成就的维护责任。未来的工单和解锁积分将归属成就维护者,维护者身份实质上为所有权转移。原作者不会失去 authorship 署名、工单历史或新维护者分配前的解锁积分。若维护者失去或放弃该角色,新工单和解锁将重新归属作者。维护者可被分配至整套或部分成就,取决于所做工作的范围。维护者角色仅可由 QA 团队审批和分配。
+
+维护者申请将根据重大修复情况逐案考虑。修正套装层面的重大不稳定问题是审批维护者角色的主要考量因素。因维护者角色将未来积分授予维护者,获得该角色所做的工作必须达到修复重大不稳定问题的程度。编码不佳但否则稳定的成就通常不是维护者审批的合适候选。
+
+[[toc]]
+
+## 哪些情况可能符合维护者资格?
+
+良好的维护者候选通常满足以下多项标准:
+
+- 套装因必要修复被 QA-Maintainers 降级。
+- 现有逻辑对套装或某类成就存在根本性缺陷,需在全部受影响成就中替换。
+- 套装中的问题导致频繁工单或其他质量问题。
+- 需进行大量新的 RAM 挖掘以找到替代地址或更优地址以实现目标。
+- 为正确功能与稳定性需对逻辑进行重大重写。
+- 新逻辑中保留的逻辑条件极少或没有。
+- 任何保留的逻辑条件均非功能性的最重要数据。
+- 单条件成就且最终产品与原先差异巨大。
+- 申请人在套装中有修复工单的历史。
+- 套装中所有工单已解决或关闭。
+
+## 哪些情况不符合维护者资格?
+
+为先前稳定的成就编写新逻辑不足以获得维护者资格。不良候选包括但不限于:
+
+- 重写逻辑但未表现出任何问题(即不易引发工单或漏洞利用)。
+- 主要改动仅为添加 Delta 检查。
+- 主要改动仅为添加游戏内/关卡内或其他类似防护条件。
+- 仅添加了存档保护、演示保护或作弊保护等防护。
+- 将否则功能正常的成就的过时逻辑更新为符合现代工具包特性与标准。
+- 相对简单的“顺路”工单修复。
diff --git a/docs/zh/guidelines/users/code-of-conduct.md b/docs/zh/guidelines/users/code-of-conduct.md
new file mode 100644
index 00000000..1263ef08
--- /dev/null
+++ b/docs/zh/guidelines/users/code-of-conduct.md
@@ -0,0 +1,111 @@
+---
+title: 用户行为准则
+description: RetroAchievements 用户的基本指南,促进健康协作的社区。包括行为规则、审核流程和常见问题。
+---
+
+# 用户行为准则
+
+[[toc]]
+
+## 使命宣言
+
+RetroAchievements 项目旨在为复古游戏成就创作提供工具,以及享受此类创作的方式。我们努力促进围绕这一爱好的健康协作社区。我们生产的一切都是免费提供的,我们永远不会从中获利。
+
+## 如何报告问题
+
+- **用户行为问题**(骚扰、垃圾信息、行为准则违规):联系 [RAdmin](https://retroachievements.org/messages/create?to=RAdmin) 或私下联系审核团队成员。
+- **游戏/成就集内容问题**:联系 [RAdmin](https://retroachievements.org/messages/create?to=RAdmin)。虽然我们不会根据游戏内容进行策展,但我们欢迎关于内容警告和过滤系统的反馈。
+
+## 规则
+
+全球有大量复古游戏玩家,跨越各种不同的文化、观点和意见。因此,为了为社区提供一个健康的环境来分享他们对复古游戏的热爱,我们需要一些规则。
+
+### 简短版
+
+这个简短版对大多数人来说应该足够了:
+
+1. 不要当混蛋或通常令人讨厌——没人喜欢捣乱者。
+2. 不要使用我们的网站或 Discord 服务器分享受版权保护的材料或关于可以下载它们的信息。
+3. 保持 Discord 频道和论坛主题与主题相关(不过我们确实有一个离题聊天区)。
+4. 当版主/管理员要求你停止时,你应该停止。
+5. 如有疑问,在 Discord 中 @mod 或向网站上的 [RAdmin](http://retroachievements.org/createmessage.php?t=RAdmin) 发送消息。
+
+### 详细版
+
+如果[简短版](#简短版)对你来说不够清楚,这里是详细版:
+
+#### 预期行为示例
+
+- 关注对社区最有利的事情。
+- 对其他社区成员表现出同理心。
+- 在表达观点时保持尊重。
+- 优雅地接受建设性和尊重的批评。
+- 向版主/管理员报告这些规则被违反的情况。
+
+#### 不可接受的社会行为
+
+- 索取或发布他人可以下载受版权保护材料的网站链接。
+- 通过任何方式发送垃圾消息或试图破坏 Discord 或网站。
+- 未经批准宣传产品、服务或其他 Discord 服务器。
+- 偏见:包括种族主义、性别歧视、精英主义;对他人国籍、宗教、性取向、政治信仰等的不容忍。
+- 公开或私下骚扰。
+- 诽谤,即对可能损害某人声誉的人做出*虚假陈述*。
+- 暴力威胁。
+- 对他人不受欢迎的性关注或追求。
+- 发布色情内容,即旨在引起性兴奋的色情行为图像或描述。
+- 发布旨在引起厌恶的血腥或恐怖图像。
+- 未经明确许可发布他人的私人信息,例如他们的照片或他们的物理或电子地址。
+
+#### 强烈不赞成的行为
+
+- 激烈的公开争论。
+- 过度的 shitposting。
+- 人身攻击,即在审查他人主张或评论时对某人进行辱骂性言论,而不是提供证据。
+
+如果争论开始失控,版主会介入降温。请查看下方[审核如何运作](#审核如何运作)。
+
+### 言论自由
+
+如果你只是想抱怨或倾倒关于我们如何运营的贬义评论,你可以自由地这样做。但是,由于这会令人沮丧并浪费大量志愿者的时间,我们不希望它出现在我们的论坛或 Discord 服务器上。互联网上有很多地方你可以这样做。
+
+请记住,RetroAchievements.org 不是言论自由的堡垒。
+
+如果你有批评,非常欢迎你说出来,只需确保保持文明。
+
+## 审核如何运作
+
+如果你觉得需要审核,在我们的 Discord 服务器上 ping @Moderator 角色,或向网站上的 [RAdmin](https://retroachievements.org/messages/create?to=RAdmin)(共享 mod-mail 账户)发送站内私信。如果你更愿意匿名,私下联系活跃版主也是一个选择。
+
+审核团队的目标是确保所有用户遵守[用户行为准则](/zh/guidelines/users/code-of-conduct)。虽然本行为准则很全面,但我们的版主保留对威胁安全、健康和包容性社区的违规行为采取行动的权利。
+
+我们优先通过首先要求用户退后并提醒他们我们的社区规则来外交解决问题。然而,如果这些警告被忽视,我们将对你的 Discord 和 RetroAchievements 账户采取强制执行行动。
+
+- 如果违规较轻,版主可能会选择禁言用户,限制他们在 Discord 服务器和网站上的所有社交能力。这不会影响与获得成就相关的任何事情。同样,用户将能够在此禁言期间联系团队账户。
+ - 请注意,如果开发者或初级开发者违反行为准则并收到禁言,禁言也可酌情由开发者合规或代码审查团队作为开发者停职。版主会在发生这种情况时通知团队。
+- 严重违规将导致你的账户被封禁,将你从 Discord 服务器移除并使你的 RetroAchievements 个人资料无法访问。
+
+注意:导致禁言的违规在 Discord 服务器和 RetroAchievements 网站之间共享。同样,我们网站上的封禁将自动导致 Discord 上的封禁。Discord 的封禁可能导致 RetroAchievements 网站封禁或其他限制措施,取决于严重程度。
+
+如果你已被封禁并想申诉恢复你的账户,请发送电子邮件至 或向 [RAdmin](https://retroachievements.org/messages/create?to=RAdmin) 发送私信。
+
+### 如果你认为审核有误该怎么办
+
+如果你认为版主没有按上述方式行事,请向 [RAdmin](http://retroachievements.org/createmessage.php?t=RAdmin) 发送私信或发送电子邮件至 。这是一个所有版主和管理员都能看到的共享审核账户。问题将被讨论并公平处理。
+
+不真诚地遵循或执行本行为准则的管理员/版主可能会面临由项目管理的其他成员决定的临时或永久后果。
+
+## 常见问题
+
+### 当成员被 Discord 服务器封禁时,他们是否会自动被网站封禁?
+
+不总是,但可能会根据严重程度发生。
+
+### 我创建了一个 Discord 服务器,因为我想要比官方 RetroAchievements 服务器上更多的自由。我可以在这里宣传我的服务器吗?
+
+不可以。
+
+### 成就创作者是否必须加入 Discord 服务器?
+
+不。
+
+加入我们的 Discord 服务器是可选的。但如果你在封禁用户列表中,你无法在网站上拥有"开发者"角色。
diff --git a/docs/zh/guidelines/users/global-leaderboard-and-achievement-hunting-rules.md b/docs/zh/guidelines/users/global-leaderboard-and-achievement-hunting-rules.md
new file mode 100644
index 00000000..1ae6d6a1
--- /dev/null
+++ b/docs/zh/guidelines/users/global-leaderboard-and-achievement-hunting-rules.md
@@ -0,0 +1,238 @@
+---
+title: 全球排行榜与成就狩猎规则
+description: 参与 RetroAchievements 全球排行榜的全面规则和指南,包括可接受的行为和公平竞争的特殊考虑。
+---
+
+# 全球排行榜与成就狩猎规则
+
+## 简要说明 - 黄金法则
+
+[全球排行榜](#global-leaderboard) 的参与者必须以公平合法的方式获得成就。
+
+一般而言,玩家必须:
+
+- 使用经批准的[硬核兼容模拟器](/zh/general/emulator-support-and-issues)的最新正式版;
+- 在游戏内通过游戏内操作解锁成就;
+- 自行操作;
+- 不修改游戏文件或游戏代码;
+- 不使用其他玩家的存档或密码;
+- 不使用外部作弊程序。
+
+尽管这些规则力求全面,RetroAchievements 团队保留将账户指定为不追踪状态的权利,如果玩家的方法即使未明确禁止,也明显违反公平竞争和合法成就狩猎的精神。
+
+这些规则旨在让玩家在游戏中保持诚实,在[全球排行榜](#global-leaderboard)竞争中彼此诚实。
+
+## 目录
+
+[[toc]]
+
+## 全球排行榜
+
+RetroAchievements 全球排行榜是主要的官方社区竞赛。这包括基于所获成就积分总和与所有其他排名玩家比较的独特网站排名。积分大于 0 的每个账户默认会被排名。
+
+自成立以来,社区不断塑造了全球排行榜上什么是公平合法游戏与不公平(作弊)的界定。以下规则是我们对希望参与排名系统的每位玩家的期望。任何表明玩家未能遵守此处规则的情况可能导致失去全球排行榜的使用权,也称为 **[不追踪](#untracked)** 状态。
+
+## 硬核模式 vs 软核模式
+
+有两种游戏模式:硬核模式和软核模式。
+
+- 硬核模式是模拟器禁用即时存档加载、倒带和慢动作的功能。[快进功能是唯一被接受的例外](#allowed-1)。认真对待全球排行榜的用户很可能会在硬核模式下获得成就。此外,活动几乎总是要求成就必须在硬核模式下获得。
+ - 注意:在硬核模式下创建即时存档是允许的,可以用于稍后在软核模式下练习某个区域,或帮助开发者解决工单。
+- 软核模式允许模拟器功能,如即时存档、倒带、慢动作、模拟器作弊等。此模式的竞争性较低,面向只想做自己事情的玩家。此模式在成就处理方面可能有些问题;因此,错误报告往往会被谨慎对待。
+
+## 不追踪
+
+具有不追踪状态的用户会被排除在所有排名之外。他们的活动在用户页面之外不可见,他们的解锁不会影响成就统计。此状态适用于共享账户、对硬核和软核排名零兴趣、被怀疑作弊或实际作弊的用户。不追踪用户仍可正常获得成就、获得精通徽章等。
+
+自愿不追踪可通过 [RAdmin](https://retroachievements.org/user/RAdmin) 申请,同样可以通过重置所有进度并联系同一账户来撤销。在申请自愿不追踪之前,请记住,如果你的理由是更愿意使用即时存档和模拟器作弊等模拟器功能,软核模式是存在的。
+
+非自愿不追踪是在玩家违反[全球排行榜](#global-leaderboard)规则时进行的。不追踪玩家应联系 [RACheats](https://retroachievements.org/user/RACheats) 以获取进一步指导,如果他们是非自愿不追踪的,并想了解是否有资格重新被追踪。
+
+如果你注意到某玩家已成为不追踪状态:不要骚扰他们、指责他们作弊、制造公开场面等。不要询问版主或管理员某用户为何被不追踪。这不关你的事。
+
+**警告**:使用硬核兼容模拟器以外的方法解锁成就将导致你的账户被设为不追踪。发生这种情况时,重新进入全球排行榜的唯一方法是完全重置你个人资料上的所有成就。没有例外,没有申诉。此类情况的严重案例也可能导致封禁。
+
+## 不允许
+
+1. [不要使用绕过成就代码以即时解锁成就的方法。](#not-allowed-1)
+2. [不要使用非硬核兼容的模拟器在硬核模式下解锁成就。](#not-allowed-2)
+3. [不要以与描述要求相矛盾的方式获得成就。](#not-allowed-3)
+4. [不要使用不属于你自己的或在其他游戏条件下制作的存档或密码。](#not-allowed-4)
+5. [不要以任何方式修改游戏文件或内存。](#not-allowed-5)
+6. [不要使用称为"训练器"的游戏文件或程序。](#not-allowed-6)
+7. [不要使用 TAS(工具辅助速通)、机器人或复杂脚本来获得成就。](#not-allowed-7)
+8. [不要允许其他人访问你的账户并为你获得成就。](#not-allowed-8)
+9. [不要同时向多个游戏发送输入。](#not-allowed-9)
+10. [不要创建或分享作弊方法。](#not-allowed-10)
+11. [不要使用游戏内作弊码,除非开发者明确说明允许。](#not-allowed-11)
+
+### 1. 不要使用绕过成就代码以即时解锁成就的方法。 {#not-allowed-1}
+
+即使你"本应"解锁该成就。即使游戏有 bug。即使成就被移除或完全损坏。一旦被检测到,将导致账户被 **[不追踪](#untracked)**。
+
+在你本应解锁成就但由于网络问题未触发或未在网站上注册的情况下,你应该[按照常见问题中描述的步骤申请手动解锁](/zh/general/faq#how-do-i-request-a-manual-unlock)。
+
+**注意**:确保你使用的是经批准的硬核兼容模拟器的最新正式版。
+
+### 2. 不要使用非硬核兼容的模拟器在硬核模式下解锁成就。 {#not-allowed-2}
+
+只有符合[硬核合规要求](/zh/general/hardcore-compliance-requirements)的模拟器才被批准在硬核模式下获得成就。使用不合规的模拟器、修改版模拟器或不正确执行硬核规则的模拟器将导致你的账户被 **[不追踪](#untracked)**。
+
+**示例**:
+
+- 使用绕过硬核限制的非官方或修改版模拟器构建
+- 使用在硬核模式下允许即时存档、倒带或作弊的模拟器
+
+### 3. 不要以与描述要求相矛盾的方式获得成就。 {#not-allowed-3}
+
+如果你发现了成就的后门,这是一个 bug。请使用工单报告此 bug。
+
+另见[允许规则 2](#allowed-2)。
+
+**示例:**
+
+- 你通过关卡选择作弊码解锁完成关卡的成就;这是 bug,必须报告/修复。
+- 你注意到如果你在两个房间之间来回走动,你会解锁旨在推进游戏的成就。
+- 你找到了在战斗中受伤时获得无伤 Boss 成就的方法。
+
+### 4. 不要使用不属于你自己的或在其他游戏条件下制作的存档或密码。 {#not-allowed-4}
+
+有时开发者可能会提供存档或密码供你使用以获得某些成就。根据成就集开发者的判断,这是适当的。
+
+**示例**:
+
+- 在线下载点击游戏的存档。
+- 恳求朋友发送他的存档,因为你的房子烧毁了,你丢失了所有 PC 文件。
+- 加载你在非 RA 模拟器上玩游戏时创建的硬核存档。
+- 加载你在软核模式下创建的存档用于硬核以获得硬核积分。
+
+### 5. 不要以任何方式修改游戏文件或内存。 {#not-allowed-5}
+
+**示例**:
+
+- 用文本/十六进制编辑器打开特定游戏文件并更改值;编辑游戏文件的"只读"等属性;等。
+- 编辑游戏中的统计或解锁,然后保存数据。
+
+### 6. 不要使用称为"训练器"的游戏文件或程序。 {#not-allowed-6}
+
+可以增强你在游戏中的能力、解锁调试模式、加速游戏、修改游戏代码等的程序。
+
+**示例**:
+
+- 使用训练器程序或存档编辑器做任何事。
+- 对任何游戏使用训练版 ROM(它们不会被链接)。
+- 使用充当训练器或调试/作弊工具集的非官方/旧版 mod/模拟器。
+- Game Genie / Action Replay 及类似作弊工具。
+- 出于非开发原因使用 RALibRetro 或任何支持 RAIntegration 的模拟器的开发者功能。
+
+### 7. 不要使用 TAS(工具辅助速通)、机器人或复杂脚本来获得成就。 {#not-allowed-7}
+
+这些都是远超简单任务的游戏高级脚本(有时甚至与时钟同步),允许在没有人工交互的情况下玩复杂、独特和/或非单调/非重复的游戏部分。
+
+**示例**:
+
+- 使用 TAS 完成困难的速通或无死亡成就。
+- 使用具有高级功能的复杂脚本。
+- 使用在没有人工输入但需要许多独特操作的情况下完成整个游戏或大部分游戏的复杂脚本。
+
+### 8. 不要允许其他用户访问你的账户并为你获得成就。 {#not-allowed-8}
+
+包括你的"弟弟"或你的"表弟"。你必须自己获得成就。让别人在你的账户上获得成就在一般情况下是不允许的,如果任何人在你的账户上作弊或违反规则,你仍将承担责任。
+
+**示例**:
+
+- 让更擅长某游戏的朋友在单人游戏中为你完成困难部分。
+- 让某人登录你的 RA 账户为你打败游戏的困难部分。
+- 让你的弟弟为你做刷子成就。
+
+### 9. 不要同时向多个游戏发送输入。 {#not-allowed-9}
+
+你不应通过同时用任何输入控制多个游戏来获得对其他玩家的不公平优势。这不仅限于同一游戏的多个实例,而是普遍适用。
+
+**示例:**
+
+- 控制同一游戏的多个实例以增加你在基于运气的成就上的几率。
+- 控制不同的 RPG 游戏并用相同输入重复战斗以进行刷级。
+
+请注意,此规则不适用于打开多个会话但不同时控制它们的情况。例如,允许玩一个游戏,然后暂停它以在不同实例中练习同一游戏或完全玩不同的游戏,无论是在同一设备还是另一设备上。只要在完全相同时刻没有超过一个游戏接收输入,这是允许的。
+
+### 10. 不要创建或分享作弊方法。 {#not-allowed-10}
+
+**示例**:
+
+- 教某人如何使用内存黑客工具。
+- 在论坛上发帖推广恶劣的游戏文件编辑方法。
+- 向某人发送内存黑客工具或训练器程序的链接。
+- 教某人如何隐藏作弊。
+- 创建不允许的复杂脚本并分享,即使你从未自己使用过。
+
+### 11. 不要使用游戏内作弊码,除非开发者明确说明允许。 {#not-allowed-11}
+
+[允许 2](#allowed-2) 的另一面。作弊码和调试模式不允许,除非开发者已注明哪些以及何时允许。即使成就可以通过作弊码获得,这通常也是非预期的行为,如果故意这样做则视为作弊,应通过工单系统作为 bug 报告。
+
+## 允许
+
+1. [快进是允许的。](#allowed-1)
+2. [_当成就描述中明确说明时_,游戏内作弊码/模式和游戏内调试工具是允许的。](#allowed-2)
+3. [使用游戏内漏洞、游戏内利用和"取巧"策略是允许的。](#allowed-3)
+4. [使用在线攻略/通关指南是允许的。](#allowed-4)
+5. [与另一名或多名玩家玩合作/竞技游戏是允许的。](#allowed-5)
+6. [连发是允许的。](#allowed-6)
+
+### 1. 快进是允许的。 {#allowed-1}
+
+即使在硬核模式下,快进也是允许的,作为现代便利。快进对公平竞争没有风险是 ~~几乎~~ 共识,因此每个人都可以使用它。
+
+**注意**:在*软核*模式下,即时存档、倒带和慢动作也是允许的,但可能会遇到一些问题。请阅读[此链接:为何不应使用加载存档功能](/orphaned/load-state-feature)。
+
+### 2. _当成就描述中明确说明时_,游戏内作弊码/模式和游戏内调试工具是允许的。 {#allowed-2}
+
+这是[不允许规则 3](#not-allowed-3) 的补充。
+
+成就开发者被指示[保护他们的工作,使成就不能通过简单使用作弊码轻松解锁](/zh/guidelines/content/achievement-set-requirements#every-achievement-set-must-have)。然而,一些酷炫有趣的挑战可以利用某些作弊来创建。在这些特定情况下,使用游戏内作弊是允许的。
+
+**注意**:如果你发现成就可以通过使用游戏内作弊解锁且没有相关描述,考虑开一个工单并报告。
+
+**示例**:
+
+- 在 [Tetris (Game Boy)](http://retroachievements.org/game/508) 中,你应该激活速度作弊以获得 [Challenge of the Gods](http://retroachievements.org/achievement/46820) 成就,你需要在速度 19 上消除 20 行。
+- 在 [Guerrilla War (NES)](http://retroachievements.org/game/1727) 中,你被允许使用"关卡和难度选择画面"作弊来获得你需要在不清除任何人质的情况下通关关卡的成就。
+
+### 3. 使用游戏内漏洞、游戏内利用和"取巧"策略是允许的。 {#allowed-3}
+
+游戏内漏洞/利用/取巧策略是允许的,_但开发者可以通过编程禁止它们_。通常在成就描述中会提及。
+
+这不包括成就开发者代码存在缺陷的情况。在这种情况下,请创建工单报告,并按开发者预期的方式获得成就。另见[不允许规则 3](#not-allowed-3)。
+
+**示例**:
+
+- 突破正常边界以避开敌人。
+- 在游戏内做一些奇怪的事情来"让游戏出 bug",使你无敌。
+- 比预期更早获得强力物品。
+- 站在敌人打不到你的地方。
+
+**开发者禁止的示例**:Megaman (NES) - 不使用暂停漏洞无伤击败 Boss。
+
+### 4. 使用在线攻略/通关指南是允许的。 {#allowed-4}
+
+**示例**:youtube 视频攻略;GameFAQs;谜题解法;收集品列表;等。
+
+### 5. 与另一名或多名玩家玩合作/竞技游戏是允许的。 {#allowed-5}
+
+玩合作是允许的,_但开发者可以通过编程禁止它_。通常在成就描述中会提及。
+
+另见[不允许规则 3](#not-allowed-3)。
+
+**示例**:熟练的朋友和你一起玩 Streets of Rage 或 Goof Troop;等。
+
+### 6. 连发是允许的。 {#allowed-6}
+
+连发是指你按住一个按钮,该按钮会自动快速重复按下。连发要么内置在手柄中,要么内置在模拟软件中。无论哪种情况都是允许的。
+
+如果存在比快速重复同一按钮更复杂的脚本,则不允许。见[不允许 7](#not-allowed-7)。
+
+## 特别感谢
+
+本文档大量基于 [100Pals Unified Achievement Hunting Rules](https://achievementhunting.com/rules)("UAHR")。此版本经过精简并针对 RetroAchievements 特别相关的主题进行了调整。
+
+[100Pals/AchievementHunting.com](https://achievementhunting.com/) 是成立于 2015 年的全平台成就狩猎社区。
diff --git a/docs/zh/guidelines/users/retroachievements-manifesto.md b/docs/zh/guidelines/users/retroachievements-manifesto.md
new file mode 100644
index 00000000..2efb8e16
--- /dev/null
+++ b/docs/zh/guidelines/users/retroachievements-manifesto.md
@@ -0,0 +1,64 @@
+---
+title: RetroAchievements 宣言
+description: RetroAchievements 核心原则简要概述,强调成就的社区驱动性质以及尊重参与的重要性。
+---
+
+# RetroAchievements 宣言
+
+**这是 RetroAchievements 宣言,本社区的每位成员都应了解。**
+
+自 RetroAchievements 早期以来,我们在 [常见问题](/zh/general/faq) 中对 [什么是 RetroAchievements.org?](/zh/general/faq#what-is-retroachievementsorg) 的回答一直是:
+
+> RetroAchievements.org 是一个零利润社区,人们通过模拟器协作和竞争,在经典游戏中获得定制成就。成就由社区制作,为社区服务。(...)
+
+在本宣言中,我们将深入探讨这一回答。
+
+## RetroAchievements.org 是一个零利润社区
+
+我们的首页上确实有捐赠链接,但我们仍然是一个零利润社区。
+
+赞助者每月仅贡献一美元,幸运的是我们有足够的赞助者来支付服务器费用,而无需依赖烦人的广告。
+
+然而,我们要非常明确地说明,获得捐赠不是我们的商业模式,正是因为 **RetroAchievements 不是一家企业!**
+
+商业组织总是渴望获得更多客户。他们会尽其所能取悦客户并不断吸引更多客户。但在这里,在 RetroAchievements,我们不是企业,**我们是社区**。
+
+我们没有客户,我们有社区成员。
+
+我们是一群热爱复古游戏的人。如果你分享同样的热情,欢迎加入我们。
+
+尽管我们欢迎任何人,但我们不会拼命乞求越来越多的用户。这是你的选择:如果你喜欢我们提供的内容,拿起手柄,让我们一起玩经典游戏吧!
+
+## 成就由社区制作,为社区服务
+
+这与上面所说的相关。我们不是为局外人提供服务。我们在这个社区创造的东西是为这个社区本身服务的。欢迎你留下来,但由你决定是否想成为其中一员。
+
+在成为这个社区一员的同时,请始终牢记以下陈述:
+
+**1. 我们这里最重要的东西是成就。**
+
+**2. 我们这里最重要的人是成就创作者。**
+
+这意味着什么?
+
+### 我们这里最重要的东西是成就
+
+我们都喜欢个人资料页上的那些徽章,对吧?有时对徽章的依恋会在相应成就集被修订时造成挫败感。但重要的是要记住,这个项目在不断演变。
+
+我们以质量为重进行成就集修订,以表达对游戏的实际尊重。我们也尊重你获得的奖励,但提高项目的整体质量优先于我们的个人资料页和/或我们的积分数量。
+
+此外,如果你无法精通某个成就集,这并不意味着它需要被削弱/降级/转为奖励集。如果其他玩家能做到,你可能也能做到。但如果你做不到,也没关系。你不需要解锁每个成就来继续享受老游戏的乐趣。
+
+如果你仍然认为该成就集包含[不受欢迎的概念](/zh/guidelines/content/unwelcome-concepts),你可以在游戏的论坛主题中发表你的论点。只需确保措辞尊重。这就引出了下一点……
+
+### 我们这里最重要的人是成就创作者
+
+不要误解!RetroAchievements 生态系统有很多人,扮演着除创作成就之外的许多不同角色,他们都很重要。但成就创作者是这个项目的骨干。没有他们,这只是一个有缺陷且过时的网站。
+
+成就创作是一项非常耗时的工作。从事这项工作的人将大量业余时间投入到为整个社区创造内容中。
+
+无论如何,即使你无法/不感兴趣创作成就而只想玩游戏,你对我们也很重要。事实上,**我们有无数非常有价值的玩家成员**。这里的关键点是:参与进来,友善待人。
+
+你参与得越多,你为社区增加的价值就越大。
+
+最后但同样重要的是,如果你对成就创作者的工作有批评,请保持尊重。对他们表现出怨恨是强烈不赞成的。对他们不尊重,你绝对不受欢迎。
diff --git a/docs/zh/index.md b/docs/zh/index.md
new file mode 100644
index 00000000..7f4afa67
--- /dev/null
+++ b/docs/zh/index.md
@@ -0,0 +1,77 @@
+---
+layout: home
+
+title: RetroAchievements
+
+# TODO 跟踪最受欢迎的链接并相应更新
+hero:
+ name: RetroAchievements
+ text: 文档
+ tagline: 自 2012 年起为复古游戏添加成就。
+ actions:
+ - theme: brand
+ text: 模拟器支持
+ link: /zh/general/emulator-support-and-issues
+ - theme: alt
+ text: 行为准则
+ link: /zh/guidelines/users/code-of-conduct
+ - theme: alt
+ text: 成为开发者
+ link: /zh/developer-docs/how-to-become-an-achievement-developer
+ image:
+ src: /ra-logo-big-shadow.png
+ alt: VitePress
+
+features:
+ - icon: 🙋🏽
+ title: 注册
+ details: 创建账户即可开始。
+ link: https://retroachievements.org/createaccount.php
+ - icon: 🕹️
+ title: 下载模拟器
+ details: 安装经过验证的模拟器,开始获取成就。
+ link: https://retroachievements.org/downloads
+ - icon: 📡
+ title: API 文档
+ details: 将 RetroAchievements 集成到你的应用、网站或前端。
+ link: https://api-docs.retroachievements.org
+ - icon: 🔧
+ title: 模拟器集成文档
+ details: 将 RetroAchievements 集成到你的模拟器。
+ link: https://github.com/RetroAchievements/rcheevos/wiki/rc_client-integration
+---
+
+
diff --git a/docs/zh/orphaned/achievement-logic-features.md b/docs/zh/orphaned/achievement-logic-features.md
new file mode 100644
index 00000000..be922370
--- /dev/null
+++ b/docs/zh/orphaned/achievement-logic-features.md
@@ -0,0 +1,40 @@
+---
+title: 成就逻辑功能
+description: 开发者可以使用多种工具和选项。了解如何正确使用它们将提升你的成就集质量。
+---
+
+# 成就逻辑功能
+
+开发者可以使用多种工具和选项。了解如何正确使用它们将提升你的成就集质量。这些工具/选项可以在成就编辑器中使用:
+
+
+
+如需更多帮助,我们的 [Discord 服务器](https://discord.gg/dq2E4hE) 随时为你提供支持。
+
+以下是可用功能列表:
+
+- [Hit Counts(命中计数)](/zh/developer-docs/hit-counts)
+
+- [Delta Values(增量值)](/zh/developer-docs/delta-values)
+
+- [`ResetIf` 标志](/zh/developer-docs/flags/resetif)
+
+ - [`ResetIf` 与 hit counts 配合使用](/zh/developer-docs/flags/resetif#resetif-with-hit-counts)
+
+- [`PauseIf` 标志](/zh/developer-docs/flags/pauseif)
+
+ - [`PauseIf` 与 hit counts 配合使用](/zh/developer-docs/flags/pauseif#pauseif-with-hit-counts)
+
+- [`AddSource` 标志](/zh/developer-docs/flags/addsource)
+
+- [`SubSource` 标志](/zh/developer-docs/flags/subsource)
+
+ - [检查负值结果](/zh/developer-docs/flags/subsource#checking-for-a-negative-result)
+
+- [`AddHits` 和 `SubHits` 标志](/zh/developer-docs/flags/addhits-subhits)
+
+- **组合标志**:`ResetIf` 和 `PauseIf` 可以应用于跟在任意数量 `AddHits`、`AddSource` 或 `SubSource` 条件之后的条件。回到上面的 [`AddSource` 示例](/zh/developer-docs/flags/addsource),如果将 `ResetIf` 应用于条件 2,则成就将被重置,因为 `1 + 2 > 0`。
+
+- [Alt Groups(替代组)](/zh/developer-docs/alt-groups)
+
+- [逻辑功能的最低版本要求](/zh/developer-docs/minimum-required-versions-for-logic-features)
diff --git a/docs/zh/orphaned/free-games.md b/docs/zh/orphaned/free-games.md
new file mode 100644
index 00000000..90e40a52
--- /dev/null
+++ b/docs/zh/orphaned/free-games.md
@@ -0,0 +1,133 @@
+---
+title: 免费游戏
+description: 查找完全合法且免费下载的游戏,可在你的模拟器上游玩。其中许多游戏在 RetroAchievements 上拥有成就集。
+---
+
+# 免费游戏
+
+在本页面中,你可以找到**完全合法且免费下载并可在模拟器上游玩**的游戏。其中许多游戏在 [RetroAchievements.org](https://retroachievements.org) 上拥有成就集。
+
+## Atari 2600
+
+[AtariAge](https://atariage.com/) 网站上有大量 Atari 自制游戏,你可以购买实体卡带,或者(大多数情况下)通过简单搜索在论坛上免费下载。
+
+一些 AtariAge Atari 2600 自制游戏示例:
+
+- [Amoeba Jump](http://atariage.com/forums/topic/280211-amoeba-jump/) - 作者 Dionoid
+- [AVGN K.O. Boxing](https://atariage.com/forums/topic/149089-angry-video-game-nerd-ko-boxing/) - 作者 Devin Cook
+- [Flappy](https://atariage.com/forums/topic/222161-flappy-my-1st-released-game/) - 作者 Michael Haas
+- [Go Fish!](https://www.atariage.com/software_page.php?SoftwareLabelID=2721) - 作者 [Bob Montgomery](https://www.atariage.com/programmer_page.php?ProgrammerID=319)
+- [Halo 2600](https://atariage.com/forums/topic/166916-halo-for-the-2600-released-at-cge-download-the-game-here/) - 作者 Ed Fries
+- [INV+](https://atariage.com/software_page.php?SoftwareLabelID=2691) - 作者 [Erik Mooney](https://atariage.com/programmer_page.php?ProgrammerID=137)、[Piero Cavina](https://atariage.com/programmer_page.php?ProgrammerID=138)
+- [Oystron](https://atariage.com/software_page.php?SoftwareLabelID=869) - 作者 [Piero Cavina](https://atariage.com/programmer_page.php?ProgrammerID=138)
+- [Pac-Man 4K](https://atariage.com/forums/topic/277992-pac-man-4k-old-vs-new-clarification-2600/) - 作者 Dennis Debro
+- [Princess Rescue](https://atariage.com/forums/topic/215058-princess-rescue-binaries-released/) - 作者 Chris Spry(由于与 Nintendo 的纠纷,该游戏已无法购买实体版)
+- [Sheep It Up!](https://drludos.itch.io/sheep-it-up-2600) - 作者 [Dr. Ludos](https://drludos.itch.io/)
+- [Snake-2600](https://atariage.com/forums/blogs/entry/7740-snake-2600/) - 作者 Wickeycolombus
+- [Tetris26](https://github.com/udibr/tetris26) - 作者 Colin Hughes
+- [Video Simon](https://atariage.com/software_page.php?SoftwareLabelID=873) - 作者 Mark De Smet
+- [Wall Jump Ninja](https://atariage.com/forums/topic/232200-ninja-wall-jump-game-wip/page-6#entry3154689) - 作者 Walaber
+- [Zippy the Porcupine](https://atariage.com/forums/topic/269247-zippy-the-porcupine-binary-released/) - 作者 Chris Spry
+
+## Game Boy
+
+- [Dangan GB](https://snorpung.itch.io/dangan-gb) - 作者 [snorpung](https://snorpung.itch.io/)
+- [Deadeus](https://izma.itch.io/deadeus) - 作者 -IZMA-
+- [Deep Forest](https://small.itch.io/deep-forest) - 作者 Kevin Trepanier
+- [Dino's Offline Adventure](https://gaming-monster.itch.io/dinos-offline-adventure) - 作者 [gaming monster](https://gaming-monster.itch.io/)
+- [DMG Deals Damage](https://drludos.itch.io/dmg-deals-damage) - 作者 [Dr. Ludos](https://drludos.itch.io/)
+- [Flappy Boy](https://zurashu.itch.io/flappy-boy) - 作者 [zurashu](https://zurashu.itch.io/)
+- [Petite Professional GB](https://ocarson.itch.io/petite-professional-gb) - 作者 [ocarson](https://ocarson.itch.io/)
+- [Pretty Princess' Castle Escape](https://sergeeo.itch.io/pretty-princess-castle-escape) - 作者 [sergeeo](https://sergeeo.itch.io/)
+- [Popcorn Caravan](https://cabbage.itch.io/gbjam6) - 作者 [cabbage](https://cabbage.itch.io/)
+- [Snake](https://donaldhays.com/projects/snake/) - 作者 [Donald Hays](https://donaldhays.com/)
+- [The Binding of Isaac: Game Boy Edition](https://jrob774.itch.io/the-binding-of-isaac-gbjam8-edition) - 作者 Joshua Robertson
+- [Tobu Tobu Girl](https://tangramgames.dk/tobutobugirl/) - 作者 [TangramGames](https://tangramgames.dk/)
+- [Waifu Clicker](https://refreshgames.itch.io/waifu-clicker) - 作者 [Refresh Games](https://refreshgames.itch.io/)
+
+## Game Boy Color
+
+- [Hong Kong 2099](https://bl4h8l4hbl4h.itch.io/hong-kong-2099-for-gameboy) - 作者 [Bl4h8L4hBl4h](https://retroachievements.org/user/Bl4h8L4hBl4h)
+- [Tobu Tobu Girl Deluxe](https://tangramgames.dk/tobutobugirldx/) - 作者 [TangramGames](https://tangramgames.dk/)
+- [Warp Coin Catastrophe](http://game.warp.world/) - 作者 [Proximity Sound](https://proximitysound.itch.io/)
+
+## Game Boy Advance
+
+- [Celeste Classic](https://github.com/JeffRuLz/Celeste-Classic-GBA/releases/tag/v1.0) - 作者 Maddy Thorson 和 Noel Berry
+- [Pocket Meat](https://bomberdev.itch.io/pocket-meat) - 作者 [BomberDev](https://bomberdev.itch.io/)
+- [Snakes](http://puu.sh/g3QGQ/dd42da818e.zip) - 作者 [BadMrFrostyXXX](https://retroachievements.org/user/BadMrFrostyXXX)
+
+## Nintendo DS
+
+- [Anguna DS](https://gamebrew.org/wiki/Anguna) - 作者 Nathan Tolbert
+- [Bubble Wrap DS](https://www.gamebrew.org/wiki/Bubble_Wrap_DS) - 作者 Prodigy Games
+- [Crocodingus in Cube Island](https://gamebrew.org/wiki/Crocodingus_in_Cube_Island) - 作者 PXLteam
+- [EunHye DS](https://gamebrew.org/wiki/EunHye_DS) - 作者 beadeulpiri
+- [Slide Puzzles](https://retroachievements.org/viewtopic.php?t=10222) - 作者 Neumann(Puzzle)、roronoa(Migraine)、Dustin(15-16)
+- [Ultimate Sliding Puzzle](https://retroachievements.org/viewtopic.php?t=10793) - 作者 Kukulcan、LOBO(警告!部分拼图包含 NSFW 内容!)
+
+## Mega Drive/Genesis
+
+- [30 Years of Nintendon't](https://drludos.itch.io/30-years-of-nintendont) 作者 [Dr. Ludos](https://itch.io/profile/drludos)
+- [Cave Story MD](https://github.com/andwn/cave-story-md/releases) 作者 [andwn](https://github.com/andwn)
+- [Double Cooked](https://zhamul.itch.io/double-cooked) - 作者 [Zhamul, mipelius, Miranda](https://zhamul.itch.io/)
+- [L'ABBAYE DES MORTS](https://playonretro.itch.io/labbaye-des-morts-megadrivegenesis-por-002) - 作者 Locomalito(https://www.locomalito.com/)
+- [Mega Flappy Sis](https://harlequin.itch.io/mega-flappy-sys) - 作者 [Lennart](https://harlequin.itch.io/)
+- [Pringles Game](http://68000.web.fc2.com/pringles.html) - 作者 MtChocolate
+- [Uwol - Quest For Money](https://shiru.untergrund.net/files/smd/uwol_quest_for_money.zip) - 作者 [Shiru](https://shiru.untergrund.net/software.shtml)
+- [ZOOMING SECRETARY: GOING PANIC](https://playonretro.itch.io/zooming-secretary-going-panic-megadrivegenesis-por-006) - 作者 [Playonretro](https://playonretro.itch.io/)
+
+## NES
+
+- [2048](https://www.romhacking.net/homebrew/65/) - 作者 tsone
+- [Alter Ego](https://shiru.untergrund.net/files/nes/alter_ego.zip) - 作者 [Shiru](https://shiru.untergrund.net/software.shtml)
+- [Blade Buster](http://hlc6502.web.fc2.com/BB_20120301.zip) - 作者 [High Level Challenge](http://hlc6502.web.fc2.com/Bbuster.htm)
+- [Böbl](https://neshomebrew.ca/contest19/) - 作者 [Morphcat Games](http://morphcat.de/)
+- [Bootee](https://www.mojontwins.com/juegos_mojonos/bootee-nes/) - 作者 [Mojo Twins](https://www.mojontwins.com/)
+- [Cookie Clicker](http://pineight.com/cookieclicker/) - 作者 Damian Yerrick
+- [D-Pad Hero](https://dpadhero.com/Download.html) - 作者 Kent Hansen、Andreas Pedersen
+- [D-Pad Hero 2](https://dpadhero.com/Download.html) - 作者 Kent Hansen、Andreas Pedersen
+- [Filthy Kitchen](https://dustmop.itch.io/filthy-kitchen) - 作者 [dustmop](https://dustmop.itch.io/)
+- [Function](http://nesdevcompo.nintendoage.com/contest14/)
+- [Gotta Protectors - Amazon's Running Diet](http://www.ancient.co.jp/~game/download/GottaProtectors_AmazonsRunningDiet.zip) - 作者 [Ancient Corp](http://www.ancient.co.jp/~game/mamotte_knight2/)
+- [Gruniozerca](http://emunes.pl/grunio/) - 作者 [emunes.pl](http://emunes.pl/)
+- [Gruniozerca 2](http://nesdevcompo.nintendoage.com/contest17/)
+- [Hot Seat Harry](http://www.nesworld.com/article.php?system=nes&) - 作者 Memblerz
+- [I Wanna Flip the Sky](https://www.neoflash.com/forum/index.php?topic=7472.0_) - 作者 TomL
+- [Indivisible](https://kasumi.itch.io/indivisible) - 作者 [Kasumi](https://kasumi.itch.io/)
+- [Lala The Magical](http://nesdevcompo.nintendoage.com/contest16/)
+- [LAN Master](https://shiru.untergrund.net/files/nes/lan_master.zip) - 作者 [Shiru](https://shiru.untergrund.net/software.shtml)
+- [Lawn Mower](https://shiru.untergrund.net/files/nes/lawn_mower.zip) - 作者 [Shiru](https://shiru.untergrund.net/software.shtml)
+- [Legends of Owlia, The](http://www.gradualgames.com/p/the-legends-of-owlia_1.html) 作者 [Gradual Games](http://www.gradualgames.com/)
+- [Lunar Limit](https://www.romhacking.net/homebrew/100/)
+- [Melo-Jellos 2](https://adrianmakesgames.itch.io/melo-jellos-2) - 作者 [Adrian Makes Games](https://adrianmakesgames.itch.io/)
+- [Miedow](https://forums.nesdev.com/viewtopic.php?f=33&t=16889) - 作者 [Mojo Twins](https://www.mojontwins.com/)
+- [MilioNESy](http://nesdevcompo.nintendoage.com/contest14/)
+- [Nebs 'n Debs](http://nesdevcompo.nintendoage.com/contest16/)
+- [NES Virus Cleaner](https://www.romhacking.net/homebrew/32/)
+- [NeSnake 2](https://www.romhacking.net/homebrew/30/)
+- [Project Blue](http://nesdevcompo.nintendoage.com/contest17/)
+- [SplatooD](https://www.reddit.com/r/splatoon/comments/3te61d/splatood_a_splatooninspired_demake_for_the_nes/) - 作者 SplatooD Team
+- [Streemerz](https://www.fauxgame.com/) - 作者 Mr. Podunkian
+- [Sudoku: NESWORLD Edition](https://www.romhacking.net/homebrew/17/) - 作者 Al Bailey
+- [Super Bat Puncher](http://morphcat.de/superbatpuncher) - 作者 [Morphcat Games](http://morphcat.de/)
+- [Zooming Secretary](https://shiru.untergrund.net/files/nes/zooming_secretary.zip) - 作者 [Shiru](https://shiru.untergrund.net/software.shtml)
+
+## SNES
+
+- [Christmas Craze](https://www.romhacking.net/homebrew/89/) - 作者 [Shiru](https://www.romhacking.net/community/1492/)
+- [Super Boss Gaiden](https://superbossgaiden.superfamicom.org/) - 作者 [superfamicom.org (??)](https://superfamicom.org/)
+- [Super Sudoku](https://www.raphnet.net/divers/retro_challenge_2019_03/index_en.php) - 作者 [Raphaël Assénat](https://www.raphnet.net/index_en.php)
+- [Super Road Blaster (MSU-1)](https://www.zeldix.net/t1448-super-road-blaster) - 作者 dforce3000
+
+## N64
+
+- [Pyoro 64](https://n64squid.com/pyoro-64/) - 作者 [n64squid](https://n64squid.com)
+
+## Virtual Boy
+
+- [BLOX](https://www.planetvb.com/modules/games/?h001g) 作者 [KR155E](https://www.planetvb.com/modules/usercenter/index.php?section=profile&uid=1)
+- [Fishbone](https://www.planetvb.com/modules/games/?h078g) 作者 [thunderstruck](https://www.planetvb.com/modules/usercenter/index.php?section=profile&uid=1709) 和 [Virtual_Ben](https://www.planetvb.com/modules/usercenter/index.php?section=profile&uid=2029)
+- [Mario Kart: Virtual Cup](https://www.planetvb.com/modules/games/?h044d) 作者 [DogP](https://www.planetvb.com/modules/usercenter/index.php?section=projects&uid=10)
+- [Tron](https://www.planetvb.com/modules/games/?h010g) 作者 [Alberto Covarrubias](https://www.planetvb.com/modules/usercenter/index.php?section=profile&uid=711)
+- [VB Racing](https://www.planetvb.com/modules/games/?h045g) 作者 [M.K.](https://www.planetvb.com/modules/usercenter/index.php?section=profile&uid=843)
diff --git a/docs/zh/orphaned/load-state-feature.md b/docs/zh/orphaned/load-state-feature.md
new file mode 100644
index 00000000..96b429c5
--- /dev/null
+++ b/docs/zh/orphaned/load-state-feature.md
@@ -0,0 +1,91 @@
+---
+title: 为什么你不应该使用即时读档功能
+description: 在 RetroAchievements 中使用即时存档会干扰成就追踪,尤其是在 softcore 模式下。这是因为重新加载时进度会被重置,影响无伤通关或无密码通关等挑战。
+---
+
+# 为什么你不应该使用即时读档功能
+
+**注意**:目前此处描述的问题仅发生在 DuckStation 独立版和 1.9.1 之前版本的 RetroArch 上。
+
+## Hardcore/Softcore 模式
+
+一些用户喜欢使用即时存档/读档功能来保存游戏进度。你可能知道,在 hardcore 模式下不允许使用该功能。但有些用户并非硬核玩家,更倾向于关闭 hardcore 模式(我们将此模式称为 softcore)。
+
+不时有用户[报告](/zh/general/faq#how-do-i-report-a-broken-achievement)某个成就没有触发,当被问及时他们表示自己在 softcore 模式下游玩。
+
+你需要牢记一点:
+
+---
+
+**如果你使用即时读档功能,请预期成就可能在应该触发时不会触发。**
+
+---
+
+在这里,我们将向那些不了解成就开发细节的人解释为什么会出现这类问题。
+
+## 成就的基本概念
+
+**从技术层面来说,成就是一组必须在游戏的某一帧中同时满足的条件。**
+
+当你使用带有 RetroAchievements 功能的模拟器启动游戏时,模拟器会持续检查当前帧是否满足这些条件。当某个成就的所有条件都被满足时,该成就即被授予,模拟器将停止检查该成就的条件。
+
+条件示例:
+
+- 生命值已满
+- 生命值减少了
+- 拥有 9 条命
+- 当前在第 3 关
+- 处于游戏标题画面
+- 正在开始 Boss 战
+- 游戏处于暂停状态
+
+softcore 的问题在于,当你加载存档时可能会破坏成就背后的逻辑。
+
+## 示例
+
+### 示例 1:不使用密码通关
+
+假设一个游戏有 5 个关卡并且支持密码功能。
+
+"不使用密码通关"成就的可能触发条件如下(实际成就会有更多条件,但为了说明我们只考虑这些):
+
+- 处于第 1 关(并将此事件记忆为已发生)
+- 处于第 2 关(记忆)
+- 处于第 3 关(记忆)
+- 处于第 4 关(记忆)
+- 处于第 5 关(记忆)
+- 完成第 5 关
+
+因此,要获得这个成就,你必须通过所有关卡然后通关游戏。
+
+当你在第 1 关时,模拟器会记忆它,其他关卡同理。当你完成第 5 关(通关游戏)时,你就会获得该成就。
+
+现在假设以下场景:
+
+- 一个 softcore 玩家开始游戏并通过了第 1、2、3 关
+- 他在第 4 关时需要停止游玩,于是保存了一个即时存档以便稍后继续
+- 他关闭了模拟器
+- 之后他可以再次游玩,启动游戏并加载之前保存的存档
+- 通过了第 4、5 关并通关游戏
+
+在这个场景中,成就不会触发。
+
+关闭模拟器后,它会"忘记"你通过了第 1、2、3 关。当你再次运行模拟器/游戏并加载处于第 4 关的存档时,模拟器不会检测到你通过了之前的关卡。因此成就不会触发。
+
+### 示例 2:无伤击败 Boss X
+
+此成就在某一帧中需要满足的条件很可能是:
+
+1. 进入 Boss 房间(并将此事件记忆为已发生)。
+2. 如果玩家受到任何伤害,忘记他进入过 Boss 房间。
+3. 击败 Boss。
+
+换句话说:要获得这个成就,模拟器必须"知道"你进入了 Boss 房间、没有受到任何伤害、并击败了 Boss。
+
+需要注意的重要细节是:当你受到任何伤害时,模拟器会"忘记"你进入过 Boss 房间。那么即使你读取了一个尚未受到伤害但已经进入房间的存档,模拟器也不会检测到你进入了房间。因此成就不会触发。
+
+## 最后
+
+在[报告成就异常](/zh/general/faq#how-do-i-report-a-broken-achievement)时,请尽可能提供详细信息,**不要忘记说明你是在 hardcore 模式还是非 hardcore 模式下游玩**。
+
+如果你想请求管理员手动授予你一个未触发的成就,请务必提供合格的证据。特别是对于上述示例中那类成就(无伤、无密码、无死亡等)。
diff --git a/docs/zh/orphaned/my-game-is-not-loading-achievements.md b/docs/zh/orphaned/my-game-is-not-loading-achievements.md
new file mode 100644
index 00000000..7a85ca48
--- /dev/null
+++ b/docs/zh/orphaned/my-game-is-not-loading-achievements.md
@@ -0,0 +1,68 @@
+---
+title: 成就加载问题排查
+description: 了解如何解决 RetroAchievements 成就无法加载的问题,包括检查 ROM 兼容性和查找 ROM 哈希值。
+---
+
+# 我的游戏没有加载成就
+
+也许你加载了游戏但看到了这样的弹窗:
+
+然后你检查了覆盖层(通常按 ESC)并看到:
+
+
+或者你收到了这些消息:
+
+
+
+和
+
+
+
+当出现上述任何一种情况时,要么你的游戏还没有成就,要么更可能的原因是你使用了错误的 ROM。
+
+为了确认,请搜索游戏名称并检查匹配结果。
+
+
+如果你的游戏有成就但你的 ROM 不在我们的系统中,你需要找到正确的 ROM 或为你的 ROM 寻求支持。
+
+## 如何知道我的 ROM 是否兼容?
+
+如果你的 ROM 与网站上关联的校验和/哈希值相同,那么它就是兼容的。
+
+**注意**:"校验和"或"哈希值"是用于确认两个文件副本是否相同的数字。在 RA 上,我们使用它来确保玩家使用的 ROM 与成就开发者使用的相同。
+
+有 _两种_ 方式可以检查与游戏关联的校验和/哈希值:
+
+### 检查游戏的关联哈希值页面
+
+以 [Super Mario Bros.](https://retroachievements.org/linkedhashes.php?g=1446) 为例
+
+你可以通过点击游戏页面"更多信息"部分中的"Hashes linked to this game"按钮来访问此页面。
+
+
+
+它会将你带到如下页面:
+
+
+
+### 检查游戏官方论坛帖子的置顶帖
+
+链接可以在游戏页面成就列表底部或"更多信息"部分找到。以 [Super Mario Bros.](https://retroachievements.org/viewtopic.php?t=282&c=2233) 为例:
+
+
+
+
+
+游戏官方论坛帖子的第一篇帖子通常会列出该游戏的有效 ROM 以及 ROM 的校验和。
+
+如果你的 ROM 名称和校验和尚未列出,你需要提出请求(**请不要请求下载 ROM 的链接**,只需提供文件名和校验和)。你可以在游戏论坛页面提交请求,或在 [Discord](https://discord.gg/dq2E4hE) 或首页网站聊天中寻求帮助。
+
+一旦你提交了请求,开发者会审核并确保其正常工作。然后他们会将哈希值添加到"兼容哈希值页面"。
+
+## 如何查找你的 ROM 校验和:
+
+在菜单栏中选择 `RetroAchievements` > `Get ROM Checksum`
+
+
+
+关于校验和与哈希值的更多详情,请阅读:https://datacrystal.romhacking.net/wiki/Hashes
diff --git a/docs/zh/orphaned/ralibretro.md b/docs/zh/orphaned/ralibretro.md
new file mode 100644
index 00000000..efc147d5
--- /dev/null
+++ b/docs/zh/orphaned/ralibretro.md
@@ -0,0 +1,125 @@
+---
+title: RALibretro
+description: RALibretro 是一款多平台模拟器,可用于开发 RetroAchievements 成就,当然也可以用来获取成就。
+---
+
+# RALibretro
+
+!! 本页面严重过时
+
+RALibretro 是一款多平台模拟器,可用于开发 RetroAchievements 成就。
+
+"多平台模拟"功能之所以成为可能,是因为它使用 [libretro](https://github.com/libretro/) 核心来执行实际的模拟。RALibretro 所做的是将模拟与用于创建 RetroAchievements 的工具连接起来。
+
+## 警告
+
+**RALibretro 仍在开发中!**
+
+目前开发在此仓库进行:[https://github.com/RetroAchievements/RALibretro](https://github.com/RetroAchievements/RALibretro)
+
+以下是已知问题列表(如果你发现新问题,请随时报告):[https://github.com/RetroAchievements/RALibretro/issues](https://github.com/RetroAchievements/RALibretro/issues)
+
+## 安装说明
+
+只需从[下载页面](https://retroachievements.org/download.php)下载 RALibretro 并解压即可。
+
+## 基本用法
+
+1. 启动 RALibretro.exe
+2. 点击 `File` > `Load System`,然后点击你想模拟的系统
+3. 然后进入 `File` > `Load Game`,选择你的 ROM。**注意**:RALibretro 目前不支持压缩文件!
+4. 现在你可以创建成就或获取成就了!
+
+## 支持的系统
+
+**注意**:某些系统可能需要在 `System` 目录中放置系统(BIOS)文件才能正确加载游戏。
+
+以下是当前支持的系统列表:
+
+- SNES
+- NES
+- Nintendo 64
+- Mega Drive
+- Master System
+- Gameboy
+- Gameboy Color
+- Gameboy Advance
+- PC Engine (TurboGrafx-16/TurboGrafx-CD)
+- Atari Lynx
+- Game Gear
+- Neo Geo Pocket
+- Atari 2600
+- Atari 7800
+- Virtual Boy
+- Neo Geo (Arcade) - 新增。**注意**:你需要将 `neogeo.zip` BIOS 文件放在与 ROM 相同的目录中。
+- Capcom Play System 1, 2 and 3 (Arcade) - 新增
+
+## 键盘输入
+
+| Keyboard | a | s | z | x | d | c | f | v | Enter | Tab | g | h |
+| --------------- | :-: | :-: | :-: | :-: | :------------------: | :---------------------: | :------------: | :------------: | :---: | :----: | :-: | :-: |
+| RetroPad | Y | X | B | A | L | R | L2 | R2 | Start | Select | L3 | R3 |
+| SNES | Y | X | B | A | L | R | | | Start | Select | |
+| NES | | | B | A | Swap disk side (FDS) | Insert/Eject disk (FDS) | | | Start | Select | |
+| Mega Drive | A | Y | B | C | X | Z | | | Start | | |
+| Master System | | | B | A | | | | | Start | | |
+| GameGear | | | B | A | | | | | Start | | |
+| Gameboy [Color] | | | B | A | | | | | Start | Select | |
+| Gameboy Advance | | | B | A | L | R | | | Start | Select | |
+| PC Engine | | | II | I | | | | | Run | Select | |
+| Atari Lynx | | | B | A | Option 1 | Option 2 | | | Start | | |
+| Neo Geo Pocket | | | B | A | | | | | Start | | |
+| Atari 2600 | | | o | | L difficulty b | R difficulty b | L difficulty a | R difficulty a | Start | Select | |
+| Neo Geo | C | D | A | B | | | | | Start | Coin | |
+| CPS1/2/3\* | \* | \* | \* | \* | \* | \* | | | Start | Coin | |
+
+**注意**:CPS1/2/3 游戏的按键因游戏而异。
+
+## 键盘快捷键
+
+- **查看覆盖层**:`Esc`
+- **暂停模拟**:`p`
+- **逐帧前进**:`;`(自动暂停模拟)
+- **快进**:`=`
+- **快进切换**:`-`(减号键)
+- **截图**:`PrintScreen`
+
+### 即时存档/读档快捷键
+
+- **保存当前槽位**:`Backspace`
+- **加载当前槽位**:`F11`
+- **从槽位 1、2、...、9、0 加载**:`F1`、`F2`、...、`F9`、`F10`
+- **保存到槽位 1、2、...、9、10**:`shift`+`F1`、`shift`+`F2`、...、`shift`+`F9`、`shift`+`F10`
+- **上一个槽位**:`shift`+`-`
+- **下一个槽位**:`shift`+`+`
+- **切换槽位**:`0`、`1`、`2`、...、`9`
+
+## 缺少的功能
+
+- 即时存档/读档、暂停等操作时缺少用户反馈
+- N64 支持
+- 加载压缩 ROM
+- 输入配置
+- 更多问题列于此处:[https://github.com/RetroAchievements/RALibretro/issues](https://github.com/RetroAchievements/RALibretro/issues)
+
+## 如何在 RALibretro 或 RetroArch 中使用 AES BIOS
+
+要在模拟器中使 AES BIOS 模拟模式正常工作:
+
+1. 确保你的模拟器正常运行。
+
+2. 将 `neogeo.zip` 放入 `System` 目录(RALibretro),或放在你存放 NeoGeo ROM 的文件夹中(RetroArch)。
+
+3. 确保 `neogeo.zip` 至少包含你在这里看到的文件:
+
+
+
+如果你只保留这些文件,AES 模式将自动强制应用于任何 NeoGeo 游戏(推荐)。
+
+**重要!** 此图中高亮显示的文件(`neo-epo.bin` 和 `neo-po.bin`)是唯一与 AES 模式真正相关的文件,你可能需要将它们包含在压缩包中才能使 AES 模式正常工作。`neo-po.bin` 对于仅限日版的游戏或使日版正常运行是必需的,但由于模拟问题,它也会将日语设为默认语言,因此你需要将其移除才能在某些游戏中显示英语。
+
+4. 加载任何 FBA 兼容的 Neo Geo ROM。更完整的压缩包(包含运行 MVS 和 UniBIOS 模式所需的文件)可能需要额外配置以强制 AES 模式:
+
+在 RALibretro 中:Settings->Emulation->Force Neo Geo Mode->AES
+
+在 RetroArch 中:Command->Menu Toggle->Options->Force Neo Geo Mode->AES
diff --git a/docs/zh/orphaned/system-x-wen.md b/docs/zh/orphaned/system-x-wen.md
new file mode 100644
index 00000000..3a166bd6
--- /dev/null
+++ b/docs/zh/orphaned/system-x-wen.md
@@ -0,0 +1,82 @@
+---
+title: 系统 X 什么时候支持?
+description: 了解为新系统添加 RetroAchievements 支持所需的技术步骤,包括模拟、游戏识别和服务器配置。本文解释了在支持新系统之前需要做些什么。
+---
+
+# 系统 X 什么时候支持?
+
+::: warning 你是模拟器开发者吗?
+
+[rcheevos](https://github.com/RetroAchievements/rcheevos) 是我们的模拟器集成库。我们有一份实用的[集成指南](https://github.com/RetroAchievements/rcheevos/wiki/rc_client-integration),如果你希望为你的模拟器添加 RetroAchievements 支持,可能会对你有所帮助。
+
+:::
+
+_本文最初发布于 [RANews - 2020 年 11 月刊](https://news.retroachievements.org/issues/2020-11/nerd-corner)_
+
+## 简介
+
+关于下一批可支持成就的系统,似乎有很多猜测。随着[最近公布的 PS2 核心](https://twitter.com/libretro/status/1322711254826471424),出现了很多关于是否/何时支持它的问题。如果你只关心这个问题的答案,请跳到[文章末尾](#when-will-ra-support-playstation-2)。但如果你想了解添加新系统支持究竟需要什么,请继续阅读。
+
+## 要求
+
+以下是为新系统添加 RetroAchievements 支持所需的条件:
+
+1. 模拟(最好是 libretro 核心)。
+ - 核心必须暴露内存。
+ - 核心必须能在 RALibretro 中运行。
+2. 游戏的唯一识别。
+3. 服务器支持。
+
+### 步骤 1:模拟
+
+第一步显然是要有一个用于待支持系统的模拟器。
+
+在 RetroAchievements 的早期,我们使用独立模拟器——每个系统一个。保持所有这些模拟器无 bug 且持续更新需要大量精力,而我们在这方面没有足够的程序员参与。
+
+目前首选使用 [libretro 核心](https://www.retroarch.com/?page=cores)进行模拟。这样核心开发者可以推送新功能,而我们可以专注于成就功能。核心可以更新和发布,无需我们做额外工作。
+
+另一个巨大的优势是 libretro 核心也可以在 [RetroArch](https://www.retroarch.com/) 中运行,这使得 RetroAchievements 可以在许多平台上获取(独立模拟器全部都是仅限 Windows 的应用程序)。
+
+**管理方**:libretro 核心开发者。
+
+#### 步骤 1a:暴露内存
+
+由于成就触发器是一系列监视模拟 RAM 中事件的条件,另一个要求是能够访问系统的 RAM。
+
+如果没有暴露的内存,[内存检查器](/zh/developer-docs/memory-inspector)将显示为空白,成就创建者将无法创建成就。
+
+此外,由于 RetroAchievements 每帧只读取一次内存,一些大量使用[分页内存](https://en.wikipedia.org/wiki/Paging)的系统必须提供某种方式来访问全部内存,而不仅仅是当前的内存页。
+
+**管理方**:libretro 核心开发者,需与 RetroAchievements 开发者进行一些交互。
+
+#### 步骤 1b:RALibretro
+
+核心必须能在 RALibretro 中运行,因为这是成就开发者识别重要内存片段并创建成就的地方。
+
+这通常只在核心依赖 RALibretro 尚未实现的某些功能时才会成为问题(如最近添加的键盘和 OpenGL 3D 支持),但有些问题是由 RALibretro 的实现与 RetroArch 的实现存在显著差异造成的。除非核心可以修改为不需要缺失的功能,否则在 RALibretro 更新之前无法支持该核心。
+
+[此页面](/zh/general/emulator-support-and-issues)列出了每个核心最近一次测试时的状态。
+
+**管理方**:RetroAchievements
+
+### 步骤 2:游戏识别
+
+我们必须能够唯一识别该系统的游戏。
+
+我们使用一种名为 [MD5](https://en.wikipedia.org/wiki/MD5) 的方法,它会扫描游戏文件并生成一个我们通常称为"哈希值"的数字。通过这个数字,可以确认两个文件副本是否相同,从而确保玩家使用的 ROM 与成就设计或测试时使用的相同。
+
+对于大多数系统,我们直接对整个 ROM 文件进行哈希计算,去除任何头部信息。对于较大的游戏(特别是 CD 或 DVD 上的游戏),我们只对我们认为最重要的数据进行哈希计算,以最小化加载时间。关于我们如何识别游戏的更多信息,请参见[此处](/zh/developer-docs/game-identification)。
+
+对于使用可写入介质的系统(主要是家用电脑),我们必须确保不对可能被游戏本身修改的文件进行哈希计算。写入游戏文件的系统必须将原始磁盘文件视为只读,只将更改写入磁盘的副本。如果核心/模拟器修改了磁盘文件,它将无法再被识别,因此不能被视为适用于成就的可行方案。
+
+**管理方**:RetroAchievements
+
+### 步骤 3:配置 Web 服务器
+
+为了支持新系统,RetroAchievements 的 Web 服务器必须正确配置以接受该系统的新游戏和成就条目。
+
+**管理方**:RetroAchievements
+
+### RA 何时支持系统 X?
+
+[此页面](/zh/general/emulator-support-and-issues)列出了每个核心最近一次测试时的状态。