Javanaise/mrboom-libretro

Button autofire by default

Closed this issue · 23 comments

When entering your initials on the start screen, the validate button is in autofire mode making it tricky to input letters.

In the game as well, auto-dropping several bombs in rapid successions should perhaps not be the default.
We have a turbo button mode in retroarch for this or it could be assigned to an additional input button.

You don't drop bomb by default, I guess you have a input issue...

I mean when you keep the button pushed down and walk it will drop several bombs.
Bomberman games usually wait for you to push the button again to drop a second bomb.

for the menu: use left and right instead
for the bomb dropping in the game itself, I think dynablaster PC was doing the same, and I prefer it that way...

Had a second thought about the menu, you're quite right, will improve that in the next versions.

I increased the change blocker time from 10 to 15. have a look at the current version...

I compiled it as the buildbot isn't updated.
Well, that's better on the menu screen.
But I don't understand why you're not letting the players decide their own play-style:
if you disable autofire in-game, players can use libretro autofire.

Personally I keep throwing unwanted bombs which feels frustrating.
I think this could deserve your game.

Well the thing is people won't decide, they'll use the default mode. How do you turn on the autofire mode?
What I could do is to use the X button to behave like you want.

You just need to disable the autofire happening in MrBoom code itself.
Then there is a Turbo button mode in Retroarch that can be used.
Or you can add a turbo button directly on the gamepad with a code like this one for Nestopia.
(along with this fix if needed?)

If you do with this last method, choosing a fixed turbo speed that works well would be better to avoid different behaviours between players in netplay. (don't do the core option "turbo pulse speed" user choice part)

Yeah but I don't want to change the B button behaviour, I prefer it that way. Maybe you just need to get used to it.

Played it (locally) for the first time with 5 friends yesterday, they all complained about the B button behavior (we are all in our late thirties and have been playing bombermans together since the snes era).

I can understand you prefer it that way, but since it is not the behavior in any bomberman i played (and i played most of them), making it a core option would be nice. You can't get used to it when you played thousands of bomberman rounds.

Actually, there is one other thing i would make a core option if possible : the monsters. Depending on your luck, you can be screwed from the very beginning because of them.

I have to agree with @barbudreadmon too, I thought the B button behavior was a glitch at first.

I think it would be sensible to use normal Bomberman default B button behavior and then make it possible (perhaps via a core option) to turn the 'current' behavior on optionally. The other way around is confusing and perhaps backfires with most people used to Bomberman.

Guys I just tried Super Bomberman 3 on Snes, and it has the Mr.Boom behaviour:
If you push the B button and keep it pushed while running, you keep dropping bombs.

How do the core options work ?

To my great surprise there was an autofire in every NEC games, starting from the 3rd on SNES.
Guess it's just slower and not noticeable there.

Makes sense, i think i own the first on every console, starting with snes. I tried a few others through emulation, but never spent much time on those.

About how the core options works, take a look at the core i'm maintaining : https://github.com/libretro/fbalpha/blob/master/src/burner/libretro/libretro.cpp

Lines 158-177 = how to declare them
Lines 651-718 = how to send them to retroarch
Lines 1115-1307 = how to retrieve what was selected in retroarch

I hope it helps.

@frranck So, any news about this core option ? I wouldn't mind creating a pull request if you tell me where i can change this behavior.

@barbudreadmon It's a bit tricky because it touches the assembly code. I'm working on some bomberman AI now, that includes some "assembly wrapper" functions, so I will have a look afterwards.

How can this work with netplay ? The option must be the same on all computers, otherwise it's going to desynchronise...

Well, if you can't make it an option, then i suggest you make it the default, i played more than a third of the (33) bomberman games, probably the most well-known, and none of them had this autofire behavior.
Over that, perhaps you could add some kind of client-side per gamepad hack like @Tatsuya79 mentioned

I second this by barbudreadmon.

Despite what you might think, to most gamers this will just be annoying and they will regard the game as being broken. Please consider implementing this as an option instead.

@twinaphex Having global options is an issue that needs to be fixed with netplay, it's gonna be the same problem on every core... There could be a way to hack it, if I put a frame counter in the state to spot rewinds on slaves, and then ignore the options from retroarch and use the options values from the state.

Hello, I just pushed the long awaited autofire = off option...
I'd like to get some proper testing and feedback before deciding its default value.

Thank you! seems to be working fine (just tried single player). :)