Provenance-Emu / Provenance

iOS & tvOS multi-emulator frontend, supporting various Atari, Bandai, NEC, Nintendo, Sega, SNK and Sony console systems… Get Started: https://wiki.provenance-emu.com |
https://provenance-emu.com
Other
5.97k stars 690 forks source link

Some PSX games not accepting inputs #706

Closed BaffleBlend closed 6 years ago

BaffleBlend commented 6 years ago

I'm having a strange issue with PlayStation games in particular. No other consoles have this issue.

Any button on the controller that I press with these games is not accepted by the game. It continues running as if I'd never pressed anything.

The controller I'm using is the Logitech Powershell for iPhone SE, but it has the same issue with the on-screen controls.

I haven't tested that many games yet due to the amount of space PSX games take, but I can at least list a couple.

The affected games that will not accept input include: • Soul Blade • Yu-Gi-Oh!: Forbidden Memories

The issue does not go away with resetting the game or the app.

Games that DO NOT have this issue and respond to controls normally include: • Disney's Hercules Action Game • Dragon Ball GT: Final Bout • I.Q.: Intelligent Qube • Klonoa: Door to Phantomile • PaRappa the Rapper • Um Jammer Lammy

Is there some property that the affected games use that the others don't?

Again; this does not happen with any other console as far as I know.

BaffleBlend commented 6 years ago

I've got another game that suffers from the problem: Brave Fencer Musashi.

JoeMatt commented 6 years ago

I'll try to get to this sooner than later. Gotta do some other stuff first. I'll check out these games.

BaffleBlend commented 6 years ago

Update: possible false positive on Musashi. Its issue manifests differently; sometimes it accepts input, sometimes it doesn't, usually after switching apps. Saving state and then shutting down/reopening Provenance usually fixes it.

This does NOT work with Soul Blade or Forbidden Memories, unfortunately; I'm stuck on the title screen and opening FMVs no matter how times I reset with those.

JoeMatt commented 6 years ago

I'm not seeing this issue, using a Nimbus with IQ intelligent Cube, inputs are working as expected. The joystick though has no input. Does this controller maybe map the dpad as a joystick? This game expects a dpad input, joystick is non functional.

JoeMatt commented 6 years ago

Maybe related to #707

I just pushed a change to develop branch that's not exactly tested but might fix this.

From 707 ticket comments I'll re-iterate,

Analogue is supported but maybe there are bugs. I just pushed a modified PSX controller input to the develop branch. The changes were 1, use OpenEMUs latest code for joystick values. 2, on non extended game pads that support pressure sensitive d-pads, use the pad value as the joystick value so maybe dualshock games will read those values.

I don't have a non-extended profile game controller so I can't test if that works but the code is sound I think

This is an odd controller though. I can't really test it full unless I have one. I'm willing to if someone wants to send me the $20 for one. It's not about the money but I've bought so many controllers and AppleTVs at this point that I don't use I can't justify buying every weird controller to test out of my own pocket.

BaffleBlend commented 6 years ago

You misunderstood. The second group was games that I know do not have the issue, so you don't waste your time testing them. I thought I made that clear, but it confused the issue.

To restate, the game's that definitely have the problem are Soul Blade and Forbidden Memories.

BaffleBlend commented 6 years ago

I apologize for the confusion.

JoeMatt commented 6 years ago

k, i'll take another look when I get a chance. I don't know a controller right now that's not an ExtendedGamepad profile. Looks like the Logitech controller is a non-extended layout. My 'fix' was to make the joystick input be doubled. Basically pressing a dpad registers both a dpad and joystick input, which actually might cause other bugs so maybe it's not a good fix. I'm not really sure what the best course of action is other than making a list of games that use only the joystick and not d-pad and mapping the dpad on non-extended controllers to joystick input on PSX. Unfortunately I'm not sure if such a list of games exists.

BaffleBlend commented 6 years ago

That would be reasonable if JUST the D-pad were the problem, but the face buttons and Start don't work, either; that's why I'm stuck at the title screens/opening FMVs. Even when the controller is not attached and I use the touch controls.

sevdestruct commented 6 years ago

