ppsspp_search_disasm
Search disassembly for a substring across a memory range, wrapping around memory when needed, and collect every matching instruction with its address, name, and parameters.
Instructions
PURPOSE: Loop-search disassembly for a substring, collecting matching instructions with context.
USAGE: session_id + match (a leading '$' is stripped); start address; end=0 wraps the search around the whole region; max_results default 100.
BEHAVIOR: READ-ONLY.
RETURNS: {address, match, end, results[{address, text, name, params}], text}.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | End address for the search range, as a hex string (e.g. '0x08810000'). If 0 or equal to `address`, PPSSPP performs a loop search (wraps around memory). | 0x0 |
| match | Yes | Case-insensitive substring to search for in the disassembly text (e.g., 'jal', 'addiu', 'lw r5'). May include '$' register prefix (e.g. 'jr $ra') — automatically stripped before forwarding to PPSSPP (PPSSPP register names have no '$' prefix). Required by PPSSPP's memory.searchDisasm event. | |
| address | Yes | Starting address for the disassembly search, as a hex string (e.g. '0x08804000'). | |
| session_id | Yes | Active session ID. | |
| max_results | No | Maximum number of matches to collect (default 100). PPSSPP returns only the first match per call; the tool loops from each match address+4 until no more matches, this cap is reached, or a loop is detected. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | End address, hex string. '0x00000000' or equal to `address` means loop search. | |
| text | Yes | Unified multi-line text representation. Each line is '0x{ADDR:08X}: {text}'. | |
| match | Yes | Case-insensitive substring matched. | |
| address | Yes | Starting address for the search, hex string (e.g. '0x08804000'). | |
| results | Yes | List of disasm line dicts (address / text / name / params). |