schellingb / dosbox-pure

DOSBox Pure is a new fork of DOSBox built for RetroArch/Libretro aiming for simplicity and ease of use.
GNU General Public License v2.0
731 stars 61 forks source link

Robocop 3 - No mouse control in 3D parts of the game #434

Open arkiruthis opened 8 months ago

arkiruthis commented 8 months ago

Steps (fastest):

  1. Start Robocop 3 (I use the zipped game, but issue happens in any method)
  2. Press "Escape" to jump to game mode menu.
  3. Choose "Arcade Game" -> Mouse click through and choose F1 "OCP Hostage Crisis"
  4. 3D game part starts, crosshair in the center

Expected: Moving the mouse should make the crosshair move around the screen, and then rotate Robocop when it gets to the borders of the screen. Pressing mouse should fire the weapon. (In regular standalone DosBOX emulation this works fine)

Actual: It seems that the mouse has completely stopped working at this point. Pressing Enter confirms the gun fires (for keyboard controls), but moving around with the keyboard controls (up, left, right cursor) doesn't seem to be peforming well either. The framerate is high and there's no stuttering. Keys F1 - F3 switch external views, so the game is responding fine.

It's very odd. As I say, running the same files in regular DOSBOX is fine. Would like it in RetroArch though as I love my CRT shaders. :D

schellingb commented 8 months ago

This is a similar problem as #303, read my post there for an explanation.

Because Robocop 3 was released in 1992 DOSBox Pure will emulate it at the speed of a top-of-the-line 486DX2 CPU from that year. Turns out in Robocop 3 if the CPU is too fast you cannot rotate the camera. I will adjust the game database to treat Robocop 3 as if it were released in 1989 so it runs at a speed comparable to a 386DX CPU which should fix this.

For now you manually need to go into the core options to Performance and set "Emulated Performance" to be at "386DX, 33 MHz from 1989" or lower.

arkiruthis commented 8 months ago

Hi Bernhard, thank you for the promp reply. I actually had this theory as well (possibly it's mouse delta calculations don't get enough latency). I did try dropping it to 386 and the 286 (with restarts to be sure) but the issue seemed to be the same.

But I'll wait for the update to be sure. Thank you for your work on DosBox Pure, I love it!

arkiruthis commented 8 months ago

Actually, I think my copy of Robocop 3 must be corrupted somehow. I tried an alternate version and with 386 it seems to be fine now!

I'm not sure quite what's different, but I'm very glad it's working now. :)

**EDIT - Okay, looks like the mystery might be solved. It seems that the ZIP'd version is fine, but open directory not. I tried with both mine and the other version, both ZIP'd as Content are fine.

As you say, Pentium+ makes the rotation stop at the edges, but you can still move the mouse reticle. But what I was experiencing previously was the reticle not moving at all.**

alexb3d commented 2 days ago

I see it's already solved, I leave this info here in case it helps in something.

This bug is similar to Ultima Underwolrd, the game has multiple frames per screen and has a frame cap, setting MAX (before the fix) works normally.