Saving highscore using Openmsx

Pagina 1/2
| 2

Door Gimmemsx

Supporter (5)

afbeelding van Gimmemsx

01-10-2012, 19:00

I've already posted this in msxtalk > software and gaming.
Sorry for posting this twice but I was told that openmsx could be a solution for my 'problem':

In the near future I'm planning to build an Arcade-cabinet. I wil use Hyperspin as a frontend which can run several emulators of classis computer consoles / cabinets.

I'm using MAME to play classic arcade-cabinet-games. The original source of MAME can be patched to save highscores automatically. This is perfect when playing on a cabinet. It should save your highscore automatically without having to push a button on a keyboard, because a cabinet doesn't / shouldn't use a keyboard. So I've MAME succesfully setup to automatically save highscores and still be visible when starting the game a next time.

To be able to play MSX-games I've to use an emulator like for example openmsx. But I also want highscores of MSX-games to save automatically without having to push a button on a keyboard or using the mouse to save a state of a game.

So I was wondering if the above is possible. If so, which emulator should I use and how do I have to set it up saving highscores automatically?

Kind regards,
Dennis

Aangemeld of registreer om reacties te plaatsen

Van anonymous

incognito ergo sum (116)

afbeelding van anonymous

01-10-2012, 19:55

AFAIK, no MSX emulator features a automatic hi-score saving option.

But, OpenMSX being a open source development, someone could add this possibility, IF you can convince them to do so !

Van Manuel

Ascended (18256)

afbeelding van Manuel

01-10-2012, 21:05

Van mars2000you

Enlighted (6019)

afbeelding van mars2000you

01-10-2012, 21:17

It's not exactly the same thing : Gimmemsx suggestion does not request a server to host the high scores, he wants just an internal storing of the data somewhere in an emulator.

Van Manuel

Ascended (18256)

afbeelding van Manuel

01-10-2012, 21:28

Indeed, but it gives also some technical arguments (which you also gave in the other thread).

So, the issue is, there is no fixed place where a game stores its high-score. So you'd have to make a list with a game and the address in RAM where the high score is. If you have that, an openMSX script can indeed make sure this value is saved to (local) disk and loaded back again.

Van snout

Ascended (15184)

afbeelding van snout

01-10-2012, 21:36

Ghehe, good old memories... I still think that something like gamestats would be an awesome feature (as long as it can be enabled by those who like it, and is disabled by default).

Van Manuel

Ascended (18256)

afbeelding van Manuel

01-10-2012, 21:40

snout, well, I think it would be too fragile to be really useful (it's too easy to cheat).

Van mars2000you

Enlighted (6019)

afbeelding van mars2000you

01-10-2012, 21:50

Manuel wrote:

(it's too easy to cheat).

Indeed, as there are at least 4 ways to cheat :
- cheated versions of games
- enabled cheats coming with emulators and/or found with trainer
- applied ips cheat files
- applied tcl cheat scripts

Van Gimmemsx

Supporter (5)

afbeelding van Gimmemsx

02-10-2012, 19:20

Hi Manuel,

I don't have a clue how to achieve this. Could you (or somebody else) perhaps help me out?
That it would be easy to cheat is not important, because it's only for personal use and my friends.

Hope to hear from you.

Dennis!

Van Manuel

Ascended (18256)

afbeelding van Manuel

02-10-2012, 21:39

Well, you'll have to find the address in RAM where the high-score of a game is stored. You could use the cheat finder for that. (In the openMSX console, try the findcheat command, see also http://www.youtube.com/watch?v=F11ltfkCtKo
The only issue is that it is probably a 16-bit address...

When you have found the addresses (16 bit), you can read it out in the console like this: peek16 0x1234 This will read the 16 bit value as an integer from 0x1234 and 0x1235 (see also the help of the peek16 command).

When you read this out, you can save the data to a file using normal Tcl code.

When starting up the game, you could start a script which reads out the highscore from the file you saved before and pokes it back into RAM.

That's the outline of how it could work... Give it a try! I'm willing to answer any specific questions.

Van wouter_

Champion (469)

afbeelding van wouter_

02-10-2012, 21:46

An alternative might be to create a snapshot of the machine right before you exit the emulator and later when you want to continue playing this game, instead of restarting a 'fresh' machine, you continue from this snapshot.
This does have the advantage that it will work for all games (I mean no need to have game specific locations of the highscore(-table)). But the disadvantage is that you can't reset the machine to quickly restart the game.

Pagina 1/2
| 2