@BaffleBlend, just for more clarity what version/build are you using? Could you run a test against the dev branch build with your controller? Also want to try and pull apart the reports. You have a specific controller, specific games, and then now reporting touch controls not working, which could mean the controller is irrelevant…Let's eliminate the controller variable completely (as in force quit app from app switcher and disconnect it completely, relaunch and do not connect a controller at all) and focus on just the games that you reported. Test Inputs.

I was going to link #690 but since you say it's d-pad this might be something else.

BaffleBlend commented 6 years ago

I'm using the precompiled public build currently hosted on builds.io, and... this is interesting. I think I've narrowed down the issue.

If I start Soul Blade with the controller disconnected, it works even after I connect it, except for the start and select buttons, which are still onscreen.

It appears the reason I couldn't do anything in these two games specifically was because only the start button could access the menu. Since I was stuck on the title screen, that gave me the impression that none of the buttons were working. I realized it because this problem is consistent across ALL PSX games, though only when the controller is connected; the "P1 Start" and "P1 Select" options in the menu do nothing as well with the controller attached. I didn't notice before because the menu by itself is adequate for pausing in most games, but with games such as Brave Fencer Musashi, where the Start and Select buttons have a vital role in gameplay (the item menu and restoring energy, respectively), this is a serious problem.

Interestingly, this still seems to be ONLY with PSX games; Genesis games, for example, also have a start button onscreen with this controller attached, but that works fine.

In short, I misidentified the issue, and I apologize for that.

I'll try the dev branch build sometime soon; I've never compiled an app myself before.

sevdestruct commented 6 years ago

Alright, catching up.. this sounds really super familiar to known issues that are currently in works to resolve the issue with Start / Select, i think joe is already on that… but it's 2am and yeah..

ghost commented 6 years ago

fyi, i cant get past the intro screen for diablo 1, it just says 'please press start' and ive tried every button on my nimbus controller, and the start buttons in the menu, i even disabled my nimbus and tried it with just the regular atv remote and it still didnt work. :C pls halp

jasarien commented 6 years ago

Which version of Provenance are you using?

jasarien commented 6 years ago

I've just tested Diablo (PSX) on the latest develop build and the P1 Start button in the menu works fine to get past the "Please Press Start" prompt. Can you build the latest and confirm it works for you @lookbehindyouathreeheadedmonkey ?

ghost commented 6 years ago

@jasarien, ive been running n64+swift branch since a few weeks back, im still unable to run master branch. (not relevant here but i get a: "libc++abi.dylib: terminating with uncaught exception of type NSException") I will try compiling again a bit later, maybe its my xcode or something. great to hear that it works and that the problem is on my end! ill post the version straight away next time to avoid you testing things that dont need testing. sorry again. cheers for the quick response!

jasarien commented 6 years ago

The N64+Swift branch is a feature branch - you shouldn't be running those. It has already been merged into Develop, which is what you should be building if you're testing Provenance. Otherwise you should be building a stable release from master or using the prebuilt IPA downloads.

The crash is probably because you're trying to move from a branch that had half implemented features back to a stable build which is behind.

My suggestion: delete your current install and rebuild develop if you're testing 1.5, else go back to master or the 1.4 IPAs.

ghost commented 6 years ago

@jasarien i know you are right, but at the time i was unable to compile the develop branch, and i really really wanted to try out n64 :)

I checked it out to a new folder, so it shouldnt be that, but ill try your other suggestions. cheers

thanks again, and happy easter :)

jasarien commented 6 years ago

It doesn't matter where you checkout to on your computer if the build you have installed that you're overwriting has a conflicting database schema. Like I said, delete the build from your device and start over from scratch from develop. I'm not going to provide any more support if you're not going to follow the advice I provide.

ghost commented 6 years ago

aaah, got it! you mean on my atv. ok ill do that.

ghost commented 6 years ago

I can confirm that its working with the latest develop branch. I had to delete the app and reinstall it and it worked great. Ill always remove the app and reinstall it before coming back here and asking for help. :P sorry for taking up your time. thank you for sharing your amazing work.

jasarien commented 6 years ago

Awesome 👍

JoeMatt commented 6 years ago

Yeah the DB is still fragile, I hope to have the DB classes for future features at least outlined if not yet used so we have less headaches in the future. Im' trying to add as much as I can think of since it's not cost to have extra properties that just aren't used yet.

sevdestruct commented 6 years ago

@BaffleBlend These games accept input now. Good chance was fixed in mednafen-updates.