Jump to content
Welcome Guest!

Join us now to get access to all our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, and so, so much more. It's also quick and totally free, so what are you waiting for?

Fyrecrypts

HiToText (Hi score support)

Recommended Posts

 

v1.6 released!

 

What's new?

    31 new games supported

         Golden Axe, Ghouls'n Ghosts, Wyvern F0, Strider, Xevious, Xevious 3D/G, Vasara, Vasara 2,

         Shark Attack, Shinobi, Aero Fighters / Sonic Wings, Aero Fighters 2 / Sonic Wings 2,

         Aero Fighters 3 / Sonic Wings 3, Aero Fighters Special / Sonic Wings Limited, Turbo Force,

         Karate Blazers, Lethal Crash Race, F-1 Grand Prix, F-1 Grand Prix Part II, Pipe Dream,

         Tao Taido, Hatris, Power Spikes, Power Spikes II, Welltris, King of Fighters '94,

         King of Fighters '95, King of Fighters '96, King of Fighters '97, King of Fighters '98,

         King of Fighters '99

 

    hi2txt general improvements

         imp: add -xml parameter allowing to display data in XML, for easier front-end integration

         imp: output table now accepts 'display' attribute

         fix: divide operation is now using a scale factor to avoid "non-terminating decimal expansion" error

         imp: operations can now use a unique field value to work on all values of a table column (ex: kof97)

         imp: nvram file is now supported as argument of hi2txt

         fix: display table columns and values even if all columns are using "format" or "src" attributes to build their values

 
Reminder for HyperSpin -> installation guide:

     1. unzip the downloaded archive, then copy hi2txt.exe and hi2txt.zip in the same folder than HyperSpin.exe

     2. rename hi2txt.exe into HiToText.exe. That's all!

     3. last RocketLauncher release seems to support hi2txt :)
 
Feedback is welcome as well as game support request or help    smile.png 

Cheers!

 

GreatStone

 

 

That's awesome... thanks for the update! Great work!

Share this post


Link to post
Share on other sites

@Tapatalk: "Maybe is there a way to take random names from hyperspin and make our names show up in the high score"

Random names of games? users? "show up in the high score"?

Can you give more details about what you have in mind, with an example?  :sweat: 

 

@griffin518: thanks!

 

@iNTiGOD: HiToText and hi2txt can read the last hiscore.dat without issue. The added value of such program is not in reading hiscore.dat (few lines of code).

 

Have in mind that hiscore.dat is defining mame memory location where the highscore can be found when a game is loaded.

So, "hi" files are "just" a bunch of mame memory bytes, and each game has a specific way to store hiscores in memory.

Consequently, for each game you want a friendly "text" display, we have to analyze the content of the "hi" file, understand the meaning of each bit, and the way data are encrypted (endianness, base 10, byte-swap, ordering, pointers, string compression, etc.).

After the analysis, we have to describe the decoding algorithm to produce the text representation.

For the sake of maintenance and get help from other people, describing the decoding algorithm in XML is a must: it is "easy" for somebody able to read inside the matrix and understand XML to write its own XML description to support a new game hiscore or modify an existing one.

 

What I propose with the new hi2txt utility is detailed here: http://greatstone.free.fr/hi2txt/doc/index.html

    1. My proposal is a rework of the XML format of HiToTxt to describe "hi" file and how to play/output extracted data, so that it is flexible enough to describe ALL operations in XML, without hard-coding a game-specific algorithm inside the code of the tool => power users can help to add a new game to display its highscores, without changing the code itself and recompiling the tool. This XML format and related code to handle it is one of my main contribution (XML format description: http://greatstone.free.fr/hi2txt/doc/xml.html).

    2. I also split the XML per game, for easier game addition.

    3. As hiscore.dat have memory location modifications over the time, hi2txt automatically detects which hiscore.dat you are using and what is the best algorithm to apply (all described/modifiable in XML).

    4. Also, it is supporting very high scores, using biginteger, to display for example the gigantic scores from last Cave shoot'em-up :)

    5. Finally, you understand that a big contribution is to "add" game in hi2txt: it means write an XML description of its "hi" file.

This is what I do in each release, and I think that now, hi2txt is supporting 700 more games than HiToTxt (games supported in details: http://greatstone.free.fr/hi2txt/stats.html).

 

Hope you understand/like the achieved work :)

And also why I am requesting help to support new games  :woot:

 

Regards,

GreatStone

 

 

Share this post


Link to post
Share on other sites

@Tapatalk: "Maybe is there a way to take random names from hyperspin and make our names show up in the high score"

Random names of games? users? "show up in the high score"?

Can you give more details about what you have in mind, with an example? :sweat:

@griffin518: thanks!

@iNTiGOD: HiToText and hi2txt can read the last hiscore.dat without issue. The added value of such program is not in reading hiscore.dat (few lines of code).

Have in mind that hiscore.dat is defining mame memory location where the highscore can be found when a game is loaded.

So, "hi" files are "just" a bunch of mame memory bytes, and each game has a specific way to store hiscores in memory.

Consequently, for each game you want a friendly "text" display, we have to analyze the content of the "hi" file, understand the meaning of each bit, and the way data are encrypted (endianness, base 10, byte-swap, ordering, pointers, string compression, etc.).

After the analysis, we have to describe the decoding algorithm to produce the text representation.

For the sake of maintenance and get help from other people, describing the decoding algorithm in XML is a must: it is "easy" for somebody able to read inside the matrix and understand XML to write its own XML description to support a new game hiscore or modify an existing one.

What I propose with the new hi2txt utility is detailed here: http://greatstone.free.fr/hi2txt/doc/index.html

1. My proposal is a rework of the XML format of HiToTxt to describe "hi" file and how to play/output extracted data, so that it is flexible enough to describe ALL operations in XML, without hard-coding a game-specific algorithm inside the code of the tool => power users can help to add a new game to display its highscores, without changing the code itself and recompiling the tool. This XML format and related code to handle it is one of my main contribution (XML format description: http://greatstone.free.fr/hi2txt/doc/xml.html).

2. I also split the XML per game, for easier game addition.

3. As hiscore.dat have memory location modifications over the time, hi2txt automatically detects which hiscore.dat you are using and what is the best algorithm to apply (all described/modifiable in XML).

4. Also, it is supporting very high scores, using biginteger, to display for example the gigantic scores from last Cave shoot'em-up :)

5. Finally, you understand that a big contribution is to "add" game in hi2txt: it means write an XML description of its "hi" file.

This is what I do in each release, and I think that now, hi2txt is supporting 700 more games than HiToTxt (games supported in details: http://greatstone.free.fr/hi2txt/stats.html).

Hope you understand/like the achieved work :)

And also why I am requesting help to support new games :woot:

Regards,

GreatStone

This is amazing.... Thank you so much for this. As we all know being able to reflect on your high scores really add to the arcade gaming authenticity and experience. It's really great that you have continued this project.

Ill update the high score setup guide here on hyperspin soon so that we can all enjoy your hard work.

I'll have to have a good read of all the info on your website and if I can help add high score support to a few extra games then why not.

Cheers again.

Share this post


Link to post
Share on other sites

Sorry for the lack of detail. There are folks on the forum that do hyperspin challenges aka try to get the best score for a game for the week. Folks were wondering if we could somehow add high scores of theirs and their names based on the screenshot they take during the competition. Basically say I get 1 million points in pacman. Maybe during a upcoming update in the hi for everyone they would see that they can't beat 1 million points on pacman by ninja2bceen. It could make the community a bit smaller, it's a neat idea but have no idea of the undertaking it would be by you. Thoughts?

Tapatalk signature

Share this post


Link to post
Share on other sites

Sorry for the lack of detail. There are folks on the forum that do hyperspin challenges aka try to get the best score for a game for the week. Folks were wondering if we could somehow add high scores of theirs and their names based on the screenshot they take during the competition. Basically say I get 1 million points in pacman. Maybe during a upcoming update in the hi for everyone they would see that they can't beat 1 million points on pacman by ninja2bceen. It could make the community a bit smaller, it's a neat idea but have no idea of the undertaking it would be by you. Thoughts?

Tapatalk signature

 

That information surely has to be written to the .hi file to be able to see it in game which is where you want it. Greatstones Hi2txt decodes the hi file and displays it in HS, so I would be interested to know if this is possible but I can't see it happening, I'm not even sure Mame hub would do it.

Share this post


Link to post
Share on other sites

That information surely has to be written to the .hi file to be able to see it in game which is where you want it. Greatstones Hi2txt decodes the hi file and displays it in HS, so I would be interested to know if this is possible but I can't see it happening, I'm not even sure Mame hub would do it.

 

It's possible, but we'd need a small database somewhere, online, in which to store the results. Someone would also need to write an interface program (think HyperSync, but for scores) that would log into the DB, compare your scores to what was stored, push or pull changes as appropriate, then disconnect. Toss aside all thoughts of real-time updates as that wouldn't be practical; batched "syncing" would work, though.

Share this post


Link to post
Share on other sites

Writing into .hi or nvram files is totally another story than reading them, because some games also store a checksum along with the scores to prevent easy hack.

It means that such checksum algorithm, specific for each game, has to be discovered by hand and also coded into the program.

Very very time consuming activity!

I can now easily understand how to extract data for a game hi file between 5mn to 1hour. But finding 1 checksum algorithm would takes days.

That's why I am not writing scores right now.

 

It can be done without much difficulty for games that are not using checksum, for sure, but it is half the answer.

We still need to add some robust synchronization:

   * read scores from hi files

   * send new scores into a common database and a users circle (a web service as a google app? + google+ circle and accounts?)

   * get scores from a common database and a users circle

   * write scores back into hi files

 

Another way is to forget to write back into .hi files and have a "common" hiscores CSV files (compiling high scores of the circle) available for a front-end to display it when browsing for games.

And why not adding achievements into this web service too? :)

Share this post


Link to post
Share on other sites

Thanks for what seems like a wonderful program. I only say that because I havent been able to get it working yet.

 

I downloaded the zip from your link, placed Hi2Text and Hi2Text.zip in the root HS folder, next to Hyperspin.exe

The hiscore.dat included with your download went into a "dats" folder in my MAME directory

I renamed Hi2Txt to HiToText

Turned on HyperHQ and enabled HiScore, with a Y of 550 and Delay of 3

I also added the Mame exe in my Mame wheel startup in HyperHQ

I also confirmed that HS is writing new .hi scores to my HI folder in Mame

 

Have not seen this work at all. Im using Win 7 SP1 with a 4.6.1 NET Framework. I downloaded the C# version of Hi2Txt.

I also set the HiToText directory in Rocketlauncher, but I think thats just for when I pause the game.

 

Thanks for any help you can provide.

Share this post


Link to post
Share on other sites
Quote

I downloaded the zip from your link, placed Hi2Text and Hi2Text.zip in the root HS folder, next to Hyperspin.exe

The hiscore.dat included with your download went into a "dats" folder in my MAME directory

I renamed Hi2Txt to HiToText

Turned on HyperHQ and enabled HiScore, with a Y of 550 and Delay of 3

I also added the Mame exe in my Mame wheel startup in HyperHQ

I also confirmed that HS is writing new .hi scores to my HI folder in Mame

 

Have not seen this work at all. Im using Win 7 SP1 with a 4.6.1 NET Framework. I downloaded the C# version of Hi2Txt.

I also set the HiToText directory in Rocketlauncher, but I think thats just for when I pause the game.

 

Same story for me except i am using windows 10.

Current version of HiToText.exe opens and closes immediately and does not display scores in Hyperspin. 

Older versions of HiToText.exe actually open but are not displaying in Hyperspin. 

No version seems to work with EDS or Hypermarquee. 

Quite frustrating. 

Share this post


Link to post
Share on other sites
1 hour ago, CarloCGC said:

Same story for me except i am using windows 10.

Current version of HiToText.exe opens and closes immediately and does not display scores in Hyperspin. 

Older versions of HiToText.exe actually open but are not displaying in Hyperspin. 

No version seems to work with EDS or Hypermarquee. 

Quite frustrating. 

Certainly not a windows 10 issue as I have it working with EDS.

 

 

Share this post


Link to post
Share on other sites

Aliens great movie and nice bartop.

HiToText though, It should be the simplest thing to setup i just don't get it.

If the exe won't even open what could be the cause? not having the .net framework would be my guess but i have 4.6+  

I have tried every version in the archives and none will even open (if i try to execute the exe on my desktop). 

The only version that does is the one that is bundled with Hypermarquee but it wont display in HS. 

Unless certain themes don't show them (I am testing with Outrun). 

Thanks anyway Giga i can rule out my OS at least :) 

 

 

Share this post


Link to post
Share on other sites
4 hours ago, CarloCGC said:

Aliens great movie and nice bartop.

HiToText though, It should be the simplest thing to setup i just don't get it.

If the exe won't even open what could be the cause? not having the .net framework would be my guess but i have 4.6+  

I have tried every version in the archives and none will even open (if i try to execute the exe on my desktop). 

The only version that does is the one that is bundled with Hypermarquee but it wont display in HS. 

Unless certain themes don't show them (I am testing with Outrun). 

Thanks anyway Giga i can rule out my OS at least :) 

 

 

Firstly the exe doesn't open, it's not meant to.

I'll zip up my dats and my HiToText files which you can place in your HyperSpin folder and the dats folder in the root of your Mame folder.

You may know this already but new version of mame have a different way of switching the hi score support on. It's now a plugin which you need to specify in all your ini files under "# CORE MISC OPTIONS"

Finally if you haven't done so already, follow iNTiGOD's guide.

Hi.rar

Share this post


Link to post
Share on other sites
7 hours ago, gigapig said:

Firstly the exe doesn't open, it's not meant to.

I'll zip up my dats and my HiToText files which you can place in your HyperSpin folder and the dats folder in the root of your Mame folder.

You may know this already but new version of mame have a different way of switching the hi score support on. It's now a plugin which you need to specify in all your ini files under "# CORE MISC OPTIONS"

