RetroAchievements / RetroAchievements/RAIntegration

Indirect Code Note Crash

Open
#956 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
124
Forks
34
Avg merge
5d 18h
Merged PRs (30d)
13

Description

While developing with pointers I noticed some crashes related to indirect code notes. I currently did not find a way to recreate it everytime, but it seems to be related to the process where the toolkit creates the indirect code note.

Since I didn't find a recreation method that works all the time I will explain what I did to encounter the issue in the first place with the hope that either some other developer encounters this issue too and can give an actual recreation method or maybe the info is already enough to figure out what could be wrong.

So I have a pointer note which is simply:

Pointer - Player Information [32bit]
+0x0 | Test 1
+0x1 | Test 2
+0x2 | Test 3
+0x3 | Test 4
+0x4 | Test 5
+0x5 | Test 6

Sometimes when adding a new offset to the note the emulator just crashes as soon you typed the +0x. My assumption would be that it tries to transfer +0x into an address and to place a note there which obviously isn't possible, but I can't say for sure since it only happens sometimes.

Also not sure if it's just me being unlucky while testing or if it's actually related to the issue but it only crashed under above's criteria when it was shortly after loading the game, publishing or reverting the note.

Sorry that I can't give much for info to it, I tested for like an hour and wasn't able to find a consistent recreation method. If further help is needed, I am down to help.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No file, test, or entry point is named. Start by investigating indirect code note creation while adding an offset shortly after loading the game, publishing, or reverting the note, and first seek a reliable reproduction; done means the intermittent emulator crash is understood and prevented.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.