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

Allow offscreen reloading on all 4 sides of screen #178

Merged
merged 1 commit into from
May 2, 2022

Conversation

StormedBubbles
Copy link
Contributor

@StormedBubbles StormedBubbles commented May 2, 2022

Hello,

Currently, many 3DO games only allow lightgun users to shoot off parts of the top of the screen in order to reload. This code change allows lightgun users to fire off any part of any side of the screen to reload in games that have a functioning reload/holster input. It is tested as working with all 3DO lightgun games except for Mad Dog McCree and Space Pirates, which still exhibit the issues outlined in #176, and it is also tested as working with the arcade game Shootout at Old Tucson (which didn't appear to have functioning offscreen reload before this).

I tried investigating the issues outlined in #176, but it seems that there is no place along the screen boundary that consistently acts as an out-of-bounds region for reloading for those two games. The emulator's reload button fires a shot at the middle of the top edge of the screen, which is enough for most games, but it doesn't work for Mad Dog McCree and Space Pirates for some reason.

Further, while testing this code with a friend, we found that 2 lightguns for 2-player games doesn't currently seem possible. I found the note in the code about how the gun acts as player 2, and I wonder if the fact that there are at least two different 3DO gun models is causing this. One model allows daisy chaining with a second gun, and the other only has a single controller plug. Perhaps an alternate device (dual lightguns?) that emulates two guns daisy chained is needed in order to get 2 players working?

@trapexit
Copy link
Collaborator

trapexit commented May 2, 2022

The issue with multiplayer is almost certainly due to the implementation of the lightgun being wrong. The protocol isn't accurately emulated. It was originally fuzzed out but later properly understood but I never got around to reworking the conversion between X, Y coords and the scanline timing used by the 3DO.

@trapexit
Copy link
Collaborator

trapexit commented May 2, 2022

Details http://3dodev.com/documentation/hardware/opera/pbus#lightgun if you're interested.

@trapexit trapexit merged commit 63f2679 into libretro:master May 2, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants