Skip to content
This repository was archived by the owner on Jun 2, 2024. It is now read-only.

Achievement Development Overview

televandalist edited this page Jun 3, 2023 · 1 revision

Intro

Page is heavily WIP, but the goal is to dive deep into achievement creation. Will probably end up merging the "Real Examples" into this section somehow. Each flag, type, size, comparison, etc. will have its own page to show the various ways they can be used. Will also include several tips, case studies, etc.

Basics

  • Adding Games to the Database
    • Everything you ever wanted to know (but were too scared to ask) about hashes
    • Patch Guide
  • RAM digging
    • Utilizing Game Genie, Game Shark, Codebreaker, Action Replay, etc. codes
  • Code Notes
    • Formatting conventions

Achievement Editor

There are several tools and options available to a developer. Knowing how to properly utilize them will improve the quality of your sets. These tools/options can be used in the Achievement Editor:

achievement_editor

Flags

Types

  • Mem
  • Value
  • Delta
    • Mem > Delta Comparisons
  • Prior
  • BCD
  • Float

Sizes

  • bit0 - bit7
  • 8-Bit
  • 16-Bit
  • 24-Bit
  • 32-Bit
  • Lower4 and Upper4
  • 16-Bit BE
  • 24-Bit BE
  • 32-Bit BE
  • BitCount
  • Float
  • MBF32

General Comparisons

  • =
  • <
  • <=
  • >
  • >=
  • !=

Flag Specific Comparisons

  • *
  • /
  • &

Other Toolkit Features

  • Hit Counts
    • Using with Reset If
    • Using with Pause If
  • Alt Groups

Protections

  • Demo Protection
    • Finding and testing demo addresses
  • Save Protection
    • Delta and Prior
    • Using in-game timers
    • Using event flags
  • Password Protection
  • Cheat Protection
  • Multiplayer Protection
  • Other
    • Dipswitch
    • BIOS (PlayStation and Saturn)

Logic Tips and Tricks

  • Checkpoints hits
  • Pause Locks
  • Using Hit Counts as a timer
  • Using Delta Values and Hit Counts to Detect an Increment
  • Circumvent the Problem of a Counter Incrementing Twice in the Same Frame
    • note: need to add something about how the toolkit still uses hex even if the value is in BCD
  • Various types of chains
  • When to use Reset If or Pause If
  • When to use Delta or Prior
  • Using BitCount for collectables
  • Using Add Source with Mem / Mem comparisons
  • Creating a Timer with Reset If hits based on the speed of the game
  • Using bit0 to include or exclude odd-numbered values

Lesser-Known Features

  • Double-Clicking bitflags while in 8-bit view
  • Right-Clicking addresses in the editor to jump to them in the Memory Inspector (also works with offsets to jump to the current address)
  • Highlighting conditions and holding CTRL while clicking to change a field in multiple conditions at once

Workflow Tips

  • Using Google Sheets and Notepad++
  • Editing local file

Things to Avoid and Why

  • Redundant Reset Ifs
  • Single-Condition achievements
  • Text-Based addresses

See Also

  • Point Distribution
  • Badge Creation
  • Rich Presence
  • Leaderboards
  • RATools
  • Making Tutorial Videos
  • Syntax Table

Guidelines

General

Achievement Development

WIP


Portugues

Geral

Desenvolvedores


Español

General

Desarrolladores

Clone this wiki locally