# Rename Global Variable Or Function

> Renaming a global variable or function requires additional steps in decompilation projects or the build will fail. Use this skill when you want to rename a global variable or function.

- Skill: `majiayu000/rename-global-variable-or-function` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/rename-global-variable-or-function`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/rename-global-variable-or-function/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/rename-global-variable-or-function

---


# Rename a global variable or function

## Instructions

Global variables and function names are mapped to specific addresses in memory through the symbol_addrs.txt file at the root of the project. Each symbol should only appear at most once. If a symbol is not present it will be given a default name (usually starting with `func_` or `D_`).

So at a minimum this file will need to be updated when attempting to rename a variable. However additional steps may also be needed.

### Global Variables

Global variables will have a default name format that looks like: `D_<memory address>_<rom address>`. For example `D_800B11A0_1DB740`. Both the memory address and rom adress should be included as annotations when renaming a symbol. This is because different symbols may share a memory address but be located in different overlays. To rename `D_800B11A0_1DB740`, for example, to `MyNewGlobal` we would do:

```
D_800B11A0_1DB740 = 0x800B11A0; // rom:0x1DB740
```

Note the structure of `<new name> = <memory address>; // rom:<rom address>.

You may see additional annotations for size and type. These should be preserved if they exist but you should not need to use them.

### Functions

A similar process is followed for functions. A function will by default have a name structure of `func_<memory address>_<rom address>`. For example: `func_800B00C0_9FF70`. To rename this function to `MyFunction` we would do:

```
MyFunction = 0x800B00C0; // rom:0x9FF70
```

## Validation

To validate your name change, rebuild the project:

```
./tools/build-and-verify.sh
```

