- --
Viewing Issue Advanced Details
ID | Category [?] | Severity [?] | Reproducibility | Date Submitted | Last Update |
---|---|---|---|---|---|
08086 | DIP/Input | Major | Always | Sep 17, 2021, 23:49 | 18 days ago |
Tester | ICEknight | View Status | Public | Platform | MAME (Official Binary) |
Assigned To | Resolution | Open | OS | ||
Status [?] | Acknowledged | Driver | |||
Version | 0.235 | Fixed in Version | Build | 64-bit | |
Fixed in Git Commit | Github Pull Request # | ||||
Summary |
![]() |
||||
Description |
In order to register a button press, the current emulation seems to require an intermediate frame without any buttons pressed, while real hardware allows for immediate button presses. This issue becomes quite apparent in Helmet by mapping the Right direction to a controller button, in order to play the game with your thumbs as intended. Due to the quick movements required, Helmet is kind of unplayable because of this issue. As an example, the quick direction changes shown in the following video can't be currently done in emulation: |
||||
Steps To Reproduce |
Just start a game and hold left, then very quickly switch to right, or vice versa. If done fast enough, the new presses will not register. This can happen when using a controller D-Pad, mapped buttons or a keyboard, indistinctively. |
||||
Additional Information | Not valid as direct reference but, just to get an idea of the difference in control responsiveness when playing with and without the reported issue, you might want to compare `gnw_helmet` with its recreation in `gbcolor/gwatch2` (try pressing left and right in quick succession when in-game). | ||||
Github Commit | |||||
Flags | Verified with Original | ||||
Regression Version | |||||
Affected Sets / Systems | gnw_zelda, gnw_helmet, gnw_tbridge and others | ||||
Attached Files
|
|||||
Relationships
There are no relationship linked to this issue. |
Notes
7
![]() No.19259
Kale Developer
Sep 18, 2021, 00:42
edited on: Sep 18, 2021, 00:46 |
Is it confirmed that gnw_bridge should have the same phenomenon? If yes then summary should be standardized as "gnw_zelda, gnw_bridge, probably others", notice the fake "like" hyperlink pointing to a 404 page. Relationship added out of the game decidedly trying to read inputs multiple times in the same frame, which really is a MAME framework issue. |
---|---|
![]() No.19260
ICEknight Tester
Sep 18, 2021, 00:57
|
I don't have access to a real Turtle Bridge handheld so I can't check if the quick direction changes behave correctly in it, but they certainly don't in MAME. |
![]() No.19261
hap Developer
Sep 18, 2021, 08:00
|
To elaborate Like I said on discord, I think(not 100% certain yet) it's caused by the game not seeing the inputs becoming inactive. This can either be due to a limitation in MAME(it only reads inputs every 'vblank', so it might miss some if you have superman fingers), or due to the player pressing one direction and immediately the other direction (this is easy on a keyboard). so, let's say 1=left, 2=right, 0=inactive 1-2-1-2-1-2: Link does not move 1-0-2-0-1-0-2: Link does move The former is not a bug. The latter is a bug in the MAME core if the 1-0-2 or 2-0-1 switch is too fast and it does not detect the "0". |
![]() No.19265
ICEknight Tester
Sep 18, 2021, 20:10
|
Assuming that we're talking consecutive frames, why would it not be a bug to have Link stand still when alternating Left and Right without an inactive frame inbetween, if such inputs would make him move on real hardware? (Note that the game shown in the video doesn't seem to miss any of the quick inputs) Back in the day, I found out that this game has a trick where it's possible to drain the enemy's life faster if you just hold the Sword button next to them and repeatedly press Left and Right really fast (and from the Discord discussion, it looks like I wasn't the only one who did this). Right now, this can't be done reliably in MAME, no matter if you're using the D-pad of a controller or a keyboard. |
![]() No.19266
hap Developer
Sep 18, 2021, 21:16
edited on: Sep 18, 2021, 21:24 |
Scrap my hypothesis: I investigated a bit more, and it reads the d-pad every 0.03 seconds, that's much slower than 60hz. So it doesn't do any 'sub frame' input reading. BTW I can replicate your video on MAME. The inputs are more responsive on that section (the part where you have to choose one of the 2 ladders) |
![]() No.23513
ICEknight Tester
18 days ago
|
Added Helmet since this issue makes it impossible to play decently when using your thumbs as intended, due to the quick movements required. |
![]() No.23514
hap Developer
18 days ago
edited on: 18 days ago |
I checked gnw_helmet l/r button read intervals: Usually ~0.015 seconds Sometimes ~0.035 seconds, and sometimes even ~0.07 seconds. If I try fast tapping left/right, I can confirm that it sometimes did not register the button press, and I bet it's the 0.07s interval that's causing it to miss inputs. I didn't check what it's doing at that point. It's not important, but I can think of updating the screen, or updating game state logic. Like so: <0.0 seconds: read buttons> .................. <user presses and lets go of button> ............... <0.07 seconds later: read buttons, does not register the button that was pressed before> |