Project

General

Profile

Emulator Issues #10355

Ultimate Spider-Man crashes Dolphin

Added by Kierek93 almost 3 years ago. Updated over 2 years ago.

Status:
Fixed
Priority:
Normal
Assignee:
% Done:

0%

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

Description

Game:
Ultimate Spider-Man

Game ID:
GUTP52 (also happens with GUTE52)

MD5 Hash:
69bb98acf730c0a837f786af8b27b38b (verified with gameTDB)

Problem:
The game seems to work perfectly fine(great performance and graphics, no visible bugs) as long as it works. The problem is that it rarely works. The first crashes can be experienced in the third mission (the one where you play as Venom). The whole emulator crashes very often when Venom lands on the ground after leap(R button) and always when you try to climb the walls. It can be finished though, with heavy use of save states and avoiding climbing the walls at all. Annoying, but still playable. The real problem is the Rhino level, since it always crashes in the exact same time and so the game can't be progressed).

https://www.youtube.com/watch?v=LQOXKv1X3m4
(the emulator crashes always at 0:38)

What could be the cause?
My guess is that there is something wrong with emulating effects used in this game to create damaged surfaces(when Venom climbs he shreads the walls, when Rhino should appear there should also be a lot of destroyed ground everywhere)

Steps to reproduce:
1. Start the game.
2. Play until the Venom mission and try to jump/climb the walls.
3. The whole dolphin will crash(segfault)

If you are lucky and got through the Venom mission it will immediately crash in the beginning of the Rhino level, either on the cutscene (immediately before Rhino appears on screen) or after skipping it.

Versions of Dolphin:
Stable 5.0 and 5.0-4400. It doesn't work on any version.

PC specs:
Arch Linux 64bit
i5-6500
GeForce GTX 750 Ti (latest proprietary driver with bumblebee, the same happens on mesa 17.1.3 with intel or nouveau)
16GB RAM


I'm not sure if it's the right place to ask, but I'm willing to make a bounty on this issue, just don't know where and how.

History

#1 Updated by JMC4789 almost 3 years ago

Can you enable logs and get some information on the random crashes? Please put them to the highest level. Hopefully nothing inconsequential spams it too much.

I'd also like you to try enabling MMU emulation in the game properties page if it's not already checked, and disabling dualcore (in case that's causing issues) for the time being and see if maybe that helps.

If you can't solve it, I'll put this on my list of games to buy and test and see if I can't narrow it down personally.

#2 Updated by Kierek93 almost 3 years ago

Damn, now I feel like an idiot.

Disabling MMU caused a lot a messages like "Invalid write to 0xf01c4000, PC = 0x801ad54c" and game not booting at all, and switching dual core had no effect.

What solved my problem was enabling logging and then, of course, reading them. Just before crash I got "BBox shall be used but it is disabled. Please use a gameini to enable it for this game.". That's it, no more crashes. It should probably be mentioned in the wiki as I've seen a bunch of people being annoyed that this game "doesn't work".

#3 Updated by JMC4789 almost 3 years ago

Don't feel like an idiot - no one actually knew this was a bounding box game... That's incredible that another one turned up after all this time.

We'll add this to the INI to make it so users don't run into this in the future.

#4 Updated by Kierek93 almost 3 years ago

Pasting

[Video]
UseBBox = True

into gameini doesn't work, even though another settings are detected. Any idea what can be wrong?

#5 Updated by JMC4789 almost 3 years ago

  • Status changed from New to Accepted
  • Assignee set to JosJuice

Not sure. Pinging JosJuice as they were setting up to make a pull for this.

#6 Updated by blubberdiblub almost 3 years ago

Kierek93 wrote:

Pasting

[Video]
UseBBox = True

into gameini doesn't work, even though another settings are detected. Any idea what can be wrong?

Wouldn't it be something like that in game-specific INIs:
~~~
[Video_Hacks]
BBoxEnable = True
~~~

#7 Updated by Kierek93 almost 3 years ago

Another problem encountered. After enabling the BBox it's been pretty much stable, no crashes.

A couple of missions later(Venom chasing Electro) in the middle of the fight I encounter the "IntCPU: Unknown instruction 01000000 at PC = 00000008 last_PC = 812fffc8 LR = 80156e8c" info. There's a dialog box, after clicking Yes a little bit it disappears but the game freezes and there's only static noise playing. No other choice than restarting the game.

blubberdiblub wrote:

Wouldn't it be something like that in game-specific INIs:
~~~
[Video_Hacks]
BBoxEnable = True
~~~

I got the info from here: https://wiki.dolphin-emu.org/index.php?title=GameINI_Settings/Sandbox

#8 Updated by blubberdiblub almost 3 years ago

Kierek93 wrote:

I got the info from here: https://wiki.dolphin-emu.org/index.php?title=GameINI_Settings/Sandbox

It's irrelevant where you got the info from (the particular setting you're referring to may be outdated).

Can you try with my suggestion in the game-specific INI?

#9 Updated by Kierek93 almost 3 years ago

blubberdiblub wrote:

It's irrelevant where you got the info from (the particular setting you're referring to may be outdated).

Can you try with my suggestion in the game-specific INI?

Yes I did, it doesn't work either.

#10 Updated by tueidj almost 3 years ago

FYI, this game is pretty much up there with the Factor 5 star wars games when it comes to tricky features used: unique hand-written MMU code, bounding box, multi-buffer FIFOs, and to top it off it performs MEM<->ARAM transfers that attempt to access beyond the end of ARAM memory (which is probably the cause of that last reported crash).

#11 Updated by JMC4789 almost 3 years ago

Awesome. That's good to know. Does this game have full MMU enabled for it?

I'm guessing we need to do more even...

#12 Updated by tueidj almost 3 years ago

The .ini file has "MMU = 1", I don't know if that equates to full but it definitely needs it.

The devs of the game actually did a write up about how the GC MMU works, and how they used it:
http://www.insomniacgames.com/virtual-memory-system-on-nintendo-gamecube/
http://d3cw3dd2w32x2b.cloudfront.net/wp-content/uploads/2011/06/virtual_memory_system_on_Nintendo_Gamecube.pdf
"USM" mentioned on slide 28 is this title (Ultimate Spider-Man).

Their implementation is a lot simpler/cleaner than the mess used in Star Wars: The Clone Wars or Shamu's Deep Sea Adventure...

#13 Updated by JosJuice over 2 years ago

  • Status changed from Accepted to Fixed
  • Fixed in set to 5.0-4788

Bounding box has been added to the game INI.

Also available in: Atom PDF