Please recommend me an emulator for my arcade cabinet, or tell me how to fix some issues in openMSX / blueMSX

Page 1/2
| 2

By TheElectricMonk

Supporter (12)

TheElectricMonk's picture

06-06-2020, 00:43

Hi all, I'm very new here. Not new to using emulators, just new to the MSX as a whole.

I have an arcade cabinet with a number of emulators running on it, and I'd like to add an MSX emulator to it. So far I've tried openMSX (latest) and blueMSX (2.8.2), and I've had my problems with each of them.
Here are a few specifics the emulator should be able to do:

1. I have Load and Save buttons on my cab, so the emulator should have a quicksave/quickload function.
openMSX has the drawback of saving only one "quicksave.oms" regardless of which ROM I choose. However, I can work around this with a bit of batch file voodoo.
blueMSX apparently always loads the last quicksave file I saved, so if I start Game A, save it, then quit the emulator, then start Game B, save it, quit, start Game A, quickload - it will load the state for Game A. Is there a way for blueMSX to recognize the ROM and only load the latest quicksave for that specific ROM?
Also, I've noticed that blueMSX seems to screw up the keys in some savegames. For example if I quicksave in Antarctic Adventure and then quickload, the jump button stops working. In other games (Pac-Mania for instance) quickload doesn't seem to affect the controls at all. Is that a bug, or am I using some setting wrong?

2. I like a clean interface when I start the games.
blueMSX gives me no trouble here whatsoever.
openMSX has the widgets at the bottom, which I was able to remove. However, it has the (useful for most purposes, annoying for mine) "menu" button in the top left corner and displays info on the ROM I just loaded. Yes, both of these fade after a few seconds, but ideally I'd like to hide them altogether - of if that's not possible, increase the fadeout speed by a lot.

TL;DR: Can I hide the menu icon in openMSX? Can I fix quickload problems in blueMSX? Is there maybe an emulator better suited?

Answers are much appreciated. :-)

Login or register to post comments

By FiXato

Scribe (1598)

FiXato's picture

06-06-2020, 00:53

Manuel already answered your menu icon question in https://www.msx.org/forum/msx-talk/openmsx/newbie-questions-... :)

As for the quicksave in openMSX, I might be able to provide you with a script you can use to include the ROM name or maybe shasum in the quicksave filename. Will have to see if I can find some time for that this weekend.

By TheElectricMonk

Supporter (12)

TheElectricMonk's picture

06-06-2020, 12:42

Thank you for the quick reply :-)
Yeah, I just saw Manuel's response and already implemented it. Seems I'm on my way to getting openMSX to behave as I want it to, so please don't go to any trouble just because of me.

EDIT: Got it all working, looks like it's openMSX all the way for me.

If anyone is interested, here is the batch file I use for an example game.

------

@echo off 
REM Rename ROM's Save Game to quicksave.oms
REM (first delete old Save Game, just in case it should be left over from a crash)

c:
cd C:\Users\User\Documents\openMSX\savestates
del quicksave.oms
rename "Antarctic Adventure (1984) (Konami) (J).oms" "quicksave.oms"

REM Run Game

d:
cd D:\emus\openmsx-0.15.0-windows-vc-x64-bin
start Keys_Antarctic.exe
openmsx -cart "d:\roms\msx\Antarctic Adventure (1984) (Konami) (J).rom"
taskkill /f /im Keys_Antarctic.exe

REM Rename Save Game back to ROM name

c:
cd C:\Users\User\Documents\openMSX\savestates
rename "quicksave.oms" "Antarctic Adventure (1984) (Konami) (J).oms"

-----

This way, I always make sure that the current game's quicksave file is safely out of the way by the time I quit the game, and brought back to it's original name of "quicksave.oms" when I start it.

"Keys_Antarctic.exe" is an AutoHotKey script that bends the game's keys to my cabinet's buttons (which are essentially keys, since they are connected to a keyboard encoder). There will be multiple .exes depending on each game's controls. Keys_MetalGear.exe for example will have to be a lot more elaborate, as the game uses a lot more keys.

I know this solution is not the most elegant thing in the world, but then again, neither am I Wink

By TheElectricMonk

Supporter (12)

TheElectricMonk's picture

06-06-2020, 12:43

Just for completeness' sake, here is an example of the AutoHotKey script:

I like to leave the original emulator key bindings intact, in case I ever need to look something up or need to reinstall, or I forget what bindings I used.

My cab uses F5 to save and F8 to load, P for Pause and Q for Quit. The joystick directions are the arrow keys, Fire button 1 is Enter, and Player Start is 1 (standard MAME setting).

For Antarctic Adventure I needed to set the jump key (Space) to trigger when my Fire button 1 (Enter) is pressed.
Also, I needed to make sure that if I press start (1), Antarctic Adventure starts in keyboard mode (=pressing "2" on the MSX).

----------

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
#SingleInstance force

; ######################
; BEND EMULATOR HOTKEYS
; ######################


F5::!F8

F8::!F7

P::Send, {Pause}

q::!F4

; ###############################
; GAME SPECIFIC STUFF STARTS HERE
; ###############################

Enter::Space

1::2

---------------

By Calindro

Supporter (7)

Calindro's picture

06-06-2020, 09:08

If you are still interested in trying out other MSX emulators you could give Emulicious a try.
Ita MSX emulation is still young and for now there is only MSX1 emulation and no savestate support for MSX, yet.
But I'm actively developing it and looking forward to feedback. Smile

By Manuel

Ascended (16637)

Manuel's picture

06-06-2020, 10:55

TheElectricMonk - instead of that AutoHotKey thing you can also pass a script with temporary custom keybindings to openMSX.

By FiXato

Scribe (1598)

FiXato's picture

06-06-2020, 12:58

Manuel wrote:

TheElectricMonk - instead of that AutoHotKey thing you can also pass a script with temporary custom keybindings to openMSX.

To expand on that:
Create a file (e.g. "arcade_keybinds.tcl") containing all the key binds (and perhaps other console commands you want to change):

bind p toggle pause

Load this script:

/path/to/openmsx.exe -script /path/to/arcade_keybinds.tcl YourGame.rom

Worth noting that these changes will only be temporary if set save_settings_on_exit is set to false.

(Btw, I've changed the code examples in your previous posts to use the code tags for improved legibility and selection.)

By TheElectricMonk

Supporter (12)

TheElectricMonk's picture

06-06-2020, 18:19

That's good to know, thank you.

A final question - I've got everything working perfectly except for the fact that when I quicksave a game, I still get the message "Screen saved to [directory]". I've looked in several of the script files for the text, but so far no luck.

Could anyone please tell me how to disable that final message?

EDIT: Or is it possible to disable the simultaneous saving of a screenshot? That would, presumably, get rid of the message as well.

By Manuel

Ascended (16637)

Manuel's picture

06-06-2020, 18:26

Edit share/scripts/_savestate.tcl and remove the screenshot block in the savestate proc. Not tested, but I guess it will work Smile

By TheElectricMonk

Supporter (12)

TheElectricMonk's picture

06-06-2020, 19:09

That did it!
I just had to comment out the line

set png [file join $directory ${name}.png]

Thank you!

By Manuel

Ascended (16637)

Manuel's picture

06-06-2020, 20:02

That's quite a hack, but works because of the catch around it Smile

Anything else we can help you with?

Page 1/2
| 2