Finally if you haven't done so already, follow iNTiGOD's guide.

Hi.rar

Thanks for taking the time to help I appreciate it. I will give those files a try this afternoon. 

Share this post


Link to post
Share on other sites
18 hours ago, gigapig said:

Firstly the exe doesn't open, it's not meant to.

I'll zip up my dats and my HiToText files which you can place in your HyperSpin folder and the dats folder in the root of your Mame folder.

You may know this already but new version of mame have a different way of switching the hi score support on. It's now a plugin which you need to specify in all your ini files under "# CORE MISC OPTIONS"

Finally if you haven't done so already, follow iNTiGOD's guide.

Hi.rar

Still no luck i'm afraid even with your files and following Intis guide. Thanks for the help all the same I will have to live with just having highscores in game  

Super annoying when things don't want to work. :)

Share this post


Link to post
Share on other sites
5 hours ago, CarloCGC said:

Still no luck i'm afraid even with your files and following Intis guide. Thanks for the help all the same I will have to live with just having highscores in game  

Super annoying when things don't want to work. :)

I can confirm that it works for me under the same conditions you described. Something's off in your setup.

Are HI files being created properly?

Share this post


Link to post
Share on other sites
12 hours ago, griffin518 said:

I can confirm that it works for me under the same conditions you described. Something's off in your setup.

Are HI files being created properly?

Yes Hi files are being created and are displaying in the mame games.

 

10 hours ago, iNTiGOD said:

If you want me to look at your setup later tonight I can.

 I would appreciate that Inti and thanks to both of you for taking the time to help :) 

Share this post


Link to post
Share on other sites
33 minutes ago, CarloCGC said:

Yes Hi files are being created and are displaying in the mame games.

 

 I would appreciate that Inti and thanks to both of you for taking the time to help :) 

 

Have you followed the tutorial in my signature Carlo?

I just reread my tutorial an noticed all the attachments I posted way back when, don't seem to be there.

Anyway follow my tutorial and download these files which are needed as indicated. Keep in mind that my tutorial is a little old and has not been updated with GreatStone's files but it may do the job for you.

You will have to forgive me but i'm not around much at the moment and have lost touch to a degree (I am having to relearn high score support).

Let me know how you go with my files and if all is well then i'll work out how to post them on the tutorial again.

G

Share this post


Link to post
Share on other sites
8 minutes ago, iNTiGOD said:

 

Have you followed the tutorial in my signature Carlo?

I just reread my tutorial an noticed all the attachments I posted way back when, don't seem to be there.

Anyway follow my tutorial and download these files which are needed as indicated. Keep in mind that my tutorial is a little old and has not been updated with GreatStone's files but it may do the job for you.

You will have to forgive me but i'm not around much at the moment and have lost touch to a degree (I am having to relearn high score support).

Let me know how you go with my files and if all is well then i'll work out how to post them on the tutorial again.

G

Those files work thanks so much!! Not sure why Gigas files didn't.  

Share this post


Link to post
Share on other sites

I recently overhauled my MAME cabinet, upgrading MAME from v0.152 to v0.178. It took me some time to figure out the changes and get my high scores working again with my old scores. After getting MAME situated I found that the HiToText functionality was no longer working in HyperSpin. I went ahead and replaced it with Hi2Txt and followed the installation guide, but it was not working. After troubleshooting, I found out that it seems to require the high scores be placed in the default \MAME\hi folder. I tested this by relocating a few hi files into the \MAME\hi folder, and the Hi2Txt functionality was working as expected, but only for the few select games I moved over.

After upgrading MAME and getting used to the changes surrounding high score support, I found out how to change the location where MAME is saving/expecting the hi files. I modified the hiscore init.lua file to change the hi path to a network drive to share among multiple installations:

D:\Emulators\MAME\plugins\hiscore\init.lua
	local hiscore_path = "hi";		-------->	local hiscore_path = "Y:\\Emulators\\MAME\\hi";

Am I missing a configuration setting somewhere, or is Hi2Txt just hardcoded to only look in the \MAME\hi folder? Hi2Text does not seem to pick up on this folder change. For anyone else in a similar situation, I worked around this by setting init.lua back to the default folder, and then created a directory junction (i.e. "mklink /D "D:\Emulators\MAME\hi" "Y:\Emulators\MAME\hi").

Thanks for the good work.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×