libretro / vba-next

Optimized port of VBA-M to Libretro.
GNU General Public License v2.0
99 stars 89 forks source link

Drome Racers (USA) and Hot Wheels - Stunt Track Challenge (USA) crash/reboot when attempting to display polygons. #24

Open vaguerant opened 10 years ago

vaguerant commented 10 years ago

These two games are essentially the same in development terms; Mobius Entertainment (later Rockstar Leeds) created Drome Racers, and THQ appear to have licensed the engine for use in the Hot Wheels game by Razorback Developments, who designed new tracks and shipped. They share a fairly advanced polygonal engine as far as the GBA is concerned and seem to fail in similar ways so it's likely they're triggering the same bug.

In Drome Racers, the game freezes after the company logos. Testing on a real GBA, the point of failure is where the title screen (with 3D course flythrough in the background) is loaded. At this point, VBA-Next's emulated GBA simply blackscreens. The parent console (Wii, in my case) is still fine, RGUI can be triggered, etc.

In Hot Wheels, the emulated GBA reboots (back to the copyright screen) as soon as the game attempts to load a (3D) course via any mode. There's no 3D before this point in the game. Again, RetroArch itself continues to run as expected.

In both cases, it seems it's the 3D-rendered areas that VBA-Next has problems with. The GBA obviously had no 3D hardware, so this is all CPU-driven and other games are unlikely to be helpful, but for the sake of interest, other 3D-rendered games such as Star X seem to run fine, as do partial 3D games like Monster Truck Madness (polygonal vehicles, bendy OutRun-style roads). It appears to be something specific to the Drome Racers/Hot Wheels engine causing the problem.

I've tested and see the same behavior on stable v1.0.0.2 as well as a build from early August.

EDIT: This issue has been adjusted with confirmation that these games share an engine; the original version only speculated to this effect.

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/3716266-drome-racers-usa-and-hot-wheels-stunt-track-challenge-usa-crash-reboot-when-attempting-to-display-polygons?utm_campaign=plugin&utm_content=tracker%2F1027743&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F1027743&utm_medium=issues&utm_source=github).
ghost commented 6 years ago

@vaguerant Hi, not sure if you are still around, but i just sent a quick PR which fixes this issue at least. seems to work fine for most cases without issues (did a full playthough at least with Aria of Sorrows-again). (its probably better to sync arm and thumb instructions with latest vba since the PR is just one of the difference between sources @twinaphex)

UPDATE: thanks for merge. decided to just send PR to update arm and thump cpu instructions from vba-m... https://github.com/libretro/vba-next/pull/99