Project

General

Profile

Actions

Emulator Issues #7093

closed

Gecko codes cause GC games to freeze (bad codehandler)

Added by wesadammcd over 10 years ago.

Status:
Fixed
Priority:
High
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Current
Regression:
Yes
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

Game ID?
GFZE01

What's the problem? Describe what went wrong in few words.
If cheats are active (in the case the AX code) the game will not boot. Parsing issue? I don't believe it's all cheats, possibly just longer ones.

Worked fine in 4.0-889. So something in the next 15 check ins triggered this regression.

What did you expect to happen instead?
Launch properly regardless of cheat type, size, active/inactive

Dolphin 3.5 and 3.5-367 are old versions of Dolphin that have
known issues and bugs, so don't report issues about them and test the
latest Dolphin version first.
Which versions of Dolphin did you test on?
Broken in all builds at least since 4.0-905.

What are your PC specifications? (including, but not limited to: Operating
System, CPU and GPU)
Win 8, x64, nvidia 660

Are you using the 32 or the 64 bit version of Dolphin?
x64

Is there any other relevant information? (e.g. logs, screenshots,
configuration files)
See Issue 7083 and Issue 7091


Related issues 2 (0 open2 closed)

Has duplicate Emulator - Emulator Issues #7083: Fzero GX Launches in Interpreter since 4.0-1202Duplicate

Actions
Has duplicate Emulator - Emulator Issues #7494: Dolphin 4.0.2227 Using Gecko Codes Causes Games to not Load (GC)Duplicate

Actions
Actions #1

Updated by JMC4789 over 10 years ago

Issue 7083 has been merged into this issue.

Actions #2

Updated by wespipes69 over 10 years ago

Here's the cheat. If it's in the ini, another weird thing is I can't turn it off, even if I delete the Gecko_enabled section from the ini itself. It just comes back somehow. And then of course, the game will hang when launched with this code. If not present, it works fine. There's a lot of other cheats in the file, it just doesn't like this one. Length?

$AX MODE
06003F30 00000284
818D831C 280C0000
41820274 3C6C000B
3863FADC 3883000C
38A0000C 4BFFF5F5
3CAC0019 8085D550
64844001 9085D550
3CAC0018 BBC30040
BFC511DC 3C6C0010
A0032A86 280000A4
4082000C 380000A2
B0032A86 380000C0
98035D26 A0A32A7E
3C006000 280500AD
4082000C 3C8C0033
9004DE1C 28050010
408200CC 3C630022
90037B90 3C630003
3800002A B003C754
3800002C B003C758
38000029 B003C778
3800002B B003C77C
3C6C0034 3C006000
9003CE94 3C803C00
60803FA0 9003D000
60803FCC 9003D008
3C809001 608000D0
9003D004 608000D4
9003D00C 3C004800
6000010C 9003D010
3C003CE0 60004323
9003D024 3C0090E1
600000C8 9003D054
3C003800 6000007F
9003D11C 38003F40
B003D122 3C009061
600000EC 9003D124
3C804BFF 6080FEEC
9003D128 6080F9E8
9003D478 380000D7
98035817 3800002C
9803582B 280500AC
40820054 3C8C0032
3C003C60 60008000
90046E44 3C003863
60003F1E 90046E48
3C003806 60000001
90046E54 3C007000
6000FFFE 90046E5C
3C0080ED 60008A9C
90044A64 3C8C0033
3C00809F 600032C0
9004B5D0 280500B0
40820010 3C8C0033
80044E04 900D8A9C
2805009C 40820038
3C6C0032 38000002
98034FBB 9803509B
980351A7 980352DB
980353B3 3800000E
98034FFB 980350DF
980351E7 9803531B
980353F7 3C8C000C
38845404 38640028
38A00018 4BFFF415
38000001 980C0133
3C6CFFF8 3C003800
6000000D 9003FB50
3C808000 80043F24
28000000 4082001C
3C00000B 6000002E
90043F20 3C000039
6000001D 90043F24
3C6C0007 A0043F20
B0030CEE A0043F22
B0030CF6 A0043F24
B0030CFE 38003860
B0030D04 A0043F26
B0030D06 3C6C0009
3C004E80 60000020
90037428 80010014
48016DF4 00000000
0401AFA0 4BFE8F90

Actions #3

Updated by JMC4789 over 10 years ago

  • Status changed from New to Accepted

It's happening on some cheats for me as well, meaning I'll accept this. They used to work in older builds of dolphin.

Actions #4

Updated by delroth over 10 years ago

Any log message? Might be the codehandler.bin doing weird MMIO accesses.

Actions #5

Updated by JMC4789 over 10 years ago

Are you sure you did proper testing on this; I'm unable to confirm what build broke this. I know the AX cheat worked at some point, but going back it's no longer functioning for me.

In fact, all my cheats that used to be working are crashing in older builds now as well. Le sigh.

Actions #6

Updated by JMC4789 over 10 years ago

