Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DolphinQt: Extract creator name from code name in Gecko codes. #13217

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

cristian64
Copy link
Contributor

Gecko codes in Dolphin feature a dedicated field for the creator of the cheat code. When saved into the INI file, the code name and the creator name are concatenated, and then inserted in the [Gecko] section:

[Gecko]
$<cheat code name> [<creator>]
<code line 1>
<code line 2>
<code line 3>
<...>
$<other cheat code name> [<creator>]
<code line 1>
<code line 2>
<code line 3>
<...>

On the other hand, enabled codes are listed under the [Gecko_Enabled] section, but in this case the creator name is omitted from the line:

[Gecko_Enabled]
$<cheat code name>
$<other cheat code name>

Having the creator name in the [Gecko] section but not in the [Gecko_Enabled] section is arguably not ideal, but this is legacy behavior in Dolphin.

The Cheat Code Editor dialog is not acknowledging this subtle behavior in Dolphin: the cheat code name and the creator name can be both inserted in the name field. This issue manifests as an inconsistent state where a Gecko code that appears to be enabled has no effect when the game is launched.

As part of this fix, the creator name (if present) is now moved into the dedicated creator field before the code is stored internally.

Test plan:

  • Right-click on any game and open the Properties dialog.
  • Switch to the Gecko Codes tab.
  • Press the Add New Code... button.
  • In the Cheat Code Editor dialog:
    • Enter This is a test [Jane Doe] in the Name: field.
    • Enter 01234567 00000000 in the Code: field.
    • Press Save.
  • Observe that the newly added code is now in the list, and appears to be enabled.
  • Close the Properties dialog.
  • Right-click on the same game and open the Properties dialog again.

Without the fix, the newly added code, while still on the list, has been inadvertently disabled (it was never really enabled!).

With the fix, the newly added code is the list and remains enabled.

This fixes https://bugs.dolphin-emu.org/issues/13695.

Gecko codes in Dolphin feature a dedicated field for the creator of the
cheat code. When saved into the INI file, the code name and the creator
name are concatenated, and then inserted in the `[Gecko]` section:

```ini
[Gecko]
$<cheat code name> [<creator>]
<code line 1>
<code line 2>
<code line 3>
<...>
$<other cheat code name> [<creator>]
<code line 1>
<code line 2>
<code line 3>
<...>
```

On the other hand, enabled codes are listed under the `[Gecko_Enabled]`
section, but in this case the creator name is omitted from the line:

```ini
[Gecko_Enabled]
$<cheat code name>
$<other cheat code name>
```

Having the creator name in the `[Gecko]` section but not in the
`[Gecko_Enabled]` section is arguably not ideal, but this is legacy
behavior in Dolphin.

The **Cheat Code Editor** dialog is not acknowledging this subtle
behavior in Dolphin: the cheat code name and the creator name *can* be
both inserted in the name field. This issue manifests as an inconsistent
state where a Gecko code that *appears* to be enabled has no effect when
the game is launched.

As part of this fix, the creator name (if present) is now moved into the
dedicated creator field before the code is stored internally.

Test plan:

- Right-click on any game and open the **Properties** dialog.
- Switch to the **Gecko Codes** tab.
- Press the **Add New Code...** button.
- In the **Cheat Code Editor** dialog:
  - Enter `This is a test [Jane Doe]` in the **Name:** field.
  - Enter `01234567 00000000` in the **Code:** field.
  - Press **Save**.
- Observe that the newly added code is now in the list, and *appears* to
  be enabled.
- Close the **Properties** dialog.
- Right-click on the same game and open the **Properties** dialog again.

**Without** the fix, the newly added code, while still on the list, has
been inadvertently disabled (it was never really enabled!).

**With** the fix, the newly added code is the list and remains enabled.

This fixes https://bugs.dolphin-emu.org/issues/13695.
@cristian64
Copy link
Contributor Author

#13217 and #13218 are mutually exclusive.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

1 participant