Metal Gear 2 MSX emulation speed?

Page 5/6
1 | 2 | 3 | 4 | | 6

By Parn

Hero (610)

Parn's picture

17-06-2020, 14:10

Even then I can't see it working well. Suppose you push down+left. Down and left arrows will be pressed and right and up arrows will be released. Then transition to left. Down should be released but since you didn't push up, this won't happen. So as soon as you try to move in a diagonal, you wouldn't be able to move outside a diagonal anymore.

And if you configure push one direction to release all other directions, you can't ever move diagonally.

One solution to this is if we could do bindings for hat diagonals. Another would be treating each direction of the d-cross as normal buttons (as I first erroneously assumed). Another would be enabling us to select the hat as main controller instead of or in addition to the analog joystick. Are any of these possible for OpenMSX?

By Manuel

Ascended (17083)

Manuel's picture

17-06-2020, 14:39

You can, the diagonals can also be bound.

By Manuel

Ascended (17083)

Manuel's picture

17-06-2020, 16:17

The source of these events:
https://wiki.libsdl.org/SDL_JoyHatEvent

in the bind command known as
"up";
"right";
"down";
"left";
"rightup";
"rightdown";
"leftup";
"leftdown";
"center";

Of course we can also add a keymatrixup for all cases where left is not pressed. And then for all others as well.

I'll add a ticket to support mapping a hat to the joystick direction keys. That's should make things easier. But don't count on it soon. It's still to be seen what the commands for that should look like as well. Not straightforward if you ask me. See https://github.com/openMSX/openMSX/issues/1273

By Parn

Hero (610)

Parn's picture

17-06-2020, 16:35

Thank you very much, Manuel. I looked for the reference but wasn't sure I found the right one (for example, there it says "centered" instead of "center". Anyway I just fooled around until I was able to make a configuration that worked:

bind "joy1 hat0 up" {keymatrixdown 8 0x20; keymatrixup 8 0x40}
bind "joy1 hat0 rightup" {keymatrixdown 8 0xA0; keymatrixup 8 0x50}
bind "joy1 hat0 right" {keymatrixdown 8 0x80; keymatrixup 8 0x10}
bind "joy1 hat0 rightdown" {keymatrixdown 8 0xC0; keymatrixup 8 0x30}
bind "joy1 hat0 down" {keymatrixdown 8 0x40; keymatrixup 8 0x20}
bind "joy1 hat0 leftdown" {keymatrixdown 8 0x50; keymatrixup 8 0xA0}
bind "joy1 hat0 left" {keymatrixdown 8 0x10; keymatrixup 8 0x80}
bind "joy1 hat0 leftup" {keymatrixdown 8 0x30; keymatrixup 8 0xC0}
bind "joy1 hat0 center" {keymatrixup 8 0xF0}

This could be useful to more people, but I'm not sure where to put it. I tested with Zanac EX and it seemed to work fine. However, it seems that the d-cross in a PS4 controller isn't the ideal way to play this game. I'll continue experimenting. Again, thank you so much for your help. I've seen you dealing with these questions from time to time and it must get really tedious.

Just a bit of constructive criticism, though: the manual could be clearer about what can be customized (like supported devices and events). I don't think it's fair to expect the user to rely on SDL documentation.

By Manuel

Ascended (17083)

Manuel's picture

17-06-2020, 17:48

No, it's not tedious! It's giving me valuable feedback on openMSX, that's why I made the ticket Smile Thanks for helping to actually taking the time to try it out and making it fully working, much appreciated!

And you're right that the manual is a little minimal. But as a poor excuse, the bind command was never intended to do these kind of complex mappings Smile That's why I put in the ticket: make it simpler. It's a very fair use case. And perhaps, instead of mapping to the cursor keys, it's better to map to the MSX joystick signals.

By Parn

Hero (610)

Parn's picture

17-06-2020, 20:08

Yes, that would be most welcome. And I just can't thank enough for all the work that has been poured onto OpenMSX, I love this emulator almost as much as I love my MSX machines. And honestly I use it even more.

By Manuel

Ascended (17083)

Manuel's picture

17-06-2020, 20:12

Thanks man, that's really awesome to hear Smile We'll keep welcoming your suggestions and issue reports!

By Muyfa666

Resident (36)

Muyfa666's picture

17-06-2020, 21:22

I tried this and it works! Crazy amount of work.

Still, most game play better on the keyboard, but kudos for all the hard work! :-)

By Manuel

Ascended (17083)

Manuel's picture

17-06-2020, 21:33

Well, with the latest openMSX development build, you can paste these commands in the console and save settings. Done. 2 seconds of work Smile

By Muyfa666

Resident (36)

Muyfa666's picture

18-06-2020, 10:54

I mean you two did a crazy amount of work. The commands work fine.

Maybe put them in the official manual?

Page 5/6
1 | 2 | 3 | 4 | | 6