Okay, I had a weird issue in this game that I sorted out.

Anyway, I used your F-Zero AX code and it failed to do anything; no crash, no nothing. JUst booted up and played F-Zero GX.

Actions #7

Updated by JMC4789 over 10 years ago

I went and got my old F-Zero AX cheat from my other harddrive and it booted fine. I no longer trust your issue report; my issue with other games crashing persists though.

My Mario Kart Wii issues are resolved by using JITIL for some reason. Don't ask me why... I have no idea.

Actions #8

Updated by wesadammcd over 10 years ago

  1. You can trust my report and my testing. :) I've spent hours on this, testing tens of builds and narrowed down the issue and build precisely. I've been using/logging issues for Dolphin as long as I've been in QA professionally (too long).

  2. You’re not applying cheats properly I don't think and thus why you are not reproducing the issue, getting F-Zero AX or getting your cheats to work on old builds. The labels/formatting changed recently.

  3. As suggested, I grabbed a log and found that it’s spamming this error and never stops. That's why it never boots!
    21:11:079 HW\MMIO.cpp:198 E[MI]: Trying to read from an invalid MMIO (addr=cd006820)
    And huh, the MMIO branch just got merged at that build I referenced. Coincidence?...

  4. Using the codehandler.bin from previous versions did not fix the issue.

Full repro:

  1. Download and unzip 4.0-889
  2. Enable cheats
  3. Add the attached ini to your User/GameSettings
  4. Check to ensure cheat is active in game properties
  5. Launch game and observe F-Zero AX
  6. Repeat with 4.0-905 and observe the MMIO error that it never recovers from.
Actions #9

Updated by delroth over 10 years ago

Ok, I expected a log message like this, thanks.

Skid, would you happen to know whether the Gecko code handler shipped with Dolphin is GC compatible? From that issue, it does not look like this is the case (it should not be accessing CD006820 on GC, and it just happened to work before because the old MMIO interface was ignoring errors).

Actions #10

Updated by JMC4789 over 10 years ago

This has the exact same behavior as the Mario Kart Wii crash I'm experiencing upon not being a dumbass (I forgot to enable cheats after downloading your INI; whoops.)

Anyway, I don't know why I didn't see the log message. Totally 100% reproduced.

Actions #11

Updated by JMC4789 over 10 years ago

A few things caused confusing from me, and I must apologize.

1: I misread my own build names and was using the wrong last build (988 vs 889)

2: I was using an outdated F-Zero AX cheat that didn't conflict.

3: You were right about the INI thing; for some reason editing the INI manually didn't do anything. Deleting it and making sure that I put things into the right spot seemed to have fixed it.

I don't know why it was still using my cheat despite having removed it from within Dolphin. And I do not know why copying and pasting your cheat via didn't work either. Regardless, I have once again proved myself rightfully as king of user error.

Actions #12

Updated by wesadammcd over 10 years ago

Thanks JMC. No worries. I could have been a bit more clear. Thanks for confirming and spending time on this.

Actions #13

Updated by delroth over 10 years ago

  • Priority set to High
  • Milestone set to Current

Update on this: as expected, this was an issue with the Gecko code handler shipped with Dolphin being Wii only. Gecko codes should have never worked on GC, but because our old MMIO code was too permissive, nobody noticed that issue until now.

The fix is to use a separate codehandler.bin for GC/Wii and select at boot time which one should be used. Should be easy enough, but I don't have time atm to work on it.

Actions #15

Updated by delroth over 10 years ago

  • Regression set to Yes
Actions #16

Updated by mimimi over 10 years ago

May i suggest to use the codehandleronly.bin for people who just want to play and use codes? This will allow to use more codes, not require different versions for wii and gamecube, and it will be the very same codehandler that people use with Gecko OS on their Wiis.

The debugging codehandlers as an option would be nice though. Is there an option right now to allow to use the debugging codehandler without loading a code? If not, that option should be added. Automatically loading the debugging code handler, when an usb gecko is inserted, sounds nice, but in some cases that's unwanted behavior. Just pointing this out, before somebody gets that idea.

Here are the 3 codehandlers with source:
https://drive.google.com/file/d/0ByQgqzsPdirYa3kyVWtaZDBIWTA/edit?usp=sharing
The source is from Gecko OS, so the license is GPL 2.0.

Actions #17

Updated by mimimi over 10 years ago

PS: Writing the gameid to 0x80001800 would be nice too, that's what some codes and/or the debugger expect

Actions #18

Updated by JMC4789 over 10 years ago

Issue 7494 has been merged into this issue.

Actions #19

Updated by skidau about 10 years ago

  • Status changed from Accepted to Fixed

Fixed by Dolphin 4.0-2934 1f6f01e2a0dc8c5d96f2ebf15ee2d6b03a79eeec

https://dolphin-emu.org/download/dev/1f6f01e2a0dc8c5d96f2ebf15ee2d6b03a79eeec/

Actions

Also available in: Atom PDF